diff --git a/.gitignore b/.gitignore index d012720..516298b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ /QtPMBrowser/release /.qmake.stash ui_*.h -QtPMbrowser.pro.user.459d117 GeneratedFiles/ Makefile moc_* @@ -22,9 +21,9 @@ QtPMbrowser.aps doc/_build/ doc/doxy_html/ QtPMbrowser/release/ -QtPMbrowser/QtPMbrowser.pro.user.e316ca4 -build-QtPMbrowser-Desktop_Qt_5_15_2_clang_64bit-Debug/ -build-QtPMbrowser-Desktop_Qt_5_15_2_clang_64bit-Release/ +.DS_Store +out +QtPMbrowser/.qmake.stash .DS_Store *.pro.user QtPMbrowser/QtPMbrowser.pro.user diff --git a/QtPMbrowser/DlgTreeFilter.ui b/QtPMbrowser/DlgTreeFilter.ui index 171e275..aa034d5 100644 --- a/QtPMbrowser/DlgTreeFilter.ui +++ b/QtPMbrowser/DlgTreeFilter.ui @@ -35,13 +35,20 @@ 10 10 211 - 61 + 71 - Enter filter as Perl-style -regular expression. -".*" selects all. + <html><head/><body><p>Enter filter as Perl-style<br/><a href="https://perldoc.perl.org/perlre"><span style=" text-decoration: underline; color:#0000ff;">regular expression</span></a>.</p><p>&quot;.*&quot; selects all.</p></body></html> + + + false + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + true diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 80f433a..ecd3e96 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -477,7 +477,7 @@ NUM_PROC_THREADS = 1 # normally produced when WARNINGS is set to YES. # The default value is: NO. -EXTRACT_ALL = NO +EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. diff --git a/doc/index.rst b/doc/index.rst index c665e91..9d39e97 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -28,6 +28,7 @@ But even if you do not use :program:`IgorPro`, you might find :program:`PMbrowse usage/new_user_tour usage/menues usage/displayarea + usage/tree-view usage/igor_export_infos @@ -36,8 +37,5 @@ Indices and tables ================== * :ref:`genindex` -* :ref:`search` - - - \ No newline at end of file +.. * :ref:`search` diff --git a/doc/usage/displayarea.rst b/doc/usage/displayarea.rst index cde29c2..63ec48f 100644 --- a/doc/usage/displayarea.rst +++ b/doc/usage/displayarea.rst @@ -31,3 +31,40 @@ context menue ------------- This menue is accessed by right-click (or option click on Macs). It offers a variety of functions. + +Buttons and Checkboxes +---------------------- + +wipe +++++ + +:index:`Clears display `. + +auto +++++ + +Autoscales display. + +v.shrink +++++++++ + +Vertically shrinks display (i.e. increases y-axis range twofold). + +h.shrink +++++++++ + +Horizontally shrinks display (i.e. increases x-axis range twofold). + +.. _overlay-feature-label: + + +Checkbox *autoscale on load* +++++++++++++++++++++++++++++ + +If selected, display will performe autoscale when a new trace is loaded into display. + +Checkbox *overlay* +++++++++++++++++++ + +If selected, traces in persistance buffer of the display will be displayed as background +tarces. diff --git a/doc/usage/igor_export_infos.rst b/doc/usage/igor_export_infos.rst index 75aff0a..4352b22 100644 --- a/doc/usage/igor_export_infos.rst +++ b/doc/usage/igor_export_infos.rst @@ -19,5 +19,5 @@ Additionally, a macro will be included to create graphs for the individual serie is accessible from the *Macro* menue (entry *Display Waves*) within :program:`IgorPro`. You may want to restrict the traces you export using the :ref:`filter-dlg-label` -before invoking :ref:`export-all-visible-traces-label` +before invoking :ref:`Export -> all visible traces ` from the *File* menue. diff --git a/doc/usage/installation.rst b/doc/usage/installation.rst index 03b2077..7b44df2 100644 --- a/doc/usage/installation.rst +++ b/doc/usage/installation.rst @@ -42,7 +42,7 @@ The executable :file:`QtPMbrowser` in :file:`/usr/bin` . Now, start :program:`PMbrowser` with ``QtPMbrowser &``. -direct instalation of the executable +direct installation of the executable ************************************* The executable can be found at the GitHub repository release page: https://github.com/ChrisHal/PMbrowser/releases diff --git a/doc/usage/menues.rst b/doc/usage/menues.rst index 6326302..079a3a7 100644 --- a/doc/usage/menues.rst +++ b/doc/usage/menues.rst @@ -1,8 +1,8 @@ Usage ##### -The Menues -========== +The Menus +========= "File" ****** @@ -11,7 +11,7 @@ The Menues ------ Select a :program:`PATCHMASTER` or :program:`PATCHMASTER NEXT` :file:`.dat` file. (Alternatively, -you can open a file by dragging it onto the :program:`PMbrowser` window. Non-bundled files, which consist +you can open a file by :index:`dragging ` it onto the :program:`PMbrowser` window. Non-bundled files, which consist of a collection of various files, usually :file:`.pul` and :file:`.pgf` and possibly others are also present.) @@ -20,41 +20,52 @@ are also present.) Close currently open file. -'Export Subtree for Igor' -------------------------- - -All traces, that are children of the node currently selected in the **tree-view** are selected for export -as either individual :file:`.ibw`-files or as one packaged experiment file (extension :file:`.pxp`) -which can be read by -:program:`IgorPro`. +'Export...' Submenu +------------------- -The export dialog will appear, which allows you to select paths and filenames as well as several options -that pertain to exports to packed experiment files (see :ref:`export-dlg-label` and -:ref:`igor-export-infos-label` for additional information on exports). +Here you find options to export traces to :program:`IgorPro` and metadata as a table. -This function also available from the context menue of the **tree-view**. .. _export-all-visible-traces-label: -'Export All Visible Traces for Igor' ------------------------------------- +all visible traces +++++++++++++++++++ -Similar to `'Export Subtree for Igor'`_, but all traces that are currently visible (i.e. not hidden) -in the **tree-view** are selected for export. Traces can be hidden either by *filtering* (see -:ref:`filter-menue-label` and :ref:`filter-dlg-label`) or by using the context menue of the **tree-view**. + All traces that are currently visible (i.e. not hidden) + in the **tree-view** are selected for export. Traces can be hidden either by *filtering* (see + :ref:`filter-menue-label` and :ref:`filter-dlg-label`) or by using the context menue of the **tree-view**. + + This function also available from the context menue of the **tree-view**. -'Export All Traces as IBW Files' --------------------------------- +.. _export-children: -Similar to `'Export All Visible Traces for Igor'`_, but all (hidden and visible) traces will be -exported as individual :file:`.ibw`-files. Export to a packed experiment file is not support by -this option. +selected with children +++++++++++++++++++++++ -'Select Parameters' -------------------- + All traces, that are children of the node currently selected in the **tree-view** are selected for export + as either individual :file:`.ibw`-files or as one packaged experiment file (extension :file:`.pxp`) + which can be read by + :program:`IgorPro`. + +The :ref:`export dialog ` will appear, which allows you to select paths and filenames as well as several options +that pertain to exports to packed experiment files (also see :ref:`igor-export-infos-label` for additional information on exports). + +metadata as table ++++++++++++++++++ + +Export :index:`metadata ` as tab-delimited table. +Parameters marked for export (see :ref:`select-params-dlg-label` ) +will be included in export. Additionally to these parameters, the first four columns of the table will contain +the group, series, sweep, and trace counts. + +You can choose per which level of the pulse tree a table row should be +produced. + +Select Parameters +----------------- Opens the :ref:`select-params-dlg-label`. There you can select which parameters from the PatchMaster-file -will be either *printed* to the **text-area** or *exported* in *wave-notes*. +will be either *printed* to the **text-area** or *exported* as *wave-notes* and *tables*. "Edit" @@ -94,7 +105,7 @@ selected **tree-view** item (trace or node) and its parents to the **text-area** 'Auto Scale' ------------ -Set scaling of graph axes to extents of most recently loaded trace. +Set :index:`scaling ` of graph axes to extents of most recently loaded trace. 'Do Autoscale on Load' ---------------------- @@ -109,6 +120,8 @@ Enter *YX mode*. The currently selected trace will be used a *X* reference for subsequent drawing operations. This is especially usefull if you are working with ramp stimuli. +.. _YT-mode: + 'YT mode' --------- @@ -117,7 +130,7 @@ Enter *YT mode*, which is the default mode. *Time* will be used as the abscissa 'Wipe All' ---------- -Clear the :ref:`grapharea-label`. +:index:`Clear ` the :ref:`grapharea-label`. 'Wipe Background Traces' ------------------------ @@ -167,14 +180,17 @@ Checkbox *'create pxp file'*: All waves will be exported into a single packaged After clicking *'OK'*, a file dialog will show up that allows you to select a filename for the file to be created. Checkbox *'create folder structure'*: If you export as a :file:`pxp` file, select this to create datafolders within -the :file:`pxp` file that match the tree structure. +the :file:`pxp` file that match the tree structure. You can choose if the grouping level for traces should be +*group* or *series*. .. _filter-dlg-label: 'Tree-Filter' Dialog ******************** -This dialog allows you to hide nodes and traces of the data-tree that you are not interested in. +This dialog allows you to hide nodes and traces of the data-tree that you are not interested in. It can be accessed from the *Tree* menu +or via the *Filter...* button. + The filtering is based on *perl* style `regular expressions `_. Only elements that match the given expression will remain visible, all other elements will be hidden. @@ -187,17 +203,26 @@ See section :ref:`new-user-filtering-label` from the :ref:`new-user-tour-label` 'Select Parameters' Dialog ************************** -For each of the four tree levels *Group*, *Series*, *Sweep*, and * Trace* you can select which parameters +For each of the four tree levels *Group*, *Series*, *Sweep*, and *Trace* you can select which parameters will be printed into the **text area** when a node is selected in the **tree-view** (checkbox *'print'*) -and / or added to the *wave-note* of exported traces (checkbox *'export'*, cf. section :ref:`igor-export-infos-label`). +and / or added to the *wave-note* of exported traces and exported +as metadata tables (checkbox *'export'*, cf. section :ref:`igor-export-infos-label`). All paramters that might be of relevance should be available. If you miss something, please post a *feature request* on PMbrowser's `issues page `_. +.. _relative-time-info-label: + +Times can represented as :index:`relative times` (*Rel. time*). The time reference for calculation of the relative times +can be set using the context menu of the **tree-view**. By default, the reference time is the start time of the +:file:`dat`-file. + + .. _ranges-dlg-label: 'Setting and Ranges' Dialog *************************** - +Here you can configure the display area: axis ranges, *autoscale on load* and the number of overlay traces to +be kept in the internal display buffer. diff --git a/doc/usage/new_user_tour.rst b/doc/usage/new_user_tour.rst index a5df82e..68260ca 100644 --- a/doc/usage/new_user_tour.rst +++ b/doc/usage/new_user_tour.rst @@ -23,7 +23,7 @@ The Application Window (overview) :align: center :alt: tour step 1 -The application window is divided into three sections, the *tree view*, the *graph area*, and the *text area* (see screenshot). +The application window is divided into three sections, the *tree view*, the *graph area*, and the *text area* (see screenshot [#]_). * The **tree view** represents the tree structure stored in the `dat`-file. *Groups* (or *experiments*, the file format treats both the same), *series* and *sweeps* are represented as nodes, *traces* from the final leaves of the tree. Elements for which a label is stored in the file @@ -38,7 +38,7 @@ The application window is divided into three sections, the *tree view*, the *gra * In the **text area** mainly metadata will be printed according to the element being selected in the *tree view*. - The menuitem ``File`` --> ``Select Parameters...`` calls up a dialog which lets you choose for each + The menuitem ``File`` --> ``Select Parameters...`` calls up the :ref:`select-params-dlg-label` which lets you choose for each level (*group*, *series*, *sweep* and *trace*) which metadata items :program:`PMbrowser` shall print. .. image:: Screenshot_tour_dlg_params.png @@ -119,3 +119,5 @@ In Igor's *Macros* menu you will find the item *Display Waves*. Select this to a **Metadata** will be included in the *wavenotes* of the imported waves. ``File`` --> ``Select Parameters...`` in :program:`PMbrowser` will bring forth a dialog that let's you choose which metadata-items to *export* in the wavenotes. + +.. [#] screenshots may represent older versions of the software and differ somewhat from the current version diff --git a/doc/usage/tree-view.rst b/doc/usage/tree-view.rst new file mode 100644 index 0000000..2c6ab82 --- /dev/null +++ b/doc/usage/tree-view.rst @@ -0,0 +1,104 @@ +.. _tree-view-label: + +Tree-View +######### + +Here, the the pulse tree stored in the :file:`dat` file is displayed. + +When you click on any item, the parameters marked *print* in the :ref:`select-params-dlg-label` +of the selected item are printed to the **text area**. + +If the selected item is a trace, it will be displayed in the :ref:`grapharea-label`. + +Double-clicking on an item while display all traces that are (direct or indirect) children of +this item consecutively the :ref:`grapharea-label`. +(On macOS, because of technical limitations of the platform, all traces will be displayed at +once.) +It is recommended to use this function in conjunction with the *overlay* feature of the +:ref:`Graph Area `. +If *overlay* is disabled, only the last trace will persist in the display. + +context menu +============ + +Right-click (macOS: option click) on an item to open the context menu. + +export subtree +-------------- + +Export all currently displayed (i.e. not :index:`hidden`) child traced to igor. +Opens the dialog :ref:`export-dlg-label`. + +hide subtree +------------ + +:index:`Hide ` selected item and all its children. + +show all children +----------------- + +:index:`Un-hide ` all children of the selected item. + +print all parameters +-------------------- + +Print all parameters, regardless whether they are marked *print* or not, +of the selected item *and all its parents* to the **text area**. + +set as time reference +--------------------- + +Set the time of the selected item as the reference for the calculation of +:ref:`relative time ` parameters. + +amplifier state +--------------- + +This function is only available for *series* items. + +Prints the *amplifier state* recorded for the *series* to the **text area**. + +draw stimuli +------------ + +This function is only available for *series* items. + +Draws the calculated stimuli for all child sweeps in the **display area**. +It is recommended to use this function in conjunction with the *overlay* feature of the +:ref:`Graph Area `. +If *overlay* is disabled, only the last stimulus will persist in the **display area**. + +show stimulus +------------- + +This function is only available for *sweep* items. + +Draws the :index:`stimulus` for the selected *sweep* in the **display area**. + +**Note:** Currently only *const*, *ramp*, and *continous* stimulus segments are supported. Also, +certain time and voltage increment modes are :index:`not supported `. + + +use stim. as x trace +-------------------- + +This function is only available for *sweep* items. + +Sets the display *YX mode*, using the stimulus of the selected *sweep* as X-trace. + +Use :ref:`YT-mode` from *Graph* menu to return to normal display mode. + + +buttons +======= + +Filter... +--------- + +Opens :ref:`filter-dlg-label`. + +undo filter +----------- + +Undo filter by un-hiding all items. +