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