67#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
77class QGraphicsLineItem;
215 const char *context);
307 void slotBtnGuidelineBottomCartesian ();
308 void slotBtnGuidelineBottomPolar ();
309 void slotBtnGuidelineLeftCartesian ();
310 void slotBtnGuidelineLeftPolar ();
311 void slotBtnGuidelineRightCartesian ();
312 void slotBtnGuidelineRightPolar ();
313 void slotBtnGuidelineTopCartesian ();
314 void slotBtnGuidelineTopPolar ();
315 void slotBtnPrintAll();
316 void slotBtnShowAllPressed();
317 void slotBtnShowAllReleased();
318 void slotCanRedoChanged (
bool);
319 void slotCanUndoChanged (
bool);
320 void slotChecklistClosed ();
321 void slotCleanChanged (
bool);
322 void slotCmbBackground(
int);
323 void slotCmbCoordSystem(
int);
324 void slotCmbCurve(
int);
325 void slotContextMenuEventAxis (
QString);
327 void slotDigitizeAxis ();
328 void slotDigitizeColorPicker ();
329 void slotDigitizeCurve ();
330 void slotDigitizePointMatch ();
331 void slotDigitizeScale ();
332 void slotDigitizeSegment ();
333 void slotDigitizeSelect ();
334 void slotEditCopy ();
336 void slotEditDelete ();
337 void slotEditMenu ();
338 void slotEditPaste ();
339 void slotEditPasteAsNew ();
340 void slotEditPasteAsNewAdvanced ();
341 void slotFileClose ();
342 void slotFileExport ();
343 void slotFileImport();
344 void slotFileImportAdvanced();
345 void slotFileImportDraggedImage(
QImage);
346 void slotFileImportDraggedImageUrl(
QUrl);
348 void slotFileImportImageReplace();
350 void slotFileOpenDraggedDigFile (
QString);
351 void slotFilePrint();
353 bool slotFileSaveAs();
354 void slotFittingWindowClosed();
356 void slotGeometryWindowClosed();
358 void slotHelpAbout();
359 void slotHelpTutorial();
360 void slotKeyPress (Qt::Key,
bool);
361 void slotLoadStartupFiles ();
364 void slotMouseRelease (
QPointF);
365 void slotRecentFileAction ();
366 void slotRecentFileClear ();
367 void slotRedoTextChanged (
const QString &);
368 void slotSettingsAxesChecker ();
369 void slotSettingsColorFilter ();
370 void slotSettingsCoords ();
371 void slotSettingsCurveList ();
372 void slotSettingsCurveProperties ();
373 void slotSettingsDigitizeCurve ();
374 void slotSettingsExportFormat ();
375 void slotSettingsGeneral ();
376 void slotSettingsGridDisplay ();
377 void slotSettingsGridRemoval ();
378 void slotSettingsMainWindow ();
379 void slotSettingsPointMatch ();
380 void slotSettingsSegments ();
381 void slotTableStatusChange ();
382 void slotTimeoutRegressionErrorReport ();
383 void slotTimeoutRegressionFileCmdScript ();
384 void slotUndoTextChanged (
const QString &);
385 void slotViewGridLines ();
386 void slotViewGroupBackground(
QAction*);
387 void slotViewGroupCurves(
QAction*);
388 void slotViewGroupGuidelines(
QAction*);
389 void slotViewGroupStatus(
QAction*);
390 void slotViewToolBarBackground ();
391 void slotViewToolBarChecklistGuide ();
392 void slotViewToolBarCoordSystem ();
393 void slotViewToolBarDigitize ();
394 void slotViewToolBarFittingWindow ();
395 void slotViewToolBarGeometryWindow ();
396 void slotViewToolBarSettingsViews ();
397 void slotViewToolTips ();
399 void slotViewZoomFactorInt (
int);
400 void slotViewZoom (
int);
401 void slotViewZoomIn ();
402 void slotViewZoomInFromWheelEvent ();
403 void slotViewZoomOut ();
404 void slotViewZoomOutFromWheelEvent ();
422 IMPORT_TYPE_ADVANCED,
423 IMPORT_TYPE_IMAGE_REPLACE
431 void applyZoomFactorAfterLoad();
434#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
435 void exportAllCoordinateSystemsAfterRegressionTests();
442 ImportType ImportType);
443 void fileImportWithPrompts (ImportType ImportType);
444 QString fileNameForExportOnly ()
const;
445 QString fileNameForExtractImageOnly ()
const;
447 void ghostsCreate ();
448 void ghostsDestroy ();
449 void guidelineAddXTEnqueue (
double value);
450 void guidelineAddYREnqueue (
double value);
455 void guidelineRemoveXTEnqueue (
double value);
456 void guidelineRemoveYREnqueue (
double value);
458 bool guidelinesVisibilityCanBeEnabled ()
const;
459 void handleGuidelineMode();
460 void handlerFileExtractImage ();
461 void loadCoordSystemListFromCmdMediator();
462 void loadCurveListFromCmdMediator();
465 void loadGuidelinesFromCmdMediator();
468 ImportType ImportType);
471 ImportType ImportType);
474 ImportType ImportType);
476 void loadToolTips ();
479 bool modeGraph ()
const;
485 const char *context)
const;
486 void saveStartingDocumentSnapshot();
492 void settingsRead (
bool isReset);
495 void settingsWrite ();
498 ImportType ImportType);
501 ImportType ImportType);
504 void startRegressionTestFileCmdScript ();
505 void updateAfterCommandStatusBarCoords ();
506 void updateChecklistGuide ();
507 void updateControls ();
508 void updateFittingWindow ();
509 void updateGeometryWindow ();
510 void updateGridLines();
511 void updateHighlightOpacity();
512 void updateRecentFileList();
513 void updateSettingsMainWindow();
514 void updateSmallDialogs();
515 void updateTransformationAndItsDependencies();
516 void updateViewedCurves ();
517 void updateViewsOfSettings ();
518 void updateWindowTitle ();
519 void writeCheckpointToLogFile();
522 bool m_originalFileWasImported;
523 bool m_isDocumentExported;
526 QString m_currentFileWithPathAndFileExtension;
531 QAction *m_actionImportAdvanced;
532 QAction *m_actionImportImageReplace;
534 QMenu *m_menuFileOpenRecent;
550 QAction *m_actionEditPasteAsNew;
551 QAction *m_actionEditPasteAsNewAdvanced;
553 QMenu *m_menuDigitize;
555 QAction *m_actionDigitizeSelect;
557 QAction *m_actionDigitizeScale;
558 QAction *m_actionDigitizeCurve;
559 QAction *m_actionDigitizePointMatch;
560 QAction *m_actionDigitizeColorPicker;
561 QAction *m_actionDigitizeSegment;
564 QAction *m_actionViewBackground;
565 QAction *m_actionViewChecklistGuide;
566 QAction *m_actionViewCoordSystem;
568 QAction *m_actionViewFittingWindow;
569 QAction *m_actionViewGeometryWindow;
570 QAction *m_actionViewSettingsViews;
572 QAction *m_actionViewGridLines;
573 QMenu *m_menuViewBackground;
575 QAction *m_actionViewBackgroundNone;
576 QAction *m_actionViewBackgroundOriginal;
577 QAction *m_actionViewBackgroundFiltered;
578 QMenu *m_menuViewCurves;
580 QAction *m_actionViewCurvesNone;
581 QAction *m_actionViewCurvesSelected;
582 QAction *m_actionViewCurvesAll;
583 QMenu *m_menuViewGuidelines;
585 QAction *m_actionViewGuidelinesHide;
586 QAction *m_actionViewGuidelinesEdit;
587 QAction *m_actionViewGuidelinesLock;
588 QMenu *m_menuViewStatus;
591 QAction *m_actionStatusTemporary;
593 QMenu *m_menuViewZoom;
600 QAction *m_actionZoom16To1Farther;
601 QAction *m_actionZoom8To1Closer;
603 QAction *m_actionZoom8To1Farther;
604 QAction *m_actionZoom4To1Closer;
606 QAction *m_actionZoom4To1Farther;
607 QAction *m_actionZoom2To1Closer;
609 QAction *m_actionZoom2To1Farther;
610 QAction *m_actionZoom1To1Closer;
612 QAction *m_actionZoom1To1Farther;
613 QAction *m_actionZoom1To2Closer;
615 QAction *m_actionZoom1To2Farther;
616 QAction *m_actionZoom1To4Closer;
618 QAction *m_actionZoom1To4Farther;
619 QAction *m_actionZoom1To8Closer;
621 QAction *m_actionZoom1To8Farther;
622 QAction *m_actionZoom1To16Closer;
625 QMenu *m_menuSettings;
626 QAction *m_actionSettingsAxesChecker;
627 QAction *m_actionSettingsColorFilter;
628 QAction *m_actionSettingsCoords;
629 QAction *m_actionSettingsCurveList;
630 QAction *m_actionSettingsCurveProperties;
631 QAction *m_actionSettingsDigitizeCurve;
632 QAction *m_actionSettingsExport;
633 QAction *m_actionSettingsGeneral;
634 QAction *m_actionSettingsGridDisplay;
635 QAction *m_actionSettingsGridRemoval;
636 QAction *m_actionSettingsMainWindow;
637 QAction *m_actionSettingsPointMatch;
638 QAction *m_actionSettingsSegments;
642 QAction *m_actionHelpChecklistGuideWizard;
645 QAction *m_actionHelpWhatsThis;
682#if !defined(OSX_DEBUG) && !defined(OSX_RELEASE)
714 QString m_startingDocumentSnapshot;
722 QTimer *m_timerLoadStartupFiles;
734 QTimer *m_timerRegressionErrorReport;
736 bool m_isErrorReportRegressionTest;
737 QTimer *m_timerRegressionFileCmdScript;
764 bool m_isExtractImageOnly;
765 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 + ...
GuidelineState
Set of possible Guideline states. See class Guideline for more information.
GuidelineViewState
Set of possible Guideline view states.
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.
Context class for state machine that tracks the View / Guidelines mode.
This class contains all Guideline 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 sendGong()
Send signal to unit test framework indicating all commands have finished executing.
void guidelineRemove(const QString &identifier)
Remove a X/T or Y/R Guideline.
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 guidelineViewState(GuidelineViewState state) const
Guideline view state in View menu.
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.
bool guidelinesAreVisible() const
True/false if guidelines are visible. Selectability is handled elsewhere.
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 guidelineMoveXT(const QString &identifier, double xTAfter)
Move a X/T Guideline.
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 guidelineAddYR(const QString &identifier, double yR)
Add a Y/R Guideline.
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 guidelineMoveYR(const QString &identifier, double yRAfter)
Move a Y/R Guideline.
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,...
void handleGuidelinesActiveChange(bool active)
Handle Guidelines active status toggle.
void signalGong()
Send wakeup signal to unit test framework when all other commands have finished executing.
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.
void guidelineAddXT(const QString &identifier, double xT)
Add a X/T Guideline.
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.