Workspace 6.21.5
Public Slots | Public Member Functions | List of all members
WorkflowMergeMainWidget Class Reference

Main widget for the Three-way Merge Tool. More...

#include <Tools/WorkflowMerge/Application/Widgets/workflowmergemainwidget.h>

Inheritance diagram for WorkflowMergeMainWidget:
[legend]

Public Slots

void on_actionLaunch_external_diff_tool_triggered ()
 
void on_actionView_ghost_elements_toggled () override
 
void onAutoMergeReady ()
 
void onColoursChanged (const QSet< QString > &colours) override
 
void onFileNewTriggered () override
 
void onFileSelectFilesTriggered ()
 
void onMergeSelectionChanged (const QUuid &id)
 
void onOpenBaseFileInExternalApplication ()
 
void onOpenBaseFileWithInExternalApplication ()
 
void onOpenFile1InExternalApplication ()
 
void onOpenFile1WithInExternalApplication ()
 
void onOpenFile2InExternalApplication ()
 
void onOpenFile2WithInExternalApplication ()
 
void onOpenMergedFileInExternalApplication ()
 
void onOpenMergedFileWithInExternalApplication ()
 
void onSaveToFileTriggered ()
 
void onSettingsChanged () override
 
void onUpdateFilenames ()
 
void onViewMergeBaseDockWidgetToggled (bool value)
 
void onViewWorkflow1To2DockWidgetToggled (bool value)
 
void onWorkflow12ComparisonDone ()
 
void onWorkflowBaseMergedComparisonDone ()
 
void onWorkflowSuccess () override
 
void saveToFile ()
 
- Public Slots inherited from MultipleWorkflowApp
virtual SettingsStackDialogcreateSettingsStackDialog ()
 Creates the SettingsStackDialog box.
 
virtual void on_actionConfigure_application_triggered ()
 
void on_actionGroup_by_workspace_toggled ()
 
virtual void on_actionToggleDependencies_toggled ()
 
virtual void on_actionView_ghost_elements_toggled ()=0
 
virtual void on_actionWorkspaceIovVisibilityPolicy_triggered ()
 
virtual void on_actionZoomFitSelection_triggered ()
 
virtual void onActionIgnoredItemsTriggered ()
 
