SciDAVis  1.D4
ApplicationWindow.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : ApplicationWindow.h
3  Project : SciDAVis
4  Description : SciDAVis's main window
5  --------------------------------------------------------------------
6  Copyright : (C) 2006-2009 Knut Franke (knut.franke*gmx.de)
7  Copyright : (C) 2006-2009 Tilman Benkert (thzs*gmx.net)
8  Copyright : (C) 2004-2007 by Ion Vasilief (ion_vasilief*yahoo.fr)
9  (replace * with @ in the email address)
10 
11  ***************************************************************************/
12 
13 /***************************************************************************
14  * *
15  * This program is free software; you can redistribute it and/or modify *
16  * it under the terms of the GNU General Public License as published by *
17  * the Free Software Foundation; either version 2 of the License, or *
18  * (at your option) any later version. *
19  * *
20  * This program is distributed in the hope that it will be useful, *
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
23  * GNU General Public License for more details. *
24  * *
25  * You should have received a copy of the GNU General Public License *
26  * along with this program; if not, write to the Free Software *
27  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
28  * Boston, MA 02110-1301 USA *
29  * *
30  ***************************************************************************/
31 #ifndef APPLICATION_H
32 #define APPLICATION_H
33 
34 #include <QMainWindow>
35 #include <Q3ListView>
36 #include <Q3Header>
37 #ifdef SEARCH_FOR_UPDATES
38 #include <QHttp>
39 #endif
40 #include <QFile>
41 #include <QSplitter>
42 #include <QDesktopServices>
43 #include <QBuffer>
44 #include <QLocale>
45 
46 #include "Table.h"
47 #include "ScriptingEnv.h"
48 #include "Script.h"
49 
50 class QPixmap;
51 class QCloseEvent;
52 class QDropEvent;
53 class QTimerEvent;
54 class QDragEnterEvent;
55 class QTranslator;
56 class QDockWidget;
57 class QAction;
58 class QActionGroup;
59 class QWorkspace;
60 class QLineEdit;
61 class QTranslator;
62 class QToolButton;
63 class QShortcut;
64 class QMenu;
65 class QToolBar;
66 class QAssistantClient;
67 class QStatusBar;
68 class QSignalMapper;
69 
70 class Matrix;
71 class Table;
72 class Graph;
73 class ScalePicker;
74 class Graph3D;
75 class Note;
76 class MultiLayer;
77 class FunctionDialog;
78 class Folder;
79 class FolderListItem;
80 class FolderListView;
81 class Plot3DDialog;
82 class MyWidget;
83 class TableStatistics;
84 class CurveRangeDialog;
85 class Project;
86 class AbstractAspect;
87 
88 #ifndef TS_PATH
89 #define TS_PATH (qApp->applicationDirPath() + "/translations")
90 #endif
91 
120 class ApplicationWindow: public QMainWindow, public scripted
121 {
122  Q_OBJECT
123 public:
125  ApplicationWindow(const QStringList& l);
127 
129 
130  QAssistantClient *assistant;
131  QTranslator *appTranslator, *qtTranslator;
132  QDockWidget *logWindow, *explorerWindow;
133  QTextEdit *results;
134 #ifdef SCRIPTING_CONSOLE
135  QDockWidget *consoleWindow;
136  QTextEdit *console;
137 #endif
138  QWorkspace* d_workspace;
141  QToolButton *btnResults;
142  QWidgetList *hiddenWindows, *outWindows;
143  QWidget *lastModified;
144 
145 public:
150  QString generateUniqueName(const QString& name, bool increment = true);
151 
152 public slots:
154  void copyStatusBarText();
156  void showStatusBarContextMenu( const QPoint & pos );
158 
159  void open();
160  ApplicationWindow* open(const QString& fn);
162 
165  QFile * openCompressedFile(const QString& fn);
166  ApplicationWindow* openProject(const QString& fn);
167 #ifdef ORIGIN_IMPORT
168  ApplicationWindow* importOPJ(const QString& filename);
169 #endif
170  void showHistory();
171 
179  ApplicationWindow * plotFile(const QString& fn);
180 
187  ApplicationWindow * loadScript(const QString& fn, bool execute = false);
188 
189  QWidgetList * windowsList();
190  void updateWindowLists(MyWidget *w);
194  void cascade();
195 
196  void saveProjectAs();
197  bool saveProject();
198 
200  void modifiedProject();
202  void savedProject();
204  void modifiedProject(QWidget *w);
206 
208 
209  void readSettings();
210  void saveSettings();
211  void applyUserSettings();
212  void setSaveSettings(bool autoSaving, int min);
213  void changeAppStyle(const QString& s);
214  void changeAppFont(const QFont& f);
215  void updateAppFonts();
216  void setAppColors(const QColor& wc,const QColor& pc,const QColor& tpc);
218 
220 
221  MultiLayer* multilayerPlot(int c, int r, int style);
222  MultiLayer* multilayerPlot(Table* w, const QStringList& colList, int style, int startRow = 0, int endRow = -1);
224  MultiLayer* multilayerPlot(const QString& caption);
226  MultiLayer* multilayerPlot(const QStringList& colList);
228  void addLayer();
229  void deleteLayer();
230 
233  void plotGrayScale();
235  void plotContour();
237  void plotColorMap();
239 
241  void autoArrangeLayers();
242  void initMultilayerPlot(MultiLayer* g, const QString& name);
243  void polishGraph(Graph *g, int style);
244  void plot2VerticalLayers();
245  void plot2HorizontalLayers();
246  void plot4Layers();
247  void plotStackedLayers();
248  void plotStackedHistograms();
250 
252 
253  Graph3D* openMatrixPlot3D(const QString& caption, const QString& matrix_name,
254  double xl,double xr,double yl,double yr,double zl,double zr);
255  Graph3D* dataPlot3D(Table* table,const QString& colName);
256  Graph3D* dataPlotXYZ(Table* table,const QString& zColName, int type);
257  Graph3D* dataPlot3D(const QString& caption,const QString& formula,
258  double xl, double xr, double yl, double yr, double zl, double zr);
259  Graph3D* dataPlotXYZ(const QString& caption,const QString& formula,
260  double xl, double xr, double yl, double yr, double zl, double zr);
262 
264 
265  Graph3D* newPlot3D();
266  Graph3D* newPlot3D(const QString& formula, double xl, double xr,
267  double yl, double yr, double zl, double zr);
268  Graph3D* newPlot3D(const QString& caption,const QString& formula,
269  double xl, double xr,double yl, double yr, double zl, double zr);
270  void connectSurfacePlot(Graph3D *plot);
271  void newSurfacePlot();
272  void editSurfacePlot();
273  void remove3DMatrixPlots(Matrix *m);
274  void updateMatrixPlots(QWidget *);
275  void add3DData();
276  void change3DData();
277  void change3DData(const QString& colName);
278  void change3DMatrix();
279  void change3DMatrix(const QString& matrix_name);
280  void insertNew3DData(const QString& colName);
281  void add3DMatrixPlot();
282  void insert3DMatrixPlot(const QString& matrix_name);
283  void initPlot3D(Graph3D *plot);
284  void customPlot3D(Graph3D *plot);
285  void setPlot3DOptions();
286 
287  void plot3DWireframe();
288  void plot3DHiddenLine();
289  void plot3DPolygons();
290  void plot3DWireSurface();
291 
292  void plot3DMatrix(int style);
293 
294  void plot3DRibbon();
295  void plot3DScatter();
296  void plot3DTrajectory();
297  void plot3DBars();
299 
301 
302  bool newFunctionPlot(int type,QStringList &formulas, const QString& var,QList<double> &ranges, int points);
303 
305  void showFunctionDialog();
306  void showFunctionDialog(Graph * g, int curve);
307  void addFunctionCurve();
308  void clearFitFunctionsList();
309  void saveFitFunctionsList(const QStringList& l);
311  void clearLogInfo();
314  void updateFunctionLists(int type, QStringList &formulas);
315  void updateSurfaceFuncList(const QString& s);
317 
319 
320 
321  Matrix* newMatrix(int rows = 32, int columns = 32);
323  Matrix* newMatrix(const QString& caption, int r, int c);
324  Matrix* matrix(const QString& name);
326  void initMatrix(Matrix* m);
327  void invertMatrix();
328  void matrixDeterminant();
330 
332 
333 
334  Table* newTable();
336  Table* newTable(const QString& fname, const QString &sep, int lines,
337  bool renameCols, bool stripSpaces, bool simplifySpaces,
338  bool convertToNumeric, QLocale numericLocale);
340  Table* newTable(const QString& caption,int r, int c);
341  Table* newTable(int r, int c, const QString& name = QString(),const QString& legend = QString());
342  Table* newTable(const QString& name, const QString& legend, QList<Column *> columns);
352  Table* newHiddenTable(const QString& name, const QString& label, QList<Column *> columns);
353  Table* table(const QString& name);
355  QWidgetList* tableList();
356 
357  void connectTable(Table* w);
358  void newWrksheetPlot(const QString& name,const QString& label, QList<Column *> columns);
359  void initTable(Table* w);
360  void customTable(Table* w);
361  void customizeTables(const QColor& bgColor,const QColor& textColor,
362  const QColor& headerColor,const QFont& textFont,
363  const QFont& headerFont, bool showComments);
364 
365  void importASCII();
366  void importASCII(const QStringList& files, int import_mode, const QString& local_column_separator, int local_ignored_lines,
367  bool local_rename_columns, bool local_strip_spaces, bool local_simplify_spaces, bool local_convert_to_numeric, QLocale local_numeric_locale);
368  void exportAllTables(const QString& sep, bool colNames, bool expSelection);
369  void exportASCII(const QString& tableName, const QString& sep, bool colNames, bool expSelection);
370 
371  TableStatistics *newTableStatistics(Table *base, int type, QList<int>,
372  const QString &caption=QString::null);
374 
376 
377  void setPreferences(Graph* g);
378  void setGraphDefaultSettings(bool autoscale,bool scaleFonts,bool resizeLayers,bool antialiasing);
379  void setLegendDefaultSettings(int frame, const QFont& font,
380  const QColor& textCol, const QColor& backgroundCol);
381  void setArrowDefaultSettings(int lineWidth, const QColor& c, Qt::PenStyle style,
382  int headLength, int headAngle, bool fillHead);
383  void plotPie();
384  void plotVectXYXY();
385  void plotVectXYAM();
387 
389 
390  void intensityTable();
391  void pixelLineProfile();
392  void loadImage();
393  void loadImage(const QString& fn);
394  Matrix* importImage();
395  Matrix* importImage(const QString& fn);
397 
399 
400  void exportLayer();
401  void exportGraph();
402  void exportAllGraphs();
403  void exportPDF();
404  void print();
405  void print(QWidget* w);
406  void printAllPlots();
408 
409  QStringList columnsList(SciDAVis::PlotDesignation plotType);
410  QStringList columnsList();
411 
412  void undo();
413  void redo();
414 
416 
417  MyWidget* clone();
419  void renameActiveWindow();
420 
422  void renameWindow(Q3ListViewItem *item, int, const QString &s);
423 
425  bool renameWindow(MyWidget *w, const QString &text);
426 
427  void maximizeWindow(Q3ListViewItem * lbi);
428  void maximizeWindow();
429  void minimizeWindow();
431  void setWindowGeometry(int x, int y, int w, int h);
432 
434 
435  bool hidden(QWidget* window);
436  void closeActiveWindow();
437  void closeWindow(MyWidget* window);
438 
441 
442  void hideWindow(MyWidget* window);
443  void hideActiveWindow();
444  void activateWindow();
445  void activateWindow(MyWidget *);
446  void printWindow();
448 
450  static void about();
452  static QString versionString();
453  void windowsMenuAboutToShow();
454  void windowsMenuActivated( int id );
455  void removeCurves(const QString& name);
456  QStringList dependingPlots(const QString& caption);
457  QStringList depending3DPlots(Matrix *m);
458  QStringList multilayerDependencies(QWidget *w);
459 
460  void saveAsTemplate();
461  void openTemplate();
462 
463  QString windowGeometryInfo(MyWidget *w);
464  void restoreWindowGeometry(ApplicationWindow *app, MyWidget *w, const QString s);
465 
466  void resizeActiveWindow();
467  void resizeWindow();
468 
470 
471  void setListView(const QString& caption,const QString& view);
472  void renameListViewItem(const QString& oldName,const QString& newName);
473  void setListViewDate(const QString& caption,const QString& date);
474  QString listViewDate(const QString& caption);
475  void setListViewLabel(const QString& caption,const QString& label);
477 
478  void updateColNames(const QString& oldName, const QString& newName);
479  void updateTableNames(const QString& oldName, const QString& newName);
480  void changeMatrixName(const QString& oldName, const QString& newName);
481  void updateCurves(Table *t, const QString& name);
482 
483  void showTable(const QString& curve);
484 
485  void addColToTable();
486  void cutSelection();
487  void copySelection();
488  void copyMarker();
489  void pasteSelection();
490  void clearSelection();
491  void copyActiveLayer();
492 
493  void newProject();
494 
496  MultiLayer* newGraph(const QString& caption = tr("Graph"));
497 
499 
500  Matrix* openMatrix(ApplicationWindow* app, const QStringList &flist);
501  Table* openTable(ApplicationWindow* app, QTextStream &stream);
502  TableStatistics* openTableStatistics(const QStringList &flist);
503  Graph3D* openSurfacePlot(ApplicationWindow* app, const QStringList &lst);
504  Graph* openGraph(ApplicationWindow* app, MultiLayer *plot, const QStringList &list);
505 
506  void openRecentProject();
508 
510 
513  void init();
514  void initGlobalConstants();
515  void createActions();
516  void initMainMenu();
517  void initPlotMenu();
518  void initTableAnalysisMenu();
519  void initPlotDataMenu();
520  void initToolBars();
521  void initPlot3DToolBar();
522  void disableActions();
523  void hideToolbars();
524  void customToolBars(QWidget* w);
525  void customMenu(QWidget* w);
526  void windowActivated(QWidget *w);
528 
530 
531  void correlate();
532  void autoCorrelate();
533  void convolute();
534  void deconvolute();
535  void clearTable();
537 
539 
540  void newLegend();
541  void addTimeStamp();
542  void drawLine();
543  void drawArrow();
544  void addText();
545  void disableAddText();
546  void addImage();
547  void zoomIn();
548  void zoomOut();
549  void setAutoScale();
550  void showRangeSelectors();
551  void showCursor();
552  void showScreenReader();
553  void pickPointerCursor();
554  void pickDataTool( QAction* action );
555 
556  void updateLog(const QString& result);
558 
560 
561  void deleteFitTables();
562  void fitLinear();
563  void fitSigmoidal();
564  void fitGauss();
565  void fitLorentz();
566  void fitMultiPeak(int profile);
567  void fitMultiPeakGauss();
568  void fitMultiPeakLorentz();
570 
572 
573  void differentiate();
574  void analysis(const QString& whichFit);
575  void analyzeCurve(Graph *g, const QString& whichFit, const QString& curveTitle);
576  void showDataSetDialog(const QString& whichFit);
578 
579  void addErrorBars();
580  void defineErrorBars(const QString& name,int type,const QString& percent,int direction);
581  void defineErrorBars(const QString& curveName,const QString& errColumnName, int direction);
582  void movePoints();
583  void removePoints();
584 
586 
587  void closeEvent( QCloseEvent*);
588  void timerEvent ( QTimerEvent *e);
589  void dragEnterEvent( QDragEnterEvent* e );
590  void dropEvent( QDropEvent* e );
591  void customEvent( QEvent* e);
593 
595 
596  void showFindDialogue();
598  void showPlotDialog(int curveKey = -1);
599  QDialog* showScaleDialog();
600  QDialog* showPlot3dDialog();
603  void showAxisDialog();
604  void showGridDialog();
605  void showGeneralPlotDialog();
606  void showResults(bool ok);
607  void showResults(const QString& s, bool ok=true);
608  void showTextDialog();
609  void showLineDialog();
610  void showTitleDialog();
611  void showExportASCIIDialog();
612  void showCurvesDialog();
613  void showCurveRangeDialog();
615  void showPlotAssociations(int curve);
616 
617  void showXAxisTitleDialog();
618  void showYAxisTitleDialog();
620  void showTopAxisTitleDialog();
621 
622  void showGraphContextMenu();
624  void showWindowContextMenu();
625  void showWindowTitleBarMenu();
626  void showCurveContextMenu(int curveKey);
627  void showCurvePlotDialog();
628  void showCurveWorksheet();
629  void showCurveWorksheet(Graph *g, int curveIndex);
630  void showWindowPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
631 
633  void showListViewSelectionMenu(const QPoint &p);
634 
636  void showListViewPopupMenu(const QPoint &p);
637 
638  void showMoreWindows();
639  void showMarkerPopupMenu();
640  void showHelp();
641  static void showStandAloneHelp();
642  void chooseHelpFolder();
643  QString guessHelpFolder();
644  void showPlotWizard();
645  void showFitPolynomDialog();
646  void showIntegrationDialog();
648  void showExpGrowthDialog();
649  void showExpDecayDialog();
650  void showExpDecayDialog(int type);
651  void showTwoExpDecayDialog();
652  void showExpDecay3Dialog();
653  void showRowStatistics();
654  void showColStatistics();
655  void showFitDialog();
656  void showImageDialog();
657  void showPlotGeometryDialog();
658  void showLayerDialog();
659  void showPreferencesDialog();
660  void showSmoothSavGolDialog();
661  void showSmoothFFTDialog();
663  void showSmoothDialog(int m);
664  void showFilterDialog(int filter);
665  void lowPassFilterDialog();
666  void highPassFilterDialog();
667  void bandPassFilterDialog();
668  void bandBlockFilterDialog();
669  void showFFTDialog();
671 
672  void translateCurveHor();
673  void translateCurveVert();
674 
676  void removeCurve();
677  void hideCurve();
678  void hideOtherCurves();
679  void showAllCurves();
680  void setCurveFullRange();
681 
682  void updateConfirmOptions(bool askTables, bool askMatrixes, bool askPlots2D, bool askPlots3D, bool askNotes);
683 
685 
686  void toggle3DAnimation(bool on = true);
688  void togglePerspective(bool on = true);
690  void resetRotation();
692  void fitFrameToLayer();
693  void setFramed3DPlot();
694  void setBoxed3DPlot();
695  void removeAxes3DPlot();
696  void removeGrid3DPlot();
698  void setLineGrid3DPlot();
699  void setPoints3DPlot();
700  void setCrosses3DPlot();
701  void setCones3DPlot();
702  void setBars3DPlot();
703  void setFilledMesh3DPlot();
704  void setEmptyFloor3DPlot();
705  void setFloorData3DPlot();
706  void setFloorIso3DPlot();
707  void setFloorGrid3DPlot(bool on);
708  void setCeilGrid3DPlot(bool on);
709  void setRightGrid3DPlot(bool on);
710  void setLeftGrid3DPlot(bool on);
711  void setFrontGrid3DPlot(bool on);
712  void setBackGrid3DPlot(bool on);
713  void pickPlotStyle( QAction* action );
714  void pickCoordSystem( QAction* action);
715  void pickFloorStyle( QAction* action);
716  void custom3DActions(QWidget *w);
717  void custom3DGrids(int grids);
719 
721 
722 #ifdef SEARCH_FOR_UPDATES
723 
724  void receivedVersionFile(bool error);
726  void searchForUpdates();
727 #endif
728 
730  void showHomePage();
732  void showForums();
734  void showBugTracker();
735 #ifdef DOWNLOAD_LINKS
736 
737  void downloadManual();
738 #endif
739 
740  void parseCommandLineArguments(const QStringList& args);
741  void createLanguagesList();
742  void switchToLanguage(int param);
743  void switchToLanguage(const QString& locale);
744 
745  bool alreadyUsedName(const QString& label);
746  bool projectHas2DPlots();
747  bool projectHas3DPlots();
748  bool projectHasMatrices();
749 
751  QWidget* window(const QString& name);
752 
754  QStringList matrixNames();
755 
757 
758 
759  Note* newNote(const QString& caption = QString());
760  Note* openNote(ApplicationWindow* app, const QStringList &flist);
761  void initNote(Note* m, const QString& caption);
762  void saveNoteAs();
764 
766 
767 
770  void addFolder();
772  void deleteFolder();
773 
775  bool deleteFolder(Folder *f);
776 
778  void deleteSelectedItems();
779 
781  void deactivateFolders();
782 
784  bool changeFolder(Folder *newFolder, bool force = false);
785 
787  void folderItemChanged(Q3ListViewItem *it);
789  void folderItemDoubleClicked(Q3ListViewItem *it);
790 
792 
798  void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, bool fromFolders);
799 
801  void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
802 
804  void startRenameFolder();
805 
807  void startRenameFolder(Q3ListViewItem *item);
808 
810  void renameFolder(Q3ListViewItem *it, int col, const QString &text);
811 
813  void showAllFolderWindows();
814 
816  void hideAllFolderWindows();
817 
819  void hideFolderWindows(Folder *f);
820 
822  void folderProperties();
823 
825  void windowProperties();
826 
828  void projectProperties();
829 
831  void appendProject();
833  void appendProject(const QString& file_name);
834  void saveAsProject();
835  void saveFolderAsProject(Folder *f);
836  void saveFolder(Folder *folder, const QString& fn);
837  void rawSaveFolder(Folder *folder, QIODevice *device);
838 
840  void addFolderListViewItem(Folder *f);
841 
843  void addListViewItem(MyWidget *w);
844 
846  void setShowWindowsPolicy(int p);
847 
850 
852  void find(const QString& s, bool windowNames, bool labels, bool folderNames,
853  bool caseSensitive, bool partialMatch, bool subfolders);
854 
856  void dragFolderItems(QList<Q3ListViewItem *> items){draggedItems = items;};
857 
859  void dropFolderItems(Q3ListViewItem *dest);
860 
862 
866  void moveFolder(FolderListItem *src, FolderListItem *dest);
868 
870 
871 
872  void scriptError(const QString &message, const QString &scriptName, int lineNumber);
874  void executeNotes();
878  void restartScriptingEnv();
880  void scriptPrint(const QString &text);
882  bool setScriptingLang(const QString &lang, bool force=false);
884 
885 signals:
886  void modified();
887 
888 // TODO: a lot of this stuff should be private
889 public:
918 
921 
924 
927 
929 
932 
935 
938 
940 
945  enum {MaxRecentProjects = 10};
948 
951 
953  QString templatesDir;
955 #ifdef SEARCH_FOR_UPDATES
956  bool autoSearchUpdates;
957 #endif
965  Qt::PenStyle defaultArrowLineStyle;
976  QStringList recentProjects;
977  QStringList tableWindows();
979  QStringList plot3DColors, locales;
980  QStringList functions; //user-defined functions;
981  QStringList xFunctions, yFunctions, rFunctions,thetaFunctions; // user functions for parametric and polar plots
982  QStringList fitFunctions; //user-defined fit functions;
983  QStringList surfaceFunc; //user-defined surface functions;
984 
986  QStringList renamedTables;
988 
990 
991  QString auxMrkText;
992  QFont auxMrkFont;
995  Qt::PenStyle auxMrkStyle;
996  QString auxMrkFileName;
999 
1004 
1005 #ifdef SEARCH_FOR_UPDATES
1006 
1007  bool autoSearchUpdatesRequest;
1008 #endif
1009 
1012 
1013 private:
1015  void showWindowMenu(MyWidget * widget);
1017  QMenu *createToolbarsMenu();
1018 
1020  bool validFor3DPlot(Table *table);
1022  bool validFor2DPlot(Table *table, int type);
1023 
1025  int convertOldToNewColorIndex(int cindex);
1026 
1028  QList<Q3ListViewItem *> draggedItems;
1029 
1030 #ifdef SEARCH_FOR_UPDATES
1031 
1032  QHttp http;
1034  QBuffer version_buffer;
1035 #endif
1036 
1038  QSplitter *explorerSplitter;
1039 
1056 #ifdef SCRIPTING_CONSOLE
1057  QAction *actionShowConsole;
1058 #endif
1059 
1075 #ifdef DYNAMIC_MANUAL_PATH
1076  QAction *actionChooseHelpFolder;
1077 #endif
1095 #ifdef SEARCH_FOR_UPDATES
1096  QAction *actionCheckUpdates;
1097 #endif
1098  QAction *actionHomePage;
1099 #ifdef DOWNLOAD_LINKS
1100  QAction *actionDownloadManual;
1101 #endif
1108 
1109  QActionGroup* dataTools;
1112 
1113  QActionGroup* coord;
1114  QAction* Box;
1115  QAction* Frame;
1116  QAction* None;
1117 
1118  QActionGroup* grids;
1119  QAction* front;
1120  QAction* back;
1121  QAction* right;
1122  QAction* left;
1123  QAction* ceil;
1124  QAction* floor;
1125 
1126  QActionGroup* floorstyle;
1127  QAction* floordata;
1128  QAction* flooriso;
1129  QAction* floornone;
1130 
1131  QActionGroup* plotstyle;
1132  QAction* wireframe;
1133  QAction* hiddenline;
1134  QAction* polygon;
1135  QAction* filledmesh;
1136  QAction* pointstyle;
1137  QAction* barstyle;
1139 
1141  QSignalMapper *d_plot_mapper;
1142 
1143  QLabel *d_status_info;
1144 
1146 
1147 private slots:
1148  void removeDependentTableStatistics(const AbstractAspect *aspect);
1150 
1155 
1160  void selectPlotType(int type);
1161 
1162  void handleAspectAdded(const AbstractAspect * aspect, int index);
1163  void handleAspectAboutToBeRemoved(const AbstractAspect * aspect, int index);
1164 };
1165 
1166 #endif
1167