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 #ifndef APPLICATION_H
00031 #define APPLICATION_H
00032
00033 #include <QMainWindow>
00034 #include <q3listview.h>
00035 #include <QHttp>
00036 #include <QFile>
00037 #include <QSplitter>
00038 #include <QDesktopServices>
00039 #include <QBuffer>
00040 #include <QLineEdit>
00041 #include <QMessageBox>
00042
00043 #include <MultiLayer.h>
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 #ifdef BROWSER_PLUGIN
00053 #include <qtbrowserplugin.h>
00054 #endif
00055
00056 #ifdef QAXSERVER
00057 #include <ActiveQt/QAxBindable>
00058 #include <ActiveQt/QAxFactory>
00059 #include <qt_windows.h>
00060 #endif
00061
00062 #ifdef HAS_EXCEL
00063 #include <QAxObject>
00064 #endif
00065
00066 class QPixmap;
00067 class QCloseEvent;
00068 class QDropEvent;
00069 class QTimerEvent;
00070 class QDragEnterEvent;
00071 class QTranslator;
00072 class QDockWidget;
00073 class QAction;
00074 class QActionGroup;
00075 class QTranslator;
00076 class QToolButton;
00077 class QShortcut;
00078 class QMenu;
00079 class QToolBar;
00080 class QAssistantClient;
00081 class QLocale;
00082 class QMdiArea;
00083 class QUndoView;
00084 class QCompleter;
00085
00086 class Matrix;
00087 class Table;
00088 class ScalePicker;
00089 class Graph3D;
00090 class Note;
00091 class FunctionDialog;
00092 class Folder;
00093 class FolderListItem;
00094 class FolderListView;
00095 class ScriptWindow;
00096 class Plot3DDialog;
00097 class TableStatistics;
00098 class CurveRangeDialog;
00099 class LegendWidget;
00100 class ArrowMarker;
00101 class TextEditor;
00102 class AssociationsDialog;
00103 class ScriptEdit;
00104 class ExportDialog;
00105
00135 class ApplicationWindow: public QMainWindow, public scripted
00136 #ifdef BROWSER_PLUGIN
00137 , public QtNPBindable
00138 #endif
00139 #ifdef QAXSERVER
00140 , public QAxBindable
00141 #endif
00142 {
00143 Q_OBJECT
00144
00145 #ifdef BROWSER_PLUGIN
00146 Q_CLASSINFO("ClassID", "{2e5b2715-46b2-4831-ba9b-6a3b195d5ec8}")
00147 Q_CLASSINFO("InterfaceID", "{94581136-3c0c-46cc-97a1-066061356d43}")
00148 Q_CLASSINFO("EventsID", "{8c191b77-1894-45c7-9d6b-201dede95410}")
00149
00150 Q_CLASSINFO("MIME", "application/x-qtiplot")
00151 #endif
00152
00153 public:
00154 ApplicationWindow(bool factorySettings = false);
00155 ApplicationWindow(const QStringList& l);
00156 ~ApplicationWindow();
00157
00158 enum ShowWindowsPolicy{HideAll, ActiveFolder, SubFolders};
00159 enum WindowType{NoWindow, TableWindow, MatrixWindow, MultiLayerWindow, NoteWindow, Plot3DWindow};
00160 enum MatrixToTableConversion{Direct, XYZ, YXZ};
00161 enum EndLineChar{LF, CRLF, CR};
00162 enum Analysis{NoAnalysis, Integrate, Diff, FitLinear, FitGauss, FitLorentz, FitSigmoidal, FitSlope};
00163 enum LaTeXCompiler{MathTran, Local};
00164
00165 FolderListView *lv, *folders;
00166 QDockWidget *logWindow;
00167
00172 QString generateUniqueName(const QString& name, bool increment = true);
00173 void saveFitFunctions(const QStringList& lst);
00174
00176
00177 void loadCustomActions();
00178 void reloadCustomActions();
00179 void removeCustomAction(QAction *);
00180 void addCustomAction(QAction *, const QString& parentName, int index = -1);
00181 QList<QAction *> customActionsList(){return d_user_actions;};
00182 QList<QMenu *> customizableMenusList();
00183
00184 void reloadCustomMenus();
00185 QMenu* addCustomMenu(const QString& title, const QString& parentName);
00186 void removeCustomMenu(const QString& title);
00187 QList<QMenu *> customMenusList(){return d_user_menus;};
00189
00190 QList<QMenu *> menusList();
00191 QList<QToolBar *> toolBarsList();
00192
00193 MdiSubWindow *activeWindow(WindowType type = NoWindow);
00194 void setActiveWindow(MdiSubWindow *w){d_active_window = w;};
00195 QMdiArea* workspace(){return d_workspace;};
00196
00197 int matrixUndoStackSize(){return d_matrix_undo_stack_size;};
00198 void setMatrixUndoStackSize(int size);
00199
00200 QString endOfLine();
00201 static QString guessEndOfLine(const QString& sample);
00202 bool autoUpdateTableValues(){return d_auto_update_table_values;};
00203 void setAutoUpdateTableValues(bool on = true);
00204
00205 QCompleter* completer(){return d_completer;};
00206 void enableCompletion(bool on = true);
00207 void addWindowsListToCompleter();
00208
00209 QLocale clipboardLocale(){return d_clipboard_locale;};
00210 void setClipboardLocale(const QLocale& locale){d_clipboard_locale = locale;};
00211
00212 QTextEdit *resultsLog(){return results;};
00213 #ifdef SCRIPTING_CONSOLE
00214 QTextEdit *scriptingConsole(){return console;};
00215 #endif
00216
00217 static QString imageFilter();
00218 static QString getFileName(QWidget *parent = 0, const QString & caption = QString(),
00219 const QString & dir = QString(), const QString & filter = QString(),
00220 QString * selectedFilter = 0, bool save = true, bool confirmOverwrite = true);
00221
00222 static void memoryAllocationError();
00223 QColor readColorFromProject(const QString& name);
00224
00225 void enableMdiArea(bool on = true);
00226 bool isMdiAreaEnabled(){return d_mdi_windows_area;};
00227
00228 void displayInfo(const QString& text){info->setText(text);};
00229 QLineEdit *displayInfoLineEdit(){return info;};
00230
00231 QList<QColor> indexedColors(){return d_indexed_colors;};
00232 void setIndexedColors(const QList<QColor>& lst){d_indexed_colors = lst;};
00233
00234 QList<int> indexedSymbols(){return d_symbols_list;};
00235 void setIndexedSymbols(const QList<int>& lst){d_symbols_list = lst;};
00236
00237 QStringList indexedColorNames(){return d_indexed_color_names;};
00238 void setIndexedColorNames(const QStringList& lst){d_indexed_color_names = lst;};
00239
00240 void connectScriptEditor(ScriptEdit *);
00241
00242 public slots:
00244
00245 void open();
00246 ApplicationWindow* open(const QString& fn, bool factorySettings = false, bool newProject = true);
00247 ApplicationWindow* openProject(const QString& fn, bool factorySettings = false, bool newProject = true);
00248 #ifdef OPJ_IMPORT
00249 ApplicationWindow* importOPJ(const QString& fn, bool factorySettings = false, bool newProject = true);
00250 #endif
00251 void closeProject();
00252
00260 ApplicationWindow * plotFile(const QString& fn);
00261
00268 ApplicationWindow * loadScript(const QString& fn, bool execute = false, bool noGui = false);
00269
00270 QList<MdiSubWindow *> windowsList();
00271 void updateWindowLists(MdiSubWindow *w);
00275 void cascade();
00276
00277 void saveProjectAs(const QString& fileName = QString(), bool compress = false);
00278 bool saveProject(bool compress = false);
00279 void saveWindowAs(const QString& fileName = QString(), bool compress = false);
00280 bool saveWindow(MdiSubWindow *w, const QString& fileName = QString(), bool compress = false);
00281
00283 void modifiedProject();
00285 void savedProject();
00287 void modifiedProject(MdiSubWindow *w);
00289
00291
00292 void readSettings();
00293 void saveSettings();
00294 void setSaveSettings(bool autoSaving, int min);
00295 void changeAppStyle(const QString& s);
00296 void changeAppFont(const QFont& f);
00297 void updateAppFonts();
00298 void setAppColors(const QColor& wc,const QColor& pc,const QColor& tpc, bool force = false);
00299
00300 void initWindow();
00302
00304
00305
00306 MultiLayer* newGraph(const QString& caption = tr("Graph"));
00307 MultiLayer* multilayerPlot(int c, int r, int style, const MultiLayer::AlignPolicy& align = MultiLayer::AlignLayers);
00308 MultiLayer* multilayerPlot(Table* w, const QStringList& colList, int style, int startRow = 0, int endRow = -1);
00310 MultiLayer* multilayerPlot(const QString& caption, int layers = 1, int rows = 1, int cols = 1);
00311 MultiLayer* waterfallPlot();
00312 MultiLayer* waterfallPlot(Table *t, const QStringList& list);
00313 void connectMultilayerPlot(MultiLayer *g);
00314 void addLayer();
00315 void addInsetLayer(bool curves = false);
00316 void addInsetCurveLayer();
00317 void deleteLayer();
00318 void extractGraphs();
00319 void extractLayers();
00320
00322 MultiLayer* plotSpectrogram(Matrix *m, Graph::CurveType type);
00323 MultiLayer* plotGrayScale(Matrix *m = 0);
00324 MultiLayer* plotContour(Matrix *m = 0);
00325 MultiLayer* plotColorMap(Matrix *m = 0);
00326 MultiLayer* plotImage(Matrix *m = 0);
00327 MultiLayer* plotImageProfiles(Matrix *m = 0);
00328
00330 void autoArrangeLayers();
00331 void initMultilayerPlot(MultiLayer* g, const QString& name);
00332 void plot2VerticalLayers();
00333 void plot2HorizontalLayers();
00334 void plot4Layers();
00335 void plotStackedLayers();
00336 void plotStackedHistograms();
00337
00338 void plotStackSharedAxisLayers();
00339 void plotVerticalSharedAxisLayers();
00340 void plotHorizontalSharedAxisLayers();
00341 void plotSharedAxesLayers();
00342 void plotCustomLayout(bool sharedAxes = false);
00343 void plotCustomLayoutSharedAxes(){plotCustomLayout(true);};
00345
00347
00348 Graph3D* newPlot3D(const QString& title = QString());
00349 Graph3D* plotXYZ(Table* table,const QString& zColName, int type);
00350 Graph3D* addRibbon(const QString& caption, const QString& formula,
00351 double xl, double xr, double yl, double yr, double zl, double zr);
00353
00355
00356 Graph3D* plotSurface(const QString& formula, double xl, double xr,
00357 double yl, double yr, double zl, double zr, int columns = 40, int rows = 30);
00358 Graph3D* plotParametricSurface(const QString& xFormula, const QString& yFormula,
00359 const QString& zFormula, double ul, double ur, double vl, double vr,
00360 int columns, int rows, bool uPeriodic, bool vPeriodic);
00361
00362 void connectSurfacePlot(Graph3D *plot);
00363 void newSurfacePlot();
00364 void editSurfacePlot();
00365 void remove3DMatrixPlots(Matrix *m);
00366 void updateMatrixPlots(Matrix *);
00367 void add3DData();
00368 void change3DData();
00369 void change3DData(const QString& colName);
00370 void change3DMatrix();
00371 void change3DMatrix(const QString& matrix_name);
00372 void insertNew3DData(const QString& colName);
00373 void add3DMatrixPlot();
00374 void insert3DMatrixPlot(const QString& matrix_name);
00375
00376 void plot3DWireframe();
00377 void plot3DHiddenLine();
00378 void plot3DPolygons();
00379 void plot3DWireSurface();
00380
00381 Graph3D* plot3DMatrix(Matrix *m = 0, int style = 5);
00382
00383 void plot3DRibbon();
00384 void plot3DScatter();
00385 void plot3DTrajectory();
00386 void plot3DBars();
00388
00390
00391 MultiLayer * newFunctionPlot(QStringList &formulas, double start, double end, int points = 100, const QString& var = "x", int type = 0);
00392
00393 FunctionDialog* functionDialog();
00394 FunctionDialog* showFunctionDialog(Graph * g, int curve);
00395 void addFunctionCurve();
00396 void clearLogInfo();
00397 void updateFunctionLists(int type, QStringList &formulas);
00398 void updateSurfaceFuncList(const QString& s);
00400
00402
00403
00404 Matrix* newMatrix(int rows = 32, int columns = 32);
00406 Matrix* newMatrix(const QString& caption, int r, int c);
00407 Matrix* matrix(const QString& name);
00408 Matrix* convertTableToMatrix();
00409 Matrix* tableToMatrix(Table* t);
00410 Matrix* convertTableToMatrixRegularXYZ();
00411 void showBinMatrixDialog();
00412 void initMatrix(Matrix* m, const QString& caption);
00413 void transposeMatrix();
00414 void invertMatrix();
00415 void matrixDeterminant();
00416 void flipMatrixVertically();
00417 void flipMatrixHorizontally();
00418 void rotateMatrix90();
00419 void rotateMatrixMinus90();
00420 void viewMatrixImage();
00421 void viewMatrixTable();
00422 void exportMatrix(const QString& exportFilter = QString::null);
00423 void setMatrixDefaultScale();
00424 void setMatrixGrayScale();
00425 void setMatrixRainbowScale();
00426 void viewMatrixColumnRow();
00427 void viewMatrixXY();
00428 void matrixDirectFFT();
00429 void matrixInverseFFT();
00431
00433
00434
00435 Table* newTable();
00436
00437
00438 Table* currentTable();
00439 MultiLayer* currentPlot();
00440 Note* currentNote();
00441 Matrix* currentMatrix();
00442
00444 Table* newTable(const QString& caption,int r, int c);
00445 Table* newTable(int r, int c, const QString& name = QString(),const QString& legend = QString());
00455 Table* newHiddenTable(const QString& name, const QString& label, int r, int c, const QString& text=QString());
00456 Table* table(const QString& name);
00457 Table* convertMatrixToTableDirect();
00458 Table* convertMatrixToTableXYZ();
00459 Table* convertMatrixToTableYXZ();
00460 Table* matrixToTable(Matrix* m, MatrixToTableConversion conversionType = Direct);
00461 QList<MdiSubWindow *> tableList();
00463 bool hasTable();
00465 QStringList tableNames();
00466
00467 void connectTable(Table* w);
00468 void initTable(Table* w, const QString& caption);
00469 void customTable(Table* w);
00470 Table* importOdfSpreadsheet(const QString& = QString::null, int sheet = -1);
00471
00472 Table* importExcel(const QString& = QString::null, int sheet = -1);
00473 #ifdef HAS_EXCEL
00474 static bool isExcelInstalled();
00475 Table* importUsingExcel(const QString& = QString::null, int sheet = -1);
00476 void importExcelCharts(QAxObject* ws, const QString& fn = QString::null);
00477 MultiLayer *importExcelChart(QAxObject* chart, const QString& fn = QString::null, const QString& name = QString::null);
00478 #endif
00479 #ifdef XLS_IMPORT
00480 Table* importExcelCrossplatform(const QString& = QString::null, int sheet = -1);
00481 void exportExcel();
00482 #endif
00483
00484 Table* importWaveFile();
00485 void importASCII();
00486 void importASCII(const QStringList& files, int import_mode, const QString& local_column_separator, int local_ignored_lines, bool local_rename_columns,
00487 bool local_strip_spaces, bool local_simplify_spaces, bool local_import_comments,
00488 QLocale local_separators, const QString& local_comment_string, bool import_read_only, int endLineChar,
00489 const QList<int>& colTypes = QList<int>(), const QStringList& colFormats = QStringList());
00490 void exportAllTables(const QString& dir, const QString& filter, const QString& sep, bool colNames, bool colComments, bool expSelection);
00491
00493 void recalculateTable();
00494
00495 TableStatistics *newTableStatistics(Table *base, int type, QList<int>,
00496 const QString &caption=QString::null);
00498
00500
00501 void setPreferences(Graph* g);
00502 void setGraphDefaultSettings(bool autoscale,bool scaleFonts,bool resizeLayers,bool antialiasing);
00503 void setArrowDefaultSettings(double lineWidth, const QColor& c, Qt::PenStyle style,
00504 int headLength, int headAngle, bool fillHead);
00505
00506 void plotL();
00507 void plotP();
00508 void plotLP();
00509 void plotPie();
00510 void plotVerticalBars();
00511 void plotHorizontalBars();
00512 void plotStackBar();
00513 void plotStackColumn();
00514 void plotArea();
00515 void plotVertSteps();
00516 void plotHorSteps();
00517 void plotSpline();
00518 void plotVerticalDropLines();
00519 MultiLayer* plotHistogram();
00520 MultiLayer* plotHistogram(Matrix *m);
00521 void plotVectXYXY();
00522 void plotVectXYAM();
00523 void plotBoxDiagram();
00524 void plotDoubleYAxis();
00525 void zoomRectanglePlot();
00526 QString stemPlot(Table *t = 0, const QString& colName = QString(), int power = 0, int startRow = 0, int endRow = -1);
00527 Note *newStemPlot();
00528
00530 bool validFor3DPlot(Table *table);
00532 bool validFor2DPlot(Table *table, Graph::CurveType type);
00534 MultiLayer* generate2DGraph(Graph::CurveType type);
00536
00538
00539 void intensityTable();
00540 void pixelLineProfile();
00541 void loadImage();
00542 void loadImage(const QString& fn);
00543 Matrix* importImage(const QString& = QString(), bool newWindow = false);
00545
00547
00548 void exportLayer();
00549 void exportGraph(const QString& exportFilter = QString::null);
00550 void exportAllGraphs();
00551 void exportPresentationODF();
00552 void exportPDF();
00553 void print();
00554 void printPreview();
00555 void setPrintPreviewOptions(QPrinter *);
00556 void printAllPlots();
00558
00559 QStringList columnsList(Table::PlotDesignation plotType = Table::All);
00560
00561 void undo();
00562 void redo();
00563
00565
00566 MdiSubWindow* clone(MdiSubWindow* w = 0);
00567 void rename();
00568 void renameWindow();
00569
00571 void renameWindow(Q3ListViewItem *item, int, const QString &s);
00572
00574 bool setWindowName(MdiSubWindow *w, const QString &text);
00575
00576 void maximizeWindow(Q3ListViewItem * lbi = 0);
00577 void maximizeWindow(MdiSubWindow *w);
00578 void minimizeWindow(MdiSubWindow *w = 0);
00579
00580 void updateWindowStatus(MdiSubWindow* );
00581
00582 bool hidden(QWidget* window);
00583 void closeActiveWindow();
00584 void closeWindow(MdiSubWindow* window);
00585
00587 void removeWindowFromLists(MdiSubWindow* w);
00588
00589 void hideWindow(MdiSubWindow* window);
00590 void hideWindow();
00591 void hideActiveWindow();
00592 void activateWindow();
00593 void activateWindow(MdiSubWindow *);
00595
00597 static QMessageBox* about(bool dialog = true);
00599 static QString versionString();
00600 void removeCurves(const QString& name);
00601 QStringList dependingPlots(const QString& caption);
00602 QStringList depending3DPlots(Matrix *m);
00603 QStringList multilayerDependencies(QWidget *w);
00604
00605 void saveAsTemplate(MdiSubWindow* w = 0, const QString& = QString());
00606 void openTemplate();
00607 MdiSubWindow* openTemplate(const QString& fn);
00608
00609 QString windowGeometryInfo(MdiSubWindow *w);
00610 static void restoreWindowGeometry(ApplicationWindow *app, MdiSubWindow *w, const QString s);
00611 void restoreApplicationGeometry();
00612 void resizeActiveWindow();
00613 void resizeWindow();
00614
00616
00617 void setListView(const QString& caption,const QString& view);
00618 void renameListViewItem(const QString& oldName,const QString& newName);
00619 void setListViewDate(const QString& caption,const QString& date);
00620 QString listViewDate(const QString& caption);
00621 void setListViewSize(const QString& caption,const QString& size);
00622 void setListViewLabel(const QString& caption,const QString& label);
00624
00625 void updateColNames(const QString& oldName, const QString& newName);
00626 void updateTableNames(const QString& oldName, const QString& newName);
00627 void changeMatrixName(const QString& oldName, const QString& newName);
00628 void updateCurves(Table *t, const QString& name);
00629
00630 void showTable(Table *, const QString& curve);
00631 void showTable(int i);
00632
00633 void addColToTable();
00634 void cutSelection();
00635 void copySelection();
00636 void copyMarker();
00637 void pasteSelection();
00638 void clearSelection();
00639 void copyActiveLayer();
00640
00641 void newProject();
00642
00644
00645 Matrix* openMatrix(ApplicationWindow* app, const QStringList &flist);
00646 Table* openTable(ApplicationWindow* app, const QStringList &flist);
00647 TableStatistics* openTableStatistics(const QStringList &flist);
00648 Graph* openGraph(ApplicationWindow* app, MultiLayer *plot, const QStringList &list);
00649
00650 void openRecentProject(int index);
00652
00654
00655 void sortSelection();
00656 void sortActiveTable();
00657 void normalizeSelection();
00658 void normalizeActiveTable();
00659 void correlate();
00660 void autoCorrelate();
00661 void convolute();
00662 void deconvolute();
00663 void clearTable();
00664 void goToRow();
00665 void goToColumn();
00666 void moveTableRowUp();
00667 void moveTableRowDown();
00668 void adjustColumnWidth();
00670
00672
00673 void graphSelectionChanged(SelectionMoveResizer *);
00674 void lowerActiveEnrichment();
00675 void raiseActiveEnrichment(bool = true);
00676 void newLegend();
00677 void addTimeStamp();
00678 void drawLine();
00679 void drawArrow();
00680 void drawPoints();
00681 void addText();
00682 void addTexFormula();
00683 void addRectangle();
00684 void addEllipse();
00685 void addImage();
00686 void zoomIn();
00687 void zoomOut();
00688 void magnify(int mode = 0);
00689 void setAutoScale();
00690 void showRangeSelectors();
00691 void showCursor();
00692 void showScreenReader();
00693 void pickPointerCursor();
00694 void disableTools();
00695 void pickDataTool( QAction* action );
00696
00697 void updateLog(const QString& result);
00699
00701
00702 void deleteFitTables();
00703 void fitLinear();
00704 void fitSigmoidal();
00705 void fitGauss();
00706 void fitLorentz();
00707 void fitMultiPeak(int profile);
00708 void fitMultiPeakGauss();
00709 void fitMultiPeakLorentz();
00710 void fitSlope();
00712
00714
00715 void integrate();
00716 void differentiate();
00717 void analysis(Analysis operation);
00718 void analyzeCurve(Graph *g, Analysis operation, const QString& curveTitle);
00719 void showDataSetDialog(Analysis operation);
00721
00722 void addErrorBars();
00723 void defineErrorBars(const QString& name, int type, double percent, int direction);
00724 void defineErrorBars(const QString& curveName, const QString& errColumnName, int direction);
00725 void movePoints(bool wholeCurve = false);
00726 void removePoints();
00727
00729
00730 void closeEvent( QCloseEvent*);
00731 void timerEvent ( QTimerEvent *e);
00732 void dragEnterEvent( QDragEnterEvent* e );
00733 void dropEvent( QDropEvent* e );
00734 void customEvent( QEvent* e);
00736
00738
00739 void showFindDialogue();
00741 void showPlotDialog(int curveKey = -1);
00742 QDialog* showScaleDialog();
00743 QDialog* showPlot3dDialog();
00744 AxesDialog* showScalePageFromAxisDialog(int axisPos);
00745 AxesDialog* showAxisPageFromAxisDialog(int axisPos);
00746 void showAxisDialog();
00747 void showGridDialog();
00748 void showGeneralPlotDialog();
00749 void showResults(bool ok);
00750 void showResults(const QString& s, bool ok=true);
00751 void showEnrichementDialog();
00752 void showLineDialog();
00753 void showTitleDialog();
00754 ExportDialog* showExportASCIIDialog();
00755 void showCurvesDialog();
00756 void showCurveRangeDialog();
00757 CurveRangeDialog* showCurveRangeDialog(Graph *g, int curve);
00758 AssociationsDialog* showPlotAssociations(int curve);
00759
00760 void showAxisTitleDialog();
00761 void showColumnOptionsDialog();
00762 void showRowsDialog();
00763 void showDeleteRowsDialog();
00764 void showColsDialog();
00765 void showColMenu(int c);
00766 void showColumnValuesDialog();
00767 void showExtractDataDialog();
00768
00769 void showGraphContextMenu();
00770 void showTableContextMenu(bool selection);
00771 void showWindowContextMenu();
00772 void customWindowTitleBarMenu(MdiSubWindow *w, QMenu *menu);
00773 void showCurveContextMenu(QwtPlotItem *);
00774 void showCurvePlotDialog();
00775 void showCurveWorksheet();
00776 void showCurveWorksheet(Graph *g, int curveIndex);
00777 void showWindowPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
00778
00780 void showListViewSelectionMenu(const QPoint &p);
00781
00783 void showListViewPopupMenu(const QPoint &p);
00784
00785 void showScriptWindow(bool parent = true);
00786 void showMoreWindows();
00787 void showMarkerPopupMenu();
00788 void showHelp();
00789 static void showStandAloneHelp();
00790 void chooseHelpFolder();
00791 void showPlotWizard();
00792 void showFitPolynomDialog();
00793 void showFrequencyCountDialog();
00794 void showIntegrationDialog();
00795 void showInterpolationDialog();
00796 void showExpGrowthDialog();
00797 void showExpDecayDialog();
00798 void showExpDecayDialog(int type);
00799 void showTwoExpDecayDialog();
00800 void showExpDecay3Dialog();
00801 void showRowStatistics();
00802 void showColStatistics();
00803 void showFitDialog();
00804 void showLayerDialog();
00805 void showPreferencesDialog();
00806 void showMatrixDialog();
00807 void showMatrixSizeDialog();
00808 void showMatrixValuesDialog();
00809 void showSmoothSavGolDialog();
00810 void showSmoothFFTDialog();
00811 void showSmoothAverageDialog();
00812 void showSmoothLowessDialog();
00813 void showSmoothDialog(int m);
00814 void showFilterDialog(int filter);
00815 void lowPassFilterDialog();
00816 void highPassFilterDialog();
00817 void bandPassFilterDialog();
00818 void bandBlockFilterDialog();
00819 void showFFTDialog();
00820 void showColorMapDialog();
00822
00823 void baselineDialog();
00824 void subtractReferenceData();
00825 void subtractStraightLine();
00826 void translateCurveHor();
00827 void translateCurve(TranslateCurveTool::Direction direction = TranslateCurveTool::Vertical);
00828
00830 void removeCurve();
00831 void hideCurve();
00832 void hideOtherCurves();
00833 void showAllCurves();
00834 void setCurveFullRange();
00835
00836 void setAscValues();
00837 void setRandomValues();
00838 void setXCol();
00839 void setYCol();
00840 void setZCol();
00841 void setXErrCol();
00842 void setYErrCol();
00843 void setLabelCol();
00844 void disregardCol();
00845 void setReadOnlyCol();
00846 void setReadOnlyColumns();
00847 void setReadWriteColumns();
00848 void swapColumns();
00849 void moveColumnRight();
00850 void moveColumnLeft();
00851 void moveColumnFirst();
00852 void moveColumnLast();
00853
00854 void updateConfirmOptions(bool askTables, bool askMatrixes, bool askPlots2D, bool askPlots3D, bool askNotes);
00855
00857
00858 void toggle3DAnimation(bool on = true);
00860 void togglePerspective(bool on = true);
00862 void resetRotation();
00864 void fitFrameToLayer();
00865 void setFramed3DPlot();
00866 void setBoxed3DPlot();
00867 void removeAxes3DPlot();
00868 void removeGrid3DPlot();
00869 void setHiddenLineGrid3DPlot();
00870 void setLineGrid3DPlot();
00871 void setPoints3DPlot();
00872 void setCrosses3DPlot();
00873 void setCones3DPlot();
00874 void setBars3DPlot();
00875 void setFilledMesh3DPlot();
00876 void setEmptyFloor3DPlot();
00877 void setFloorData3DPlot();
00878 void setFloorIso3DPlot();
00879 void setFloorGrid3DPlot(bool on);
00880 void setCeilGrid3DPlot(bool on);
00881 void setRightGrid3DPlot(bool on);
00882 void setLeftGrid3DPlot(bool on);
00883 void setFrontGrid3DPlot(bool on);
00884 void setBackGrid3DPlot(bool on);
00885 void pickPlotStyle( QAction* action );
00886 void pickCoordSystem( QAction* action);
00887 void pickFloorStyle( QAction* action);
00888 void custom3DActions(QMdiSubWindow *w);
00889 void custom3DGrids(int grids);
00891
00892 void updateRecentProjectsList(const QString& fn = QString::null);
00893
00895 void receivedVersionFile(bool error);
00897 void searchForUpdates();
00898 #ifdef QTIPLOT_SUPPORT
00899 void showDonationDialog();
00900 #endif
00901
00902 void showSupportPage();
00904 void showDonationsPage();
00906 void showHomePage();
00908 void showForums();
00910 void showBugTracker();
00912 void downloadManual();
00914 void downloadTranslation();
00915 #ifdef QTIPLOT_DEMO
00916
00917 void showDemoVersionMessage();
00918 #endif
00919
00920 void parseCommandLineArguments(const QStringList& args);
00921 void createLanguagesList();
00922 void switchToLanguage(int param);
00923 void switchToLanguage(const QString& locale);
00924
00925 bool alreadyUsedName(const QString& label);
00926 bool projectHas2DPlots();
00927
00929 MdiSubWindow* window(const QString& name);
00930
00932 QStringList matrixNames();
00933
00935
00936
00937 Note* newNote(const QString& caption = QString());
00938 Note* openNote(ApplicationWindow* app, const QStringList &flist);
00939 void saveNoteAs();
00940 void showNoteLineNumbers(bool show = true);
00941 void increaseNoteIndent();
00942 void decreaseNoteIndent();
00943 void noteFindDialogue();
00944 void noteFindNext();
00945 void noteFindPrev();
00946 void noteReplaceDialogue();
00947 void renameCurrentNoteTab();
00948 void addNoteTab();
00949 void closeNoteTab();
00950 void execute();
00951 void executeAll();
00952 void evaluate();
00953 void commentSelection();
00954 void uncommentSelection();
00956
00958
00959
00960 Folder* currentFolder(){return current_folder;};
00962 void addFolder();
00963 Folder* addFolder(QString name, Folder* parent = NULL);
00965 void deleteFolder();
00966
00968 bool deleteFolder(Folder *f);
00969
00971 void deleteSelectedItems();
00973 void hideSelectedWindows();
00975 void showSelectedWindows();
00976
00978 void desactivateFolders();
00979
00981 bool changeFolder(Folder *newFolder, bool force = false);
00982
00984 void folderItemChanged(Q3ListViewItem *it);
00986 void folderItemDoubleClicked(Q3ListViewItem *it);
00987
00989
00995 void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, bool fromFolders);
00996
00998 void showFolderPopupMenu(Q3ListViewItem *it, const QPoint &p, int);
00999
01001 void startRenameFolder();
01002
01004 void startRenameFolder(Q3ListViewItem *item);
01005
01007 void renameFolder(Q3ListViewItem *it, int col, const QString &text);
01008
01010 void showAllFolderWindows();
01011
01013 void hideAllFolderWindows();
01014
01016 void hideFolderWindows(Folder *f);
01017
01019 void folderProperties();
01020
01022 void windowProperties();
01023
01025 void projectProperties();
01026
01028 void appendProject();
01030 Folder* appendProject(const QString& file_name, Folder* parentFolder = 0);
01031 void saveAsProject();
01032 void saveFolderAsProject(Folder *f);
01033 void saveFolder(Folder *folder, const QString& fn, bool compress = false);
01034
01036 void addFolderListViewItem(Folder *f);
01037
01039 void addListViewItem(MdiSubWindow *w);
01040
01042 void setShowWindowsPolicy(int p);
01043
01045 Folder* projectFolder();
01046
01048 void find(const QString& s, bool windowNames, bool labels, bool folderNames,
01049 bool caseSensitive, bool partialMatch, bool subfolders);
01050
01052 void dragFolderItems(QList<Q3ListViewItem *> items){draggedItems = items;};
01053
01055 void dropFolderItems(Q3ListViewItem *dest);
01056
01058
01062 void moveFolder(FolderListItem *src, FolderListItem *dest);
01064
01068 bool copyFolder(Folder *src, Folder *dest);
01069
01070 void foldersMenuActivated( int id );
01072
01074
01075
01076 void scriptError(const QString &message, const QString &scriptName, int lineNumber);
01078 void executeNotes();
01080 void showScriptingLangDialog();
01082 void restartScriptingEnv();
01084 void scriptPrint(const QString &text);
01086 bool setScriptingLanguage(const QString &lang, bool force=false);
01087
01088 void scriptsDirPathChanged(const QString& path);
01090
01091 void showToolBarsMenu();
01092 void setFormatBarFont(const QFont &);
01093
01094 signals:
01095 void modified();
01096
01097 private:
01099
01100 void init(bool factorySettings = false);
01101 void initCompleter();
01102 void initGlobalConstants();
01103 void createActions();
01104 void initMainMenu();
01105 void initToolBars();
01106 void initPlot3DToolBar();
01107 void initPlot3D(Graph3D *plot);
01108 void insertTranslatedStrings();
01109 void translateActionsStrings();
01111 virtual QMenu * createPopupMenu(){return NULL;};
01112 void updateCompleter(const QString& windowName, bool remove = false, const QString& newName = QString::null);
01113 QMessageBox::StandardButton showSaveProjectMessage();
01114 void goToParentFolder();
01115 bool isProjectFile(const QString& fn);
01116
01117 private slots:
01118 void disableActions();
01119 void customColumnActions();
01120 void disableToolbars();
01121 void customToolBars(QMdiSubWindow* w);
01122 void customMenu(QMdiSubWindow* w);
01123 void windowActivated(QMdiSubWindow *w);
01124 void custom2DPlotTools(MultiLayer *);
01125 void updateExplorerWindowLayout(Qt::DockWidgetArea);
01126
01127 void analysisMenuAboutToShow();
01128 void scriptingMenuAboutToShow();
01129 void fileMenuAboutToShow();
01130 void editMenuAboutToShow();
01131 void matrixMenuAboutToShow();
01132 void plotMenuAboutToShow();
01133 void plotDataMenuAboutToShow();
01134 void tableMenuAboutToShow();
01135 void windowsMenuAboutToShow();
01136 void windowsMenuActivated( int id );
01137
01139
01140 void enableTextEditor(Graph *g);
01141 void setFontSize(int);
01142 void setFontFamily(const QFont &);
01143 void setItalicFont(bool);
01144 void setBoldFont(bool);
01145 void insertSuperscript();
01146 void insertSubscript();
01147 void underline();
01148 void insertGreekSymbol();
01149 void insertGreekMajSymbol();
01150 void insertMathSymbol();
01152
01153 void showCustomActionDialog();
01154 void performCustomAction(QAction *);
01155
01156 void hideSelectedColumns();
01157 void showAllColumns();
01158 void closedLastCopiedLayer(){lastCopiedLayer = NULL;};
01159
01160 void increasePrecision();
01161 void decreasePrecision();
01162
01163 #ifdef SCRIPTING_PYTHON
01164 void openQtDesignerUi();
01165 #endif
01166
01167
01168 public:
01169 bool d_force_muParser;
01170 bool d_keep_aspect_ration;
01171 QPrinter::PaperSize d_print_paper_size;
01172 QPrinter::Orientation d_printer_orientation;
01173 bool d_muparser_c_locale;
01174 Graph::LegendDisplayMode d_graph_legend_display;
01175 Graph::AxisTitlePolicy d_graph_axis_labeling;
01176 bool d_synchronize_graph_scales;
01177 int d_latex_compiler;
01178 QString d_latex_compiler_path;
01180 QString d_open_project_filter;
01182 int d_frame_geometry_unit;
01184 int d_layer_geometry_unit;
01185 int d_layer_canvas_width, d_layer_canvas_height;
01186 int d_notes_tab_length;
01187 QFont d_notes_font;
01189 EndLineChar d_eol;
01191 bool d_in_place_editing;
01193 bool d_completion;
01195 bool d_note_line_numbers;
01196 QString d_python_config_folder;
01197 QString d_translations_folder;
01199 bool d_opening_file;
01201 bool d_is_appending_file;
01202 QString customActionsDirPath;
01203 bool d_matrix_tool_bar, d_file_tool_bar, d_table_tool_bar, d_column_tool_bar, d_edit_tool_bar;
01204 bool d_plot_tool_bar, d_plot3D_tool_bar, d_display_tool_bar, d_format_tool_bar, d_notes_tool_bar;
01205 bool d_backup_files;
01206 WindowType d_init_window_type;
01207 QRect d_script_win_rect, d_app_rect;
01208 bool d_script_win_on_top;
01209 bool d_inform_rename_table;
01210 QString d_export_col_separator;
01211 bool d_export_col_names, d_export_table_selection, d_export_col_comment;
01213 QString d_image_export_filter, d_export_ASCII_file_filter;
01214 double d_scale_fonts_factor;
01215 bool d_export_transparency;
01216 int d_export_quality;
01217 int d_export_vector_resolution, d_export_bitmap_resolution, d_export_size_unit;
01218 QSizeF d_export_raster_size;
01219 bool d_export_color;
01220 bool d_export_escape_tex_strings;
01221 bool d_export_tex_font_sizes;
01222 int d_3D_export_text_mode, d_3D_export_sort;
01224 QLocale d_clipboard_locale;
01226 QLocale d_ASCII_import_locale;
01228 EndLineChar d_ASCII_end_line;
01230 QString d_ASCII_file_filter, d_ASCII_comment_string;
01231 bool d_ASCII_import_comments, d_ASCII_import_read_only, d_ASCII_import_preview;
01232 int d_ASCII_import_mode, d_preview_lines;
01233 int d_ASCII_import_first_row_role;
01234 QSize d_import_ASCII_dialog_size;
01236 bool d_show_current_folder;
01237 bool d_scale_plots_on_print, d_print_cropmarks;
01238 bool d_show_table_comments;
01239 bool d_extended_plot_dialog;
01240 bool d_extended_import_ASCII_dialog;
01241 bool d_extended_export_dialog;
01242 bool d_extended_open_dialog;
01243 bool generateUniformFitPoints;
01244 bool generatePeakCurves;
01245 QColor peakCurvesColor;
01246 bool d_multi_peak_messages;
01248 QSize d_add_curves_dialog_size;
01249
01251 bool fit_scale_errors;
01252
01254 int fitPoints;
01255
01257 bool d_2_linear_fit_points;
01258
01259 bool pasteFitResultsToPlot;
01260
01262 bool writeFitResultsToLog;
01263
01265 int fit_output_precision;
01266
01268 int d_decimal_digits;
01269
01271 Folder *current_folder;
01273 ShowWindowsPolicy show_windows_policy;
01274 enum {MaxRecentProjects = 10};
01276 int d_file_version;
01277
01278 QColor d_rect_default_background;
01279 QBrush d_rect_default_brush;
01280 QColor workspaceColor, panelsColor, panelsTextColor;
01281 QColor d_graph_background_color, d_graph_canvas_color, d_graph_border_color, d_canvas_frame_color;
01282 int d_graph_background_opacity, d_graph_canvas_opacity, d_graph_border_width;
01283 QString appStyle, workingDir;
01284
01286 QString templatesDir;
01287 bool autoScaleFonts, autoResizeLayers, autoSearchUpdates;
01288 bool confirmCloseTable, confirmCloseMatrix, confirmClosePlot2D, confirmClosePlot3D;
01289 bool confirmCloseFolder, confirmCloseNotes, d_confirm_overwrite;
01290 bool titleOn, autoSave, autoscale2DPlots, antialiasing2DPlots;
01292
01293
01294 QVector<bool> d_show_axes;
01296 QVector<bool> d_show_axes_labels;
01298 bool drawBackbones;
01300 int d_graph_tick_labels_dist;
01302 int d_graph_axes_labels_dist;
01304 int axesLineWidth;
01306 int majTicksStyle, minTicksStyle, legendFrameStyle, autoSaveTime, canvasFrameWidth;
01307 QColor legendBackground, legendTextColor, defaultArrowColor;
01308 int defaultArrowHeadLength, defaultArrowHeadAngle, d_legend_default_angle, d_symbol_style;
01309 double defaultArrowLineWidth, defaultCurveLineWidth, defaultSymbolEdge;
01310 bool defaultArrowHeadFill, d_fill_symbols, d_indexed_symbols;
01311 int defaultCurveBrush, defaultCurveAlpha, d_curve_line_style;
01312 Qt::PenStyle defaultArrowLineStyle;
01313 QPen d_frame_widget_pen;
01314 int majTicksLength, minTicksLength, defaultPlotMargin;
01315 int defaultCurveStyle, defaultSymbolSize;
01316 QFont appFont;
01317 QFont tableTextFont, tableHeaderFont, plotAxesFont, plotLegendFont, plotNumbersFont, plotTitleFont;
01318 QColor tableBkgdColor, tableTextColor, tableHeaderColor;
01319 QString projectname,columnSeparator, helpFilePath, appLanguage;
01320 QString configFilePath, fitPluginsPath, fitModelsPath, asciiDirPath, imagesDirPath, scriptsDirPath;
01321 int ignoredLines, savingTimerId, recentMenuID;
01322 bool renameColumns, strip_spaces, simplify_spaces;
01323 QStringList recentProjects;
01324 bool saved;
01325 QStringList locales;
01326 QStringList d_recent_functions;
01327 QStringList xFunctions, yFunctions, rFunctions, thetaFunctions;
01328 QStringList surfaceFunc;
01329 QStringList d_param_surface_func;
01331 QStringList renamedTables;
01332
01334
01335 FrameWidget *d_enrichement_copy;
01336 ArrowMarker *d_arrow_copy;
01338
01340 bool autoSearchUpdatesRequest;
01341
01343 QString defaultScriptingLang;
01344
01346 QColor d_comment_highlight_color, d_class_highlight_color, d_numeric_highlight_color;
01347 QColor d_keyword_highlight_color, d_function_highlight_color, d_quotation_highlight_color;
01348
01350
01351 bool d_3D_smooth_mesh, d_3D_legend, d_3D_orthogonal, d_3D_autoscale;
01352 int d_3D_resolution, d_3D_projection;
01353 QFont d_3D_title_font, d_3D_numbers_font, d_3D_axes_font;
01354 QwtLinearColorMap d_3D_color_map;
01355 QColor d_3D_mesh_color;
01356 QColor d_3D_axes_color;
01357 QColor d_3D_numbers_color;
01358 QColor d_3D_labels_color;
01359 QColor d_3D_background_color;
01360 QColor d_3D_grid_color, d_3D_minor_grid_color;
01361 bool d_3D_minor_grids, d_3D_major_grids;
01362 int d_3D_major_style, d_3D_minor_style;
01363 double d_3D_major_width, d_3D_minor_width;
01364
01365 void setPlot3DOptions();
01367
01368 private:
01369 bool d_mdi_windows_area;
01370 MdiSubWindow *d_active_window;
01371 TextEditor *d_text_editor;
01372
01373 bool d_auto_update_table_values;
01374 int d_matrix_undo_stack_size;
01375
01377 int convertOldToNewColorIndex(int cindex);
01378
01380 QList<Q3ListViewItem *> draggedItems;
01381
01383 QHttp *http;
01385 QBuffer version_buffer;
01386
01387 Graph *lastCopiedLayer;
01388 QSplitter *explorerSplitter;
01389
01390 QAssistantClient *assistant;
01391 ScriptWindow *scriptWindow;
01392 QTranslator *appTranslator, *qtTranslator;
01393 QDockWidget *explorerWindow, *undoStackWindow;
01394 QTextEdit *results;
01395 #ifdef SCRIPTING_CONSOLE
01396 QDockWidget *consoleWindow;
01397 QTextEdit *console;
01398 #endif
01399 QMdiArea *d_workspace;
01400
01401 QToolBar *fileTools, *plotTools, *tableTools, *columnTools, *plot3DTools, *displayBar, *editTools, *plotMatrixBar;
01402 QToolBar *formatToolBar, *noteTools;
01403 QToolButton *btnResults;
01404 QWidgetList *hiddenWindows;
01405 QLineEdit *info;
01407 QCompleter *d_completer;
01408
01409 QMenu *windowsMenu, *foldersMenu, *view, *graphMenu, *fileMenu, *format, *edit, *recent;
01410 QMenu *help, *plot2DMenu, *analysisMenu, *multiPeakMenu;
01411 QMenu *matrixMenu, *plot3DMenu, *plotDataMenu, *tablesDepend, *scriptingMenu;
01412 QMenu *tableMenu, *fillMenu, *normMenu, *newMenu, *exportPlotMenu, *smoothMenu, *filterMenu, *decayMenu, *importMenu;
01413
01414 QAction *actionEditCurveRange, *actionCurveFullRange, *actionShowAllCurves, *actionHideCurve, *actionHideOtherCurves;
01415 QAction *actionRemoveCurve, *actionShowCurveWorksheet, *actionShowCurvePlotDialog;
01416 QAction *actionNewProject, *actionAppendProject, *actionNewNote, *actionNewTable, *actionNewFunctionPlot;
01417 QAction *actionNewSurfacePlot, *actionNewMatrix, *actionNewGraph, *actionNewFolder;
01418 QAction *actionOpen, *actionLoadImage, *actionSaveProject, *actionSaveProjectAs, *actionImportImage;
01419 QAction *actionLoad, *actionUndo, *actionRedo, *actionImportSound;
01420 #ifdef ODS_IMPORT
01421 QAction *actionOpenOds;
01422 #endif
01423 #ifdef XLS_IMPORT
01424 QAction *actionOpenExcel, *actionExportExcel;
01425 #endif
01426 QAction *actionCopyWindow, *actionShowAllColumns, *actionHideSelectedColumns;
01427 QAction *actionCutSelection, *actionCopySelection, *actionPasteSelection, *actionClearSelection;
01428 QAction *actionShowExplorer, *actionShowLog, *actionAddLayer, *actionShowLayerDialog, *actionAutomaticLayout;
01429 #ifdef SCRIPTING_CONSOLE
01430 QAction *actionShowConsole;
01431 #endif
01432 #ifdef SCRIPTING_PYTHON
01433 QAction *actionOpenQtDesignerUi, *actionCommentSelection, *actionUncommentSelection;
01434 #endif
01435 QAction *actionSwapColumns, *actionMoveColRight, *actionMoveColLeft, *actionMoveColFirst, *actionMoveColLast, *actionShowScriptWindow;
01436 QAction *actionExportGraph, *actionExportAllGraphs, *actionPrint, *actionPrintAllPlots, *actionShowExportASCIIDialog;
01437 QAction *actionExportPDF, *actionReadOnlyCol, *actionStemPlot;
01438 QAction *actionCloseAllWindows, *actionCloseProject, *actionClearLogInfo, *actionShowPlotWizard, *actionShowConfigureDialog;
01439 QAction *actionShowCurvesDialog, *actionAddErrorBars, *actionAddFunctionCurve, *actionUnzoom, *actionNewLegend, *actionAddImage, *actionAddText;
01440 QAction *actionPlotL, *actionPlotP, *actionPlotLP, *actionPlotVerticalDropLines, *actionPlotSpline;
01441 QAction *actionPlotVertSteps, *actionPlotHorSteps, *actionPlotVerticalBars, *actionStackBars, *actionStackColumns;
01442 QAction *actionPlotHorizontalBars, *actionPlotArea, *actionPlotPie, *actionPlotVectXYAM, *actionPlotVectXYXY;
01443 QAction *actionPlotHistogram, *actionPlotStackedHistograms, *actionPlot2VerticalLayers, *actionPlot2HorizontalLayers, *actionPlot4Layers, *actionPlotStackedLayers;
01444 QAction *actionPlot3DRibbon, *actionPlot3DBars, *actionPlot3DScatter, *actionPlot3DTrajectory;
01445 QAction *actionPlotDoubleYAxis, *actionAddInsetLayer, *actionAddInsetCurveLayer;
01446 QAction *actionShowColStatistics, *actionShowRowStatistics, *actionShowIntDialog, *actionIntegrate;
01447 QAction *actionDifferentiate, *actionFitLinear, *actionFitSlope, *actionShowFitPolynomDialog;
01448 QAction *actionShowExpDecayDialog, *actionShowTwoExpDecayDialog, *actionShowExpDecay3Dialog;
01449 QAction *actionFitExpGrowth, *actionFitSigmoidal, *actionFitGauss, *actionFitLorentz, *actionShowFitDialog;
01450 QAction *actionShowAxisDialog, *actionShowTitleDialog;
01451 QAction *actionShowColumnOptionsDialog, *actionShowColumnValuesDialog, *actionShowColsDialog, *actionShowRowsDialog;
01452 QAction *actionTableRecalculate, *actionExtractGraphs, *actionExtractLayers;
01453 QAction *actionAbout, *actionShowHelp, *actionChooseHelpFolder;
01454 QAction *actionRename, *actionCloseWindow;
01455 QAction *actionConvertTableDirect, *actionConvertTableBinning, *actionConvertTableRegularXYZ;
01456 QAction *actionAddColToTable, *actionDeleteLayer, *actionInterpolate;
01457 QAction *actionResizeActiveWindow, *actionHideActiveWindow;
01458 QAction *actionShowMoreWindows, *actionPixelLineProfile, *actionIntensityTable;
01459 QAction *actionShowLineDialog, *actionShowTextDialog;
01460 QAction *actionActivateWindow, *actionMinimizeWindow, *actionMaximizeWindow, *actionHideWindow, *actionResizeWindow;
01461 QAction *actionEditSurfacePlot, *actionAdd3DData;
01462 QAction *actionMatrixDeterminant, *actionSetMatrixProperties, *actionConvertMatrixXYZ, *actionConvertMatrixYXZ;
01463 QAction *actionSetMatrixDimensions, *actionConvertMatrixDirect, *actionSetMatrixValues, *actionTransposeMatrix, *actionInvertMatrix;
01464 QAction *actionPlot3DWireFrame, *actionPlot3DHiddenLine, *actionPlot3DPolygons, *actionPlot3DWireSurface;
01465 QAction *actionColorMap, *actionContourMap, *actionGrayMap;
01466 QAction *actionDeleteFitTables, *actionShowGridDialog, *actionTimeStamp;
01467 QAction *actionSmoothSavGol, *actionSmoothFFT, *actionSmoothAverage, *actionSmoothLowess, *actionFFT;
01468 QAction *actionLowPassFilter, *actionHighPassFilter, *actionBandPassFilter, *actionBandBlockFilter;
01469 QAction *actionSortTable, *actionSortSelection, *actionNormalizeSelection;
01470 QAction *actionNormalizeTable, *actionConvolute, *actionDeconvolute, *actionCorrelate, *actionAutoCorrelate;
01471 QAction *actionTranslateHor, *actionTranslateVert, *actionSetAscValues, *actionSetRandomValues;
01472 QAction *actionSetXCol, *actionSetYCol, *actionSetZCol, *actionSetLabelCol, *actionDisregardCol, *actionSetXErrCol, *actionSetYErrCol;
01473 QAction *actionBoxPlot, *actionMultiPeakGauss, *actionMultiPeakLorentz, *actionCheckUpdates;
01474 QAction *actionDonate, *actionHomePage, *actionDownloadManual, *actionTechnicalSupport, *actionTranslations;
01475 QAction *actionHelpForums, *actionHelpBugReports;
01476 QAction *actionShowPlotDialog, *actionShowScaleDialog, *actionOpenTemplate, *actionSaveTemplate, *actionSaveWindow;
01477 QAction *actionNextWindow, *actionPrevWindow;
01478 QAction *actionScriptingLang, *actionRestartScripting, *actionClearTable, *actionGoToRow, *actionGoToColumn;
01479 QAction *actionNoteExecute, *actionNoteExecuteAll, *actionNoteEvaluate, *actionSaveNote, *actionFrequencyCount;
01480 QAction *actionAnimate, *actionPerspective, *actionFitFrame, *actionResetRotation;
01481 QAction *actionDeleteRows, *actionDrawPoints, *actionAddZoomPlot;
01482 QAction *btnCursor, *btnSelect, *btnPicker, *btnRemovePoints, *btnMovePoints, *actionDragCurve;
01483 QAction *btnZoomIn, *btnZoomOut, *btnPointer, *btnLine, *btnArrow;
01484 QAction *actionFlipMatrixVertically, *actionFlipMatrixHorizontally, *actionRotateMatrix;
01485 QAction *actionViewMatrixImage, *actionViewMatrix, *actionExportMatrix, *actionMatrixDefaultScale;
01486 QAction *actionMatrixGrayScale, *actionMatrixRainbowScale, *actionMatrixCustomScale, *actionRotateMatrixMinus;
01487 QAction *actionMatrixXY, *actionMatrixColumnRow, *actionImagePlot, *actionToolBars, *actionImageProfilesPlot;
01488 QAction *actionMatrixFFTDirect, *actionMatrixFFTInverse;
01489 QAction *actionFontBold, *actionFontItalic, *actionFontBox, *actionFontSize;
01490 QAction *actionSuperscript, *actionSubscript, *actionUnderline, *actionGreekSymbol, *actionCustomActionDialog;
01491 QAction *actionGreekMajSymbol, *actionMathSymbol;
01492 QAction *Box, *Frame, *None;
01493 QAction *front, *back, *right, *left, *ceil, *floor, *floordata, *flooriso, *floornone;
01494 QAction *wireframe, *hiddenline, *polygon, *filledmesh, *pointstyle, *barstyle, *conestyle, *crossHairStyle;
01495 QAction *actionShowUndoStack, *actionShowNoteLineNumbers, *actionAddFormula, *actionAddRectangle, *actionAddEllipse;
01496 QActionGroup *coord, *floorstyle, *grids, *plotstyle, *dataTools;
01497 QAction *actionMagnify, *actionFindWindow, *actionWaterfallPlot, *actionMagnifyHor, *actionMagnifyVert;
01498 QAction *actionMoveRowUp, *actionMoveRowDown, *actionAdjustColumnWidth;
01499 QAction *actionPresentationODF, *actionRenameNoteTab, *actionAddNoteTab, *actionCloseNoteTab;
01500 QAction *actionIncreaseIndent, *actionDecreaseIndent, *actionFind, *actionFindNext, *actionFindPrev, *actionReplace;
01501 QAction *actionIncreasePrecision, *actionDecreasePrecision, *actionPrintPreview;
01502 QAction *actionVertSharedAxisLayers, *actionHorSharedAxisLayers, *actionSharedAxesLayers, *actionStackSharedAxisLayers;
01503 QAction *actionCustomSharedAxisLayers, *actionCustomLayout, *actionExtractTableData, *actionSubtractLine, *actionSubtractReference;
01504 QAction *actionRaiseEnrichment, *actionLowerEnrichment, *actionBaseline;
01505
01506 QList<QAction *> d_user_actions;
01507 QUndoView *d_undo_view;
01508 QList<QMenu *> d_user_menus;
01509
01510 QList<QColor> d_indexed_colors;
01511 QStringList d_indexed_color_names;
01512 QList<int> d_symbols_list;
01513 };
01514 #endif