Преглед на файлове

Cleanup PluginBrowser GUI and save the main window state.

Sascha Zelzer преди 14 години
родител
ревизия
8d5a9833bb

+ 25 - 0
Applications/ctkPluginBrowser/ctkPluginBrowser.cpp

@@ -38,6 +38,11 @@
 #include <QStringList>
 #include <QDirIterator>
 #include <QUrl>
+#include <QSettings>
+#include <QCloseEvent>
+
+#define SETTINGS_WND_GEOM "mainwindow.geom"
+#define SETTINGS_WND_STATE "mainwindow.state"
 
 ctkPluginBrowser::ctkPluginBrowser(ctkPluginFramework* framework)
   : framework(framework)
@@ -89,6 +94,8 @@ ctkPluginBrowser::ctkPluginBrowser(ctkPluginFramework* framework)
 
   ui.setupUi(this);
 
+  tabifyDockWidget(ui.qtResourcesDockWidget, ui.pluginResourcesDockWidget);
+
   editors = new ctkPluginBrowserEditors(ui.centralwidget);
 
   QAbstractItemModel* pluginTableModel = new ctkPluginTableModel(framework->getPluginContext(), this);
@@ -117,6 +124,16 @@ ctkPluginBrowser::ctkPluginBrowser(ctkPluginFramework* framework)
   ui.pluginToolBar->addAction(startPluginNowAction);
   ui.pluginToolBar->addAction(startPluginAction);
   ui.pluginToolBar->addAction(stopPluginAction);
+
+  QSettings settings;
+  if(settings.contains(SETTINGS_WND_GEOM))
+  {
+    this->restoreGeometry(settings.value(SETTINGS_WND_GEOM).toByteArray());
+  }
+  if (settings.contains(SETTINGS_WND_STATE))
+  {
+    this->restoreState(settings.value(SETTINGS_WND_STATE).toByteArray());
+  }
 }
 
 void ctkPluginBrowser::pluginSelected(const QModelIndex &index)
@@ -252,3 +269,11 @@ void ctkPluginBrowser::stopPlugin()
   ctkPlugin* plugin = framework->getPluginContext()->getPlugin(v.toLongLong());
   plugin->stop();
 }
+
+void ctkPluginBrowser::closeEvent(QCloseEvent *closeEvent)
+{
+  QSettings settings;
+  settings.setValue(SETTINGS_WND_GEOM, this->saveGeometry());
+  settings.setValue(SETTINGS_WND_STATE, this->saveState());
+  QMainWindow::closeEvent(closeEvent);
+}

+ 2 - 0
Applications/ctkPluginBrowser/ctkPluginBrowser.h

@@ -59,6 +59,8 @@ private slots:
 
 private:
 
+  void closeEvent(QCloseEvent* closeEvent);
+
   void updatePluginToolbar(ctkPlugin* plugin);
   void startPlugin(ctkPlugin::StartOptions options);
 

+ 13 - 13
Applications/ctkPluginBrowser/ctkPluginBrowserMainWindow.ui

@@ -41,7 +41,7 @@
    <addaction name="menuFile"/>
   </widget>
   <widget class="QStatusBar" name="statusbar"/>
-  <widget class="QDockWidget" name="dockWidget">
+  <widget class="QDockWidget" name="pluginsDockWidget">
    <property name="features">
     <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
    </property>
@@ -61,6 +61,9 @@
      </property>
      <item>
       <widget class="QTableView" name="pluginsTableView">
+       <property name="autoScroll">
+        <bool>false</bool>
+       </property>
        <property name="selectionMode">
         <enum>QAbstractItemView::SingleSelection</enum>
        </property>
@@ -73,16 +76,10 @@
        <property name="sortingEnabled">
         <bool>true</bool>
        </property>
-       <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
+       <attribute name="horizontalHeaderCascadingSectionResizes">
         <bool>true</bool>
        </attribute>
-       <attribute name="horizontalHeaderStretchLastSection">
-        <bool>true</bool>
-       </attribute>
-       <attribute name="verticalHeaderVisible">
-        <bool>false</bool>
-       </attribute>
-       <attribute name="verticalHeaderVisible">
+       <attribute name="horizontalHeaderHighlightSections">
         <bool>false</bool>
        </attribute>
        <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
@@ -91,12 +88,15 @@
        <attribute name="horizontalHeaderStretchLastSection">
         <bool>true</bool>
        </attribute>
+       <attribute name="verticalHeaderVisible">
+        <bool>false</bool>
+       </attribute>
       </widget>
      </item>
     </layout>
    </widget>
   </widget>
-  <widget class="QDockWidget" name="dockWidget_2">
+  <widget class="QDockWidget" name="qtResourcesDockWidget">
    <property name="features">
     <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
    </property>
@@ -124,7 +124,7 @@
     </layout>
    </widget>
   </widget>
-  <widget class="QDockWidget" name="dockWidget_3">
+  <widget class="QDockWidget" name="pluginResourcesDockWidget">
    <property name="features">
     <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
    </property>
@@ -152,7 +152,7 @@
     </layout>
    </widget>
   </widget>
-  <widget class="QDockWidget" name="dockWidget_4">
+  <widget class="QDockWidget" name="servicesDockWidget">
    <property name="windowTitle">
     <string>Services</string>
    </property>
@@ -236,7 +236,7 @@
     </layout>
    </widget>
   </widget>
-  <widget class="QDockWidget" name="dockWidget_5">
+  <widget class="QDockWidget" name="eventsDockWidget">
    <property name="windowTitle">
     <string>Events</string>
    </property>