# HG changeset patch # User IBBoard # Date 1281195637 0 # Node ID be876c03054fd9871543ecb196b9748f25a4cda2 # Parent e405b43a405b85e2ac84c537676c3fb710d91a8f Re #245: Create unit tab implementation * Add stub widget * Record which unit tabs are open * Remove two default tabs diff -r e405b43a405b -r be876c03054f IBBoard.WarFoundry.GUI.QtSharp.csproj --- a/IBBoard.WarFoundry.GUI.QtSharp.csproj Sat Aug 07 13:39:35 2010 +0000 +++ b/IBBoard.WarFoundry.GUI.QtSharp.csproj Sat Aug 07 15:40:37 2010 +0000 @@ -42,6 +42,7 @@ + @@ -115,6 +116,7 @@ + diff -r e405b43a405b -r be876c03054f MainWindow.cs --- a/MainWindow.cs Sat Aug 07 13:39:35 2010 +0000 +++ b/MainWindow.cs Sat Aug 07 15:40:37 2010 +0000 @@ -16,6 +16,7 @@ using IBBoard.WarFoundry.API.Savers; using IBBoard.WarFoundry.GUI.QtSharp.Handler; using IBBoard.WarFoundry.API.Commands; +using IBBoard.WarFoundry.GUI.QtSharp.Widgets; namespace IBBoard.WarFoundry.GUI.QtSharp { @@ -32,6 +33,8 @@ private Preferences preferences; private QAction[] categoryActions; private Dictionary treeNodes; + private Dictionary openUnitWidgets; + public MainWindow () { @@ -40,6 +43,7 @@ WindowIcon = new QIcon("icons/App.png"); Preferences = new Preferences("WarFoundryQt"); treeNodes = new Dictionary(); + openUnitWidgets = new Dictionary(); try { @@ -553,7 +557,18 @@ private void OpenUnitDialog(Unit unit) { + UnitWidget currentWidget = DictionaryUtils.GetValue(openUnitWidgets, unit); + if (currentWidget != null) + { + layout.unitTabs.SetCurrentWidget(currentWidget); + } + else + { + UnitWidget unitWidget = new UnitWidget(unit); + openUnitWidgets.Add(unit, unitWidget); + layout.unitTabs.AddTab(unitWidget, unit.Name); + } } void EnableCategoryButtons () diff -r e405b43a405b -r be876c03054f Widgets/UnitWidget.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Widgets/UnitWidget.cs Sat Aug 07 15:40:37 2010 +0000 @@ -0,0 +1,16 @@ +// This file (UnitWidget.cs) is a part of the IBBoard.WarFoundry.GUI.QtSharp project and is copyright 2010 IBBoard +// +// // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. +using System; +using Qyoto; +using IBBoard.WarFoundry.API.Objects; +namespace IBBoard.WarFoundry.GUI.QtSharp.Widgets +{ + public class UnitWidget : QWidget + { + public UnitWidget(Unit unit) + { + } + } +} + diff -r e405b43a405b -r be876c03054f qt-gui/MainWindowLayout.cs --- a/qt-gui/MainWindowLayout.cs Sat Aug 07 13:39:35 2010 +0000 +++ b/qt-gui/MainWindowLayout.cs Sat Aug 07 15:40:37 2010 +0000 @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading ui file 'MainWindowLayout.ui' ** -** Created: Sat Jul 31 16:07:24 2010 +** Created: Sat Aug 7 16:39:03 2010 ** by: Qt User Interface Compiler for C# version 4.6.3 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! @@ -28,8 +28,6 @@ public QSplitter splitter; public QTreeView armyTree; public QTabWidget unitTabs; - public QWidget tab; - public QWidget tab_2; public QMenuBar menubar; public QMenu menuFile; public QMenu menuExportArmyAs; @@ -89,13 +87,12 @@ splitter.AddWidget(armyTree); unitTabs = new QTabWidget(splitter); unitTabs.ObjectName = "unitTabs"; - unitTabs.MinimumSize = new QSize(500, 0); - tab = new QWidget(); - tab.ObjectName = "tab"; - unitTabs.AddTab(tab, QApplication.Translate("MainWindowLayout", "Tab 1", null, QApplication.Encoding.UnicodeUTF8)); - tab_2 = new QWidget(); - tab_2.ObjectName = "tab_2"; - unitTabs.AddTab(tab_2, QApplication.Translate("MainWindowLayout", "Tab 2", null, QApplication.Encoding.UnicodeUTF8)); + unitTabs.MinimumSize = new QSize(500, 200); + unitTabs.tabShape = QTabWidget.TabShape.Rounded; + unitTabs.ElideMode = Qt.TextElideMode.ElideMiddle; + unitTabs.DocumentMode = false; + unitTabs.TabsClosable = true; + unitTabs.Movable = true; splitter.AddWidget(unitTabs); gridLayout.AddWidget(splitter, 0, 0, 1, 1); @@ -142,7 +139,7 @@ RetranslateUi(MainWindowLayout); - unitTabs.CurrentIndex = 0; + unitTabs.CurrentIndex = -1; QMetaObject.ConnectSlotsByName(MainWindowLayout); @@ -162,8 +159,6 @@ actionAbout.Text = QApplication.Translate("MainWindowLayout", "&about", null, QApplication.Encoding.UnicodeUTF8); actionUndo.Text = QApplication.Translate("MainWindowLayout", "&undo", null, QApplication.Encoding.UnicodeUTF8); actionRedo.Text = QApplication.Translate("MainWindowLayout", "&redo", null, QApplication.Encoding.UnicodeUTF8); - unitTabs.SetTabText(unitTabs.IndexOf(tab), QApplication.Translate("MainWindowLayout", "Tab 1", null, QApplication.Encoding.UnicodeUTF8)); - unitTabs.SetTabText(unitTabs.IndexOf(tab_2), QApplication.Translate("MainWindowLayout", "Tab 2", null, QApplication.Encoding.UnicodeUTF8)); menuFile.Title = QApplication.Translate("MainWindowLayout", "&file", null, QApplication.Encoding.UnicodeUTF8); menuExportArmyAs.Title = QApplication.Translate("MainWindowLayout", "export army as", null, QApplication.Encoding.UnicodeUTF8); menuEdit.Title = QApplication.Translate("MainWindowLayout", "&edit", null, QApplication.Encoding.UnicodeUTF8); diff -r e405b43a405b -r be876c03054f qt-gui/MainWindowLayout.ui --- a/qt-gui/MainWindowLayout.ui Sat Aug 07 13:39:35 2010 +0000 +++ b/qt-gui/MainWindowLayout.ui Sat Aug 07 15:40:37 2010 +0000 @@ -39,22 +39,27 @@ 500 - 0 + 200 + + QTabWidget::Rounded + - 0 + -1 + + + Qt::ElideMiddle - - - Tab 1 - - - - - Tab 2 - - + + false + + + true + + + true +