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 "MainWindowModel.h"
15 #include <QCursor>
16 #include <QMainWindow>
17 #include <QUrl>
18 #include "Transformation.h"
19 #include "ZoomControl.h"
20 #include "ZoomFactor.h"
21 
23 class ChecklistGuide;
24 class CmdMediator;
25 class CmdStackShadow;
26 class CurveStyles;
30 class DlgSettingsCoords;
35 class DlgSettingsGeneral;
49 class ExportToFile;
50 class FileCmdScript;
51 class Ghosts;
52 class GraphicsScene;
53 class GraphicsView;
54 class HelpWindow;
55 class LoadImageFromUrl;
56 class NetworkClient;
57 class QAction;
58 class QActionGroup;
59 class QCloseEvent;
60 class QComboBox;
61 class QDomDocument;
62 class QGraphicsLineItem;
63 class QMenu;
64 class QPushButton;
65 class QSettings;
66 class QTextStream;
67 class QTimer;
68 class QToolBar;
69 class QVBoxLayout;
70 class StatusBar;
72 class TutorialDlg;
73 class ViewPointStyle;
74 class ViewSegmentFilter;
75 
77 class MainWindow : public QMainWindow
78 {
79  Q_OBJECT
80 
81 public:
89  MainWindow(const QString &errorReportFile,
90  const QString &fileCmdScriptFile,
91  bool isRegressionTest,
92  bool isGnuplot,
93  QStringList loadStartupFiles,
94  QWidget *parent = 0);
95  ~MainWindow();
96 
98  void cmdFileClose();
99 
101  void cmdFileExport(const QString &fileName);
102 
104  void cmdFileImport(const QString &fileName);
105 
107  void cmdFileOpen(const QString &fileName);
108 
111 
113  virtual bool eventFilter(QObject *, QEvent *);
114 
116  QImage imageFiltered () const;
117 
119  bool isGnuplot() const;
120 
123 
125  void resizeEvent (QResizeEvent *event);
126 
128  void saveErrorReportFileAndExit(const char *comment,
129  const char *file,
130  int line,
131  const char *context) const;
132 
134  GraphicsScene &scene();
135 
138  BackgroundImage selectOriginal(BackgroundImage backgroundImage);
139 
141  QString selectedGraphCurve () const;
142 
144  virtual void showEvent(QShowEvent *);
145 
147  void showTemporaryMessage (const QString &temporaryMessage);
148 
151 
153  bool transformIsDefined() const;
154 
156  void updateAfterCommand();
157 
160 
162  void updateCoordSystem(CoordSystemIndex coordSystemIndex);
163 
165  void updateDigitizeStateIfSoftwareTriggered (DigitizeState digitizeState);
166 
170 
172  void updateSettingsAxesChecker(const DocumentModelAxesChecker &modelAxesChecker);
173 
175  void updateSettingsColorFilter(const DocumentModelColorFilter &modelColorFilter);
176 
178  void updateSettingsCoords(const DocumentModelCoords &modelCoords);
179 
181  void updateSettingsCurveAddRemove (const CurvesGraphs &curvesGraphs);
182 
184  void updateSettingsCurveStyles(const CurveStyles &modelCurveStyles);
185 
187  void updateSettingsDigitizeCurve(const DocumentModelDigitizeCurve &modelDigitizeCurve);
188 
190  void updateSettingsExportFormat(const DocumentModelExportFormat &modelExport);
191 
193  void updateSettingsGeneral(const DocumentModelGeneral &modelGeneral);
194 
196  void updateSettingsGridRemoval(const DocumentModelGridRemoval &modelGridRemoval);
197 
199  void updateSettingsMainWindow(const MainWindowModel &modelMainWindow);
200 
202  void updateSettingsPointMatch(const DocumentModelPointMatch &modelPointMatch);
203 
205  void updateSettingsSegments(const DocumentModelSegments &modelSegments);
206 
208  void updateViewsOfSettings (const QString &activeCurve);
209 
211  GraphicsView &view ();
212 
214  const GraphicsView &view () const;
215 
216 private slots:
217  void slotBtnPrintAll();
218  void slotBtnShowAllPressed();
219  void slotBtnShowAllReleased();
220  void slotCanRedoChanged (bool);
221  void slotCanUndoChanged (bool);
222  void slotChecklistClosed ();
223  void slotCleanChanged (bool);
224  void slotCmbBackground(int);
225  void slotCmbCoordSystem(int);
226  void slotCmbCurve(int);
227  void slotContextMenuEvent (QString);
228  void slotDigitizeAxis ();
229  void slotDigitizeColorPicker ();
230  void slotDigitizeCurve ();
231  void slotDigitizePointMatch ();
232  void slotDigitizeSegment ();
233  void slotDigitizeSelect ();
234  void slotEditCopy ();
235  void slotEditCut ();
236  void slotEditDelete ();
237  void slotEditMenu ();
238  void slotEditPaste ();
239  void slotEditPasteAsNew ();
240  void slotEditPasteAsNewAdvanced ();
241  void slotFileClose ();
242  void slotFileExport ();
243  void slotFileImport();
244  void slotFileImportAdvanced();
245  void slotFileImportDraggedImage(QImage);
246  void slotFileImportDraggedImageUrl(QUrl);
247  void slotFileImportImage(QString, QImage);
248  void slotFileOpen();
249  void slotFileOpenDraggedDigFile (QString);
250  void slotFilePrint();
251  bool slotFileSave();
252  bool slotFileSaveAs();
253  void slotHelpAbout();
254  void slotHelpTutorial();
255  void slotKeyPress (Qt::Key, bool);
256  void slotLeave ();
257  void slotLoadStartupFiles ();
258  void slotMouseMove (QPointF);
259  void slotMousePress (QPointF);
260  void slotMouseRelease (QPointF);
261  void slotRecentFileAction ();
262  void slotRecentFileClear ();
263  void slotRedoTextChanged (const QString &);
264  void slotSetOverrideCursor (QCursor);
265  void slotSettingsAxesChecker ();
266  void slotSettingsColorFilter ();
267  void slotSettingsCoords ();
268  void slotSettingsCurveAddRemove ();
269  void slotSettingsCurveProperties ();
270  void slotSettingsDigitizeCurve ();
271  void slotSettingsExportFormat ();
272  void slotSettingsGeneral ();
273  void slotSettingsGridRemoval ();
274  void slotSettingsMainWindow ();
275  void slotSettingsPointMatch ();
276  void slotSettingsSegments ();
277  void slotTimeoutRegressionErrorReport ();
278  void slotTimeoutRegressionFileCmdScript ();
279  void slotUndoTextChanged (const QString &);
280  void slotViewGroupBackground(QAction*);
281  void slotViewGroupCurves(QAction*);
282  void slotViewGroupStatus(QAction*);
283  void slotViewToolBarBackground ();
284  void slotViewToolBarChecklistGuide ();
285  void slotViewToolBarCoordSystem ();
286  void slotViewToolBarDigitize ();
287  void slotViewToolBarSettingsViews ();
288  void slotViewToolTips ();
289  void slotViewZoom16To1 ();
290  void slotViewZoom8To1 ();
291  void slotViewZoom4To1 ();
292  void slotViewZoom2To1 ();
293  void slotViewZoom1To1 ();
294  void slotViewZoom1To2 ();
295  void slotViewZoom1To4 ();
296  void slotViewZoom1To8 ();
297  void slotViewZoom1To16 ();
298  void slotViewZoom (int);
299  void slotViewZoomFill ();
300  void slotViewZoomIn ();
301  void slotViewZoomInFromWheelEvent ();
302  void slotViewZoomOut ();
303  void slotViewZoomOutFromWheelEvent ();
304 
305 signals:
307  void signalZoom(int);
308 
309 private:
310  MainWindow();
311 
312  enum ImportType {
313  IMPORT_TYPE_SIMPLE,
314  IMPORT_TYPE_ADVANCED
315  };
316 
317  void applyZoomFactorAfterLoad();
318  virtual void closeEvent(QCloseEvent *event);
319  void createActions();
320  void createActionsDigitize ();
321  void createActionsEdit ();
322  void createActionsFile ();
323  void createActionsHelp ();
324  void createActionsSettings ();
325  void createActionsView ();
326  void createCentralWidget ();
327  void createCommandStackShadow ();
328  void createHelpWindow ();
329  void createIcons();
330  void createLoadImageFromUrl ();
331  void createMenus();
332  void createNetwork();
333  void createScene ();
334  void createSettingsDialogs ();
335  void createStateContextBackground();
336  void createStateContextDigitize();
337  void createStateContextTransformation();
338  void createStatusBar();
339  void createToolBars();
340  void createTutorial();
341  ZoomFactor currentZoomFactor () const;
342  void exportAllCoordinateSystems();
343  QString exportFilenameFromInputFilename (const QString &fileName) const;
344  void fileExport(const QString &fileName,
345  ExportToFile exportStrategy);
346  void fileImport (const QString &fileName,
347  ImportType ImportType);
348  void fileImportWithPrompts (ImportType ImportType);
349  void filePaste (ImportType importType);
350  void ghostsCreate ();
351  void ghostsDestroy ();
352  void loadCoordSystemListFromCmdMediator();
353  void loadCurveListFromCmdMediator();
354  void loadDocumentFile (const QString &fileName);
355  void loadErrorReportFile(const QString &initialPath,
356  const QString &errorReportFile);
357  bool loadImage (const QString &fileName,
358  const QImage &image,
359  ImportType ImportType);
360  void loadInputFileForErrorReport(QDomDocument &domInputFile) const;
361  void loadToolTips ();
362  bool maybeSave();
363  DocumentModelExportFormat modelExportOverride (const DocumentModelExportFormat &modelExportFormatBefore,
364  const ExportToFile &exportStrategy,
365  const QString &selectedNameFilter) const;
366  void rebuildRecentFileListForCurrentFile(const QString &filePath);
367  bool saveDocumentFile(const QString &fileName);
368  QString saveErrorReportFileAndExitXml (const char *comment,
369  const char *file,
370  int line,
371  const char *context) const;
372  void saveStartingDocumentSnapshot();
373  void setCurrentFile(const QString &fileName);
374  void setCurrentPathFromFile (const QString &fileName);
375  void setPixmap (const QPixmap &pixmap);
376  void settingsRead ();
377  void settingsReadEnvironment (QSettings &settings);
378  void settingsReadMainWindow (QSettings &settings);
379  void settingsWrite ();
380  bool setupAfterLoad (const QString &fileName,
381  const QString &temporaryMessage,
382  ImportType ImportType);
383  void startRegressionTestErrorReport (const QString &initialPath,
384  const QString &regressionInputFile);
385  void startRegressionTestFileCmdScript ();
386  void updateAfterCommandStatusBarCoords ();
387  void updateControls (); // Update the widgets (typically in terms of show/hide state) depending on the application state.
388  void updateRecentFileList();
389  void updateSettingsMainWindow();
390  void updateTransformationAndItsDependencies();
391  void updateViewedCurves ();
392  void updateViewsOfSettings (); // Private version gets active curve name from DigitizeContext
393  void updateWindowTitle ();
394  void writeCheckpointToLogFile();
395 
396  QString m_originalFile; // Original filename for error report
397  bool m_originalFileWasImported; // True/false for imported/opened
398  bool m_isDocumentExported;
399  QString m_engaugeFile; // Not empty when a Document is currently loaded AND it was loaded and/or saved as an Engauge file
400  QString m_currentFile; // Not empty when a Document is currently loaded. No path or file extension
401  QString m_currentFileWithPathAndFileExtension; // Adds path and file extension to m_currentFile. For display
402  MainTitleBarFormat m_titleBarFormat;
403 
404  QMenu *m_menuFile;
405  QAction *m_actionImport;
406  QAction *m_actionImportAdvanced;
407  QAction *m_actionOpen;
408  QMenu *m_menuFileOpenRecent;
409  QList<QAction*> m_actionRecentFiles;
410  QAction *m_actionClose;
411  QAction *m_actionSave;
412  QAction *m_actionSaveAs;
413  QAction *m_actionExport;
414  QAction *m_actionPrint;
415  QAction *m_actionExit;
416 
417  QMenu *m_menuEdit;
418  QAction *m_actionEditUndo;
419  QAction *m_actionEditRedo;
420  QAction *m_actionEditCut;
421  QAction *m_actionEditCopy;
422  QAction *m_actionEditPaste;
423  QAction *m_actionEditDelete;
424  QAction *m_actionEditPasteAsNew;
425  QAction *m_actionEditPasteAsNewAdvanced;
426 
427  QMenu *m_menuDigitize;
428  QActionGroup *m_groupDigitize;
429  QAction *m_actionDigitizeSelect;
430  QAction *m_actionDigitizeAxis;
431  QAction *m_actionDigitizeCurve;
432  QAction *m_actionDigitizePointMatch;
433  QAction *m_actionDigitizeColorPicker;
434  QAction *m_actionDigitizeSegment;
435 
436  QMenu *m_menuView;
437  QAction *m_actionViewBackground;
438  QAction *m_actionViewChecklistGuide;
439  QAction *m_actionViewCoordSystem;
440  QAction *m_actionViewDigitize;
441  QAction *m_actionViewSettingsViews;
442  QAction *m_actionViewToolTips;
443  QMenu *m_menuViewBackground;
444  QActionGroup *m_groupBackground;
445  QAction *m_actionViewBackgroundNone;
446  QAction *m_actionViewBackgroundOriginal;
447  QAction *m_actionViewBackgroundFiltered;
448  QMenu *m_menuViewCurves;
449  QActionGroup *m_groupCurves;
450  QAction *m_actionViewCurvesNone;
451  QAction *m_actionViewCurvesSelected;
452  QAction *m_actionViewCurvesAll;
453  QMenu *m_menuViewStatus;
454  QActionGroup *m_groupStatus;
455  QAction *m_actionStatusNever;
456  QAction *m_actionStatusTemporary;
457  QAction *m_actionStatusAlways;
458  QMenu *m_menuViewZoom;
459  QAction *m_actionZoomOut;
460  QAction *m_actionZoomIn;
461  QActionGroup *m_groupZoom;
462  QAction *m_actionZoomFill;
463  QAction *m_actionZoom16To1;
464  QAction *m_actionZoom8To1;
465  QAction *m_actionZoom4To1;
466  QAction *m_actionZoom2To1;
467  QAction *m_actionZoom1To1;
468  QAction *m_actionZoom1To2;
469  QAction *m_actionZoom1To4;
470  QAction *m_actionZoom1To8;
471  QAction *m_actionZoom1To16;
472 
473  QMenu *m_menuSettings;
474  QAction *m_actionSettingsAxesChecker;
475  QAction *m_actionSettingsColorFilter;
476  QAction *m_actionSettingsCoords;
477  QAction *m_actionSettingsCurveAddRemove;
478  QAction *m_actionSettingsCurveProperties;
479  QAction *m_actionSettingsDigitizeCurve;
480  QAction *m_actionSettingsExport;
481  QAction *m_actionSettingsGeneral;
482  QAction *m_actionSettingsGridRemoval;
483  QAction *m_actionSettingsMainWindow;
484  QAction *m_actionSettingsPointMatch;
485  QAction *m_actionSettingsSegments;
486 
487  QMenu *m_menuHelp;
488  QAction *m_actionHelpAbout;
489  QAction *m_actionHelpChecklistGuideWizard;
490  QAction *m_actionHelpHelp;
491  QAction *m_actionHelpTutorial;
492  QAction *m_actionHelpWhatsThis;
493 
494  QVBoxLayout *m_layout;
495  GraphicsScene *m_scene;
496  GraphicsView *m_view;
497 
498  StatusBar *m_statusBar;
499  Transformation m_transformation;
500 
501  QComboBox *m_cmbCurve;
502  QToolBar *m_toolDigitize;
503  LoadImageFromUrl *m_loadImageFromUrl;
504 
505  QComboBox *m_cmbBackground;
506  QToolBar *m_toolBackground;
507 
508  ViewPointStyle *m_viewPointStyle;
509  ViewSegmentFilter *m_viewSegmentFilter;
510  QToolBar *m_toolSettingsViews;
511  ChecklistGuide *m_dockChecklistGuide;
512 
513  QComboBox *m_cmbCoordSystem;
514  QPushButton *m_btnPrintAll;
515  QPushButton *m_btnShowAll;
516  QToolBar *m_toolCoordSystem;
517 
518  HelpWindow *m_helpWindow;
519  TutorialDlg *m_tutorialDlg;
520 
521  CmdMediator *m_cmdMediator;
522  CmdStackShadow *m_cmdStackShadow;
523 
524  // State machine for user interface states
525  DigitizeStateContext *m_digitizeStateContext;
526 
527  // State machine for transformation states
528  TransformationStateContext *m_transformationStateContext;
529 
530  // State machine for background image
531  BackgroundStateContext *m_backgroundStateContext;
532 
533  DlgSettingsAxesChecker *m_dlgSettingsAxesChecker;
534  DlgSettingsColorFilter *m_dlgSettingsColorFilter;
535  DlgSettingsCoords *m_dlgSettingsCoords;
536  DlgSettingsCurveAddRemove *m_dlgSettingsCurveAddRemove;
537  DlgSettingsCurveProperties *m_dlgSettingsCurveProperties;
538  DlgSettingsDigitizeCurve * m_dlgSettingsDigitizeCurve;
539  DlgSettingsExportFormat *m_dlgSettingsExportFormat;
540  DlgSettingsGeneral *m_dlgSettingsGeneral;
541  DlgSettingsGridRemoval *m_dlgSettingsGridRemoval;
542  DlgSettingsMainWindow *m_dlgSettingsMainWindow;
543  DlgSettingsPointMatch *m_dlgSettingsPointMatch;
544  DlgSettingsSegments *m_dlgSettingsSegments;
545 
546  // Crash reports
547  QString m_startingDocumentSnapshot; // Serialized snapshot of document at startup. Included in error report if user approves
548  NetworkClient *m_networkClient;
549 
550  // Main window settings
551  bool m_isGnuplot; // From command line
552  MainWindowModel m_modelMainWindow; // From settings file or DlgSettingsMainWindow
553 
554  // File names to be loaded at startup. Only one is loaded into the current instance, with external instances created for the other files
555  QTimer *m_timerLoadStartupFiles;
556  QStringList m_loadStartupFiles;
557 
558  // Ghosts that are created for seeing all coordinate systems at once, when there are multiple coordinate systems
559  Ghosts *m_ghosts;
560 
561  // Timers for regression testing. Neither or one is first started by the constructor for this class, but the first timeout
562  // (and all succeeding timeouts) will be from after QMainWindow::exec is called. Each timeout results in one command
563  // from the command stack getting executed
564  QTimer *m_timerRegressionErrorReport;
565  FileCmdScript *m_fileCmdScript;
566  QTimer *m_timerRegressionFileCmdScript;
567  QString m_regressionFile;
568 };
569 
570 #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.
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:13
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:264
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:290
CmdMediator * cmdMediator()
Accessor for commands to process the Document.
Definition: MainWindow.cpp:298
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:272
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 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.
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 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:281
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:77
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.