00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef APPLICATION_H
00033 #define APPLICATION_H
00034
00035 #include <QMainWindow>
00036 #include <q3listview.h>
00037 #include <QHttp>
00038 #include <QFile>
00039 #include <QSplitter>
00040 #include <QDesktopServices>
00041 #include <QBuffer>
00042 #include <QLineEdit>
00043
00044 #include <Graph.h>
00045 #include <Table.h>
00046 #include <ScriptingEnv.h>
00047 #include <Script.h>
00048 #include <TranslateCurveTool.h>
00049
00050 #include <qwt_color_map.h>
00051
00052 class QPixmap;
00053 class QCloseEvent;
00054 class QDropEvent;
00055 class QTimerEvent;
00056 class QDragEnterEvent;
00057 class QTranslator;
00058 class QDockWidget;
00059 class QAction;
00060 class QActionGroup;
00061 class QTranslator;
00062 class QToolButton;
00063 class QShortcut;
00064 class QMenu;
00065 class QToolBar;
00066 class QAssistantClient;
00067 class QLocale;
00068 class QMdiArea;
00069 class QUndoView;
00070 class QCompleter;
00071
00072 class Matrix;
00073 class Table;
00074 class ScalePicker;
00075 class Graph3D;
00076 class Note;
00077 class MultiLayer;
00078 class FunctionDialog;
00079 class Folder;
00080 class FolderListItem;
00081 class FolderListView;
00082 class ScriptWindow;
00083 class Plot3DDialog;
00084 class TableStatistics;
00085 class CurveRangeDialog;
00086 class LegendWidget;
00087 class ArrowMarker;
00088 class TextEditor;
00089 class AssociationsDialog;
00090
00119 class ApplicationWindow: public QMainWindow, public scripted
00120 {
00121 Q_OBJECT
00122
00123 public:
00124 ApplicationWindow(bool factorySettings = false);
00125 ApplicationWindow(const QStringList& l);
00126 ~ApplicationWindow();
00127
00128 enum ShowWindowsPolicy{HideAll, ActiveFolder, SubFolders};
00129 enum WindowType{NoWindow, TableWindow, MatrixWindow, MultiLayerWindow, NoteWindow, Plot3DWindow};
00130 enum MatrixToTableConversion{Direct, XYZ, YXZ};
00131 enum EndLineChar{LF, CRLF, CR};
00132 enum Analysis{NoAnalysis, Integrate, Diff, FitLinear, FitGauss, FitLorentz, FitSigmoidal, FitSlope};
00133 enum LaTeXCompiler{MathTran, Local};
00134
00135 FolderListView *lv, *folders;
00136 QDockWidget *logWindow;
00137
00142 QString generateUniqueName(const QString& name, bool increment = true);
00143 void saveFitFunctions(const QStringList& lst);
00144
00146
00147 void loadCustomActions();
00148 void reloadCustomActions();
00149 void removeCustomAction(QAction *);
00150 void addCustomAction(QAction *, const QString& parentName, int index = -1);
00151 QList<QAction *> customActionsList(){return d_user_actions;};
00152 QList<QMenu *> customizableMenusList();
00153
00154 void reloadCustomMenus();
00155 QMenu* addCustomMenu(const QString& title, const QString& parentName);
00156 void removeCustomMenu(const QString& title);
00157 QList<QMenu *> customMenusList(){return d_user_menus;};
00159
00160 QList<QMenu *> menusList();
00161 QList<QToolBar *> toolBarsList();
00162
00163 MdiSubWindow *activeWindow(WindowType type = NoWindow);
00164 void setActiveWindow(MdiSubWindow *w){d_active_window = w;};
00165 QMdiArea* workspace(){return d_workspace;};
00166
00167 int matrixUndoStackSize(){return d_matrix_undo_stack_size;};
00168 void setMatrixUndoStackSize(int size);
00169
00170 QString endOfLine();
00171 static QString guessEndOfLine(const QString& sample);
00172 bool autoUpdateTableValues(){return d_auto_update_table_values;};
00173 void setAutoUpdateTableValues(bool on = true);
00174
00175 QCompleter* completer(){return d_completer;};
00176 void enableCompletion(bool on = true);
00177 void addWindowsListToCompleter();
00178
00179 QLocale clipboardLocale(){return d_clipboard_locale;};
00180 void setClipboardLocale(const QLocale& locale){d_clipboard_locale = locale;};
00181
00182 QTextEdit *resultsLog(){return results;};
00183 #ifdef SCRIPTING_CONSOLE
00184 QTextEdit *scriptingConsole(){return console;};
00185 #endif
00186
00187 static QString imageFilter();
00188 static QString getFileName(QWidget *parent = 0, const QString & caption = QString(),
00189 const QString & dir = QString(), const QString & filter = QString(),
00190 QString * selectedFilter = 0, bool save = true);
00191
00192 static void memoryAllocationError();
00193 QColor readColorFromProject(const QString& name);
00194
00195 void enableMdiArea(bool on = true);
00196 bool isMdiAreaEnabled(){return d_mdi_windows_area;};
00197
00198 void displayInfo(const QString& text){info->setText(text);};
00199
00200 public slots:
00202
00203 void open();
00204 ApplicationWindow* open(const QString& fn, bool factorySettings = false, bool newProject = true);
00205 ApplicationWindow* openProject(const QString& fn, bool factorySettings = false, bool newProject = true);
00206 ApplicationWindow* importOPJ(const QString& fn, bool factorySettings = false, bool newProject = true);
00207
00215 ApplicationWindow * plotFile(const QString& fn);
00216
00223 ApplicationWindow * loadScript(const QString& fn, bool execute = false, bool noGui = false, bool factorySettings = false);
00224
00225 QList<MdiSubWindow *> windowsList();
00226 void updateWindowLists(MdiSubWindow *w);
00230 void cascade();
00231
00232 void saveProjectAs(const QString& fileName = QString(), bool compress = false);
00233 bool saveProject(bool compress = false);
00234
00236 void modifiedProject();
00238 void savedProject();
00240 void modifiedProject(MdiSubWindow *w);
00242
00244
00245 void readSettings();
00246 void saveSettings();
00247 void setSaveSettings(bool autoSaving, int min);
00248 void changeAppStyle(const QString& s);
00249 void changeAppFont(const QFont& f);
00250 void updateAppFonts();
00251 void setAppColors(const QColor& wc,const QColor& pc,const QColor& tpc, bool force = false);
00252
00253 void initWindow();
00255
00257
00258
00259 MultiLayer* newGraph(const QString& caption = tr("Graph"));
00260 MultiLayer* multilayerPlot(int c, int r, int style);
00261 MultiLayer* multilayerPlot(Table* w, const QStringList& colList, int style, int startRow = 0, int endRow = -1);
00263 MultiLayer* multilayerPlot(const QString& caption, int layers = 1, int rows = 1, int cols = 1);
00265 MultiLayer* multilayerPlot(const QStringList& colList);
00266 MultiLayer* waterfallPlot();
00267 MultiLayer* waterfallPlot(Table *t, const QStringList& list);
00268 void connectMultilayerPlot(MultiLayer *g);
00269 void addLayer();
00270 void addInsetLayer(bool curves = false);
00271 void addInsetCurveLayer();
00272 void deleteLayer();
00273 void extractGraphs();
00274 void extractLayers();
00275
00277 MultiLayer* plotSpectrogram(Matrix *m, Graph::CurveType type);
00278 MultiLayer* plotGrayScale(Matrix *m = 0);
00279 MultiLayer* plotContour(Matrix *m = 0);
00280 MultiLayer* plotColorMap(Matrix *m = 0);
00281 MultiLayer* plotImage(Matrix *m = 0);
00282
00284 void autoArrangeLayers();
00285 void initMultilayerPlot(MultiLayer* g, const QString& name);
00286 void plot2VerticalLayers();
00287 void plot2HorizontalLayers();
00288 void plot4Layers();
00289 void plotStackedLayers();
00290 void plotStackedHistograms();
00292
00294
00295 Graph3D* newPlot3D(const QString& title = QString());
00296 Graph3D* plotXYZ(Table* table,const QString& zColName, int type);
00297 Graph3D* addRibbon(const QString& caption, const QString& formula,
00298 double xl, double xr, double yl, double yr, double zl, double zr);
00300
00302
00303 Graph3D* plotSurface(const QString& formula, double xl, double xr,
00304 double yl, double yr, double zl, double zr, int columns = 40, int rows = 30);
00305 Graph3D* plotParametricSurface(const QString& xFormula, const QString& yFormula,
00306 const QString& zFormula, double ul, double ur, double vl, double vr,
00307 int columns, int rows, bool uPeriodic, bool vPeriodic);
00308
00309 void connectSurfacePlot(Graph3D *plot);
00310 void newSurfacePlot();
00311 void editSurfacePlot();
00312 void remove3DMatrixPlots(Matrix *m);
00313 void updateMatrixPlots(Matrix *);
00314 void add3DData();
00315 void change3DData();
00316 void change3DData(const QString& colName);
00317 void change3DMatrix();
00318 void change3DMatrix(const QString& matrix_name);
00319 void insertNew3DData(const QString& colName);
00320 void add3DMatrixPlot();
00321 void insert3DMatrixPlot(const QString& matrix_name);
00322
00323 void plot3DWireframe();
00324 void plot3DHiddenLine();
00325 void plot3DPolygons();
00326 void plot3DWireSurface();
00327
00328 Graph3D* plot3DMatrix(Matrix *m = 0, int style = 5);
00329
00330 void plot3DRibbon();
00331 void plot3DScatter();
00332 void plot3DTrajectory();
00333 void plot3DBars();
00335
00337
00338 MultiLayer * newFunctionPlot(QStringList &formulas, double start, double end, int points = 100, const QString& var = "x", int type = 0);
00339
00340 FunctionDialog* functionDialog();
00341 FunctionDialog* showFunctionDialog();
00342 FunctionDialog* showFunctionDialog(Graph * g, int curve);
00343 void addFunctionCurve();
00344 void clearSurfaceFunctionsList();
00345 void clearLogInfo();
00346 void clearParamFunctionsList();
00347 void clearPolarFunctionsList();
00348 void updateFunctionLists(int type, QStringList &formulas);
00349 void updateSurfaceFuncList(const QString& s);
00351
00353
00354
00355 Matrix* newMatrix(int rows = 32, int columns = 32);
00357 Matrix* newMatrix(const QString& caption, int r, int c);
00358 Matrix* matrix(const QString& name);
00359 Matrix* convertTableToMatrix();
00360 Matrix* tableToMatrix(Table* t);
00361 Matrix* convertTableToMatrixRegularXYZ();
00362 void showBinMatrixDialog();
00363 void initMatrix(Matrix* m, const QString& caption);
00364 void transposeMatrix();
00365 void invertMatrix();
00366 void matrixDeterminant();
00367 void flipMatrixVertically();
00368 void flipMatrixHorizontally();
00369 void rotateMatrix90();
00370 void rotateMatrixMinus90();
00371 void viewMatrixImage();
00372 void viewMatrixTable();
00373 void exportMatrix(const QString& exportFilter = QString::null);
00374 void setMatrixDefaultScale();
00375 void setMatrixGrayScale();
00376 void setMatrixRainbowScale();
00377 void viewMatrixColumnRow();
00378 void viewMatrixXY();
00379 void matrixDirectFFT();
00380 void matrixInverseFFT();
00382
00384
00385
00386 Table* newTable();
00387
00388
00389 Table* currentTable();
00390 MultiLayer* currentPlot();
00391 Note* currentNote();
00392 Matrix* currentMatrix();
00393
00395 Table* newTable(const QString& caption,int r, int c);
00396 Table* newTable(int r, int c, const QString& name = QString(),const QString& legend = QString());
00397 Table* newTable(const QString& caption, int r, int c, const QString& text);
00407 Table* newHiddenTable(const QString& name, const QString& label, int r, int c, const QString& text=QString());
00408 Table* table(const QString& name);
00409 Table* convertMatrixToTableDirect();
00410 Table* convertMatrixToTableXYZ();
00411 Table* convertMatrixToTableYXZ();
00412 Table* matrixToTable(Matrix* m, MatrixToTableConversion conversionType = Direct);
00413 QList<MdiSubWindow *> tableList();
00415 bool hasTable();
00417 QStringList tableNames();
00418
00419 void connectTable(Table* w);
00420 void initTable(Table* w, const QString& caption);
00421 void customTable(Table* w);
00422
00423 void importWaveFile();
00424 void importASCII();
00425 void importASCII(const QStringList& files, int import_mode, const QString& local_column_separator, int local_ignored_lines, bool local_rename_columns,
00426 bool local_strip_spaces, bool local_simplify_spaces, bool local_import_comments,
00427 QLocale local_separators, const QString& local_comment_string, bool import_read_only, int endLineChar);
00428 void exportAllTables(const QString& dir, const QString& filter, const QString& sep, bool colNames, bool colComments, bool expSelection);
00429
00431 void recalculateTable();
00432
00433 TableStatistics *newTableStatistics(Table *base, int type, QList<int>,
00434 const QString &caption=QString::null);
00436
00438
00439 void setPreferences(Graph* g);
00440 void setGraphDefaultSettings(bool autoscale,bool scaleFonts,bool resizeLayers,bool antialiasing);
00441 void setArrowDefaultSettings(double lineWidth, const QColor& c, Qt::PenStyle style,
00442 int headLength, int headAngle, bool fillHead);
00443
00444 void plotL();
00445 void plotP();
00446 void plotLP();
00447 void plotPie();
00448 void plotVerticalBars();
00449 void plotHorizontalBars();
00450 void plotStackBar();
00451 void plotStackColumn();
00452 void plotArea();
00453 void plotVertSteps();
00454 void plotHorSteps();
00455 void plotSpline();
00456 void plotVerticalDropLines();
00457 MultiLayer* plotHistogram();
00458 MultiLayer* plotHistogram(Matrix *m);
00459 void plotVectXYXY();
00460 void plotVectXYAM();
00461 void plotBoxDiagram();
00462 void plotDoubleYAxis();
00463 void zoomRectanglePlot();
00464 QString stemPlot(Table *t = 0, const QString& colName = QString(), int power = 0, int startRow = 0, int endRow = -1);
00465 Note *newStemPlot();
00466
00468 bool validFor3DPlot(Table *table);
00470 bool validFor2DPlot(Table *table, Graph::CurveType type);
00472 MultiLayer* generate2DGraph(Graph::CurveType type);
00474
00476
00477 void intensityTable();
00478 void pixelLineProfile();
00479 void loadImage();
00480 void loadImage(const QString& fn);
00481 Matrix* importImage(const QString& = QString(), bool newWindow = false);
00483
00485
00486 void exportLayer();
00487 void exportGraph(const QString& exportFilter = QString::null);
00488 void exportAllGraphs();
00489 void exportPresentationODF();
00490 void exportPDF();
00491 void print();
00492 void printPreview();
00493 void printAllPlots();
00495
00496 QStringList columnsList(Table::PlotDesignation plotType = Table::All);
00497
00498 void undo();
00499 void redo();
00500
00502
00503 MdiSubWindow* clone(MdiSubWindow* w = 0);
00504 void rename();
00505 void renameWindow();
00506
00508 void renameWindow(Q3ListViewItem *item, int, const QString &s);
00509
00511 bool setWindowName(MdiSubWindow *w, const QString &text);
00512
00513 void maximizeWindow(Q3ListViewItem * lbi = 0);
00514 void maximizeWindow(MdiSubWindow *w);
00515 void minimizeWindow(MdiSubWindow *w = 0);
00516
00517 void updateWindowStatus(MdiSubWindow* );
00518
00519 bool hidden(QWidget* window);
00520 void closeActiveWindow();
00521 void closeWindow(MdiSubWindow* window);
00522
00524 void removeWindowFromLists(MdiSubWindow* w);
00525
00526 void hideWindow(MdiSubWindow* window);
00527 void hideWindow();
00528 void hideActiveWindow();
00529 void activateWindow();
00530 void activateWindow(MdiSubWindow *);
00532
00534 static void about();
00536 static QString versionString();
00537 void removeCurves(const QString& name);
00538 QStringList dependingPlots(const QString& caption);
00539 QStringList depending3DPlots(Matrix *m);
00540 QStringList multilayerDependencies(QWidget *w);
00541
00542 void saveAsTemplate(MdiSubWindow* w = 0, const QString& = QString());
00543 void openTemplate();
00544 MdiSubWindow* openTemplate(const QString& fn);
00545
00546 QString windowGeometryInfo(MdiSubWindow *w);
00547 static void restoreWindowGeometry(ApplicationWindow *app, MdiSubWindow *w, const QString s);
00548 void restoreApplicationGeometry();
00549 void resizeActiveWindow();
00550 void resizeWindow();
00551
00553
00554 void setListView(const QString& caption,const QString& view);
00555 void renameListViewItem(const QString& oldName,const QString& newName);
00556 void setListViewDate(const QString& caption,const QString& date);
00557 QString listViewDate(const QString& caption);
00558 void setListViewSize(const QString& caption,const QString& size);
00559 void setListViewLabel(const QString& caption,const QString& label);
00561
00562 void updateColNames(const QString& oldName, const QString& newName);
00563 void updateTableNames(const QString& oldName, const QString& newName);
00564 void changeMatrixName(const QString& oldName, const QString& newName);
00565 void updateCurves(Table *t, const QString& name);
00566
00567 void showTable(const QString& curve);
00568 void showTable(int i);
00569
00570 void addColToTable();
00571 void cutSelection();
00572 void copySelection();
00573 void copyMarker();
00574 void pasteSelection();
00575 void clearSelection();
00576 void copyActiveLayer();
00577
00578 void newProject();
00579
00581
00582 Matrix* openMatrix(ApplicationWindow* app, const QStringList &flist);
00583 Table* openTable(ApplicationWindow* app, const QStringList &flist);
00584 TableStatistics* openTableStatistics(const QStringList &flist);
00585 Graph* openGraph(ApplicationWindow* app, MultiLayer *plot, const QStringList &list);
00586
00587 void openRecentProject(int index);
00589
00591
00592 void sortSelection();
00593 void sortActiveTable();
00594 void normalizeSelection();
00595 void normalizeActiveTable();
00596 void correlate();
00597 void autoCorrelate();
00598 void convolute();
00599 void deconvolute();
00600 void clearTable();
00601 void goToRow();
00602 void goToColumn();
00603 void moveTableRowUp();
00604 void moveTableRowDown();
00605 void adjustColumnWidth();
00607
00609
00610 void newLegend();
00611 void addTimeStamp();
00612 void drawLine();
00613 void drawArrow();
00614 void drawPoints();
00615 void addText();
00616 void addTexFormula();
00617 void addRectangle();
00618 void addEllipse();
00619 void addImage();
00620 void zoomIn();
00621 void zoomOut();
00622 void magnify();
00623 void setAutoScale();
00624 void showRangeSelectors();
00625 void showCursor();
00626 void showScreenReader();
00627 void pickPointerCursor();
00628 void disableTools();
00629 void pickDataTool( QAction* action );
00630
00631 void updateLog(const QString& result);
00633
00635
00636 void deleteFitTables();
00637 void fitLinear();
00638 void fitSigmoidal();
00639 void fitGauss();
00640 void fitLorentz();
00641 void fitMultiPeak(int profile);
00642 void fitMultiPeakGauss();
00643 void fitMultiPeakLorentz();
00644 void fitSlope();
00646
00648
00649 void integrate();
00650 void differentiate();
00651 void analysis(Analysis operation);
00652 void analyzeCurve(Graph *g, Analysis operation, const QString& curveTitle);
00653 void showDataSetDialog(Analysis operation);
00655
00656 void addErrorBars();
00657 void defineErrorBars(const QString& name, int type, double percent, int direction);
00658 void defineErrorBars(const QString& curveName, const QString& errColumnName, int direction);
00659 void movePoints(bool wholeCurve = false);
00660 void removePoints();
00661
00663
00664 void closeEvent( QCloseEvent*);
00665 void timerEvent ( QTimerEvent *e);
00666 void dragEnterEvent( QDragEnterEvent* e );
00667 void dropEvent( QDropEvent* e );
00668 void customEvent( QEvent* e);
00670
00672
00673 void showFindDialogue();
00675 void showPlotDialog(int curveKey = -1);
00676 QDialog* showScaleDialog();
00677 QDialog* showPlot3dDialog();
00678 AxesDialog* showScalePageFromAxisDialog(int axisPos);
00679 AxesDialog* showAxisPageFromAxisDialog(int axisPos);
00680 void showAxisDialog();
00681 void showGridDialog();
00682 void showGeneralPlotDialog();
00683 void showResults(bool ok);
00684 void showResults(const QString& s, bool ok=true);
00685 void showEnrichementDialog();
00686 void showLineDialog();
00687 void showTitleDialog();
00688 void showExportASCIIDialog();
00689 void showCurvesDialog();
00690 void showCurveRangeDialog();
00691 CurveRangeDialog* showCurveRangeDialog(Graph *g, int curve);
00692 AssociationsDialog* showPlotAssociations(int curve);
00693
00694 void showAxisTitleDialog();
00695 void showColumnOptionsDialog();
00696 void showRowsDialog();
00697 void showDeleteRowsDialog();
00698 void showColsDialog();
00699 void showColMenu(int c);
00700 void showColumnValuesDialog();
00701
00702 void showGraphContextMenu();
00703 void showTableContextMenu(bool selection);
00704 void showWindowContextMenu();
00705 void customWindowTitleBarMenu(MdiSubWindow *w, QMenu *menu);
00706 void showCurveContextMenu(QwtPlotItem *);
00707 void showCurvePlotDialog();
00708 void showCurveWorksheet();
00709 void showCurveWorksheet(Graph *g, int curveIndex);
00710 void showWindowPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
00711
00713 void showListViewSelectionMenu(const QPoint &p);
00714
00716 void showListViewPopupMenu(const QPoint &p);
00717
00718 void showScriptWindow(bool parent = true);
00719 void showMoreWindows();
00720 void showMarkerPopupMenu();
00721 void showHelp();
00722 static void showStandAloneHelp();
00723 void chooseHelpFolder();
00724 void showPlotWizard();
00725 void showFitPolynomDialog();
00726 void showFrequencyCountDialog();
00727 void showIntegrationDialog();
00728 void showInterpolationDialog();
00729 void showExpGrowthDialog();
00730 void showExpDecayDialog();
00731 void showExpDecayDialog(int type);
00732 void showTwoExpDecayDialog();
00733 void showExpDecay3Dialog();
00734 void showRowStatistics();
00735 void showColStatistics();
00736 void showFitDialog();
00737 void showLayerDialog();
00738 void showPreferencesDialog();
00739 void showMatrixDialog();
00740 void showMatrixSizeDialog();
00741 void showMatrixValuesDialog();
00742 void showSmoothSavGolDialog();
00743 void showSmoothFFTDialog();
00744 void showSmoothAverageDialog();
00745 void showSmoothLowessDialog();
00746 void showSmoothDialog(int m);
00747 void showFilterDialog(int filter);
00748 void lowPassFilterDialog();
00749 void highPassFilterDialog();
00750 void bandPassFilterDialog();
00751 void bandBlockFilterDialog();
00752 void showFFTDialog();
00753 void showColorMapDialog();
00755
00756 void translateCurveHor();
00757 void translateCurve(TranslateCurveTool::Direction direction = TranslateCurveTool::Vertical);
00758
00760 void removeCurve();
00761 void hideCurve();
00762 void hideOtherCurves();
00763 void showAllCurves();
00764 void setCurveFullRange();
00765
00766 void setAscValues();
00767 void setRandomValues();
00768 void setXCol();
00769 void setYCol();
00770 void setZCol();
00771 void setXErrCol();
00772 void setYErrCol();
00773 void setLabelCol();
00774 void disregardCol();
00775 void setReadOnlyCol();
00776 void setReadOnlyColumns();
00777 void setReadWriteColumns();
00778 void swapColumns();
00779 void moveColumnRight();
00780 void moveColumnLeft();
00781 void moveColumnFirst();
00782 void moveColumnLast();
00783
00784 void updateConfirmOptions(bool askTables, bool askMatrixes, bool askPlots2D, bool askPlots3D, bool askNotes);
00785
00787
00788 void toggle3DAnimation(bool on = true);
00790 void togglePerspective(bool on = true);
00792 void resetRotation();
00794 void fitFrameToLayer();
00795 void setFramed3DPlot();
00796 void setBoxed3DPlot();
00797 void removeAxes3DPlot();
00798 void removeGrid3DPlot();
00799 void setHiddenLineGrid3DPlot();
00800 void setLineGrid3DPlot();
00801 void setPoints3DPlot();
00802 void setCrosses3DPlot();
00803 void setCones3DPlot();
00804 void setBars3DPlot();
00805 void setFilledMesh3DPlot();
00806 void setEmptyFloor3DPlot();
00807 void setFloorData3DPlot();
00808 void setFloorIso3DPlot();
00809 void setFloorGrid3DPlot(bool on);
00810 void setCeilGrid3DPlot(bool on);
00811 void setRightGrid3DPlot(bool on);
00812 void setLeftGrid3DPlot(bool on);
00813 void setFrontGrid3DPlot(bool on);
00814 void setBackGrid3DPlot(bool on);
00815 void pickPlotStyle( QAction* action );
00816 void pickCoordSystem( QAction* action);
00817 void pickFloorStyle( QAction* action);
00818 void custom3DActions(QMdiSubWindow *w);
00819 void custom3DGrids(int grids);
00821
00822 void updateRecentProjectsList();
00823
00825 void receivedVersionFile(bool error);
00827 void searchForUpdates();
00828 #ifdef QTIPLOT_SUPPORT
00829 void showDonationDialog();
00830 #endif
00832 void showSupportPage();
00834 void showDonationsPage();
00836 void showHomePage();
00838 void showForums();
00840 void showBugTracker();
00842 void downloadManual();
00844 void downloadTranslation();
00845 #ifdef QTIPLOT_DEMO
00847 void showDemoVersionMessage();
00848 #endif
00849
00850 void parseCommandLineArguments(const QStringList& args);
00851 void createLanguagesList();
00852 void switchToLanguage(int param);
00853 void switchToLanguage(const QString& locale);
00854
00855 bool alreadyUsedName(const QString& label);
00856 bool projectHas2DPlots();
00857
00859 MdiSubWindow* window(const QString& name);
00860
00862 QStringList matrixNames();
00863
00865
00866
00867 Note* newNote(const QString& caption = QString());
00868 Note* openNote(ApplicationWindow* app, const QStringList &flist);
00869 void saveNoteAs();
00870 void showNoteLineNumbers(bool show = true);
00871 void increaseNoteIndent();
00872 void decreaseNoteIndent();
00873 void noteFindDialogue();
00874 void noteFindNext();
00875 void noteFindPrev();
00876 void noteReplaceDialogue();
00877 void renameCurrentNoteTab();
00878 void addNoteTab();
00879 void closeNoteTab();
00880 void execute();
00881 void executeAll();
00882 void evaluate();
00884
00886
00887
00888 Folder* currentFolder(){return current_folder;};
00890 void addFolder();
00891 Folder* addFolder(QString name, Folder* parent = NULL);
00893 void deleteFolder();
00894
00896 bool deleteFolder(Folder *f);
00897
00899 void deleteSelectedItems();
00901 void hideSelectedWindows();
00903 void showSelectedWindows();
00904
00906 void desactivateFolders();
00907
00909 bool changeFolder(Folder *newFolder, bool force = false);
00910
00912 void folderItemChanged(Q3ListViewItem *it);
00914 void folderItemDoubleClicked(Q3ListViewItem *it);
00915
00917
00923 void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, bool fromFolders);
00924
00926 void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
00927
00929 void startRenameFolder();
00930
00932 void startRenameFolder(Q3ListViewItem *item);
00933
00935 void renameFolder(Q3ListViewItem *it, int col, const QString &text);
00936
00938 void showAllFolderWindows();
00939
00941 void hideAllFolderWindows();
00942
00944 void hideFolderWindows(Folder *f);
00945
00947 void folderProperties();
00948
00950 void windowProperties();
00951
00953 void projectProperties();
00954
00956 void appendProject();
00958 Folder* appendProject(const QString& file_name, Folder* parentFolder = 0);
00959 void saveAsProject();
00960 void saveFolderAsProject(Folder *f);
00961 void saveFolder(Folder *folder, const QString& fn, bool compress = false);
00962
00964 void addFolderListViewItem(Folder *f);
00965
00967 void addListViewItem(MdiSubWindow *w);
00968
00970 void setShowWindowsPolicy(int p);
00971
00973 Folder* projectFolder();
00974
00976 void find(const QString& s, bool windowNames, bool labels, bool folderNames,
00977 bool caseSensitive, bool partialMatch, bool subfolders);
00978
00980 void dragFolderItems(QList<Q3ListViewItem *> items){draggedItems = items;};
00981
00983 void dropFolderItems(Q3ListViewItem *dest);
00984
00986
00990 void moveFolder(FolderListItem *src, FolderListItem *dest);
00992
00996 bool copyFolder(Folder *src, Folder *dest);
00997
00998 void foldersMenuActivated( int id );
01000
01002
01003
01004 void scriptError(const QString &message, const QString &scriptName, int lineNumber);
01006 void executeNotes();
01008 void showScriptingLangDialog();
01010 void restartScriptingEnv();
01012 void scriptPrint(const QString &text);
01014 bool setScriptingLanguage(const QString &lang, bool force=false);
01015
01016 void scriptsDirPathChanged(const QString& path);
01018
01019 void showToolBarsMenu();
01020 void setFormatBarFont(const QFont &);
01021
01022 signals:
01023 void modified();
01024
01025 private:
01027
01028 void init(bool factorySettings = false);
01029 void initCompleter();
01030 void initGlobalConstants();
01031 void createActions();
01032 void initMainMenu();
01033 void initToolBars();
01034 void initPlot3DToolBar();
01035 void initPlot3D(Graph3D *plot);
01036 void insertTranslatedStrings();
01037 void translateActionsStrings();
01039 virtual QMenu * createPopupMenu(){return NULL;};
01040 void updateCompleter(const QString& windowName, bool remove = false, const QString& newName = QString::null);
01041
01042 private slots:
01043 void disableActions();
01044 void customColumnActions();
01045 void disableToolbars();
01046 void customToolBars(QMdiSubWindow* w);
01047 void customMenu(QMdiSubWindow* w);
01048 void windowActivated(QMdiSubWindow *w);
01049 void custom2DPlotTools(MultiLayer *);
01050
01051 void analysisMenuAboutToShow();
01052 void scriptingMenuAboutToShow();
01053 void fileMenuAboutToShow();
01054 void editMenuAboutToShow();
01055 void matrixMenuAboutToShow();
01056 void plotMenuAboutToShow();
01057 void plotDataMenuAboutToShow();
01058 void tableMenuAboutToShow();
01059 void windowsMenuAboutToShow();
01060 void windowsMenuActivated( int id );
01061
01063
01064 void enableTextEditor(Graph *g);
01065 void setFontSize(int);
01066 void setFontFamily(const QFont &);
01067 void setItalicFont(bool);
01068 void setBoldFont(bool);
01069 void insertSuperscript();
01070 void insertSubscript();
01071 void underline();
01072 void insertGreekSymbol();
01073 void insertGreekMajSymbol();
01074 void insertMathSymbol();
01076
01077 void showCustomActionDialog();
01078 void performCustomAction(QAction *);
01079
01080 void hideSelectedColumns();
01081 void showAllColumns();
01082 void closedLastCopiedLayer(){lastCopiedLayer = NULL;};
01083
01084 void increasePrecision();
01085 void decreasePrecision();
01086
01087 #ifdef SCRIPTING_PYTHON
01088 void openQtDesignerUi();
01089 #endif
01090
01091
01092 public:
01093 Graph::LegendDisplayMode d_graph_legend_display;
01094 int d_latex_compiler;
01095 QString d_latex_compiler_path;
01097 QString d_open_project_filter;
01099 int d_frame_geometry_unit;
01101 int d_layer_geometry_unit;
01102 int d_notes_tab_length;
01103 QFont d_notes_font;
01105 EndLineChar d_eol;
01107 bool d_in_place_editing;
01109 bool d_completion;
01111 bool d_note_line_numbers;
01112 QString d_python_config_folder;
01113 QString d_translations_folder;
01115 bool d_opening_file;
01117 bool d_is_appending_file;
01118 QString customActionsDirPath;
01119 bool d_matrix_tool_bar, d_file_tool_bar, d_table_tool_bar, d_column_tool_bar, d_edit_tool_bar;
01120 bool d_plot_tool_bar, d_plot3D_tool_bar, d_display_tool_bar, d_format_tool_bar, d_notes_tool_bar;
01121 bool d_backup_files;
01122 WindowType d_init_window_type;
01123 QRect d_script_win_rect, d_app_rect;
01124 bool d_script_win_on_top;
01125 bool d_inform_rename_table;
01126 QString d_export_col_separator;
01127 bool d_export_col_names, d_export_table_selection, d_export_col_comment;
01129 QString d_image_export_filter, d_export_ASCII_file_filter;
01130 double d_scale_fonts_factor;
01131 bool d_export_transparency;
01132 int d_export_quality;
01133 int d_export_vector_resolution, d_export_bitmap_resolution, d_export_size_unit;
01134 QSizeF d_export_raster_size;
01135 bool d_export_color;
01136 bool d_export_escape_tex_strings;
01137 bool d_export_tex_font_sizes;
01138 int d_3D_export_text_mode, d_3D_export_sort;
01140 QLocale d_clipboard_locale;
01142 QLocale d_ASCII_import_locale;
01144 EndLineChar d_ASCII_end_line;
01146 QString d_ASCII_file_filter, d_ASCII_comment_string;
01147 bool d_ASCII_import_comments, d_ASCII_import_read_only, d_ASCII_import_preview;
01148 int d_ASCII_import_mode, d_preview_lines;
01149 int d_ASCII_import_first_row_role;
01151 bool d_show_current_folder;
01152 bool d_scale_plots_on_print, d_print_cropmarks;
01153 bool d_show_table_comments;
01154 bool d_extended_plot_dialog;
01155 bool d_extended_import_ASCII_dialog;
01156 bool d_extended_export_dialog;
01157 bool d_extended_open_dialog;
01158 bool generateUniformFitPoints;
01159 bool generatePeakCurves;
01160 int peakCurvesColor;
01162 QSize d_add_curves_dialog_size;
01163
01165 bool fit_scale_errors;
01166
01168 int fitPoints;
01169
01171 bool d_2_linear_fit_points;
01172
01173 bool pasteFitResultsToPlot;
01174
01176 bool writeFitResultsToLog;
01177
01179 int fit_output_precision;
01180
01182 int d_decimal_digits;
01183
01185 Folder *current_folder;
01187 ShowWindowsPolicy show_windows_policy;
01188 enum {MaxRecentProjects = 10};
01190 int d_file_version;
01191
01192 QColor d_rect_default_background;
01193 QBrush d_rect_default_brush;
01194 QColor workspaceColor, panelsColor, panelsTextColor;
01195 QColor d_graph_background_color, d_graph_canvas_color, d_graph_border_color, d_canvas_frame_color;
01196 int d_graph_background_opacity, d_graph_canvas_opacity, d_graph_border_width;
01197 QString appStyle, workingDir;
01198
01200 QString templatesDir;
01201 bool autoScaleFonts, autoResizeLayers, autoSearchUpdates;
01202 bool confirmCloseTable, confirmCloseMatrix, confirmClosePlot2D, confirmClosePlot3D;
01203 bool confirmCloseFolder, confirmCloseNotes;
01204 bool titleOn, autoSave, autoscale2DPlots, antialiasing2DPlots;
01206
01207
01208 QVector<bool> d_show_axes;
01210 QVector<bool> d_show_axes_labels;
01212 bool drawBackbones;
01214 int d_graph_axes_labels_dist;
01216 int axesLineWidth;
01218 int majTicksStyle, minTicksStyle, legendFrameStyle, autoSaveTime, canvasFrameWidth;
01219 QColor legendBackground, legendTextColor, defaultArrowColor;
01220 int defaultArrowHeadLength, defaultArrowHeadAngle, d_legend_default_angle;
01221 double defaultArrowLineWidth, defaultCurveLineWidth;
01222 bool defaultArrowHeadFill;
01223 Qt::PenStyle defaultArrowLineStyle;
01224 QPen d_frame_widget_pen;
01225 int majTicksLength, minTicksLength, defaultPlotMargin;
01226 int defaultCurveStyle, defaultSymbolSize;
01227 QFont appFont;
01228 QFont tableTextFont, tableHeaderFont, plotAxesFont, plotLegendFont, plotNumbersFont, plotTitleFont;
01229 QColor tableBkgdColor, tableTextColor, tableHeaderColor;
01230 QString projectname,columnSeparator, helpFilePath, appLanguage;
01231 QString configFilePath, fitPluginsPath, fitModelsPath, asciiDirPath, imagesDirPath, scriptsDirPath;
01232 int ignoredLines, savingTimerId, recentMenuID;
01233 bool renameColumns, strip_spaces, simplify_spaces;
01234 QStringList recentProjects;
01235 bool saved;
01236 QStringList locales;
01237 QStringList functions;
01238 QStringList xFunctions, yFunctions, rFunctions, thetaFunctions;
01239 QStringList surfaceFunc;
01240 QStringList d_param_surface_func;
01242 QStringList renamedTables;
01243
01245
01246 FrameWidget *d_enrichement_copy;
01247 ArrowMarker *d_arrow_copy;
01249
01251 bool autoSearchUpdatesRequest;
01252
01254 QString defaultScriptingLang;
01255
01257 QColor d_comment_highlight_color, d_class_highlight_color, d_numeric_highlight_color;
01258 QColor d_keyword_highlight_color, d_function_highlight_color, d_quotation_highlight_color;
01259
01261
01262 bool d_3D_smooth_mesh, d_3D_legend, d_3D_orthogonal, d_3D_autoscale;
01263 int d_3D_resolution, d_3D_projection;
01264 QFont d_3D_title_font, d_3D_numbers_font, d_3D_axes_font;
01265 QwtLinearColorMap d_3D_color_map;
01266 QColor d_3D_mesh_color;
01267 QColor d_3D_axes_color;
01268 QColor d_3D_numbers_color;
01269 QColor d_3D_labels_color;
01270 QColor d_3D_background_color;
01271 QColor d_3D_grid_color, d_3D_minor_grid_color;
01272 bool d_3D_minor_grids, d_3D_major_grids;
01273 int d_3D_major_style, d_3D_minor_style;
01274 double d_3D_major_width, d_3D_minor_width;
01275
01276 void setPlot3DOptions();
01278
01279 private:
01280 bool d_mdi_windows_area;
01281 MdiSubWindow *d_active_window;
01282 TextEditor *d_text_editor;
01283
01284 bool d_auto_update_table_values;
01285 int d_matrix_undo_stack_size;
01286
01288 int convertOldToNewColorIndex(int cindex);
01289
01291 QList<Q3ListViewItem *> draggedItems;
01292
01294 QHttp *http;
01296 QBuffer version_buffer;
01297
01298 Graph *lastCopiedLayer;
01299 QSplitter *explorerSplitter;
01300
01301 QAssistantClient *assistant;
01302 ScriptWindow *scriptWindow;
01303 QTranslator *appTranslator, *qtTranslator;
01304 QDockWidget *explorerWindow, *undoStackWindow;
01305 QTextEdit *results;
01306 #ifdef SCRIPTING_CONSOLE
01307 QDockWidget *consoleWindow;
01308 QTextEdit *console;
01309 #endif
01310 QMdiArea *d_workspace;
01311
01312 QToolBar *fileTools, *plotTools, *tableTools, *columnTools, *plot3DTools, *displayBar, *editTools, *plotMatrixBar;
01313 QToolBar *formatToolBar, *noteTools;
01314 QToolButton *btnResults;
01315 QWidgetList *hiddenWindows;
01316 QLineEdit *info;
01318 QCompleter *d_completer;
01319
01320 QMenu *windowsMenu, *foldersMenu, *view, *graphMenu, *fileMenu, *format, *edit, *recent;
01321 QMenu *help, *plot2DMenu, *analysisMenu, *multiPeakMenu;
01322 QMenu *matrixMenu, *plot3DMenu, *plotDataMenu, *tablesDepend, *scriptingMenu;
01323 QMenu *tableMenu, *fillMenu, *normMenu, *newMenu, *exportPlotMenu, *smoothMenu, *filterMenu, *decayMenu, *importMenu;
01324
01325 QAction *actionEditCurveRange, *actionCurveFullRange, *actionShowAllCurves, *actionHideCurve, *actionHideOtherCurves;
01326 QAction *actionEditFunction, *actionRemoveCurve, *actionShowCurveWorksheet, *actionShowCurvePlotDialog;
01327 QAction *actionNewProject, *actionAppendProject, *actionNewNote, *actionNewTable, *actionNewFunctionPlot;
01328 QAction *actionNewSurfacePlot, *actionNewMatrix, *actionNewGraph, *actionNewFolder;
01329 QAction *actionOpen, *actionLoadImage, *actionSaveProject, *actionSaveProjectAs, *actionImportImage;
01330 QAction *actionLoad, *actionUndo, *actionRedo, *actionImportSound;
01331 QAction *actionCopyWindow, *actionShowAllColumns, *actionHideSelectedColumns;
01332 QAction *actionCutSelection, *actionCopySelection, *actionPasteSelection, *actionClearSelection;
01333 QAction *actionShowExplorer, *actionShowLog, *actionAddLayer, *actionShowLayerDialog, *actionAutomaticLayout;
01334 #ifdef SCRIPTING_CONSOLE
01335 QAction *actionShowConsole;
01336 #endif
01337 #ifdef SCRIPTING_PYTHON
01338 QAction *actionOpenQtDesignerUi, *actionShowScriptWindow;
01339 #endif
01340 QAction *actionSwapColumns, *actionMoveColRight, *actionMoveColLeft, *actionMoveColFirst, *actionMoveColLast;
01341 QAction *actionExportGraph, *actionExportAllGraphs, *actionPrint, *actionPrintAllPlots, *actionShowExportASCIIDialog;
01342 QAction *actionExportPDF, *actionReadOnlyCol, *actionStemPlot;
01343 QAction *actionCloseAllWindows, *actionCloseProject, *actionClearLogInfo, *actionShowPlotWizard, *actionShowConfigureDialog;
01344 QAction *actionShowCurvesDialog, *actionAddErrorBars, *actionAddFunctionCurve, *actionUnzoom, *actionNewLegend, *actionAddImage, *actionAddText;
01345 QAction *actionPlotL, *actionPlotP, *actionPlotLP, *actionPlotVerticalDropLines, *actionPlotSpline;
01346 QAction *actionPlotVertSteps, *actionPlotHorSteps, *actionPlotVerticalBars, *actionStackBars, *actionStackColumns;
01347 QAction *actionPlotHorizontalBars, *actionPlotArea, *actionPlotPie, *actionPlotVectXYAM, *actionPlotVectXYXY;
01348 QAction *actionPlotHistogram, *actionPlotStackedHistograms, *actionPlot2VerticalLayers, *actionPlot2HorizontalLayers, *actionPlot4Layers, *actionPlotStackedLayers;
01349 QAction *actionPlot3DRibbon, *actionPlot3DBars, *actionPlot3DScatter, *actionPlot3DTrajectory;
01350 QAction *actionPlotDoubleYAxis, *actionAddInsetLayer, *actionAddInsetCurveLayer;
01351 QAction *actionShowColStatistics, *actionShowRowStatistics, *actionShowIntDialog, *actionIntegrate;
01352 QAction *actionDifferentiate, *actionFitLinear, *actionFitSlope, *actionShowFitPolynomDialog;
01353 QAction *actionShowExpDecayDialog, *actionShowTwoExpDecayDialog, *actionShowExpDecay3Dialog;
01354 QAction *actionFitExpGrowth, *actionFitSigmoidal, *actionFitGauss, *actionFitLorentz, *actionShowFitDialog;
01355 QAction *actionShowAxisDialog, *actionShowTitleDialog;
01356 QAction *actionShowColumnOptionsDialog, *actionShowColumnValuesDialog, *actionShowColsDialog, *actionShowRowsDialog;
01357 QAction *actionTableRecalculate, *actionExtractGraphs, *actionExtractLayers;
01358 QAction *actionAbout, *actionShowHelp, *actionChooseHelpFolder;
01359 QAction *actionRename, *actionCloseWindow;
01360 QAction *actionConvertTableDirect, *actionConvertTableBinning, *actionConvertTableRegularXYZ;
01361 QAction *actionAddColToTable, *actionDeleteLayer, *actionInterpolate;
01362 QAction *actionResizeActiveWindow, *actionHideActiveWindow;
01363 QAction *actionShowMoreWindows, *actionPixelLineProfile, *actionIntensityTable;
01364 QAction *actionShowLineDialog, *actionShowTextDialog;
01365 QAction *actionActivateWindow, *actionMinimizeWindow, *actionMaximizeWindow, *actionHideWindow, *actionResizeWindow;
01366 QAction *actionEditSurfacePlot, *actionAdd3DData;
01367 QAction *actionMatrixDeterminant, *actionSetMatrixProperties, *actionConvertMatrixXYZ, *actionConvertMatrixYXZ;
01368 QAction *actionSetMatrixDimensions, *actionConvertMatrixDirect, *actionSetMatrixValues, *actionTransposeMatrix, *actionInvertMatrix;
01369 QAction *actionPlot3DWireFrame, *actionPlot3DHiddenLine, *actionPlot3DPolygons, *actionPlot3DWireSurface;
01370 QAction *actionColorMap, *actionContourMap, *actionGrayMap;
01371 QAction *actionDeleteFitTables, *actionShowGridDialog, *actionTimeStamp;
01372 QAction *actionSmoothSavGol, *actionSmoothFFT, *actionSmoothAverage, *actionSmoothLowess, *actionFFT;
01373 QAction *actionLowPassFilter, *actionHighPassFilter, *actionBandPassFilter, *actionBandBlockFilter;
01374 QAction *actionSortTable, *actionSortSelection, *actionNormalizeSelection;
01375 QAction *actionNormalizeTable, *actionConvolute, *actionDeconvolute, *actionCorrelate, *actionAutoCorrelate;
01376 QAction *actionTranslateHor, *actionTranslateVert, *actionSetAscValues, *actionSetRandomValues;
01377 QAction *actionSetXCol, *actionSetYCol, *actionSetZCol, *actionSetLabelCol, *actionDisregardCol, *actionSetXErrCol, *actionSetYErrCol;
01378 QAction *actionBoxPlot, *actionMultiPeakGauss, *actionMultiPeakLorentz, *actionCheckUpdates;
01379 QAction *actionDonate, *actionHomePage, *actionDownloadManual, *actionTechnicalSupport, *actionTranslations;
01380 QAction *actionHelpForums, *actionHelpBugReports;
01381 QAction *actionShowPlotDialog, *actionShowScaleDialog, *actionOpenTemplate, *actionSaveTemplate;
01382 QAction *actionNextWindow, *actionPrevWindow;
01383 QAction *actionScriptingLang, *actionRestartScripting, *actionClearTable, *actionGoToRow, *actionGoToColumn;
01384 QAction *actionNoteExecute, *actionNoteExecuteAll, *actionNoteEvaluate, *actionSaveNote, *actionFrequencyCount;
01385 QAction *actionAnimate, *actionPerspective, *actionFitFrame, *actionResetRotation;
01386 QAction *actionDeleteRows, *actionDrawPoints, *actionAddZoomPlot;
01387 QAction *btnCursor, *btnSelect, *btnPicker, *btnRemovePoints, *btnMovePoints, *actionDragCurve;
01388 QAction *btnZoomIn, *btnZoomOut, *btnPointer, *btnLine, *btnArrow;
01389 QAction *actionFlipMatrixVertically, *actionFlipMatrixHorizontally, *actionRotateMatrix;
01390 QAction *actionViewMatrixImage, *actionViewMatrix, *actionExportMatrix, *actionMatrixDefaultScale;
01391 QAction *actionMatrixGrayScale, *actionMatrixRainbowScale, *actionMatrixCustomScale, *actionRotateMatrixMinus;
01392 QAction *actionMatrixXY, *actionMatrixColumnRow, *actionImagePlot, *actionToolBars;
01393 QAction *actionMatrixFFTDirect, *actionMatrixFFTInverse;
01394 QAction *actionFontBold, *actionFontItalic, *actionFontBox, *actionFontSize;
01395 QAction *actionSuperscript, *actionSubscript, *actionUnderline, *actionGreekSymbol, *actionCustomActionDialog;
01396 QAction *actionGreekMajSymbol, *actionMathSymbol;
01397 QAction *Box, *Frame, *None;
01398 QAction *front, *back, *right, *left, *ceil, *floor, *floordata, *flooriso, *floornone;
01399 QAction *wireframe, *hiddenline, *polygon, *filledmesh, *pointstyle, *barstyle, *conestyle, *crossHairStyle;
01400 QAction *actionShowUndoStack, *actionShowNoteLineNumbers, *actionAddFormula, *actionAddRectangle, *actionAddEllipse;
01401 QActionGroup *coord, *floorstyle, *grids, *plotstyle, *dataTools;
01402 QAction *actionMagnify, *actionFindWindow, *actionWaterfallPlot;
01403 QAction *actionMoveRowUp, *actionMoveRowDown, *actionAdjustColumnWidth;
01404 QAction *actionPresentationODF, *actionRenameNoteTab, *actionAddNoteTab, *actionCloseNoteTab;
01405 QAction *actionIncreaseIndent, *actionDecreaseIndent, *actionFind, *actionFindNext, *actionFindPrev, *actionReplace;
01406 QAction *actionIncreasePrecision, *actionDecreasePrecision, *actionPrintPreview;
01407 QList<QAction *> d_user_actions;
01408 QUndoView *d_undo_view;
01409 QList<QMenu *> d_user_menus;
01410 };
01411 #endif