[Kst] branches/work/kst/portto4/kst/src/libkstapp

Nicolas Brisset nicolas.brisset at eurocopter.com
Wed Sep 22 23:09:10 CEST 2010


SVN commit 1178378 by brisset:

Finish the first round of menu/toolbar reorganization. This change has one very visible impact: the create actions are 
moved from the data manager to the "Create" menu. There was a little bit of discussion on that a while ago and it seems to be a 
recurrent question from users (why are they here anyway?), plus it uses up valuable screen real estate. And they were almost 
always hidden, which wasn't so nice.

I'd suggest trying this for a while and then deciding whether we want to re-add something to the data manager. The QActions are 
now created from mainwindow.cpp, we can add them to a QToolBox which we export to the data manager. 
I'd also appreciate if a real C++ developer checked the changes. It is a bit more than shuffling around some code and I'm not 
100% sure of everything.

For the other small points (list of recent files, x-only and y-only zoom, ...) buried in the comments of this bug, I'll create 
separate entries. Some icons are also waiting to be improved, but we can do that bit by bit and it is not directly the intention
of this bug.

BUG: 249799


 M  +1 -94     datamanager.cpp  
 M  +0 -11     datamanager.ui  
 M  +6 -10     libkstapp.pro  
 M  +26 -1     mainwindow.cpp  
 M  +4 -1      mainwindow.h  
 A             pluginmenuitemaction.cpp   [License: GPL (v2+)]
 A             pluginmenuitemaction.h   [License: GPL (v2+)]


--- branches/work/kst/portto4/kst/src/libkstapp/datamanager.cpp #1178377:1178378
@@ -54,103 +54,10 @@
 
   _contextMenu = new QMenu(this);
 
-  _objects->setFrameStyle(QFrame::StyledPanel | QFrame::Plain);
-  _objects->setStyleSheet("background-color: white;");
+  connect(_purge, SIGNAL(clicked()), this, SLOT(purge()));
 
