Engauge Digitizer  2
 All Classes Files Functions Variables Enumerations Enumerator Friends Pages
MainWindow.h
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #ifndef MAIN_WINDOW_H
8 #define MAIN_WINDOW_H
9 
10 #include "BackgroundImage.h"
11 #include "CoordSystemIndex.h"
12 #include "DigitizeStateAbstractBase.h"
13 #include "DocumentAxesPointsRequired.h"
14 #include "GridLines.h"
15 #include "MainWindowModel.h"
16 #include <QCursor>
17 #include <QMainWindow>
18 #include <QMap>
19 #include <QUrl>
20 #include "Transformation.h"
21 #include "ZoomControl.h"
22 #include "ZoomFactor.h"
23 #include "ZoomFactorInitial.h"
24 
26 class ChecklistGuide;
27 class CmdMediator;
28 class CmdStackShadow;
29 class CurveStyles;
33 class DlgSettingsCoords;
38 class DlgSettingsGeneral;
54 class ExportToFile;
55 class FileCmdScript;
56 class Ghosts;
57 class GraphicsScene;
58 class GraphicsView;
59 class HelpWindow;
60 class LoadImageFromUrl;
61 class NetworkClient;
62 class QAction;
63 class QActionGroup;
64 class QCloseEvent;
65 class QComboBox;
66 class QDomDocument;
67 class QGraphicsLineItem;
68 class QMenu;
69 class QPushButton;
70 class QSettings;
71 class QTextStream;
72 class QTimer;
73 class QToolBar;
74 class QVBoxLayout;
75 class StatusBar;
77 class TutorialDlg;
78 class ViewPointStyle;
79 class ViewSegmentFilter;
80 
82 class MainWindow : public QMainWindow
83 {
84  Q_OBJECT
85 
86 public:
94  MainWindow(const QString &errorReportFile,
95  const QString &fileCmdScriptFile,
96  bool isRegressionTest,
97  bool isGnuplot,
98  QStringList loadStartupFiles,
99  QWidget *parent = 0);
100  ~MainWindow();
101 
103  void cmdFileClose();
104 
106  void cmdFileExport(const QString &fileName);
107 
109  void cmdFileImport(const QString &fileName);
110 
112  void cmdFileOpen(const QString &fileName);
113 
116 
118  virtual bool eventFilter(QObject *, QEvent *);
119 
121  QImage imageFiltered () const;
122 
124  bool isGnuplot() const;
125 
128 
130  void resizeEvent (QResizeEvent *event);
131 
133  void saveErrorReportFileAndExit(const char *comment,
134  const char *file,
135  int line,
136  const char *context) const;
137 
139  GraphicsScene &scene();
140 
143  BackgroundImage selectOriginal(BackgroundImage backgroundImage);
144 
146  QString selectedGraphCurve () const;
147 
149  virtual void showEvent(QShowEvent *);
150 
152  void showTemporaryMessage (const QString &temporaryMessage);
153 
156 
158  bool transformIsDefined() const;
159 
161  void updateAfterCommand();
162 
165 
167  void updateCoordSystem(CoordSystemIndex coordSystemIndex);
168 
170  void updateDigitizeStateIfSoftwareTriggered (DigitizeState digitizeState);
171 
175 
177  void updateSettingsAxesChecker(const DocumentModelAxesChecker &modelAxesChecker);
178 
180  void updateSettingsColorFilter(const DocumentModelColorFilter &modelColorFilter);
181 
183  void updateSettingsCoords(const DocumentModelCoords &modelCoords);
184 
186  void updateSettingsCurveAddRemove (const CurvesGraphs &curvesGraphs);
187 
189  void updateSettingsCurveStyles(const CurveStyles &modelCurveStyles);
190 
192  void updateSettingsDigitizeCurve(const DocumentModelDigitizeCurve &modelDigitizeCurve);
193 
195  void updateSettingsExportFormat(const DocumentModelExportFormat &modelExport);
196 
198  void updateSettingsGeneral(const DocumentModelGeneral &modelGeneral);
199 
201  void updateSettingsGridDisplay(const DocumentModelGridDisplay &modelGridDisplay);
202 
204  void updateSettingsGridRemoval(const DocumentModelGridRemoval &modelGridRemoval);
205 
207  void updateSettingsMainWindow(const MainWindowModel &modelMainWindow);
208 
210  void updateSettingsPointMatch(const DocumentModelPointMatch &modelPointMatch);
211 
213  void updateSettingsSegments(const DocumentModelSegments &modelSegments);
214 
216  void updateViewsOfSettings (const QString &activeCurve);
217 
219  GraphicsView &view ();
220 
222  const GraphicsView &view () const;
223 
224 private slots:
225  void slotBtnPrintAll();
226  void slotBtnShowAllPressed();
227  void slotBtnShowAllReleased();
228  void slotCanRedoChanged (bool);
229  void slotCanUndoChanged (bool);
230  void slotChecklistClosed ();
231  void slotCleanChanged (bool);
232  void slotCmbBackground(int);
233  void slotCmbCoordSystem(int);
234  void slotCmbCurve(int);
235  void slotContextMenuEvent (QString);
236  void slotDigitizeAxis ();
237  void slotDigitizeColorPicker ();
238  void slotDigitizeCurve ();
239  void slotDigitizePointMatch ();
240  void slotDigitizeSegment ();
241  void slotDigitizeSelect ();
242  void slotEditCopy ();
243  void slotEditCut ();
244  void slotEditDelete ();
245  void slotEditMenu ();
246  void slotEditPaste ();
247  void slotEditPasteAsNew ();
248  void slotEditPasteAsNewAdvanced ();
249  void slotFileClose ();
250  void slotFileExport ();
251  void slotFileImport();
252  void slotFileImportAdvanced();
253  void slotFileImportDraggedImage(QImage);
254  void slotFileImportDraggedImageUrl(QUrl);
255  void slotFileImportImage(QString, QImage);
256  void slotFileOpen();
257  void slotFileOpenDraggedDigFile (QString);
258  void slotFilePrint();
259  bool slotFileSave();
260  bool slotFileSaveAs();
261  void slotHelpAbout();
262  void slotHelpTutorial();
263  void slotKeyPress (Qt::Key, bool);
264  void slotLeave ();
265  void slotLoadStartupFiles ();
266  void slotMouseMove (QPointF);
267  void slotMousePress (QPointF);
268  void slotMouseRelease (QPointF);
269  void slotRecentFileAction ();
270  void slotRecentFileClear ();
271  void slotRedoTextChanged (const QString &);
272  void slotSetOverrideCursor (QCursor);
273  void slotSettingsAxesChecker ();
274  void slotSettingsColorFilter ();
275  void slotSettingsCoords ();
276  void slotSettingsCurveAddRemove ();
277  void slotSettingsCurveProperties ();
278  void slotSettingsDigitizeCurve ();
279  void slotSettingsExportFormat ();
280  void slotSettingsGeneral ();
281  void slotSettingsGridDisplay ();
282  void slotSettingsGridRemoval ();
283  void slotSettingsMainWindow ();
284  void slotSettingsPointMatch ();
285  void slotSettingsSegments ();
286  void slotTimeoutRegressionErrorReport ();
287  void slotTimeoutRegressionFileCmdScript ();
288  void slotUndoTextChanged (const QString &);
289  void slotViewGridLines ();
290  void slotViewGroupBackground(QAction*);
291  void slotViewGroupCurves(QAction*);
292  void slotViewGroupStatus(QAction*);
293  void slotViewToolBarBackground ();
294  void slotViewToolBarChecklistGuide ();
295  void slotViewToolBarCoordSystem ();
296  void slotViewToolBarDigitize ();
297  void slotViewToolBarSettingsViews ();
298  void slotViewToolTips ();
299  void slotViewZoom16To1 ();
300  void slotViewZoom8To1 ();
301  void slotViewZoom4To1 ();
302  void slotViewZoom2To1 ();
303  void slotViewZoom1To1 ();
304  void slotViewZoom1To2 ();
305  void slotViewZoom1To4 ();
306  void slotViewZoom1To8 ();
307  void slotViewZoom1To16 ();
308  void slotViewZoom (int);
309  void slotViewZoomFill ();
310  void slotViewZoomIn ();
311  void slotViewZoomInFromWheelEvent ();
312  void slotViewZoomOut ();
313  void slotViewZoomOutFromWheelEvent ();
314 
315 signals:
317  void signalZoom(int);
318 
319 private:
320  MainWindow();
321 
322  enum ImportType {
323  IMPORT_TYPE_SIMPLE,
324  IMPORT_TYPE_ADVANCED
325  };
326 
327  void applyZoomFactorAfterLoad();
328  virtual void closeEvent(QCloseEvent *event);
329  void createActions();
330  void createActionsDigitize ();
331  void createActionsEdit ();
332  void createActionsFile ();
333  void createActionsHelp ();
334  void createActionsSettings ();
335  void createActionsView ();
336  void createCentralWidget ();
337  void createCommandStackShadow ();
338  void createHelpWindow ();
339  void createIcons();
340  void createLoadImageFromUrl ();
341  void createMenus();
342  void createNetwork();
343  void createScene ();
344  void createSettingsDialogs ();
345  void createStateContextBackground();
346  void createStateContextDigitize();
347  void createStateContextTransformation();
348  void createStatusBar();
349  void createToolBars();
350  void createTutorial();
351  void createZoomMap ();
352  ZoomFactor currentZoomFactor () const;
353 #ifndef OSX_RELEASE
354  void exportAllCoordinateSystems();
355 #endif
356  QString exportFilenameFromInputFilename (const QString &fileName) const;
357  void fileExport(const QString &fileName,
358  ExportToFile exportStrategy);
359  void fileImport (const QString &fileName,
360  ImportType ImportType);
361  void fileImportWithPrompts (ImportType ImportType);
362  void filePaste (ImportType importType);
363  void ghostsCreate ();
364  void ghostsDestroy ();
365  void loadCoordSystemListFromCmdMediator();
366  void loadCurveListFromCmdMediator();
367  void loadDocumentFile (const QString &fileName);
368  void loadErrorReportFile(const QString &initialPath,
369  const QString &errorReportFile);
370  bool loadImage (const QString &fileName,
371  const QImage &image,
372  ImportType ImportType);
373  void loadInputFileForErrorReport(QDomDocument &domInputFile) const;
374  void loadToolTips ();
375  bool maybeSave();
376  DocumentModelExportFormat modelExportOverride (const DocumentModelExportFormat &modelExportFormatBefore,
377  const ExportToFile &exportStrategy,
378  const QString &selectedNameFilter) const;
379  void rebuildRecentFileListForCurrentFile(const QString &filePath);
380  bool saveDocumentFile(const QString &fileName);
381  QString saveErrorReportFileAndExitXml (const char *comment,
382  const char *file,
383  int line,
384  const char *context) const;
385  void saveStartingDocumentSnapshot();
386  void setCurrentFile(const QString &fileName);
387  void setCurrentPathFromFile (const QString &fileName);
388  void setPixmap (const QPixmap &pixmap);
389  void settingsRead ();
390  void settingsReadEnvironment (QSettings &settings);
391  void settingsReadMainWindow (QSettings &settings);
392  void settingsWrite ();
393  bool setupAfterLoad (const QString &fileName,
394  const QString &temporaryMessage,
395  ImportType ImportType);
396  void startRegressionTestErrorReport (const QString &initialPath,
397  const QString &regressionInputFile);
398  void startRegressionTestFileCmdScript ();
399  void updateAfterCommandStatusBarCoords ();
400  void updateControls (); // Update the widgets (typically in terms of show/hide state) depending on the application state.
401  void updateGridLines();
402  void updateRecentFileList();
403  void updateSettingsMainWindow();
404  void updateTransformationAndItsDependencies();
405  void updateViewedCurves ();
406  void updateViewsOfSettings (); // Private version gets active curve name from DigitizeContext
407  void updateWindowTitle ();
408  void writeCheckpointToLogFile();
409 
410  QString m_originalFile; // Original filename for error report
411  bool m_originalFileWasImported; // True/false for imported/opened
412  bool m_isDocumentExported;
413  QString m_engaugeFile; // Not empty when a Document is currently loaded AND it was loaded and/or saved as an Engauge file
414  QString m_currentFile; // Not empty when a Document is currently loaded. No path or file extension
415  QString m_currentFileWithPathAndFileExtension; // Adds path and file extension to m_currentFile. For display
416  MainTitleBarFormat m_titleBarFormat;
417 
418  QMenu *m_menuFile;
419  QAction *m_actionImport;
420  QAction *m_actionImportAdvanced;
421  QAction *m_actionOpen;
422  QMenu *m_menuFileOpenRecent;
423  QList<QAction*> m_actionRecentFiles;
424  QAction *m_actionClose;
425  QAction *m_actionSave;
426  QAction *m_actionSaveAs;
427  QAction *m_actionExport;
428  QAction *m_actionPrint;
429  QAction *m_actionExit;
430 
431  QMenu *m_menuEdit;
432  QAction *m_actionEditUndo;
433  QAction *m_actionEditRedo;
434  QAction *m_actionEditCut;
435  QAction *m_actionEditCopy;
436  QAction *m_actionEditPaste;
437  QAction *m_actionEditDelete;
438  QAction *m_actionEditPasteAsNew;
439  QAction *m_actionEditPasteAsNewAdvanced;
440 
441  QMenu *m_menuDigitize;
442  QActionGroup *m_groupDigitize;
443  QAction *m_actionDigitizeSelect;
444  QAction *m_actionDigitizeAxis;
445  QAction *m_actionDigitizeCurve;
446  QAction *m_actionDigitizePointMatch;
447  QAction *m_actionDigitizeColorPicker;
448  QAction *m_actionDigitizeSegment;
449 
450  QMenu *m_menuView;
451  QAction *m_actionViewBackground;
452  QAction *m_actionViewChecklistGuide;
453  QAction *m_actionViewCoordSystem;
454  QAction *m_actionViewDigitize;
455  QAction *m_actionViewSettingsViews;
456  QAction *m_actionViewToolTips;
457  QAction *m_actionViewGridLines;
458  QMenu *m_menuViewBackground;
459  QActionGroup *m_groupBackground;
460  QAction *m_actionViewBackgroundNone;
461  QAction *m_actionViewBackgroundOriginal;
462  QAction *m_actionViewBackgroundFiltered;
463  QMenu *m_menuViewCurves;
464  QActionGroup *m_groupCurves;
465  QAction *m_actionViewCurvesNone;
466  QAction *m_actionViewCurvesSelected;
467  QAction *m_actionViewCurvesAll;
468  QMenu *m_menuViewStatus;
469  QActionGroup *m_groupStatus;
470  QAction *m_actionStatusNever;
471  QAction *m_actionStatusTemporary;
472  QAction *m_actionStatusAlways;
473  QMenu *m_menuViewZoom;
474  QAction *m_actionZoomOut;
475  QAction *m_actionZoomIn;
476  QActionGroup *m_groupZoom;
477  QAction *m_actionZoomFill;
478  QAction *m_actionZoom16To1;
479  QAction *m_actionZoom8To1;
480  QAction *m_actionZoom4To1;
481  QAction *m_actionZoom2To1;
482  QAction *m_actionZoom1To1;
483  QAction *m_actionZoom1To2;
484  QAction *m_actionZoom1To4;
485  QAction *m_actionZoom1To8;
486  QAction *m_actionZoom1To16;
487 
488  QMenu *m_menuSettings;
489  QAction *m_actionSettingsAxesChecker;
490  QAction *m_actionSettingsColorFilter;
491  QAction *m_actionSettingsCoords;
492  QAction *m_actionSettingsCurveAddRemove;
493  QAction *m_actionSettingsCurveProperties;
494  QAction *m_actionSettingsDigitizeCurve;
495  QAction *m_actionSettingsExport;
496  QAction *m_actionSettingsGeneral;
497  QAction *m_actionSettingsGridDisplay;
498  QAction *m_actionSettingsGridRemoval;
499  QAction *m_actionSettingsMainWindow;
500  QAction *m_actionSettingsPointMatch;
501  QAction *m_actionSettingsSegments;
502 
503  QMenu *m_menuHelp;
504  QAction *m_actionHelpAbout;
505  QAction *m_actionHelpChecklistGuideWizard;
506  QAction *m_actionHelpHelp;
507  QAction *m_actionHelpTutorial;
508  QAction *m_actionHelpWhatsThis;
509 
510  QVBoxLayout *m_layout;
511  GraphicsScene *m_scene;
512  GraphicsView *m_view;
513 
514  StatusBar *m_statusBar;
515  Transformation m_transformation;
516 
517  QComboBox *m_cmbCurve;
518  QToolBar *m_toolDigitize;
519  LoadImageFromUrl *m_loadImageFromUrl;
520 
521  QComboBox *m_cmbBackground;
522  QToolBar *m_toolBackground;
523 
524  ViewPointStyle *m_viewPointStyle;
525  ViewSegmentFilter *m_viewSegmentFilter;
526  QToolBar *m_toolSettingsViews;
527  ChecklistGuide *m_dockChecklistGuide;
528 
529  QComboBox *m_cmbCoordSystem;
530  QPushButton *m_btnPrintAll;
531  QPushButton *m_btnShowAll;
532  QToolBar *m_toolCoordSystem;
533 
534  HelpWindow *m_helpWindow;
535  TutorialDlg *m_tutorialDlg;
536 
537  CmdMediator *m_cmdMediator;
538  CmdStackShadow *m_cmdStackShadow;
539 
540  // State machine for user interface states
541  DigitizeStateContext *m_digitizeStateContext;
542 
543  // State machine for transformation states
544  TransformationStateContext *m_transformationStateContext;
545 
546  // State machine for background image
547  BackgroundStateContext *m_backgroundStateContext;
548 
549  DlgSettingsAxesChecker *m_dlgSettingsAxesChecker;
550  DlgSettingsColorFilter *m_dlgSettingsColorFilter;
551  DlgSettingsCoords *m_dlgSettingsCoords;
552  DlgSettingsCurveAddRemove *m_dlgSettingsCurveAddRemove;
553  DlgSettingsCurveProperties *m_dlgSettingsCurveProperties;
554  DlgSettingsDigitizeCurve * m_dlgSettingsDigitizeCurve;
555  DlgSettingsExportFormat *m_dlgSettingsExportFormat;
556  DlgSettingsGeneral *m_dlgSettingsGeneral;
557  DlgSettingsGridDisplay *m_dlgSettingsGridDisplay;
558  DlgSettingsGridRemoval *m_dlgSettingsGridRemoval;
559  DlgSettingsMainWindow *m_dlgSettingsMainWindow;
560  DlgSettingsPointMatch *m_dlgSettingsPointMatch;
561  DlgSettingsSegments *m_dlgSettingsSegments;
562 
563  // Crash reports
564  QString m_startingDocumentSnapshot; // Serialized snapshot of document at startup. Included in error report if user approves
565  NetworkClient *m_networkClient;
566 
567  // Main window settings
568  bool m_isGnuplot; // From command line
569  MainWindowModel m_modelMainWindow; // From settings file or DlgSettingsMainWindow
570 
571  // File names to be loaded at startup. Only one is loaded into the current instance, with external instances created for the other files
572  QTimer *m_timerLoadStartupFiles;
573  QStringList m_loadStartupFiles;
574 
575  // Ghosts that are created for seeing all coordinate systems at once, when there are multiple coordinate systems
576  Ghosts *m_ghosts;
577 
578  // Timers for regression testing. Neither or one is first started by the constructor for this class, but the first timeout
579  // (and all succeeding timeouts) will be from after QMainWindow::exec is called. Each timeout results in one command
580  // from the command stack getting executed
581  QTimer *m_timerRegressionErrorReport;
582  FileCmdScript *m_fileCmdScript;
583  bool m_isRegressionTest;
584  QTimer *m_timerRegressionFileCmdScript;
585  QString m_regressionFile;
586 
587  // Grid lines
588  GridLines m_gridLines;
589 
590  // Map between zoom enumerations. This eliminates the need for a switch statement
591  QMap<ZoomFactorInitial, ZoomFactor> m_zoomMap;
592 };
593 
594 #endif // MAIN_WINDOW_H
void updateCoordSystem(CoordSystemIndex coordSystemIndex)
Select a different CoordSystem.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Model for DlgSettingsPointMatch and CmdSettingsPointMatch.
void updateSettingsMainWindow(const MainWindowModel &modelMainWindow)
Update with new main window properties.
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
void updateDigitizeStateIfSoftwareTriggered(DigitizeState digitizeState)
After software-triggered state transition, this method manually triggers the action as if user had cl...
Class that displays the current Segment Filter in a MainWindow toolbar.
Dialog for editing Segments settings, for DigitizeStateSegment.
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
Dialog for editing point match settings, for DigitizeStatePointMatch.
Transformation transformation() const
Return read-only copy of transformation.
Context class for transformation state machine.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
Definition: CurveStyles.h:22
Dockable help window.
Definition: HelpWindow.h:16
void updateSettingsCurveAddRemove(const CurvesGraphs &curvesGraphs)
Update with new curves.
void updateAfterMouseRelease()
Call MainWindow::updateControls (which is private) after the very specific case - a mouse press/relea...
void cmdFileClose()
Close file. This is called from a file script command.
Definition: MainWindow.cpp:231
void updateViewsOfSettings(const QString &activeCurve)
Update curve-specific view of settings. Private version gets active curve name from DigitizeStateCont...
QString selectedGraphCurve() const
Curve name that is currently selected in m_cmbCurve.
Class for showing points and lines for all coordinate systems simultaneously, even though the code no...
Definition: Ghosts.h:26
void cmdFileOpen(const QString &fileName)
Open file. This is called from a file script command.
Definition: MainWindow.cpp:257
CmdMediator * cmdMediator()
Accessor for commands to process the Document.
Definition: MainWindow.cpp:265
BackgroundImage selectOriginal(BackgroundImage backgroundImage)
Make original background visible, for DigitizeStateColorPicker.
Dialog for editing grid removal settings.
Dialog for editing exporting settings.
void showTemporaryMessage(const QString &temporaryMessage)
Show temporary message in status bar.
Dialog for editing curve names settings.
void updateSettingsDigitizeCurve(const DocumentModelDigitizeCurve &modelDigitizeCurve)
Update with new curve digitization styles.
Tutorial using a strategy like a comic strip with decision points deciding which panels appear...
Definition: TutorialDlg.h:19
void cmdFileExport(const QString &fileName)
Export file. This is called from a file script command.
Definition: MainWindow.cpp:239
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
Definition: ExportToFile.h:25
Dockable text window containing checklist guide.
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
GraphicsView & view()
View for the QImage and QGraphicsItems, without const.
Affine transformation between screen and graph coordinates, based on digitized axis points...
Dialog for editing filtering settings.
Container for all graph curves. The axes point curve is external to this class.
Definition: CurvesGraphs.h:24
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
Wrapper around QStatusBar to manage permanent widgets.
Definition: StatusBar.h:21
GraphicsScene & scene()
Scene container for the QImage and QGraphicsItems.
void updateSettingsGridDisplay(const DocumentModelGridDisplay &modelGridDisplay)
Update with new grid display properties.
void updateSettingsCurveStyles(const CurveStyles &modelCurveStyles)
Update with new curve styles.
Client for interacting with Engauge server.
Definition: NetworkClient.h:16
Context class that manages the background image state machine.
QGraphicsView class with event handling added. Typically the events are sent to the active digitizing...
Definition: GraphicsView.h:20
Container for all DigitizeStateAbstractBase subclasses. This functions as the context class in a stan...
Model for DlgSettingsMainWindow.
Container class for GridLine objects.
Definition: GridLines.h:12
Dialog for editing general settings.
Model for DlgSettingsCoords and CmdSettingsCoords.
void updateAfterCommand()
See GraphicsScene::updateAfterCommand.
void updateSettingsColorFilter(const DocumentModelColorFilter &modelColorFilter)
Update with new color filter properties.
Dialog for editing grid display settings.
Dialog for editing DigitizeStateCurve settings.
void updateSettingsAxesChecker(const DocumentModelAxesChecker &modelAxesChecker)
Update with new axes indicator properties.
void updateSettingsPointMatch(const DocumentModelPointMatch &modelPointMatch)
Update with new point match properties.
void updateSettingsGeneral(const DocumentModelGeneral &modelGeneral)
Update with new general properties.
QImage imageFiltered() const
Background image that has been filtered for the current curve. This asserts if a curve-specific image...
void updateSettingsGridRemoval(const DocumentModelGridRemoval &modelGridRemoval)
Update with new grid removal properties.
Class that displays a view of the current Curve&#39;s point style.
Dialog for editing main window settings, which are entirely independent of all documents.
Model for DlgSettingsAxesChecker and CmdSettingsAxesChecker.
Command stack that shadows the CmdMediator command stack at startup when reading commands from an err...
void updateSettingsExportFormat(const DocumentModelExportFormat &modelExport)
Update with new export properties.
Dialog for editing coordinates settings.
Load QImage from url. This is trivial for a file, but requires an asynchronous download step for http...
virtual bool eventFilter(QObject *, QEvent *)
Catch secret keypresses.
bool isGnuplot() const
Get method for gnuplot flag.
Dialog for editing curve properties settings.
Command queue stack.
Definition: CmdMediator.h:23
void saveErrorReportFileAndExit(const char *comment, const char *file, int line, const char *context) const
Save error report and exit.
void signalZoom(int)
Send zoom selection, picked from menu or keystroke, to StatusBar.
Model for DlgSettingsSegments and CmdSettingsSegments.
void cmdFileImport(const QString &fileName)
Import file. This is called from a file script command.
Definition: MainWindow.cpp:248
void resizeEvent(QResizeEvent *event)
Intercept resize event so graphics scene can be appropriately resized when in Fill mode...
void updateSettingsCoords(const DocumentModelCoords &modelCoords)
Update with new coordinate properties.
File that manages a command stack for regression testing of file import/open/export/close.
Definition: FileCmdScript.h:20
Add point and line handling to generic QGraphicsScene.
Definition: GraphicsScene.h:31
Model for DlgSettingsGridRemoval and CmdSettingsGridRemoval. The settings are unstable until the user...
void updateSettingsSegments(const DocumentModelSegments &modelSegments)
Update with new segments properties.
Dialog for editing axes checker settings.
void updateGraphicsLinesToMatchGraphicsPoints()
Update the graphics lines so they follow the graphics points, after a drag, addition, removal, and such.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition: MainWindow.h:82
MainWindowModel modelMainWindow() const
Get method for main window model.
virtual void showEvent(QShowEvent *)
Processing performed after gui becomes available.
bool transformIsDefined() const
Return true if all three axis points have been defined.