ApplicationWindow.h

Go to the documentation of this file.
00001 /***************************************************************************
00002     File                 : ApplicationWindow.h
00003     Project              : QtiPlot
00004     --------------------------------------------------------------------
00005     Copyright            : (C) 2006 by Ion Vasilief,
00006                            Tilman Hoener zu Siederdissen,
00007                            Knut Franke
00008     Email (use @ for *)  : ion_vasilief*yahoo.fr, thzs*gmx.net,
00009                            knut.franke*gmx.de
00010     Description          : QtiPlot's main window
00011 
00012  ***************************************************************************/
00013 
00014 /***************************************************************************
00015  *                                                                         *
00016  *  This program is free software; you can redistribute it and/or modify   *
00017  *  it under the terms of the GNU General Public License as published by   *
00018  *  the Free Software Foundation; either version 2 of the License, or      *
00019  *  (at your option) any later version.                                    *
00020  *                                                                         *
00021  *  This program is distributed in the hope that it will be useful,        *
00022  *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
00023  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
00024  *  GNU General Public License for more details.                           *
00025  *                                                                         *
00026  *   You should have received a copy of the GNU General Public License     *
00027  *   along with this program; if not, write to the Free Software           *
00028  *   Foundation, Inc., 51 Franklin Street, Fifth Floor,                    *
00029  *   Boston, MA  02110-1301  USA                                           *
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     // getCurrent... functions for python interface
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 // TODO: a lot of this stuff should be private
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; //user-defined functions;
01238     QStringList xFunctions, yFunctions, rFunctions, thetaFunctions; // user functions for parametric and polar plots
01239     QStringList surfaceFunc; //user-defined surface functions;
01240     QStringList d_param_surface_func; //user-defined parametric surface functions;
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     // Flag telling if table values should be automatically recalculated when values in a column are modified.
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

Generated by  doxygen 1.6.2