virtual void onConnectionSelectionChangedByDiffWidget (const ConnectionData &data, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection details when the user selects a Connection row in a WorkflowDifferencesWidget.
 
virtual void onConnectionSelectionChangedByTabWidget (const DataExecution::Connection &connection, bool selected)
 Propagates selection information from a WorkspaceScene inside a WorkspaceTabWidget to other linked widgets when a connection is selected within the scene.
 
virtual void onDisplaySelectionChangedByDiffWidget (const DisplayData &, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 A display widget item was selected or deselected. This ensures that the containing workspace is shown.
 
virtual void onFileNewTriggered ()
 
void onFileOpenTriggered ()
 
void onFileQuitTriggered ()
 
void onFileSaveAsTriggered ()
 
void onFileSaveTriggered ()
 
virtual void onFindTriggered ()
 Shows the find dialog box.
 
void onHelpAboutTriggered ()
 
virtual void onNoteSelectionChangedByTabWidget (const QUuid &wspId, const QUuid &noteItemId, bool selected)
 Propagates selection information from a WorkspaceScene inside a WorkspaceTabWidget to other linked widgets when a note is selected within the scene.
 
virtual void onOperationChildSelectionChangedByDiffWidget (const ChildItemSelectionData &data, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection information from a WorkflowDifferenceWidget to the other WorkflowDifferenceWidget and WorkspaceTabWidgets when an operation row is selected.
 
virtual void onOperationSelectionChangedByDiffWidget (const QUuid &opId, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection information from a WorkflowDifferenceWidget to the other WorkflowDifferenceWidget and WorkspaceTabWidgets when an operation row is selected.
 
virtual void onOperationSelectionChangedByTabWidget (const QItemSelection &selected, const QItemSelection &deselected)
 Propagates selection information from a WorkspaceScene inside a WorkspaceTabWidget to other linked widgets when an operation is selected within the scene.
 
virtual void onViewSynchronisationToggled (bool)
 
virtual void onWorkflowSuccess ()=0
 
virtual void onWorkspaceAnchorSelectionChangedByDiffWidget (const ConnectionAnchorData &, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 A connection anchor was selected or deselected. This ensures that the containing workspace is shown.
 
virtual void onWorkspaceNoteSelectionChangedByDiffWidget (const NoteData &data, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection details when the user selects a Connection row in a WorkflowDifferencesWidget.
 
virtual void onWorkspaceSelectionChangedByDiffWidget (const WorkspaceData &data, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection information from a WorkflowDifferenceWidget to the other WorkflowDifferenceWidget and WorkspaceTabWidgets when an Workspace row is selected (these are rows with a Nested Workspace icon and slection will cause the Nested Workspace to be opened up)
 

Public Member Functions

 WorkflowMergeMainWidget (QWidget *parent=nullptr)
 
 ~WorkflowMergeMainWidget () override
 
QString getBaseFile ()
 
QString getFile1 ()
 
QString getFile2 ()
 
QString getMergedFile ()
 
bool loadProject (const QString &projectPath)
 Sets the projectDirectory and project name and loads the project.
 
void setApplicationColours ()
 
void setBaseFile (const QString &baseFile)
 
void setFile1 (const QString &file1)
 
void setFile2 (const QString &file2)
 
void setFileLabels (const QString &file1Label, const QString &file2Label, const QString &baseFileLabel, const QString &mergedFileLabel)
 Sets the labels that will be displayed for each workflow in the GUI.
 
void setFileToolTips (const QString &file1Tip, const QString &file2Tip, const QString &baseFileTip, const QString &mergedFileTip)
 Sets the tooltips that will be displayed for each workflow in the GUI.
 
void setMergedFile (const QString &mergedFile)
 
- Public Member Functions inherited from MultipleWorkflowApp
 MultipleWorkflowApp (const QString &appName, const QString &title, const QStringList &fileNameFilter, const QString &projectSuffix, const QString &serializedTreeName, QWidget *parent=nullptr)
 
 ~MultipleWorkflowApp () override
 
void blockWidgetSignals (bool block)
 Temporarily stops selection signals from being bounced from one widget to other linked widgets, so that selection updates can be mirrored without triggering recursion.
 
void endSignalBlock ()
 
void setLogReportLevel (ReportingLevel level)
 
void startSignalBlock ()
 
- Public Member Functions inherited from BasicTextLogger
 BasicTextLogger ()
 
virtual ~BasicTextLogger ()
 
void logLine (const Application::LogManager::MessageCategory &category, const QString &msg) const
 
void logLine (const QString &msg) const
 
void logText (const Application::LogManager::MessageCategory &category, const QString &msg) const
 
void logText (const QString &msg) const
 

Additional Inherited Members

- Signals inherited from MultipleWorkflowApp
void dimOperationsChanged ()
 
- Protected Types inherited from MultipleWorkflowApp
typedef QPair< Presentation::WorkspaceTabWidget *, Presentation::WorkspaceTabWidget * > TabPair
 
- Protected Slots inherited from MultipleWorkflowApp
virtual void onColoursChanged (const QSet< QString > &colours)
 
void onCurrentWorkspaceTabChanged (CSIRO::DataExecution::Workspace *workspace)
 Handler for when the displayed workspace has changed within a WorkspaceTabWidget, this notifies any synchronosed WorkspaceTabWidgets so that they can change too.
 
void onOpRunnerErrorReported ()
 
virtual void onSettingsChanged ()
 
void restartRunner ()
 
void setProjectModified (bool val=true)
 
- Protected Member Functions inherited from MultipleWorkflowApp
void clearTabWidgetConnections ()
 
void clearWorkflowDifferenceWidgets ()
 
void connectAndInitialiseApplicationActions (QAction *action_About, QAction *action_Quit)
 Makes connections between application-related gui elements and their handling slots. If a relevant gui element does not exist in the subclass application, set it to nullptr and it will be ignored.
 
void connectAndInitialiseProjectActions (QAction *actionNew, QAction *actionOpen, QAction *action_Save, QAction *actionSave_As, QAction *actionRecent)
 Makes connections between project-related gui elements and their handling slots. If a relevant gui element does not exist in the subclass application, set it to nullptr and it will be ignored.
 
void connectAndInitialiseUtilityActions (QAction *actionIgnoredItems, QAction *actionFind, QComboBox *reportingLevelComboBox)
 Makes connections between some utility gui elements and their handling slots. If a relevant gui element does not exist in the subclass application, set it to nullptr and it will be ignored.
 
void connectAndInitialiseViewActions (QAction *actionView_ghost_elements, QAction *actionSynchronise_views, QAction *iovVisibilityPolicy, QAction *actionToggleDependencies, QAction *actionToggle_canvas_tooltips, QAction *actionToggleGroupByWorkspace)
 Makes connections between WorkspaceTabWidget display-related gui elements and their handling slots. If a relevant gui element does not exist in the subclass application, set it to nullptr and it will be ignored.
 
bool connectFindDialog (Presentation::FindDialog &dialog)
 Makes connections between the app find dialog and the app WorkflowDifferenceWidgets.
 
bool connectViewportInteractions (Presentation::WorkspaceTabWidget *widgetA, Presentation::WorkspaceTabWidget *widgetB)
 
void createProgressMonitor (const QString &labelText, int maximum)
 
bool disconnectViewportInteractions (Presentation::WorkspaceTabWidget *widgetA, Presentation::WorkspaceTabWidget *widgetB)
 
bool findXmlToolArguments (QString &commandStr, QStringList &argumentList, QString &errMsg)
 Returns stored settings for running an external tool to compare two files.
 
QStringList getAllGlobalNamesFromWidget (QObject *w) const
 
QList< TabPairgetConnectedTabPairs ()
 Returns a list of all the pairs of WorkspaceTabWidgets that are currently synchronised.
 
QPair< bool, bool > getTabMatch (TabPair b)
 Queries the local synchronisation map to see if this pair of WorkspaceTabWidgets is currently synchronised.
 
QList< TabPairgetUnconnectedTabPairs ()
 Returns a list of all the pairs of WorkspaceTabWidgets that are currently unsynchronised.
 
void getWorkflowDifferencesContext (WorkflowDifferencesWidget *widget, QMap< QString, QPair< QString, QString > > &labelMap, QMap< QString, QString > &pathMap) const
 
void hideDocksByDefault (QList< QDockWidget * > &dockWidgetList)
 
void hideProgressMonitor ()
 
void launchExternalDiffTool (const QString &filenameA, const QString &filenameB)
 Launches an external differencing tool with two files as arguments.
 
QColor loadColour (const QString &name, const QString &defaultValue=defaultColourStr)
 loads a colour stored as hex in settings, if not currently in settings will use the defaultSetting and save that to settings
 
bool loadGlobalNamesFromItem (CSIRO::DataExecution::SerializedItem &workflowGlobalNamesElement)
 
virtual bool loadProject ()
 loads the project
 
bool loadRecentProject (const QString &path)
 
void loadWindowState ()
 
void logMap ()
 Logs a list of the synchronisation state of each pair of WorkspaceTabWidgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const ChildItemSelectionData &opId, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected operation in a WorkspaceTabWidget when a child item of the operation has been changed by one of other connected WorkflowDifferenceWidgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const ConnectionAnchorData &opId, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected connection anchor in a WorkspaceTabWidget when the current selection has been changed by one of other connected application widgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const ConnectionData &connection, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected connection in a WorkspaceTabWidget when the current selection has been changed by one of other connected application widgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const DisplayData &id, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected operation in a WorkspaceTabWidget when a displayy widget has been changed by one of other connected WorkflowDifferenceWidgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const NoteData &opId, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected Note in a WorkspaceTabWidget when the current selection has been changed by one of other connected application widgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const QUuid &opId, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the selected operation in a WorkspaceTabWidget when the current selection has been changed by one of other connected application widgets.
 
QPair< bool, QString > notifyTabWidgetOfSelectionChange (const WorkspaceData &id, Presentation::WorkspaceTabWidget &tabWidget, bool selected)
 Changes the current Workspace in a WorkspaceTabWidget when the current Workspace has been changed by one of other connected application widgets.
 
void openWorkflowInExternalApplication (const QString &filename)
 
QProgressDialog & progressMonitor ()
 
QPair< bool, int > registerDifferenceWidget (Tools::WorkflowDifferencesWidget *widget, Presentation::WorkspaceTabWidget *tab1, Presentation::WorkspaceTabWidget *tab2, const QString &arrayName)
 Sets up SIGNAL/SLOT connections between a WorkflowDifferenceWidget and a pair of linked WorkspaceTabWidgets so that an element selected in one is propagated to the others where possible. The WorkspaceTabWidgets shold be displaying two Workflows that are being compared and the WorkflowDifferenceWidget the differences between them in a tree)
 
int registerTabWidgetList (QList< Presentation::WorkspaceTabWidget * > list, QAction *toggleDimOperations)
 Sets the list of WorkspaceTabWidgets in the Application. This should only be called once when the application is being constructed.
 
void resetUndoStack ()
 
void resetWindowState ()
 
void restoreSelection ()
 restores the current graphics selection if stored
 
virtual void saveProject ()
 
void saveSettings ()
 
void saveWindowState ()
 
template<typename T >
void selectionChangedByDiffWidget (T elementData, bool selected, WorkflowDifferencesWidget &sendingWidget, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection details when the user changes the selected row in a WorkflowDifferencesWidget.
 
template<typename T >
void selectionChangedByExternalWidget (T elementData, bool selected, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection details when the user changes the selected row in a WorkflowDifferencesWidget.
 
template<typename T >
void selectionChangedByTabWidget (T elementData, bool selected, Presentation::WorkspaceTabWidget &sendingWidget, bool notifyDiffWidgets=true, bool notifyTabWidgets=true)
 Propagates selection details when the user changes the selected item in a WorkspaceTabWidget.
 
void selectMissingOperationStandins (const QString &opId, bool selected, const QSet< QString > &pathSet, QList< Presentation::WorkspaceTabWidget * > tabWidgets)
 Attempts to select an appropriate ancestral Workspace inside WorkspaceTabWidgets for an operation where the operation itself may not actually exist. It looks for appropriate ancestral parent Workspaces from id paths gathered from controllers where the operations was found.
 
virtual void setDefaultIgnoreLists ()
 Sets up the default list of items to be ignored when comparing operations.
 
void setProjectName (const QString &projectName)
 
void setTabWorkspaceConnected (TabPair b, bool value)
 Updates the local map that keeps track of which WorkspaceTabWidgets are currently synchronised.
 
void setupColours (Presentation::WorkspaceTabWidget &frame, QLabel &label, int borderWidth, QColor colour) const
 
void setupLogDock (QMenu *menuDocks, QDockWidget *dockLog)
 
void setupUndoActions (QMenu *menuEdit)
 
bool setWorkflowEditorApplication ()
 
void stopOpRunner ()
 
void storeCurrentSelection ()
 stores (in memory) the current graphics selection in the (first registered) WorkspaceTabWidget
 
template<typename T >
void synchroniseTabSelection (T elementData, bool selected, Presentation::WorkspaceTabWidget *sendingWidget=nullptr)
 Propagates selection details when the selected item should be updated WorkspaceTabWidget due to user changing the selection in a different widget.
 
void synchroniseViewportInteractions (QList< TabPair > connectList, QList< TabPair > disconnectList)
 
QMap< TabPair, int > tabPairMap () const
 
void updateDifferenceListSettings ()
 
void updateIovVisibilityPolicy ()
 
bool updateProgressAndCheckForCancellation (int value, const QString &labelText)
 Updates the QProgressWidget.
 
void updateWorkflowDifferencesContext (const QList< WorkflowDifferencesWidget * > &widgets=QList< WorkflowDifferencesWidget * >())
 
const QList< WorkflowDifferencesWidget * > workflowDifferencesWidgets ()
 
const QList< Presentation::WorkspaceTabWidget * > workspaceTabWidgets ()
 
- Protected Attributes inherited from MultipleWorkflowApp
QAction * actionGroupByWorkspace_ {}
 
QAction * actionView_ghost_elements_ {}
 
QString appName_
 
QStringList fileNameFilter_
 
std::unique_ptr< Presentation::FindDialogfindDialog_
 
CSIRO::DataExecution::OperationRunner::unique_ptr opRunner_
 
std::unique_ptr< QProgressDialog > progressDialog_
 
int progressMarker_ {-1}
 
QString projectDirectory_
 
bool projectModified_
 
QString projectName_
 
QString projectSuffix_
 
QSettings qSettings_
 
Presentation::RecentFilesModel recentFilesModel_
 
QScopedPointer< Presentation::RecentFilesMenuViewrecentFilesView_
 
QAction * redoAction_ {}
 
QComboBox * reportingLevelComboBox_ {}
 
QString savedSelectedOp_
 
QString serializedTreeName_
 
QMap< TabPair, int > tabPairMap_
 
QMap< int, bool > tabSynchronisationMap_
 
DataExecution::WorkspacetheWorkspace_
 
QString title_
 
QAction * undoAction_ {}
 
std::unique_ptr< DataExecution::UpdatablesObserverBaseupdatablesMonitor_
 
bool viewsSynchronised_
 
QAction * workspaceIovVisibilityPolicyAction_ {}
 

Detailed Description

Constructor & Destructor Documentation

◆ WorkflowMergeMainWidget()

WorkflowMergeMainWidget ( QWidget *  parent = nullptr)
explicit

◆ ~WorkflowMergeMainWidget()

~WorkflowMergeMainWidget ( )
override

Member Function Documentation

◆ getBaseFile()

QString getBaseFile ( )
Returns
Returns the filename of the base file.

◆ getFile1()

QString getFile1 ( )
Returns
Returns the filename of the workflow1

◆ getFile2()

QString getFile2 ( )
Returns
Returns the filename of the file specified by the workflow2 widget on the UI.

◆ getMergedFile()

QString getMergedFile ( )
Returns
Returns the merged filename.

◆ loadProject()

bool loadProject ( const QString &  projectPath)

◆ on_actionLaunch_external_diff_tool_triggered

void on_actionLaunch_external_diff_tool_triggered ( )
slot

◆ on_actionView_ghost_elements_toggled

void on_actionView_ghost_elements_toggled ( )
overrideslot

◆ onAutoMergeReady

void onAutoMergeReady ( )
slot

◆ onColoursChanged

void onColoursChanged ( const QSet< QString > &  colours)
overrideslot

◆ onFileNewTriggered

void onFileNewTriggered ( )
overrideslot

◆ onFileSelectFilesTriggered

void onFileSelectFilesTriggered ( )
slot

Invoked in response to a request to select files.

◆ onMergeSelectionChanged

void onMergeSelectionChanged ( const QUuid &  id)
slot

◆ onOpenBaseFileInExternalApplication

void onOpenBaseFileInExternalApplication ( )
slot

◆ onOpenBaseFileWithInExternalApplication

void onOpenBaseFileWithInExternalApplication ( )
slot

◆ onOpenFile1InExternalApplication

void onOpenFile1InExternalApplication ( )
slot

◆ onOpenFile1WithInExternalApplication

void onOpenFile1WithInExternalApplication ( )
slot

◆ onOpenFile2InExternalApplication

void onOpenFile2InExternalApplication ( )
slot

◆ onOpenFile2WithInExternalApplication

void onOpenFile2WithInExternalApplication ( )
slot

◆ onOpenMergedFileInExternalApplication

void onOpenMergedFileInExternalApplication ( )
slot

◆ onOpenMergedFileWithInExternalApplication

void onOpenMergedFileWithInExternalApplication ( )
slot

◆ onSaveToFileTriggered

void onSaveToFileTriggered ( )
slot

Invoked in response to a request to compare files.

◆ onSettingsChanged

void onSettingsChanged ( )
overrideslot

◆ onUpdateFilenames

void onUpdateFilenames ( )
slot

◆ onViewMergeBaseDockWidgetToggled

void onViewMergeBaseDockWidgetToggled ( bool  value)
slot

◆ onViewWorkflow1To2DockWidgetToggled

void onViewWorkflow1To2DockWidgetToggled ( bool  value)
slot

◆ onWorkflow12ComparisonDone

void onWorkflow12ComparisonDone ( )
slot

◆ onWorkflowBaseMergedComparisonDone

void onWorkflowBaseMergedComparisonDone ( )
slot

◆ onWorkflowSuccess

void onWorkflowSuccess ( )
overrideslot

◆ saveToFile

void saveToFile ( )
slot

Copies the temporary file to the designated output file

◆ setApplicationColours()

void setApplicationColours ( )

◆ setBaseFile()

void setBaseFile ( const QString &  baseFile)
Parameters
baseFileSets the filename of the base file for the purposes of comparison.

◆ setFile1()

void setFile1 ( const QString &  file1)
Parameters
file1Sets the filename of workflow 1

◆ setFile2()

void setFile2 ( const QString &  file2)
Parameters
file2Sets the filename of workflow 2

◆ setFileLabels()

void setFileLabels ( const QString &  file1Label,
const QString &  file2Label,
const QString &  baseFileLabel,
const QString &  mergedFileLabel 
)
Parameters
file1LabelLabel to display for workflow1
file2LabelLabel to display for workflow2
baseFileLabelto display for the base workflow
mergedFileLabelto display for the output workflow

◆ setFileToolTips()

void setFileToolTips ( const QString &  file1Tip,
const QString &  file2Tip,
const QString &  baseFileTip,
const QString &  mergedFileTip 
)
Parameters
file1TipTooltip to display for workflow1
file2TipTooltip to display for workflow2
baseFileTipTooltip to display for the base workflow
mergedFileTipTooltip to display for the output workflow

◆ setMergedFile()

void setMergedFile ( const QString &  mergedFile)
Parameters
mergedFileFilename of the output merged file