[med-svn] [SCM] aghermann branch, master, updated. 9c95ea59282c4fc6ef7eb192072500f9d0659fc3
Andrei Zavada
johnhommer at gmail.com
Tue Jan 8 00:24:56 UTC 2013
The following commit has been merged in the master branch:
commit 9c95ea59282c4fc6ef7eb192072500f9d0659fc3
Author: Andrei Zavada <johnhommer at gmail.com>
Date: Tue Jan 8 02:24:14 2013 +0200
mark flat regions as artifacts
diff --git a/ChangeLog b/ChangeLog
index fc3cd99..e6244ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+v.0.8.0 (2013-01-xx)
+ * edfcat: better handling of overshooting signal portions.
+ * phasic events detection groundwork.
+ * Automatically mark flat signal portions as artifacts.
+ * SF: Find dialog now uses band-pass for target frequency
+ matching.
+ *
+
v.0.7.6 (2012-12-20)
* Don't forget to save some .expdesign.conf settings.
* Purge cached profiles on version upgrade.
diff --git a/data/sf.glade b/data/sf.glade
index f28249b..bdcc1bc 100644
--- a/data/sf.glade
+++ b/data/sf.glade
@@ -174,7 +174,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkMenuItem" id="iSFPageDetectArtifacts">
+ <object class="GtkMenuItem" id="iSFPageArtifactsDetect">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Detect...</property>
@@ -182,7 +182,15 @@
</object>
</child>
<child>
- <object class="GtkMenuItem" id="iSFPageClearArtifacts">
+ <object class="GtkMenuItem" id="iSFPageArtifactsMarkFlat">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Mark flat regions...</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="iSFPageArtifactsClear">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Clear all</property>
@@ -818,6 +826,13 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAdjustment" id="jSFSimpleArtifactDetectionMinFlatRegionSize">
+ <property name="lower">0.01</property>
+ <property name="upper">10</property>
+ <property name="value">0.5</property>
+ <property name="step_increment">0.01</property>
+ <property name="page_increment">0.10000000000000001</property>
+ </object>
<object class="GtkListStore" id="mFilterNotchFilter">
<columns>
<!-- column-name type -->
@@ -2658,2175 +2673,769 @@ on individual parameters: <b>a</b> for <i>Envelope</i>,
<action-widget response="-5">button9</action-widget>
</action-widgets>
</object>
- <object class="GtkWindow" id="wScoringFacility">
+ <object class="GtkDialog" id="wSFArtifactDetection">
<property name="can_focus">False</property>
- <property name="title" translatable="yes">Aghermann Scoring Facility</property>
- <property name="window_position">center</property>
- <property name="default_width">1024</property>
- <property name="default_height">500</property>
- <property name="destroy_with_parent">True</property>
- <property name="icon">aghermann.png</property>
- <property name="gravity">south</property>
- <child>
- <object class="GtkVBox" id="vbox11">
- <property name="visible">True</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Artifact Detection</property>
+ <property name="type_hint">dialog</property>
+ <property name="transient_for">wScoringFacility</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox9">
<property name="can_focus">False</property>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow9">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area9">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
<child>
- <object class="GtkViewport" id="viewport5">
+ <object class="GtkButton" id="bSFADCancel">
+ <property name="label">gtk-cancel</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <child>
- <object class="GtkDrawingArea" id="daSFMontage">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK | GDK_SCROLL_MASK</property>
- </object>
- </child>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFADPreview">
+ <property name="label" translatable="yes">Preview</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bSFADApply">
+ <property name="label">gtk-apply</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
+ <property name="expand">False</property>
<property name="fill">True</property>
+ <property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkExpander" id="cSFHypnogram">
+ <object class="GtkGrid" id="grid4">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="expanded">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">10</property>
+ <property name="orientation">vertical</property>
+ <property name="row_spacing">5</property>
<child>
- <object class="GtkDrawingArea" id="daSFHypnogram">
+ <object class="GtkLabel" id="lSFADInfo">
<property name="visible">True</property>
- <property name="app_paintable">True</property>
<property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">fafa</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ <attribute name="scale" value="1.1000000000000001"/>
+ </attributes>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
</child>
- <child type="label">
- <object class="GtkLabel" id="cHypnogram">
+ <child>
+ <object class="GtkSeparator" id="separator12">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes"><b>_Hypnogram</b></property>
- <property name="use_markup">True</property>
- <property name="use_underline">True</property>
</object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">7</property>
+ <property name="height">1</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="cSFControlBar">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">2</property>
<child>
- <object class="GtkLabel" id="lSFHint">
+ <object class="GtkLabel" id="label21">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="label" translatable="yes"><i>hint</i></property>
- <property name="use_markup">True</property>
- <property name="angle">90</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Granularity:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="padding">3</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkMenuToolButton" id="bSFAccept">
+ <object class="GtkSpinButton" id="eSFADScope">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="adjustment">jSFADScope</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label22">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="label">Score</property>
- <property name="use_underline">True</property>
- <property name="stock_id">gtk-apply</property>
- <accelerator key="Return" signal="clicked" modifiers="GDK_MOD1_MASK"/>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">sec</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid3">
+ <object class="GtkSeparator" id="separator15">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">center</property>
- <child>
- <object class="GtkButton" id="bSFBack">
- <property name="label" translatable="yes">◀</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Previous page (<b>b</b>)</property>
- <property name="tooltip_text" translatable="yes">Previous page (b)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="b" signal="activate"/>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label205">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">_Page</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">eSFCurrentPage</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFCurrentPage">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="receives_default">True</property>
- <property name="valign">center</property>
- <property name="max_length">7</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="primary_icon_activatable">False</property>
- <property name="secondary_icon_activatable">False</property>
- <property name="adjustment">jPageNo</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="lSFTotalPages">
- <property name="width_request">70</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="xalign">0</property>
- <property name="xpad">3</property>
- <property name="label" translatable="yes">of</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bSFForward">
- <property name="label" translatable="yes">▶</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Next page (<b>space</b>)</property>
- <property name="tooltip_text" translatable="yes">Next page (space)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="space" signal="activate"/>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label11">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Page size:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="eSFPageSize">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="add_tearoffs">True</property>
- <property name="focus_on_click">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="eSFCurrentPos">
- <property name="label" translatable="yes">--:--:--</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <property name="focus_on_click">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">5</property>
- <property name="height">1</property>
- </packing>
- </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSeparator" id="separator5">
+ <object class="GtkLabel" id="label14">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="margin_top">8</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Derivation of continuity/noise metrics</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">4</property>
- <property name="position">4</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkLabel" id="label40">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkBox" id="cSFScoringModeContainer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">2</property>
- <child>
- <object class="GtkButton" id="bScoreGotoPrevUnscored">
- <property name="label" translatable="yes">◁</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Previous unscored (<b>N</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="n" signal="activate" modifiers="GDK_SHIFT_MASK"/>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="bScoreGotoNextUnscored">
- <property name="label" translatable="yes">▷</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Next unscored (<b>n</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="n" signal="activate"/>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bScoreGotoPrevArtifact">
- <property name="label" translatable="yes">⤝</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Previous artifact-containing page (<b>[</b>)</property>
- <property name="valign">center</property>
- <property name="margin_left">5</property>
- <property name="focus_on_click">False</property>
- <accelerator key="bracketleft" signal="activate"/>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bScoreGotoNextArtifact">
- <property name="label" translatable="yes">⤞</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Next artifact-containing page (<b>]</b>)</property>
- <property name="valign">center</property>
- <property name="margin_right">5</property>
- <property name="focus_on_click">False</property>
- <accelerator key="bracketright" signal="activate"/>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkButton" id="bScoreNREM1">
- <property name="label" translatable="yes">➊</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">NREM Stage 1 (<b>a</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="a" signal="clicked"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bScoreNREM2">
- <property name="label" translatable="yes">➋</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">NREM Stage 2 (<b>s</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="s" signal="activate"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bScoreNREM3">
- <property name="label" translatable="yes">➌</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">NREM Stage 3 (<b>d</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="d" signal="activate"/>
+ <property name="margin_top">8</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Artifact criteria</property>
+ <attributes>
+ <attribute name="style" value="italic"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">3</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Upper threshold:</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFADUpperThr">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADUpperThr</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">5</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label25">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">6</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label24">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Lower threshold:</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFADLowerThr">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADLowerThr</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">5</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label26">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="eSFADEstimateE">
+ <property name="label" translatable="yes">Estimate E</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">5</property>
+ <property name="top_attach">7</property>
+ <property name="width">2</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator16">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkGrid" id="cSFADWhenEstimateEOn">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="label35">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Smooth:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">6</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bScoreNREM4">
- <property name="label" translatable="yes">➍</property>
+ <object class="GtkSpinButton" id="eSFADSmoothSide">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">NREM Stage 4 (<b>f</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="f" signal="activate"/>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADSmoothSide</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">7</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bScoreREM">
- <property name="label" translatable="yes">ℝ</property>
+ <object class="GtkLabel" id="label36">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">REM (<b>r</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="r" signal="activate"/>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">9</property>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bScoreWake">
- <property name="label" translatable="yes">☺</property>
+ <object class="GtkSpinButton" id="eSFADHistRangeMin">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Wake (<b>w</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="w" signal="activate"/>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADHistRangeMin</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">10</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bScoreClear">
- <property name="label" translatable="yes">⌫</property>
+ <object class="GtkSpinButton" id="eSFADHistRangeMax">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Clear (<b>q</b>)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="q" signal="activate"/>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADHistRangeMax</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">10</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkTable" id="cSFSleepStageStats">
+ <object class="GtkLabel" id="label38">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="margin_left">10</property>
- <property name="margin_right">10</property>
- <property name="n_rows">2</property>
- <property name="n_columns">5</property>
- <property name="column_spacing">4</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkLabel" id="label202">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes"><small>NREM</small></property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label203">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes"><small>REM</small></property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label204">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes"><small>Wake</small></property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="right_attach">5</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="lScoreStatsNREMPercent">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">%%</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="lScoreStatsREMPercent">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">%%</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="lScoreStatsWakePercent">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">%%</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">4</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="lSFPercentScored">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">percent scored</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="right_attach">5</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
- </packing>
- </child>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Histogram bins:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">11</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSeparator" id="separator6">
+ <object class="GtkSpinButton" id="eSFADHistBins">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADHistBins</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">12</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="grid2">
+ <object class="GtkLabel" id="label39">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="hexpand">True</property>
- <property name="row_spacing">2</property>
- <child>
- <object class="GtkLabel" id="lSFOverChannel">
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="hexpand">True</property>
- <property name="xalign">0</property>
- <attributes>
- <attribute name="scale" value="0.69999999999999996"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkStatusbar" id="sbSF">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">end</property>
- <property name="hexpand">True</property>
- <property name="spacing">2</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">to</property>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">14</property>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bSFRunICA">
- <property name="label" translatable="yes">I_CA</property>
+ <object class="GtkRadioButton" id="eSFADUseThisRange">
+ <property name="label" translatable="yes">Use this range:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="valign">center</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">14</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSeparator" id="separator4">
+ <object class="GtkRadioButton" id="eSFADUseComputedRange">
+ <property name="label" translatable="yes">Compute range</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">eSFADUseThisRange</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">3</property>
- <property name="pack_type">end</property>
- <property name="position">15</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkToggleButton" id="bSFShowPhaseDiffDialog">
- <property name="label" translatable="yes">Δφ</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Interchannel signal shift (<b>F4</b>)</property>
- <property name="tooltip_text" translatable="yes">Interchannel signal shift (F4)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="F4" signal="activate"/>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="cSFADWhenEstimateEOff">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <child>
+ <object class="GtkSpinButton" id="eSFADEValue">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADEvalue</property>
+ <property name="digits">2</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">17</property>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkToggleButton" id="bSFShowFindDialog">
- <property name="label" translatable="yes">_Find</property>
+ <object class="GtkLabel" id="label37">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Find/manage patterns (<b>F3</b>)</property>
- <property name="tooltip_text" translatable="yes">Find/manage patterns (F3)</property>
- <property name="valign">center</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- <accelerator key="F3" signal="activate"/>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Specify:</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">17</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkToggleButton" id="bSFDrawCrosshair">
- <property name="label" translatable="yes">†</property>
+ <object class="GtkLabel" id="label41">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Crosshair (<b>F1</b>)</property>
- <property name="tooltip_text" translatable="yes">Crosshair (F1)</property>
- <property name="valign">center</property>
- <property name="focus_on_click">False</property>
- <accelerator key="F1" signal="activate"/>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">18</property>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">8</property>
+ <property name="width">3</property>
+ <property name="height">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTable" id="table3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="n_rows">5</property>
+ <property name="n_columns">3</property>
+ <property name="row_spacing">10</property>
+ <child>
+ <placeholder/>
+ </child>
<child>
- <object class="GtkBox" id="cSFICAModeContainer">
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label33">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
- <child>
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes"># of ICs:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICANofICs">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICANofICs</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">0</property>
- <property name="yalign">1</property>
- <property name="label" translatable="yes">Keep eigenv:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box10">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkSpinButton" id="eSFICAEigVecFirst">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAEigVecFirst</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">..</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAEigVecLast">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAEigVecLast</property>
- <property name="snap_to_ticks">True</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">% samples:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICASampleSizePercent">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Percentage of (random) samples to use</property>
- <property name="tooltip_text" translatable="yes">Percentage of (random) samples to use</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICASampleSizePercent</property>
- <property name="digits">1</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label6">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Max iters:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAMaxIterations">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Maximum number of iterations</property>
- <property name="tooltip_text" translatable="yes">Maximum number of iterations</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAMaxIterations</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="l5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="xpad">1</property>
- <property name="label" translatable="yes">𝜀</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAepsilon">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Stopping criterion</property>
- <property name="tooltip_text" translatable="yes">Stopping criterion</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAepsilon</property>
- <property name="digits">5</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="l4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="xpad">1</property>
- <property name="label" translatable="yes">𝜇</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAmu">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">Step size: if other than 1, then use
-the stabilized version of the algorithm</property>
- <property name="tooltip_text" translatable="yes">Step size: if other than 1, then use
-the stabilized version of the algorithm</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAmu</property>
- <property name="digits">2</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="eSFICAStabilizationMode">
- <property name="label" translatable="yes">Stabilize</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">If 'on', then the value of 𝜇 can momentarily be
-halved if the program senses that the algorithm
-is stuck between two points. Also if there is no
-convergence before half of the maximum number
-of iterations has been reached then 𝜇 will be halved
-for the rest of the rounds.</property>
- <property name="tooltip_text" translatable="yes">If 'on', then the value of 𝜇 can momentarily be
-halved if the program senses that the algorithm
-is stuck between two points. Also if there is no
-convergence before half of the maximum number
-of iterations has been reached then 𝜇 will be halved
-for the rest of the rounds.</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="margin_left">7</property>
- <property name="margin_right">10</property>
- <property name="relief">none</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="eSFICAFineTune">
- <property name="label" translatable="yes">Finetune</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="halign">start</property>
- <property name="valign">center</property>
- <property name="margin_left">7</property>
- <property name="margin_right">10</property>
- <property name="relief">none</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">10</property>
- <property name="margin_right">2</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Approach:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="eSFICAApproach">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes"><b>SYMM:</b> estimate all the independent component in parallel;
-<b>DEFL:</b> estimate independent component one-by-one like in projection pursuit.</property>
- <property name="valign">start</property>
- <property name="margin_right">10</property>
- <property name="model">mSFICAApproach</property>
- <property name="active">0</property>
- <property name="id_column">0</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="l1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">10</property>
- <property name="margin_right">3</property>
- <property name="label" translatable="yes">Nonlinearity:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="eSFICANonlinearity">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">pow3: 𝑔(𝑢) = 𝑢3
-tanh: 𝑔(𝑢) = tanh(𝑎₁𝑢)
-gauss: 𝑔(𝑢) = 𝑢 exp(−𝑎₂𝑢2/2)
-skew: 𝑔(𝑢) = 𝑢2</property>
- <property name="tooltip_text" translatable="yes">pow3: 𝑔(𝑢) = 𝑢3
-tanh: 𝑔(𝑢) = tanh(𝑎₁𝑢)
-gauss: 𝑔(𝑢) = 𝑢 exp(−𝑎₂𝑢2/2)
-skew: 𝑔(𝑢) = 𝑢2</property>
- <property name="valign">start</property>
- <property name="margin_right">10</property>
- <property name="model">mSFICANonlinearity</property>
- <property name="active">0</property>
- <property name="has_frame">False</property>
- <property name="entry_text_column">0</property>
- </object>
- <packing>
- <property name="left_attach">7</property>
- <property name="top_attach">2</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="l3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">10</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">𝑎₁</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">7</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="l2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="margin_left">10</property>
- <property name="margin_right">2</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">𝑎₂</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="left_attach">7</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAa1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">(applies when Nonlinearity is 'tanh')</property>
- <property name="tooltip_text" translatable="yes">(applies when Nonlinearity is 'tanh')</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAa1</property>
- <property name="digits">2</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">8</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFICAa2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes">(applies when Nonlinearity is 'gauss')</property>
- <property name="tooltip_text" translatable="yes">(applies when Nonlinearity is 'gauss')</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
- <property name="margin_right">10</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFICAa2</property>
- <property name="digits">2</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="left_attach">8</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bSFICATry">
- <property name="label" translatable="yes">_Compute ICs</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="valign">center</property>
- <property name="use_underline">True</property>
- <property name="focus_on_click">False</property>
- </object>
- <packing>
- <property name="left_attach">11</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleButton" id="bSFICAPreview">
- <property name="label" translatable="yes">Previe_w</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="valign">center</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="left_attach">11</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="halign">start</property>
- <property name="margin_left">5</property>
- <property name="margin_right">5</property>
- <property name="label" translatable="yes"><small>More on <a href="http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb">ICA</a> and <a href="http://itpp.sourceforge.net/current/classitpp_1_1Fast__ICA.html">FastICA</a></small></property>
- <property name="use_markup">True</property>
- <property name="wrap">True</property>
- </object>
- <packing>
- <property name="left_attach">9</property>
- <property name="top_attach">2</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="valign">end</property>
- <property name="margin_left">5</property>
- <property name="margin_right">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Remix mode:</property>
- <attributes>
- <attribute name="scale" value="0.80000000000000004"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">9</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="eSFICARemixMode">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="has_tooltip">True</property>
- <property name="tooltip_markup" translatable="yes"><b>Map</b> each IC to one source channel, or
-<b>Punch</b> ICs out and remix</property>
- <property name="valign">start</property>
- <property name="margin_left">5</property>
- <property name="margin_right">5</property>
- <property name="model">mSFICARemixMode</property>
- <property name="active">0</property>
- <property name="has_frame">False</property>
- <property name="entry_text_column">0</property>
- </object>
- <packing>
- <property name="left_attach">9</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleButton" id="bSFICAShowMatrix">
- <property name="label" translatable="yes">Mx</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="tooltip_markup" translatable="yes">Show separating matrix</property>
- <property name="valign">center</property>
- </object>
- <packing>
- <property name="left_attach">10</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">5</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkButton" id="bSFICAApply">
- <property name="label" translatable="yes">_Apply</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="valign">center</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bSFICACancel">
- <property name="label" translatable="yes">Cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="valign">end</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">3</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">3</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <object class="GtkDialog" id="wSFArtifactDetection">
- <property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="title" translatable="yes">Artifact Detection</property>
- <property name="type_hint">dialog</property>
- <property name="transient_for">wScoringFacility</property>
- <child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox9">
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area9">
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="bSFADCancel">
- <property name="label">gtk-cancel</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkToggleButton" id="bSFADPreview">
- <property name="label" translatable="yes">Preview</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="bSFADApply">
- <property name="label">gtk-apply</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="use_stock">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="grid4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">10</property>
- <property name="orientation">vertical</property>
- <property name="row_spacing">5</property>
- <child>
- <object class="GtkLabel" id="lSFADInfo">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">fafa</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- <attribute name="scale" value="1.1000000000000001"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator12">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">7</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label21">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Granularity:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADScope">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="shadow_type">none</property>
- <property name="overwrite_mode">True</property>
- <property name="adjustment">jSFADScope</property>
- <property name="digits">1</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label22">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">sec</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator15">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">8</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Derivation of continuity/noise metrics</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label40">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">8</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Artifact criteria</property>
- <attributes>
- <attribute name="style" value="italic"/>
- </attributes>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">3</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator14">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">4</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label23">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Upper threshold:</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">5</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADUpperThr">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="shadow_type">none</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADUpperThr</property>
- <property name="digits">1</property>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="top_attach">5</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label25">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="top_attach">5</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label24">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Lower threshold:</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">6</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADLowerThr">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="shadow_type">none</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADLowerThr</property>
- <property name="digits">1</property>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="top_attach">6</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label26">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">6</property>
- <property name="top_attach">6</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="eSFADEstimateE">
- <property name="label" translatable="yes">Estimate E</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">5</property>
- <property name="top_attach">7</property>
- <property name="width">2</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator16">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">10</property>
- <property name="margin_right">10</property>
- <property name="orientation">vertical</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">9</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">MC Gain:</property>
+ </object>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
<child>
- <object class="GtkGrid" id="cSFADWhenEstimateEOn">
+ <object class="GtkSpinButton" id="eSFADMCGain">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADMCGain</property>
+ <property name="digits">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label28">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <child>
- <object class="GtkLabel" id="label35">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Smooth:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADSmoothSide">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADSmoothSide</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label36">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADHistRangeMin">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADHistRangeMin</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADHistRangeMax">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADHistRangeMax</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label38">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Histogram bins:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFADHistBins">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADHistBins</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label39">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">to</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="eSFADUseThisRange">
- <property name="label" translatable="yes">Use this range:</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="eSFADUseComputedRange">
- <property name="label" translatable="yes">Compute range</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="draw_indicator">True</property>
- <property name="group">eSFADUseThisRange</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">F<sub>0</sub>:</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFADF0">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADF0</property>
+ <property name="digits">2</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
</packing>
</child>
<child>
- <object class="GtkGrid" id="cSFADWhenEstimateEOff">
+ <object class="GtkLabel" id="label27">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <child>
- <object class="GtkSpinButton" id="eSFADEValue">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADEvalue</property>
- <property name="digits">2</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label37">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Specify:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label41">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Hz</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
</packing>
</child>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">8</property>
- <property name="width">3</property>
- <property name="height">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkTable" id="table3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="n_rows">5</property>
- <property name="n_columns">3</property>
- <property name="row_spacing">10</property>
<child>
- <placeholder/>
+ <object class="GtkLabel" id="label29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">F<sub>cutoff</sub>:</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
</child>
<child>
- <placeholder/>
+ <object class="GtkSpinButton" id="eSFADFc">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADFc</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
</child>
<child>
- <object class="GtkLabel" id="label33">
+ <object class="GtkLabel" id="label30">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_right">5</property>
<property name="xalign">1</property>
- <property name="label" translatable="yes">MC Gain:</property>
+ <property name="label" translatable="yes">Bandwidth:</property>
</object>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="eSFADMCGain">
+ <object class="GtkLabel" id="label32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Hz</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label31">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Hz</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFADBandwidth">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_frame">False</property>
@@ -4835,388 +3444,629 @@ skew: 𝑔(𝑢) = 𝑢2</property>
<property name="shadow_type">none</property>
<property name="overwrite_mode">True</property>
<property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADMCGain</property>
- <property name="digits">1</property>
+ <property name="adjustment">jSFADBandwidth</property>
+ <property name="digits">2</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label28">
+ <object class="GtkLabel" id="label34">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_right">5</property>
<property name="xalign">1</property>
- <property name="label" translatable="yes">F<sub>0</sub>:</property>
- <property name="use_markup">True</property>
+ <property name="label" translatable="yes">Back-polate factor:</property>
+ </object>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFADBackpolate">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="shadow_type">none</property>
+ <property name="overwrite_mode">True</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFADBackpolate</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ <property name="width">3</property>
+ <property name="height">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">5</property>
+ <property name="margin_bottom">5</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">14</property>
+ <property name="width">7</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="eSFADSingleChannelPreview">
+ <property name="label" translatable="yes">Hide other channels in preview</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">13</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">12</property>
+ <property name="width">7</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkButton" id="bSFADProfileDelete">
+ <property name="label" translatable="yes">Delete</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <object class="GtkSpinButton" id="eSFADF0">
+ <object class="GtkButton" id="bSFADProfileSave">
+ <property name="label" translatable="yes">Save</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="shadow_type">none</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADF0</property>
- <property name="digits">2</property>
+ <property name="receives_default">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label27">
+ <object class="GtkComboBox" id="eSFADProfiles">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Hz</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">2</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">0</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lSFADDirtyPercent">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">13</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">bSFADCancel</action-widget>
+ <action-widget response="-1">bSFADPreview</action-widget>
+ <action-widget response="-5">bSFADApply</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkDialog" id="wSFICAMatrix">
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Matrix</property>
+ <property name="resizable">False</property>
+ <property name="window_position">mouse</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="decorated">False</property>
+ <property name="gravity">north-east</property>
+ <property name="transient_for">wScoringFacility</property>
+ <signal name="close" handler="gtk_widget_hide_on_delete" swapped="no"/>
+ <signal name="response" handler="gtk_widget_hide_on_delete" swapped="no"/>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox8">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area8">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkButton" id="button7">
+ <property name="label" translatable="yes">_Dismiss</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ <property name="focus_on_click">False</property>
+ <signal name="clicked" handler="gtk_widget_hide" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="label13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Separating matrix</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTextView" id="tSFICAMatrix">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="pixels_above_lines">5</property>
+ <property name="pixels_below_lines">5</property>
+ <property name="editable">False</property>
+ <property name="left_margin">6</property>
+ <property name="right_margin">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-1">button7</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkWindow" id="wSFPD">
+ <property name="can_focus">False</property>
+ <property name="border_width">10</property>
+ <property name="title" translatable="yes">Inter-channel lag</property>
+ <property name="window_position">center-on-parent</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
+ <child>
+ <object class="GtkTable" id="table28">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkVBox" id="vbox10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkHBox" id="hbox8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
<child>
- <object class="GtkLabel" id="label29">
+ <object class="GtkLabel" id="label196">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_right">5</property>
<property name="xalign">1</property>
- <property name="label" translatable="yes">F<sub>cutoff</sub>:</property>
- <property name="use_markup">True</property>
+ <property name="xpad">5</property>
+ <property name="label" translatable="yes">Between channels</property>
</object>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="eSFADFc">
+ <object class="GtkComboBox" id="eSFPDChannelA">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="xalign">1</property>
- <property name="shadow_type">none</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADFc</property>
- <property name="digits">2</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label30">
+ <object class="GtkLabel" id="label197">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Bandwidth:</property>
+ <property name="xpad">5</property>
+ <property name="label" translatable="yes">and</property>
</object>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label32">
+ <object class="GtkComboBox" id="eSFPDChannelB">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Hz</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label31">
+ <object class="GtkLabel" id="label198">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_left">5</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Hz</property>
+ <property name="xalign">1</property>
+ <property name="xpad">5</property>
+ <property name="label" translatable="yes"> in range from</property>
</object>
<packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="eSFADBandwidth">
+ <object class="GtkSpinButton" id="eSFPDFreqFrom">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_frame">False</property>
<property name="invisible_char">•</property>
+ <property name="activates_default">True</property>
<property name="xalign">1</property>
- <property name="shadow_type">none</property>
<property name="overwrite_mode">True</property>
<property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADBandwidth</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">jPhaseDiffFrom</property>
<property name="digits">2</property>
+ <property name="numeric">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="label34">
+ <object class="GtkLabel" id="label199">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_right">5</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes">Back-polate factor:</property>
+ <property name="xpad">3</property>
+ <property name="label" translatable="yes">, </property>
</object>
<packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="eSFADBackpolate">
+ <object class="GtkSpinButton" id="eSFPDBandwidth">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_frame">False</property>
<property name="invisible_char">•</property>
+ <property name="activates_default">True</property>
<property name="xalign">1</property>
- <property name="shadow_type">none</property>
<property name="overwrite_mode">True</property>
<property name="invisible_char_set">True</property>
- <property name="adjustment">jSFADBackpolate</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">jPhaseDiffBandwidth</property>
<property name="digits">2</property>
+ <property name="numeric">True</property>
</object>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
</packing>
</child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">5</property>
- <property name="width">3</property>
- <property name="height">7</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator20">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_top">5</property>
- <property name="margin_bottom">5</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">14</property>
- <property name="width">7</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="eSFADSingleChannelPreview">
- <property name="label" translatable="yes">Hide other channels in preview</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="xalign">0</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">13</property>
- <property name="width">3</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">12</property>
- <property name="width">7</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="box8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">3</property>
<child>
- <object class="GtkButton" id="bSFADProfileDelete">
- <property name="label" translatable="yes">Delete</property>
+ <object class="GtkLabel" id="label200">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">5</property>
+ <property name="label" translatable="yes">Hz wide</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
+ <property name="position">8</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="bSFADProfileSave">
- <property name="label" translatable="yes">Save</property>
+ <object class="GtkLabel" id="label201">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can_focus">False</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">1</property>
+ <property name="position">9</property>
</packing>
</child>
<child>
- <object class="GtkComboBox" id="eSFADProfiles">
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkScaleButton" id="eSFPDSmooth">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <property name="focus_on_click">False</property>
+ <property name="adjustment">jSFPDSmooth</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
+ <property name="position">11</property>
</packing>
</child>
</object>
<packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
- <property name="width">3</property>
- <property name="height">1</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="lSFADDirtyPercent">
+ <object class="GtkSeparator" id="separator17">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
</object>
<packing>
- <property name="left_attach">0</property>
- <property name="top_attach">13</property>
- <property name="width">1</property>
- <property name="height">1</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
+ <object class="GtkViewport" id="viewport4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="resize_mode">queue</property>
+ <child>
+ <object class="GtkDrawingArea" id="daSFPD">
+ <property name="width_request">600</property>
+ <property name="height_request">120</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_STRUCTURE_MASK | GDK_SCROLL_MASK</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="-6">bSFADCancel</action-widget>
- <action-widget response="-1">bSFADPreview</action-widget>
- <action-widget response="-5">bSFADApply</action-widget>
- </action-widgets>
+ </object>
+ </child>
</object>
- <object class="GtkDialog" id="wSFICAMatrix">
+ <object class="GtkDialog" id="wSFSimpleArtifactDetectionParams">
+ <property name="width_request">200</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
- <property name="title" translatable="yes">Matrix</property>
- <property name="resizable">False</property>
- <property name="window_position">mouse</property>
+ <property name="title" translatable="yes">Flat regions as artifacts</property>
+ <property name="modal">True</property>
+ <property name="window_position">center-on-parent</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_taskbar_hint">True</property>
- <property name="skip_pager_hint">True</property>
- <property name="decorated">False</property>
- <property name="gravity">north-east</property>
- <property name="transient_for">wScoringFacility</property>
+ <property name="transient_for">wPattern</property>
<signal name="close" handler="gtk_widget_hide_on_delete" swapped="no"/>
<signal name="response" handler="gtk_widget_hide_on_delete" swapped="no"/>
<child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox8">
+ <object class="GtkBox" id="dialog-vbox15">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
+ <child>
+ <object class="GtkLabel" id="label47">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Minimal flat region size, sec:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">eSFSimpleArtifactDetectionMinFlatRegionSize</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFSimpleArtifactDetectionMinFlatRegionSize">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="adjustment">jSFSimpleArtifactDetectionMinFlatRegionSize</property>
+ <property name="digits">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area8">
+ <object class="GtkButtonBox" id="dialog-action_area15">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
- <placeholder/>
+ <object class="GtkButton" id="button10">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ <property name="focus_on_click">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
</child>
<child>
- <object class="GtkButton" id="button7">
- <property name="label" translatable="yes">_Dismiss</property>
+ <object class="GtkButton" id="button11">
+ <property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
<property name="receives_default">True</property>
- <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
<property name="focus_on_click">False</property>
- <signal name="clicked" handler="gtk_widget_hide" swapped="no"/>
+ <accelerator key="Return" signal="activate"/>
</object>
<packing>
<property name="expand">False</property>
- <property name="fill">True</property>
+ <property name="fill">False</property>
<property name="position">1</property>
- <property name="secondary">True</property>
</packing>
</child>
</object>
@@ -5224,94 +4074,801 @@ skew: 𝑔(𝑢) = 𝑢2</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button10</action-widget>
+ <action-widget response="-5">button11</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkWindow" id="wScoringFacility">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Aghermann Scoring Facility</property>
+ <property name="window_position">center</property>
+ <property name="default_width">1024</property>
+ <property name="default_height">500</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="icon">aghermann.png</property>
+ <property name="gravity">south</property>
+ <child>
+ <object class="GtkVBox" id="vbox11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow9">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkViewport" id="viewport5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="resize_mode">queue</property>
+ <child>
+ <object class="GtkDrawingArea" id="daSFMontage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK | GDK_SCROLL_MASK</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="box4">
+ <object class="GtkExpander" id="cSFHypnogram">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="expanded">True</property>
+ <child>
+ <object class="GtkDrawingArea" id="daSFHypnogram">
+ <property name="visible">True</property>
+ <property name="app_paintable">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON1_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="cHypnogram">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes"><b>_Hypnogram</b></property>
+ <property name="use_markup">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="cSFControlBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
- <property name="orientation">vertical</property>
+ <property name="border_width">2</property>
<child>
- <object class="GtkLabel" id="label13">
+ <object class="GtkLabel" id="lSFHint">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Separating matrix</property>
+ <property name="valign">center</property>
+ <property name="label" translatable="yes"><i>hint</i></property>
+ <property name="use_markup">True</property>
+ <property name="angle">90</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">3</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkMenuToolButton" id="bSFAccept">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="label">Score</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-apply</property>
+ <accelerator key="Return" signal="clicked" modifiers="GDK_MOD1_MASK"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkButton" id="bSFBack">
+ <property name="label" translatable="yes">◀</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Previous page (<b>b</b>)</property>
+ <property name="tooltip_text" translatable="yes">Previous page (b)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="b" signal="activate"/>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label205">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">_Page</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">eSFCurrentPage</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFCurrentPage">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="max_length">7</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="adjustment">jPageNo</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lSFTotalPages">
+ <property name="width_request">70</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="xalign">0</property>
+ <property name="xpad">3</property>
+ <property name="label" translatable="yes">of</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bSFForward">
+ <property name="label" translatable="yes">▶</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Next page (<b>space</b>)</property>
+ <property name="tooltip_text" translatable="yes">Next page (space)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="space" signal="activate"/>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="label11">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Page size:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="eSFPageSize">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="add_tearoffs">True</property>
+ <property name="focus_on_click">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="eSFCurrentPos">
+ <property name="label" translatable="yes">--:--:--</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="relief">none</property>
+ <property name="focus_on_click">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">5</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkSeparator" id="separator11">
+ <object class="GtkSeparator" id="separator5">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkTextView" id="tSFICAMatrix">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="pixels_above_lines">5</property>
- <property name="pixels_below_lines">5</property>
- <property name="editable">False</property>
- <property name="left_margin">6</property>
- <property name="right_margin">6</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
+ <property name="padding">4</property>
+ <property name="position">4</property>
</packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- <action-widgets>
- <action-widget response="-1">button7</action-widget>
- </action-widgets>
- </object>
- <object class="GtkWindow" id="wSFPD">
- <property name="can_focus">False</property>
- <property name="border_width">10</property>
- <property name="title" translatable="yes">Inter-channel lag</property>
- <property name="window_position">center-on-parent</property>
- <signal name="delete-event" handler="gtk_widget_hide_on_delete" swapped="no"/>
- <child>
- <object class="GtkTable" id="table28">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child>
- <object class="GtkVBox" id="vbox10">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<child>
- <object class="GtkHBox" id="hbox8">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="border_width">5</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
<child>
- <object class="GtkLabel" id="label196">
+ <object class="GtkBox" id="cSFScoringModeContainer">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="xpad">5</property>
- <property name="label" translatable="yes">Between channels</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkTable" id="table2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <child>
+ <object class="GtkButton" id="bScoreGotoPrevUnscored">
+ <property name="label" translatable="yes">◁</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Previous unscored (<b>N</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="n" signal="activate" modifiers="GDK_SHIFT_MASK"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreGotoNextUnscored">
+ <property name="label" translatable="yes">▷</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Next unscored (<b>n</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="n" signal="activate"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreGotoPrevArtifact">
+ <property name="label" translatable="yes">⤝</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Previous artifact-containing page (<b>[</b>)</property>
+ <property name="valign">center</property>
+ <property name="margin_left">5</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="bracketleft" signal="activate"/>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreGotoNextArtifact">
+ <property name="label" translatable="yes">⤞</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Next artifact-containing page (<b>]</b>)</property>
+ <property name="valign">center</property>
+ <property name="margin_right">5</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="bracketright" signal="activate"/>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreNREM1">
+ <property name="label" translatable="yes">➊</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">NREM Stage 1 (<b>a</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="a" signal="clicked"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreNREM2">
+ <property name="label" translatable="yes">➋</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">NREM Stage 2 (<b>s</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="s" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreNREM3">
+ <property name="label" translatable="yes">➌</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">NREM Stage 3 (<b>d</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="d" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreNREM4">
+ <property name="label" translatable="yes">➍</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">NREM Stage 4 (<b>f</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="f" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreREM">
+ <property name="label" translatable="yes">ℝ</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">REM (<b>r</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="r" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreWake">
+ <property name="label" translatable="yes">☺</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Wake (<b>w</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="w" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">10</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bScoreClear">
+ <property name="label" translatable="yes">⌫</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Clear (<b>q</b>)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="q" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">10</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTable" id="cSFSleepStageStats">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">10</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">5</property>
+ <property name="column_spacing">4</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label202">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><small>NREM</small></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label203">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><small>REM</small></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label204">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><small>Wake</small></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="right_attach">5</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lScoreStatsNREMPercent">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">%%</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lScoreStatsREMPercent">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">%%</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lScoreStatsWakePercent">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">%%</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="right_attach">4</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lSFPercentScored">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">percent scored</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="right_attach">5</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">11</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">12</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="hexpand">True</property>
+ <property name="row_spacing">2</property>
+ <child>
+ <object class="GtkLabel" id="lSFOverChannel">
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <attributes>
+ <attribute name="scale" value="0.69999999999999996"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkStatusbar" id="sbSF">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">end</property>
+ <property name="hexpand">True</property>
+ <property name="spacing">2</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">14</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bSFRunICA">
+ <property name="label" translatable="yes">I_CA</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="use_underline">True</property>
+ <property name="focus_on_click">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">14</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">3</property>
+ <property name="pack_type">end</property>
+ <property name="position">15</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFShowPhaseDiffDialog">
+ <property name="label" translatable="yes">Δφ</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Interchannel signal shift (<b>F4</b>)</property>
+ <property name="tooltip_text" translatable="yes">Interchannel signal shift (F4)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="F4" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">17</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFShowFindDialog">
+ <property name="label" translatable="yes">_Find</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Find/manage patterns (<b>F3</b>)</property>
+ <property name="tooltip_text" translatable="yes">Find/manage patterns (F3)</property>
+ <property name="valign">center</property>
+ <property name="use_underline">True</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="F3" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">17</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFDrawCrosshair">
+ <property name="label" translatable="yes">†</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Crosshair (<b>F1</b>)</property>
+ <property name="tooltip_text" translatable="yes">Crosshair (F1)</property>
+ <property name="valign">center</property>
+ <property name="focus_on_click">False</property>
+ <accelerator key="F1" signal="activate"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">18</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -5320,9 +4877,732 @@ skew: 𝑔(𝑢) = 𝑢2</property>
</packing>
</child>
<child>
- <object class="GtkComboBox" id="eSFPDChannelA">
- <property name="visible">True</property>
+ <object class="GtkBox" id="cSFICAModeContainer">
<property name="can_focus">False</property>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes"># of ICs:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICANofICs">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICANofICs</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">0</property>
+ <property name="yalign">1</property>
+ <property name="label" translatable="yes">Keep eigenv:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">2</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box10">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAEigVecFirst">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAEigVecFirst</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">..</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAEigVecLast">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAEigVecLast</property>
+ <property name="snap_to_ticks">True</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">2</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">% samples:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICASampleSizePercent">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Percentage of (random) samples to use</property>
+ <property name="tooltip_text" translatable="yes">Percentage of (random) samples to use</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICASampleSizePercent</property>
+ <property name="digits">1</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Max iters:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAMaxIterations">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Maximum number of iterations</property>
+ <property name="tooltip_text" translatable="yes">Maximum number of iterations</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAMaxIterations</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="l5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="xpad">1</property>
+ <property name="label" translatable="yes">𝜀</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAepsilon">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Stopping criterion</property>
+ <property name="tooltip_text" translatable="yes">Stopping criterion</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAepsilon</property>
+ <property name="digits">5</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">5</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="l4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="xpad">1</property>
+ <property name="label" translatable="yes">𝜇</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">4</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAmu">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">Step size: if other than 1, then use
+the stabilized version of the algorithm</property>
+ <property name="tooltip_text" translatable="yes">Step size: if other than 1, then use
+the stabilized version of the algorithm</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAmu</property>
+ <property name="digits">2</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">5</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="eSFICAStabilizationMode">
+ <property name="label" translatable="yes">Stabilize</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">If 'on', then the value of 𝜇 can momentarily be
+halved if the program senses that the algorithm
+is stuck between two points. Also if there is no
+convergence before half of the maximum number
+of iterations has been reached then 𝜇 will be halved
+for the rest of the rounds.</property>
+ <property name="tooltip_text" translatable="yes">If 'on', then the value of 𝜇 can momentarily be
+halved if the program senses that the algorithm
+is stuck between two points. Also if there is no
+convergence before half of the maximum number
+of iterations has been reached then 𝜇 will be halved
+for the rest of the rounds.</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin_left">7</property>
+ <property name="margin_right">10</property>
+ <property name="relief">none</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">6</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="eSFICAFineTune">
+ <property name="label" translatable="yes">Finetune</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="valign">center</property>
+ <property name="margin_left">7</property>
+ <property name="margin_right">10</property>
+ <property name="relief">none</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">6</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Approach:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="eSFICAApproach">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes"><b>SYMM:</b> estimate all the independent component in parallel;
+<b>DEFL:</b> estimate independent component one-by-one like in projection pursuit.</property>
+ <property name="valign">start</property>
+ <property name="margin_right">10</property>
+ <property name="model">mSFICAApproach</property>
+ <property name="active">0</property>
+ <property name="id_column">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="l1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">3</property>
+ <property name="label" translatable="yes">Nonlinearity:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">6</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="eSFICANonlinearity">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">pow3: 𝑔(𝑢) = 𝑢3
+tanh: 𝑔(𝑢) = tanh(𝑎₁𝑢)
+gauss: 𝑔(𝑢) = 𝑢 exp(−𝑎₂𝑢2/2)
+skew: 𝑔(𝑢) = 𝑢2</property>
+ <property name="tooltip_text" translatable="yes">pow3: 𝑔(𝑢) = 𝑢3
+tanh: 𝑔(𝑢) = tanh(𝑎₁𝑢)
+gauss: 𝑔(𝑢) = 𝑢 exp(−𝑎₂𝑢2/2)
+skew: 𝑔(𝑢) = 𝑢2</property>
+ <property name="valign">start</property>
+ <property name="margin_right">10</property>
+ <property name="model">mSFICANonlinearity</property>
+ <property name="active">0</property>
+ <property name="has_frame">False</property>
+ <property name="entry_text_column">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">7</property>
+ <property name="top_attach">2</property>
+ <property name="width">2</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="l3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">𝑎₁</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">7</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="l2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin_left">10</property>
+ <property name="margin_right">2</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">𝑎₂</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">7</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAa1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">(applies when Nonlinearity is 'tanh')</property>
+ <property name="tooltip_text" translatable="yes">(applies when Nonlinearity is 'tanh')</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAa1</property>
+ <property name="digits">2</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">8</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="eSFICAa2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes">(applies when Nonlinearity is 'gauss')</property>
+ <property name="tooltip_text" translatable="yes">(applies when Nonlinearity is 'gauss')</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ <property name="margin_right">10</property>
+ <property name="has_frame">False</property>
+ <property name="invisible_char">•</property>
+ <property name="xalign">1</property>
+ <property name="invisible_char_set">True</property>
+ <property name="adjustment">jSFICAa2</property>
+ <property name="digits">2</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">8</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bSFICATry">
+ <property name="label" translatable="yes">_Compute ICs</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="use_underline">True</property>
+ <property name="focus_on_click">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">11</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFICAPreview">
+ <property name="label" translatable="yes">Previe_w</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">11</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="label" translatable="yes"><small>More on <a href="http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb">ICA</a> and <a href="http://itpp.sourceforge.net/current/classitpp_1_1Fast__ICA.html">FastICA</a></small></property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">9</property>
+ <property name="top_attach">2</property>
+ <property name="width">3</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">end</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Remix mode:</property>
+ <attributes>
+ <attribute name="scale" value="0.80000000000000004"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left_attach">9</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="eSFICARemixMode">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_markup" translatable="yes"><b>Map</b> each IC to one source channel, or
+<b>Punch</b> ICs out and remix</property>
+ <property name="valign">start</property>
+ <property name="margin_left">5</property>
+ <property name="margin_right">5</property>
+ <property name="model">mSFICARemixMode</property>
+ <property name="active">0</property>
+ <property name="has_frame">False</property>
+ <property name="entry_text_column">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">9</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="bSFICAShowMatrix">
+ <property name="label" translatable="yes">Mx</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="tooltip_markup" translatable="yes">Show separating matrix</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="left_attach">10</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">5</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkButton" id="bSFICAApply">
+ <property name="label" translatable="yes">_Apply</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">center</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="bSFICACancel">
+ <property name="label" translatable="yes">Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">end</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator" id="separator7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">3</property>
+ <property name="pack_type">end</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
@@ -5330,184 +5610,20 @@ skew: 𝑔(𝑢) = 𝑢2</property>
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkLabel" id="label197">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xpad">5</property>
- <property name="label" translatable="yes">and</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="eSFPDChannelB">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label198">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="xpad">5</property>
- <property name="label" translatable="yes"> in range from</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFPDFreqFrom">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="activates_default">True</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="primary_icon_activatable">False</property>
- <property name="secondary_icon_activatable">False</property>
- <property name="adjustment">jPhaseDiffFrom</property>
- <property name="digits">2</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label199">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xpad">3</property>
- <property name="label" translatable="yes">, </property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="eSFPDBandwidth">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="has_frame">False</property>
- <property name="invisible_char">•</property>
- <property name="activates_default">True</property>
- <property name="xalign">1</property>
- <property name="overwrite_mode">True</property>
- <property name="invisible_char_set">True</property>
- <property name="primary_icon_activatable">False</property>
- <property name="secondary_icon_activatable">False</property>
- <property name="adjustment">jPhaseDiffBandwidth</property>
- <property name="digits">2</property>
- <property name="numeric">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">7</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label200">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="xpad">5</property>
- <property name="label" translatable="yes">Hz wide</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">8</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label201">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">9</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkScaleButton" id="eSFPDSmooth">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="relief">none</property>
- <property name="focus_on_click">False</property>
- <property name="adjustment">jSFPDSmooth</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">11</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator" id="separator17">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkViewport" id="viewport4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="resize_mode">queue</property>
- <child>
- <object class="GtkDrawingArea" id="daSFPD">
- <property name="width_request">600</property>
- <property name="height_request">120</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_STRUCTURE_MASK | GDK_SCROLL_MASK</property>
- </object>
- </child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">4</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">3</property>
+ <property name="position">2</property>
+ </packing>
</child>
</object>
</child>
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index 343bda2..cce8d3d 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -88,6 +88,14 @@ struct SArtifacts {
return obj;
}
+ size_t total() const
+ {
+ size_t q = 0;
+ for ( auto& A : obj )
+ q += (A.z - A.a);
+ return q;
+ }
+
void mark_artifact( size_t aa, size_t az);
void clear_artifact( size_t aa, size_t az);
void clear_all()
diff --git a/src/ui/sf/sf-channel.cc b/src/ui/sf/sf-channel.cc
index f5d2cfd..70860b0 100644
--- a/src/ui/sf/sf-channel.cc
+++ b/src/ui/sf/sf-channel.cc
@@ -344,7 +344,7 @@ detect_artifacts( const metrics::mc::SArtifactDetectionPP& P)
auto marked =
metrics::mc::detect_artifacts( signal_original, samplerate(), P);
for ( size_t p = 0; p < marked.size(); ++p )
- crecording.F().artifacts(_h).mark_artifact(
+ artifacts.mark_artifact(
marked[p] * P.scope * samplerate(), (marked[p]+1) * P.scope * samplerate());
calculate_dirty_percent();
@@ -363,6 +363,49 @@ detect_artifacts( const metrics::mc::SArtifactDetectionPP& P)
}
+pair<double, double>
+aghui::SScoringFacility::SChannel::
+mark_flat_regions_as_artifacts( double minsize)
+{
+ size_t total_before = artifacts.total(),
+ marked_here = 0;
+ auto d =
+ sigproc::derivative( signal_original);
+ size_t last_j = 0;
+ for ( size_t i = 0; i < d.size(); ++i )
+ if ( d[i] == 0. ) {
+ size_t j = i;
+ while ( j < d.size() && d[j] == 0. )
+ ++j;
+ if ( j-i > minsize * samplerate() ) {
+ size_t extend_from = (i - last_j < .1 * samplerate()) ? last_j : i;
+ artifacts.mark_artifact(
+ extend_from, j);
+ marked_here += (j - extend_from);
+ last_j = j;
+ }
+ i = j;
+ }
+
+ calculate_dirty_percent();
+ get_signal_filtered();
+ if ( type == sigfile::SChannel::TType::eeg ) {
+ get_psd_course();
+ get_psd_in_bands();
+ get_spectrum( _p.cur_page());
+ get_swu_course();
+ get_mc_course();
+
+ // if ( this == channel currently displayed on measurements overview )
+ if ( strcmp( name, _p._p.AghH()) == 0 )
+ _p.redraw_ssubject_timeline();
+ }
+
+ return { (double)marked_here/samplerate(),
+ (double)(artifacts.total() - total_before) / samplerate() };
+}
+
+
void
@@ -440,7 +483,7 @@ update_channel_check_menu_items()
gtk_widget_set_visible( (GtkWidget*)_p.iSFPageDrawPSDSpectrum, is_eeg);
gtk_widget_set_visible( (GtkWidget*)_p.iSFPageDrawSWUProfile, is_eeg);
- gtk_widget_set_visible( (GtkWidget*)_p.iSFPageDetectArtifacts, is_eeg);
+ gtk_widget_set_visible( (GtkWidget*)_p.iSFPageArtifactsDetect, is_eeg);
gtk_widget_set_visible( (GtkWidget*)_p.iSFPageDrawMCProfile, is_eeg);
gtk_widget_set_visible( (GtkWidget*)_p.iSFPageDrawEMGProfile, is_emg);
diff --git a/src/ui/sf/sf-construct.cc b/src/ui/sf/sf-construct.cc
index 5a7400a..9bdeca3 100644
--- a/src/ui/sf/sf-construct.cc
+++ b/src/ui/sf/sf-construct.cc
@@ -224,8 +224,9 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageSaveMontageAsSVG)) ||
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageExportSignal)) ||
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageUseThisScale)) ||
- !(AGH_GBGETOBJ (GtkMenuItem, iSFPageDetectArtifacts)) ||
- !(AGH_GBGETOBJ (GtkMenuItem, iSFPageClearArtifacts)) ||
+ !(AGH_GBGETOBJ (GtkMenuItem, iSFPageArtifactsDetect)) ||
+ !(AGH_GBGETOBJ (GtkMenuItem, iSFPageArtifactsClear)) ||
+ !(AGH_GBGETOBJ (GtkMenuItem, iSFPageArtifactsMarkFlat)) ||
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageHide)) ||
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageHidden)) ||
!(AGH_GBGETOBJ (GtkMenuItem, iSFPageSpaceEvenly)) ||
@@ -281,8 +282,9 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
G_CONNECT_1 (iSFPageSaveMontageAsSVG, activate);
G_CONNECT_1 (iSFPageExportSignal, activate);
G_CONNECT_1 (iSFPageUseThisScale, activate);
- G_CONNECT_1 (iSFPageDetectArtifacts, activate);
- G_CONNECT_1 (iSFPageClearArtifacts, activate);
+ G_CONNECT_1 (iSFPageArtifactsDetect, activate);
+ G_CONNECT_1 (iSFPageArtifactsMarkFlat, activate);
+ G_CONNECT_1 (iSFPageArtifactsClear, activate);
G_CONNECT_1 (iSFPageHide, activate);
G_CONNECT_1 (iSFPageSpaceEvenly, activate);
@@ -367,6 +369,10 @@ SScoringFacilityWidgets (SExpDesignUI& _p)
G_CONNECT_1 (bSFADApply, clicked);
G_CONNECT_1 (bSFADCancel, clicked);
+ // simple artifact detection
+ if ( !(AGH_GBGETOBJ (GtkDialog, wSFSimpleArtifactDetectionParams)) ||
+ !(AGH_GBGETOBJ (GtkSpinButton, eSFSimpleArtifactDetectionMinFlatRegionSize)) )
+ throw runtime_error ("Failed to construct SF widgets");
// find/manage patterns
diff --git a/src/ui/sf/sf-montage_cb.cc b/src/ui/sf/sf-montage_cb.cc
index 72358fa..572b1b5 100644
--- a/src/ui/sf/sf-montage_cb.cc
+++ b/src/ui/sf/sf-montage_cb.cc
@@ -620,7 +620,7 @@ iSFPageDrawEMGProfile_toggled_cb( GtkCheckMenuItem *checkmenuitem, gpointer user
void
-iSFPageDetectArtifacts_activate_cb( GtkMenuItem*, gpointer userdata)
+iSFPageArtifactsDetect_activate_cb( GtkMenuItem*, gpointer userdata)
{
auto& SF = *(SScoringFacility*)userdata;
auto& AD = SF.artifact_detection_dialog;
@@ -647,10 +647,30 @@ iSFPageDetectArtifacts_activate_cb( GtkMenuItem*, gpointer userdata)
gtk_widget_show_all( (GtkWidget*)SF.wSFArtifactDetection);
}
+void
+iSFPageArtifactsMarkFlat_activate_cb( GtkMenuItem*, gpointer userdata)
+{
+ auto& SF = *(SScoringFacility*)userdata;
+
+ if ( GTK_RESPONSE_OK ==
+ gtk_dialog_run( (GtkDialog*)SF.wSFSimpleArtifactDetectionParams) ) {
+ double minsize = gtk_spin_button_get_value( SF.eSFSimpleArtifactDetectionMinFlatRegionSize);
+
+ auto marked = SF.using_channel->mark_flat_regions_as_artifacts( minsize);
+
+ snprintf_buf( "Detected %.2g sec of flat regions, adding %.2g sec to already marked",
+ marked.first, marked.second);
+ gtk_statusbar_push( SF.sbSF, SF.sbSFContextIdGeneral, __buf__);
+
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFMontage);
+ gtk_widget_queue_draw( (GtkWidget*)SF.daSFHypnogram);
+ }
+}
+
void
-iSFPageClearArtifacts_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
+iSFPageArtifactsClear_activate_cb( GtkMenuItem *menuitem, gpointer userdata)
{
auto& SF = *(SScoringFacility*)userdata;
if ( GTK_RESPONSE_YES != pop_question(
diff --git a/src/ui/sf/sf-widgets.hh b/src/ui/sf/sf-widgets.hh
index 748bc3c..b54d5cb 100644
--- a/src/ui/sf/sf-widgets.hh
+++ b/src/ui/sf/sf-widgets.hh
@@ -156,7 +156,8 @@ struct SScoringFacilityWidgets {
*iSFPageFilter,
*iSFPageSaveChannelAsSVG, *iSFPageSaveMontageAsSVG,
*iSFPageExportSignal, *iSFPageUseThisScale,
- *iSFPageDetectArtifacts, *iSFPageClearArtifacts, *iSFPageHide,
+ *iSFPageArtifactsDetect, *iSFPageArtifactsMarkFlat, *iSFPageArtifactsClear,
+ *iSFPageHide,
*iSFPageHidden, // has a submenu
*iSFPageSpaceEvenly,
*iSFPageLocateSelection,
@@ -288,11 +289,14 @@ struct SScoringFacilityWidgets {
// less important dialogs
GtkDialog
*wAnnotationLabel,
- *wAnnotationSelector;
+ *wAnnotationSelector,
+ *wSFSimpleArtifactDetectionParams;
GtkEntry
*eAnnotationLabel;
GtkComboBox
*eAnnotationSelectorWhich;
+ GtkSpinButton
+ *eSFSimpleArtifactDetectionMinFlatRegionSize;
};
diff --git a/src/ui/sf/sf.hh b/src/ui/sf/sf.hh
index dab323b..92d4085 100644
--- a/src/ui/sf/sf.hh
+++ b/src/ui/sf/sf.hh
@@ -109,9 +109,13 @@ class SScoringFacility
size_t samplerate() const;
// artifacts
- float calculate_dirty_percent();
float percent_dirty;
- void detect_artifacts( const metrics::mc::SArtifactDetectionPP&);
+ float
+ calculate_dirty_percent();
+ void
+ detect_artifacts( const metrics::mc::SArtifactDetectionPP&);
+ pair<double, double>
+ mark_flat_regions_as_artifacts( double at_least_this_long);
// annotations
list<sigfile::SAnnotation*>
diff --git a/src/ui/sf/sf_cb.hh b/src/ui/sf/sf_cb.hh
index 60f385c..3e50ebe 100644
--- a/src/ui/sf/sf_cb.hh
+++ b/src/ui/sf/sf_cb.hh
@@ -85,8 +85,9 @@ void iSFPageShowOriginal_toggled_cb( GtkCheckMenuItem*, gpointer);
void iSFPageShowProcessed_toggled_cb( GtkCheckMenuItem*, gpointer);
void iSFPageUseResample_toggled_cb( GtkCheckMenuItem*, gpointer);
void iSFPageDrawZeroline_toggled_cb( GtkCheckMenuItem*, gpointer);
-void iSFPageDetectArtifacts_activate_cb( GtkMenuItem*, gpointer);
-void iSFPageClearArtifacts_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageArtifactsDetect_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageArtifactsMarkFlat_activate_cb( GtkMenuItem*, gpointer);
+void iSFPageArtifactsClear_activate_cb( GtkMenuItem*, gpointer);
void iSFPageFilter_activate_cb( GtkMenuItem*, gpointer);
void iSFPageSaveChannelAsSVG_activate_cb( GtkMenuItem*, gpointer);
void iSFPageSaveMontageAsSVG_activate_cb( GtkMenuItem*, gpointer);
--
Sleep experiment manager
More information about the debian-med-commit
mailing list