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