63#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
73class QGraphicsLineItem;
182 const char *context);
271 void slotBtnPrintAll();
272 void slotBtnShowAllPressed();
273 void slotBtnShowAllReleased();
274 void slotCanRedoChanged (
bool);
275 void slotCanUndoChanged (
bool);
276 void slotChecklistClosed ();
277 void slotCleanChanged (
bool);
278 void slotCmbBackground(
int);
279 void slotCmbCoordSystem(
int);
280 void slotCmbCurve(
int);
281 void slotContextMenuEventAxis (
QString);
283 void slotDigitizeAxis ();
284 void slotDigitizeColorPicker ();
285 void slotDigitizeCurve ();
286 void slotDigitizePointMatch ();
287 void slotDigitizeScale ();
288 void slotDigitizeSegment ();
289 void slotDigitizeSelect ();
290 void slotEditCopy ();
292 void slotEditDelete ();
293 void slotEditMenu ();
294 void slotEditPaste ();
295 void slotEditPasteAsNew ();
296 void slotEditPasteAsNewAdvanced ();
297 void slotFileClose ();
298 void slotFileExport ();
299 void slotFileImport();
300 void slotFileImportAdvanced();
301 void slotFileImportDraggedImage(
QImage);
302 void slotFileImportDraggedImageUrl(
QUrl);
304 void slotFileImportImageReplace();
306 void slotFileOpenDraggedDigFile (
QString);
307 void slotFilePrint();
309 bool slotFileSaveAs();
310 void slotFittingWindowClosed();
312 void slotGeometryWindowClosed();
313 void slotHelpAbout();
314 void slotHelpTutorial();
315 void slotKeyPress (Qt::Key,
bool);
316 void slotLoadStartupFiles ();
319 void slotMouseRelease (
QPointF);
320 void slotRecentFileAction ();
321 void slotRecentFileClear ();
322 void slotRedoTextChanged (
const QString &);
323 void slotSettingsAxesChecker ();
324 void slotSettingsColorFilter ();
325 void slotSettingsCoords ();
326 void slotSettingsCurveList ();
327 void slotSettingsCurveProperties ();
328 void slotSettingsDigitizeCurve ();
329 void slotSettingsExportFormat ();
330 void slotSettingsGeneral ();
331 void slotSettingsGridDisplay ();
332 void slotSettingsGridRemoval ();
333 void slotSettingsMainWindow ();
334 void slotSettingsPointMatch ();
335 void slotSettingsSegments ();
336 void slotTableStatusChange ();
337 void slotTimeoutRegressionErrorReport ();
338 void slotTimeoutRegressionFileCmdScript ();
339 void slotUndoTextChanged (
const QString &);
340 void slotViewGridLines ();
341 void slotViewGroupBackground(
QAction*);
342 void slotViewGroupCurves(
QAction*);
343 void slotViewGroupStatus(
QAction*);
344 void slotViewToolBarBackground ();
345 void slotViewToolBarChecklistGuide ();
346 void slotViewToolBarCoordSystem ();
347 void slotViewToolBarDigitize ();
348 void slotViewToolBarFittingWindow ();
349 void slotViewToolBarGeometryWindow ();
350 void slotViewToolBarSettingsViews ();
351 void slotViewToolTips ();
353 void slotViewZoomFactorInt (
int);
354 void slotViewZoom (
int);
355 void slotViewZoomIn ();
356 void slotViewZoomInFromWheelEvent ();
357 void slotViewZoomOut ();
358 void slotViewZoomOutFromWheelEvent ();
372 IMPORT_TYPE_ADVANCED,
373 IMPORT_TYPE_IMAGE_REPLACE
381 void applyZoomFactorAfterLoad();
384#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
385 void exportAllCoordinateSystemsAfterRegressionTests();
392 ImportType ImportType);
393 void fileImportWithPrompts (ImportType ImportType);
394 QString fileNameForExportOnly ()
const;
395 QString fileNameForExtractImageOnly ()
const;
397 void ghostsCreate ();
398 void ghostsDestroy ();
399 void handlerFileExtractImage ();
400 void loadCoordSystemListFromCmdMediator();
401 void loadCurveListFromCmdMediator();
406 ImportType ImportType);
409 ImportType ImportType);
412 ImportType ImportType);
414 void loadToolTips ();
419 bool modeGraph ()
const;
425 const char *context)
const;
426 void saveStartingDocumentSnapshot();
432 void settingsRead (
bool isReset);
435 void settingsWrite ();
438 ImportType ImportType);
441 ImportType ImportType);
444 void startRegressionTestFileCmdScript ();
445 void updateAfterCommandStatusBarCoords ();
446 void updateChecklistGuide ();
447 void updateControls ();
448 void updateFittingWindow ();
449 void updateGeometryWindow ();
450 void updateGridLines();
451 void updateHighlightOpacity();
452 void updateRecentFileList();
453 void updateSettingsMainWindow();
454 void updateSmallDialogs();
455 void updateTransformationAndItsDependencies();
456 void updateViewedCurves ();
457 void updateViewsOfSettings ();
458 void updateWindowTitle ();
459 void writeCheckpointToLogFile();
462 bool m_originalFileWasImported;
463 bool m_isDocumentExported;
466 QString m_currentFileWithPathAndFileExtension;
471 QAction *m_actionImportAdvanced;
472 QAction *m_actionImportImageReplace;
474 QMenu *m_menuFileOpenRecent;
490 QAction *m_actionEditPasteAsNew;
491 QAction *m_actionEditPasteAsNewAdvanced;
493 QMenu *m_menuDigitize;
495 QAction *m_actionDigitizeSelect;
497 QAction *m_actionDigitizeScale;
498 QAction *m_actionDigitizeCurve;
499 QAction *m_actionDigitizePointMatch;
500 QAction *m_actionDigitizeColorPicker;
501 QAction *m_actionDigitizeSegment;
504 QAction *m_actionViewBackground;
505 QAction *m_actionViewChecklistGuide;
506 QAction *m_actionViewCoordSystem;
508 QAction *m_actionViewFittingWindow;
509 QAction *m_actionViewGeometryWindow;
510 QAction *m_actionViewSettingsViews;
512 QAction *m_actionViewGridLines;
513 QMenu *m_menuViewBackground;
515 QAction *m_actionViewBackgroundNone;
516 QAction *m_actionViewBackgroundOriginal;
517 QAction *m_actionViewBackgroundFiltered;
518 QMenu *m_menuViewCurves;
520 QAction *m_actionViewCurvesNone;
521 QAction *m_actionViewCurvesSelected;
522 QAction *m_actionViewCurvesAll;
523 QMenu *m_menuViewStatus;
526 QAction *m_actionStatusTemporary;
528 QMenu *m_menuViewZoom;
535 QAction *m_actionZoom16To1Farther;
536 QAction *m_actionZoom8To1Closer;
538 QAction *m_actionZoom8To1Farther;
539 QAction *m_actionZoom4To1Closer;
541 QAction *m_actionZoom4To1Farther;
542 QAction *m_actionZoom2To1Closer;
544 QAction *m_actionZoom2To1Farther;
545 QAction *m_actionZoom1To1Closer;
547 QAction *m_actionZoom1To1Farther;
548 QAction *m_actionZoom1To2Closer;
550 QAction *m_actionZoom1To2Farther;
551 QAction *m_actionZoom1To4Closer;
553 QAction *m_actionZoom1To4Farther;
554 QAction *m_actionZoom1To8Closer;
556 QAction *m_actionZoom1To8Farther;
557 QAction *m_actionZoom1To16Closer;
560 QMenu *m_menuSettings;
561 QAction *m_actionSettingsAxesChecker;
562 QAction *m_actionSettingsColorFilter;
563 QAction *m_actionSettingsCoords;
564 QAction *m_actionSettingsCurveList;
565 QAction *m_actionSettingsCurveProperties;
566 QAction *m_actionSettingsDigitizeCurve;
567 QAction *m_actionSettingsExport;
568 QAction *m_actionSettingsGeneral;
569 QAction *m_actionSettingsGridDisplay;
570 QAction *m_actionSettingsGridRemoval;
571 QAction *m_actionSettingsMainWindow;
572 QAction *m_actionSettingsPointMatch;
573 QAction *m_actionSettingsSegments;
577 QAction *m_actionHelpChecklistGuideWizard;
580 QAction *m_actionHelpWhatsThis;
608#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
640 QString m_startingDocumentSnapshot;
648 QTimer *m_timerLoadStartupFiles;
660 QTimer *m_timerRegressionErrorReport;
662 bool m_isErrorReportRegressionTest;
663 QTimer *m_timerRegressionFileCmdScript;
683 bool m_isExtractImageOnly;
684 QString m_extractImageOnlyExtension;
BackgroundImage
Background selection.
unsigned int CoordSystemIndex
Zero-based index for identifying CoordSystem instantiations.
DigitizeState
Set of possible states of Digitize toolbar.
const int INNER_RADIUS_MIN
QVector< double > FittingCurveCoefficients
Coefficients x0, x1, ... in y = a0 + a1 * x + a2 * x^2 + ...
MainTitleBarFormat
Format format in MainWindow title bar.
const unsigned int MAX_RECENT_FILE_LIST_SIZE
ZoomFactor
Zoom factors ordered by zoom level so next one above/below is the next zoom level.
Context class that manages the background image state machine.
Dockable text window containing checklist guide.
Command stack that shadows the CmdMediator command stack at startup when reading commands from an err...
Class to create actions for MainWindow class.
Class to create CmdStackShadow for MainWindow class.
Facade class that wraps around all of the create classes for MainWindow.
Class to create help window for MainWindow class.
Class to create icons for MainWindow class.
Class to create LoadImageFromUrl for MainWindow class.
Class to create network for MainWindow class.
Class to create QGraphicsScene for MainWindow class.
Class to create settings dialogs for MainWindow class.
Class to create state contexts, which wrap state machine design patterns, for MainWindow class.
Class to create status bar for MainWindow class.
Class to TutorialDlg for MainWindow class.
Class to create zoom factor maps for MainWindow class.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
Container for all graph curves. The axes point curve is external to this class.
Container for all DigitizeStateAbstractBase subclasses. This functions as the context class in a stan...
Dialog for editing axes checker settings.
Dialog for editing filtering settings.
Dialog for editing coordinates settings.
Dialog for editing curve names settings.
Dialog for editing curve properties settings.
Dialog for editing DigitizeStateCurve settings.
Dialog for editing general settings.
Dialog for editing grid display settings.
Dialog for editing grid removal settings.
Dialog for editing main window settings, which are entirely independent of all documents.
Dialog for editing point match settings, for DigitizeStatePointMatch.
Dialog for editing Segments settings, for DigitizeStateSegment.
Model for DlgSettingsAxesChecker and CmdSettingsAxesChecker.
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsDigitizeCurve and CmdSettingsDigitizeCurve.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
Model for DlgSettingsGridRemoval and CmdSettingsGridRemoval. The settings are unstable until the user...
Model for DlgSettingsPointMatch and CmdSettingsPointMatch.
Model for DlgSettingsSegments and CmdSettingsSegments.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
File that manages a command stack for regression testing of file import/open/export/close.
Curve that overlays the current scene so the regression-fitted curve is visible.
Window that displays curve fitting as applied to the currently selected curve.
Window that displays the geometry information, as a table, for the current curve.
Class for showing points and lines for all coordinate systems simultaneously, even though the code no...
Add point and line handling to generic QGraphicsScene.
QGraphicsView class with event handling added. Typically the events are sent to the active digitizing...
Container class for GridLine objects.
Load QImage from url. This is trivial for a file, but requires an asynchronous download step for http...
Model for DlgSettingsMainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
void saveErrorReportFileAndExit(const char *comment, const char *file, int line, const char *context)
Save error report and exit.
void updateSettingsGridRemoval(const DocumentModelGridRemoval &modelGridRemoval)
Update with new grid removal properties.
void showTemporaryMessage(const QString &temporaryMessage)
Show temporary message in status bar.
CmdMediator * cmdMediator()
Accessor for commands to process the Document.
void updateSettingsGridDisplay(const DocumentModelGridDisplay &modelGridDisplay)
Update with new grid display properties.
virtual bool eventFilter(QObject *, QEvent *)
Catch secret keypresses.
void updateSettingsAxesChecker(const DocumentModelAxesChecker &modelAxesChecker)
Update with new axes indicator properties.
virtual void showEvent(QShowEvent *)
Processing performed after gui becomes available.
void updateSettingsDigitizeCurve(const DocumentModelDigitizeCurve &modelDigitizeCurve)
Update with new curve digitization styles.
bool isGnuplot() const
Get method for gnuplot flag.
void updateSettingsCurveStyles(const CurveStyles &modelCurveStyles)
Update with new curve styles.
bool transformIsDefined() const
Return true if all three axis points have been defined.
MainWindowModel modelMainWindow() const
Get method for main window model.
void cmdFileOpen(const QString &fileName)
Open file. This is called from a file script command.
void updateSettingsCurveList(const CurvesGraphs &curvesGraphs)
Update with new curves.
void updateAfterCommand()
See GraphicsScene::updateAfterCommand.
void updateSettingsExportFormat(const DocumentModelExportFormat &modelExport)
Update with new export properties.
void updateSettingsSegments(const DocumentModelSegments &modelSegments)
Update with new segments properties.
BackgroundImage selectOriginal(BackgroundImage backgroundImage)
Make original background visible, for DigitizeStateColorPicker.
void cmdFileExport(const QString &fileName)
Export file. This is called from a file script command.
void updateViewsOfSettings(const QString &activeCurve)
Update curve-specific view of settings. Private version gets active curve name from DigitizeStateCont...
void updateSettingsMainWindow(const MainWindowModel &modelMainWindow)
Update with new main window properties.
void cmdFileClose()
Close file. This is called from a file script command.
void updateDigitizeStateIfSoftwareTriggered(DigitizeState digitizeState)
After software-triggered state transition, this method manually triggers the action as if user had cl...
bool modeMap() const
True if document scale is set using a scale bar, otherwise using axis points.
void signalDropRegression(QString)
Send drag and drop regression test url.
void updateSettingsGeneral(const DocumentModelGeneral &modelGeneral)
Update with new general properties.
void signalZoom(int)
Send zoom selection, picked from menu or keystroke, to StatusBar.
void updateSettingsPointMatch(const DocumentModelPointMatch &modelPointMatch)
Update with new point match properties.
void cmdFileImport(const QString &fileName)
Import file. This is called from a file script command.
void updateGraphicsLinesToMatchGraphicsPoints()
Update the graphics lines so they follow the graphics points, after a drag, addition,...
QImage imageFiltered() const
Background image that has been filtered for the current curve. This asserts if a curve-specific image...
QString selectedGraphCurve() const
Curve name that is currently selected in m_cmbCurve.
GraphicsScene & scene()
Scene container for the QImage and QGraphicsItems.
void updateAfterMouseRelease()
Call MainWindow::updateControls (which is private) after the very specific case - a mouse press/relea...
void resizeEvent(QResizeEvent *event)
Intercept resize event so graphics scene can be appropriately resized when in Fill mode.
Transformation transformation() const
Return read-only copy of transformation.
void updateSettingsColorFilter(const DocumentModelColorFilter &modelColorFilter)
Update with new color filter properties.
void updateCoordSystem(CoordSystemIndex coordSystemIndex)
Select a different CoordSystem.
void updateSettingsCoords(const DocumentModelCoords &modelCoords)
Update with new coordinate properties.
GraphicsView & view()
View for the QImage and QGraphicsItems, without const.
Client for interacting with Engauge server.
Wrapper around QStatusBar to manage permanent widgets.
Unit test of Export classes.
Context class for transformation state machine.
Tutorial using a strategy like a comic strip with decision points deciding which panels appear.
Class that displays a view of the current Curve's point style.
Class that displays the current Segment Filter in a MainWindow toolbar.