Window structure¶
The AnalysisWindow is comprised of three main widgets and a menu bar.
The widgets use PyQt’s signal and slot mechanism to interact with each other, rather than interacting directly.
Local toolbox¶
Accessed as toolbox
in AnalysisWindow
.
The local toolbox contains all the operations and conversions that are associated with the widget that is currently showing in the display TabWidget. If something changes the channel data, or changes the way that the data is viewed, then it goes in the local toolbox.
Functions in the local toolbox should be grouped into tabs (eg. ‘Conversion’, ‘Peaks’) and then into grouped boxes within a tab (eg. ‘Transfer function conversion options’, ‘Sonogram conversion options’).
Display TabWidget¶
Accessed as display_tabwidget
in AnalysisWindow
.
This is the central widget for the AnalysisWindow, where graphs, data, and results are displayed.
For each section of the analysis window (time domain, sonogram, etc) there is one
QWidget
that is created for display, which is the focal point of that
section.
In general it is simply an InteractivePlotWidget
,
but it can contain other widgets (eg. CircleFitWidget
)
if they are absolutely necessary to smooth operation (such as the results tree in the CircleFitWidget).
The user should not have to jump around between the toolboxes and the display TabWidget to view their results. Operations are kept in the toolboxes; the display TabWidget is for data interaction and visualisation.
Note
Currently no decision has been made about how future modal analysis tools will be added to the DataLogger. Will the Circle Fit tab remain solely for circle fitting or will it become a Modal Analysis tab containing options for circle fitting, RFP fitting, etc?
Global toolbox¶
Accessed as global_toolbox
in AnalysisWindow
.
The global toolbox contains operations that have a universal effect, and are not limited to one specific analysis widget. Examples include interacting with channel selection and metadata, or running addons.
The global toolbox is actually contained within a MasterToolbox
,
global_master_toolbox
to provide an interface
symmetric with the local toolbox. However, the user should never need to interact with the
MasterToolbox, and all of the global functionality should be located in the the
global_toolbox
.