-  _primitives = new QToolBar(_objects);
-  _primitives->setOrientation(Qt::Vertical);
-  _primitives->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
-  _dataObjects = new QToolBar(_objects);
-  _dataObjects->setOrientation(Qt::Vertical);
-  _dataObjects->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
-  _plugins = new QToolBar(_objects);
-  _plugins->setOrientation(Qt::Vertical);
-  _plugins->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
-  _fits = new QToolBar(_objects);
-  _fits->setOrientation(Qt::Vertical);
-  _fits->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
-  _filters = new QToolBar(_objects);
-  _filters->setOrientation(Qt::Vertical);
-  _filters->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
-  _objects->addItem(_primitives, tr("Create Primitive"));
-  _objects->addItem(_dataObjects, tr("Create Data Object"));
-  _objects->addItem(_plugins, tr("Create Plugin"));
-  _objects->addItem(_fits, tr("Create Fit"));
-  _objects->addItem(_filters, tr("Create Filter"));
-
-//   Create canonical items...
-
-  QAction *action = new DataButtonAction(tr("Vector"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showVectorDialog()));
-  _primitives->addAction(action);
-
-   action = new DataButtonAction(tr("Matrix"));
-   connect(action, SIGNAL(triggered()), this, SLOT(showMatrixDialog()));
-   _primitives->addAction(action);
- 
-   action = new DataButtonAction(tr("Scalar"));
-   connect(action, SIGNAL(triggered()), this, SLOT(showScalarDialog()));
-   _primitives->addAction(action);
- 
-   action = new DataButtonAction(tr("String"));
-   connect(action, SIGNAL(triggered()), this, SLOT(showStringDialog()));
-   _primitives->addAction(action);
-
-  action = new DataButtonAction(tr("Curve"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showCurveDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Equation"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showEquationDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Histogram"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showHistogramDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Power Spectrum"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showPowerSpectrumDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Event Monitor"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showEventMonitorDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Image"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showImageDialog()));
-  _dataObjects->addAction(action);
-
-  action = new DataButtonAction(tr("Spectrogram"));
-  connect(action, SIGNAL(triggered()), this, SLOT(showCSDDialog()));
-  _dataObjects->addAction(action);
-
-  foreach (QString pluginName, DataObject::dataObjectPluginList()) {
-    action = new DataButtonAction(pluginName);
-    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
-    _plugins->addAction(action);
   }
 
-  foreach (QString pluginName, DataObject::fitsPluginList()) {
-    action = new DataButtonAction(pluginName);
-    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
-    _fits->addAction(action);
-  }
-
-  foreach (QString pluginName, DataObject::filterPluginList()) {
-    action = new DataButtonAction(pluginName);
-    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
-    _filters->addAction(action);
-  }
-
-  connect(_purge, SIGNAL(clicked()), this, SLOT(purge()));
-}
-
-
 DataManager::~DataManager() {
   // the data manager is only destroyed at exit, so there is no real
   // need to clean up anything...  (though valgrind thinks we really
--- branches/work/kst/portto4/kst/src/libkstapp/datamanager.ui #1178377:1178378
@@ -25,17 +25,6 @@
      <property name="childrenCollapsible">
       <bool>false</bool>
      </property>
-     <widget class="QToolBox" name="_objects">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="currentIndex">
-       <number>-1</number>
-      </property>
-     </widget>
      <widget class="QTreeView" name="_session">
       <property name="sizePolicy">
        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
--- branches/work/kst/portto4/kst/src/libkstapp/libkstapp.pro #1178377:1178378
@@ -1,6 +1,5 @@
 TOPOUT_REL=../..
 include($$PWD/$$TOPOUT_REL/kst.pri)
-
 QT += gui \
     network \
     svg \
@@ -19,14 +18,11 @@
     $$TOPLEVELDIR/src/widgets \
     $$TOPOUTDIR/src/widgets \
     $$TOPOUTDIR/src/libkstapp/tmp
-
-LIBS += \
-    -L$$OUTPUT_DIR/lib \
+LIBS += -L$$OUTPUT_DIR/lib \
     -L$$OUTPUT_DIR/plugin \
     -l$$kstlib(kst2widgets) \
     -l$$kstlib(kst2math) \
     -l$$kstlib(kst2lib)
-
 SOURCES += aboutdialog.cpp \
     application.cpp \
     applicationsettings.cpp \
@@ -130,10 +126,9 @@
     viewitemdialog.cpp \
     viewmatrixdialog.cpp \
     viewprimitivedialog.cpp \
-    viewvectordialog.cpp
-
-HEADERS += \
-    aboutdialog.h \
+    viewvectordialog.cpp \
+    pluginmenuitemaction.cpp
+HEADERS += aboutdialog.h \
     application.h \
     applicationsettings.h \
     applicationsettingsdialog.h \
@@ -237,7 +232,8 @@
     viewitem.h \
     viewmatrixdialog.h \
     viewprimitivedialog.h \
-    viewvectordialog.h
+    viewvectordialog.h \
+    pluginmenuitemaction.h
 FORMS += aboutdialog.ui \
     arrowpropertiestab.ui \
     axistab.ui \
--- branches/work/kst/portto4/kst/src/libkstapp/mainwindow.cpp #1178377:1178378
@@ -39,6 +39,7 @@
 #include "applicationsettings.h"
 #include "updatemanager.h"
 #include "datasourcepluginmanager.h"
+#include "pluginmenuitemaction.h"
 
 #include "applicationsettingsdialog.h"
 #include "differentiatecurvesdialog.h"
@@ -981,7 +982,7 @@
   _createMenu->addAction(_newEventMonitorAct);
   _createMenu->addSeparator();
   // Annotation objects
-  QMenu* annotations = _createMenu->addMenu("&Annotation");
+  QMenu* annotations = _createMenu->addMenu(tr("&Annotation"));
   annotations->addAction(_createLabelAct);
   annotations->addAction(_createBoxAct);
   annotations->addAction(_createCircleAct);
@@ -990,6 +991,27 @@
   annotations->addAction(_createArrowAct);
   annotations->addAction(_createPictureAct);
   annotations->addAction(_createSvgAct);
+  _createMenu->addSeparator();
+  // Now, create the dynamic plugins menus
+  QMenu* _pluginsMenu = _createMenu->addMenu(tr("Standard P&lugins"));
+  QMenu* _fitPluginsMenu = _createMenu->addMenu(tr("Fit Pl&ugins"));
+  QMenu* _filterPluginsMenu = _createMenu->addMenu(tr("Filter Plu&gins"));
+  PluginMenuItemAction* action;
+  foreach (QString pluginName, DataObject::dataObjectPluginList()) {
+    action = new PluginMenuItemAction(pluginName, this);
+    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
+    _pluginsMenu->addAction(action);
+  }
+  foreach (QString pluginName, DataObject::fitsPluginList()) {
+    action = new PluginMenuItemAction(pluginName, this);
+    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
+    _fitPluginsMenu->addAction(action);
+  }
+  foreach (QString pluginName, DataObject::filterPluginList()) {
+    action = new PluginMenuItemAction(pluginName, this);
+    connect(action, SIGNAL(triggered(QString&)), this, SLOT(showPluginDialog(QString&)));
+    _filterPluginsMenu->addAction(action);
+  }
 
   _modeMenu = menuBar()->addMenu(tr("&Mode"));
   // Zoom/axes stuff
@@ -1379,6 +1401,9 @@
   _changeFileDialog->show();
 }
 
+void MainWindow::showPluginDialog(QString &pluginName) {
+  DialogLauncher::self()->showBasicPluginDialog(pluginName);
+}
 
 void MainWindow::readSettings() {
   QSettings settings("Kst2");
--- branches/work/kst/portto4/kst/src/libkstapp/mainwindow.h #1178377:1178378
@@ -16,7 +16,6 @@
 #include <QPointer>
 #include <QLabel>
 
-
 class QMenu;
 class QAction;
 class QProgressBar;
@@ -70,6 +69,7 @@
     void showChangeFileDialog();
     void showDataWizard();
     void showBugReportWizard();
+    void showPluginDialog(QString &pluginName);
 
     void readFromEnd();
     void pause(bool pause);
@@ -167,6 +167,9 @@
     QMenu *_editMenu;
     QMenu *_viewMenu;
     QMenu *_createMenu;
+    QMenu *_pluginsMenu;
+    QMenu *_fitsPluginsMenu;
+    QMenu *_filterPluginsMenu;
     QMenu *_modeMenu;
     QMenu *_rangeMenu;
     QMenu *_toolsMenu;


More information about the Kst mailing list