From 2b378a91be50aa70bdbe308dd59d0f50b2ffd6a3 Mon Sep 17 00:00:00 2001 From: Oliver Bock <oliver.bock@aei.mpg.de> Date: Fri, 17 Nov 2017 11:36:45 +0100 Subject: [PATCH] Added persistent preset selection --- src/pulsatingscience.cpp | 11 + src/pulsatingscience.h | 1 + src/pulsatingscience.ui | 493 +++++++++++++++++++++------------------ 3 files changed, 274 insertions(+), 231 deletions(-) diff --git a/src/pulsatingscience.cpp b/src/pulsatingscience.cpp index 852ca20..e6f48d9 100644 --- a/src/pulsatingscience.cpp +++ b/src/pulsatingscience.cpp @@ -86,6 +86,8 @@ PulsatingScience::PulsatingScience(QWidget *parent) : QMainWindow(parent) // restore source presets m_presets = new PresetModel(); + ui.cmbSource->setModel(m_presets); + ui.cmbSource->setCurrentIndex(settings.value("currentPreset", 0).toInt()); // For Bruce: set initial values for iota and psi ui.sliderSourceIota->setValue(146); @@ -138,10 +140,19 @@ void PulsatingScience::closeEvent(QCloseEvent *event) settings.setValue("windowState", saveState()); settings.setValue("splitterSizes", ui.splitter->saveState()); + settings.setValue("currentPreset", ui.cmbSource->currentIndex()); + event->accept(); } } +void PulsatingScience::on_cmbSource_currentIndexChanged(int index) +{ + ui.lblSource->setText(m_presets->preset(index).getDescription()); + + // TODO: change source +} + void PulsatingScience::on_chkLHO_clicked(bool checked) { ui.pulsarGlWidget->setLHOState(checked); diff --git a/src/pulsatingscience.h b/src/pulsatingscience.h index 90e1429..f352823 100644 --- a/src/pulsatingscience.h +++ b/src/pulsatingscience.h @@ -39,6 +39,7 @@ public: void closeEvent(QCloseEvent *event); public slots: + void on_cmbSource_currentIndexChanged(int index); void on_chkLHO_clicked(bool checked); void on_chkLLO_clicked(bool checked); void on_chkVirgo_clicked(bool checked); diff --git a/src/pulsatingscience.ui b/src/pulsatingscience.ui index 64b7cfd..2f3f717 100644 --- a/src/pulsatingscience.ui +++ b/src/pulsatingscience.ui @@ -73,50 +73,54 @@ <layout class="QGridLayout" name="gridLayout_3"> <item row="1" column="0"> <layout class="QGridLayout" name="gridLayout_2"> - <item row="4" column="3"> - <widget class="QSlider" name="sliderLIAngle"> + <item row="2" column="3"> + <widget class="QSlider" name="sliderLLOAngle"> <property name="statusTip"> - <string>Use this slider to rotate LIGO-India away from its actual orientation. The meter on the far right shows the relative LIGO-India strain amplitude.</string> + <string>Use this slider to rotate LIGO Livingston (LLO) away from its actual orientation. The meter on the far right shows the relative LLO strain amplitude.</string> + </property> + <property name="minimum"> + <number>0</number> </property> <property name="maximum"> <number>360</number> </property> + <property name="pageStep"> + <number>10</number> + </property> + <property name="value"> + <number>0</number> + </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> + <property name="invertedAppearance"> + <bool>false</bool> + </property> + <property name="invertedControls"> + <bool>false</bool> + </property> <property name="tickPosition"> <enum>QSlider::TicksBelow</enum> </property> - </widget> - </item> - <item row="1" column="7"> - <widget class="QLabel" name="label_10"> - <property name="text"> - <string>A:</string> - </property> - </widget> - </item> - <item row="0" column="7"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>A:</string> + <property name="tickInterval"> + <number>0</number> </property> </widget> </item> - <item row="1" column="4"> - <widget class="QLCDNumber" name="lcdLLOAngle"> + <item row="6" column="4"> + <widget class="QLCDNumber" name="lcdSourceIota"> <property name="digitCount"> <number>6</number> </property> <property name="segmentStyle"> <enum>QLCDNumber::Flat</enum> </property> - <property name="value" stdset="0"> - <double>0.000000000000000</double> + <property name="intValue" stdset="0"> + <number>0</number> </property> </widget> </item> - <item row="0" column="6"> + <item row="1" column="6"> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -132,8 +136,35 @@ </property> </spacer> </item> - <item row="6" column="4"> - <widget class="QLCDNumber" name="lcdSourceInclination"> + <item row="5" column="5"> + <widget class="QLabel" name="label_18"> + <property name="text"> + <string>deg</string> + </property> + </widget> + </item> + <item row="2" column="8"> + <widget class="QLCDNumber" name="lcdAmpLLO"> + <property name="statusTip"> + <string>Relative strain amplitude of LLO</string> + </property> + <property name="styleSheet"> + <string notr="true">color:rgb(255, 0, 0)</string> + </property> + <property name="digitCount"> + <number>4</number> + </property> + </widget> + </item> + <item row="3" column="5"> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>deg</string> + </property> + </widget> + </item> + <item row="1" column="4"> + <widget class="QLCDNumber" name="lcdLHOAngle"> <property name="digitCount"> <number>6</number> </property> @@ -145,30 +176,44 @@ </property> </widget> </item> - <item row="5" column="5"> - <widget class="QLabel" name="label_6"> + <item row="2" column="5"> + <widget class="QLabel" name="label_8"> <property name="text"> <string>deg</string> </property> </widget> </item> - <item row="5" column="4"> - <widget class="QLCDNumber" name="lcdSourceIota"> + <item row="5" column="8"> + <widget class="QLCDNumber" name="lcdAmpLI"> + <property name="statusTip"> + <string>Relative strain amplitude of LIGO-India</string> + </property> + <property name="styleSheet"> + <string notr="true">color:rgb(255, 0, 255)</string> + </property> <property name="digitCount"> - <number>6</number> + <number>4</number> </property> - <property name="segmentStyle"> - <enum>QLCDNumber::Flat</enum> + </widget> + </item> + <item row="4" column="2"> + <widget class="QLabel" name="label_14"> + <property name="text"> + <string><html><head/><body><p><span style=" color:#c8c800;">KAGRA Orientation</span></p></body></html></string> </property> - <property name="intValue" stdset="0"> - <number>0</number> + </widget> + </item> + <item row="2" column="7"> + <widget class="QLabel" name="label_10"> + <property name="text"> + <string>A:</string> </property> </widget> </item> - <item row="6" column="3"> - <widget class="QSlider" name="sliderSourceInclination"> + <item row="1" column="3"> + <widget class="QSlider" name="sliderLHOAngle"> <property name="statusTip"> - <string>Use this slider to adjust the longitude (psi) of the binary system's orbital ascending node</string> + <string>Use this slider to rotate LIGO Hanford (LHO) away from its actual orientation. The meter on the far right shows the relative LHO strain amplitude.</string> </property> <property name="minimum"> <number>0</number> @@ -176,6 +221,9 @@ <property name="maximum"> <number>360</number> </property> + <property name="pageStep"> + <number>10</number> + </property> <property name="value"> <number>0</number> </property> @@ -185,13 +233,10 @@ <property name="tickPosition"> <enum>QSlider::TicksBelow</enum> </property> - <property name="tickInterval"> - <number>0</number> - </property> </widget> </item> - <item row="0" column="4"> - <widget class="QLCDNumber" name="lcdLHOAngle"> + <item row="7" column="4"> + <widget class="QLCDNumber" name="lcdSourceInclination"> <property name="digitCount"> <number>6</number> </property> @@ -203,24 +248,17 @@ </property> </widget> </item> - <item row="1" column="2"> - <widget class="QLabel" name="label"> - <property name="text"> - <string><html><head/><body><p><span style=" color:#ff0000;">LIGO Livingston Orientation</span></p></body></html></string> - </property> - </widget> - </item> - <item row="5" column="2"> - <widget class="QLabel" name="label_5"> + <item row="4" column="7"> + <widget class="QLabel" name="label_16"> <property name="text"> - <string>Source: iota</string> + <string>A:</string> </property> </widget> </item> - <item row="0" column="3"> - <widget class="QSlider" name="sliderLHOAngle"> + <item row="7" column="3"> + <widget class="QSlider" name="sliderSourceInclination"> <property name="statusTip"> - <string>Use this slider to rotate LIGO Hanford (LHO) away from its actual orientation. The meter on the far right shows the relative LHO strain amplitude.</string> + <string>Use this slider to adjust the longitude (psi) of the binary system's orbital ascending node</string> </property> <property name="minimum"> <number>0</number> @@ -228,9 +266,6 @@ <property name="maximum"> <number>360</number> </property> - <property name="pageStep"> - <number>10</number> - </property> <property name="value"> <number>0</number> </property> @@ -240,30 +275,54 @@ <property name="tickPosition"> <enum>QSlider::TicksBelow</enum> </property> + <property name="tickInterval"> + <number>0</number> + </property> </widget> </item> - <item row="0" column="5"> - <widget class="QLabel" name="label_13"> + <item row="4" column="8"> + <widget class="QLCDNumber" name="lcdAmpKAGRA"> + <property name="statusTip"> + <string>Relative strain amplitude of KAGRA</string> + </property> + <property name="styleSheet"> + <string notr="true">color:rgb(200, 200, 0) +</string> + </property> + <property name="digitCount"> + <number>4</number> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QLabel" name="label_12"> <property name="text"> - <string>deg</string> + <string><html><head/><body><p><span style=" color:#0000ff;">LIGO Hanford Orientation</span></p></body></html></string> </property> </widget> </item> - <item row="1" column="5"> - <widget class="QLabel" name="label_8"> + <item row="3" column="2"> + <widget class="QLabel" name="label_4"> <property name="text"> - <string>deg</string> + <string><html><head/><body><p><span style=" color:#009900;">Virgo Orientation</span></p></body></html></string> </property> </widget> </item> - <item row="0" column="2"> - <widget class="QLabel" name="label_12"> + <item row="6" column="2"> + <widget class="QLabel" name="label_5"> <property name="text"> - <string><html><head/><body><p><span style=" color:#0000ff;">LIGO Hanford Orientation</span></p></body></html></string> + <string>Source: iota</string> </property> </widget> </item> - <item row="5" column="3"> + <item row="7" column="2"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Source: psi</string> + </property> + </widget> + </item> + <item row="6" column="3"> <widget class="QSlider" name="sliderSourceIota"> <property name="statusTip"> <string>Use this slider to adjust the orbital plane inclination angle (iota) of the binary system</string> @@ -285,151 +344,102 @@ </property> </widget> </item> - <item row="1" column="3"> - <widget class="QSlider" name="sliderLLOAngle"> - <property name="statusTip"> - <string>Use this slider to rotate LIGO Livingston (LLO) away from its actual orientation. The meter on the far right shows the relative LLO strain amplitude.</string> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>360</number> - </property> - <property name="pageStep"> - <number>10</number> - </property> - <property name="value"> - <number>0</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="invertedAppearance"> - <bool>false</bool> - </property> - <property name="invertedControls"> - <bool>false</bool> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBelow</enum> - </property> - <property name="tickInterval"> - <number>0</number> + <item row="4" column="4"> + <widget class="QLCDNumber" name="lcdKAGRAAngle"> + <property name="digitCount"> + <number>6</number> </property> </widget> </item> - <item row="6" column="5"> - <widget class="QLabel" name="label_9"> - <property name="text"> - <string>deg</string> + <item row="1" column="0"> + <widget class="QCheckBox" name="chkLHO"> + <property name="checked"> + <bool>true</bool> </property> </widget> </item> - <item row="6" column="2"> - <widget class="QLabel" name="label_3"> + <item row="5" column="2"> + <widget class="QLabel" name="label_17"> <property name="text"> - <string>Source: psi</string> + <string><html><head/><body><p><span style=" color:#ff00ff;">LIGO-India Orientation</span></p></body></html></string> </property> </widget> </item> - <item row="0" column="8"> - <widget class="QLCDNumber" name="lcdAmpLHO"> - <property name="statusTip"> - <string>Relative strain amplitude of LHO</string> - </property> - <property name="styleSheet"> - <string notr="true">color:rgb(0, 0, 255)</string> - </property> - <property name="digitCount"> - <number>4</number> + <item row="1" column="7"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>A:</string> </property> </widget> </item> - <item row="1" column="8"> - <widget class="QLCDNumber" name="lcdAmpLLO"> + <item row="5" column="3"> + <widget class="QSlider" name="sliderLIAngle"> <property name="statusTip"> - <string>Relative strain amplitude of LLO</string> + <string>Use this slider to rotate LIGO-India away from its actual orientation. The meter on the far right shows the relative LIGO-India strain amplitude.</string> </property> - <property name="styleSheet"> - <string notr="true">color:rgb(255, 0, 0)</string> + <property name="maximum"> + <number>360</number> </property> - <property name="digitCount"> - <number>4</number> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> - </widget> - </item> - <item row="3" column="4"> - <widget class="QLCDNumber" name="lcdKAGRAAngle"> - <property name="digitCount"> - <number>6</number> + <property name="tickPosition"> + <enum>QSlider::TicksBelow</enum> </property> </widget> </item> <item row="4" column="5"> - <widget class="QLabel" name="label_18"> + <widget class="QLabel" name="label_15"> <property name="text"> <string>deg</string> </property> </widget> </item> - <item row="3" column="8"> - <widget class="QLCDNumber" name="lcdAmpKAGRA"> + <item row="4" column="3"> + <widget class="QSlider" name="sliderKAGRAAngle"> <property name="statusTip"> - <string>Relative strain amplitude of KAGRA</string> + <string>Use this slider to rotate KAGRA away from its actual orientation. The meter on the far right shows the relative KAGRA strain amplitude.</string> </property> - <property name="styleSheet"> - <string notr="true">color:rgb(200, 200, 0) -</string> + <property name="maximum"> + <number>360</number> </property> - <property name="digitCount"> - <number>4</number> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> - </widget> - </item> - <item row="3" column="7"> - <widget class="QLabel" name="label_16"> - <property name="text"> - <string>A:</string> + <property name="tickPosition"> + <enum>QSlider::TicksBelow</enum> </property> </widget> </item> - <item row="2" column="0"> + <item row="3" column="0"> <widget class="QCheckBox" name="chkVirgo"> <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="0" column="0"> - <widget class="QCheckBox" name="chkLHO"> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="4" column="0"> - <widget class="QCheckBox" name="chkLI"> - <property name="checked"> - <bool>true</bool> + <item row="5" column="7"> + <widget class="QLabel" name="label_19"> + <property name="text"> + <string>A:</string> </property> </widget> </item> - <item row="4" column="7"> - <widget class="QLabel" name="label_19"> + <item row="6" column="5"> + <widget class="QLabel" name="label_6"> <property name="text"> - <string>A:</string> + <string>deg</string> </property> </widget> </item> - <item row="4" column="2"> - <widget class="QLabel" name="label_17"> + <item row="1" column="5"> + <widget class="QLabel" name="label_13"> <property name="text"> - <string><html><head/><body><p><span style=" color:#ff00ff;">LIGO-India Orientation</span></p></body></html></string> + <string>deg</string> </property> </widget> </item> - <item row="2" column="8"> + <item row="3" column="8"> <widget class="QLCDNumber" name="lcdAmpVirgo"> <property name="statusTip"> <string>Relative strain amplitude of Virgo</string> @@ -442,91 +452,42 @@ </property> </widget> </item> - <item row="3" column="5"> - <widget class="QLabel" name="label_15"> - <property name="text"> - <string>deg</string> - </property> - </widget> - </item> - <item row="2" column="5"> - <widget class="QLabel" name="label_7"> - <property name="text"> - <string>deg</string> - </property> - </widget> - </item> - <item row="3" column="3"> - <widget class="QSlider" name="sliderKAGRAAngle"> - <property name="statusTip"> - <string>Use this slider to rotate KAGRA away from its actual orientation. The meter on the far right shows the relative KAGRA strain amplitude.</string> - </property> - <property name="maximum"> - <number>360</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBelow</enum> - </property> - </widget> - </item> - <item row="4" column="8"> - <widget class="QLCDNumber" name="lcdAmpLI"> + <item row="1" column="8"> + <widget class="QLCDNumber" name="lcdAmpLHO"> <property name="statusTip"> - <string>Relative strain amplitude of LIGO-India</string> + <string>Relative strain amplitude of LHO</string> </property> <property name="styleSheet"> - <string notr="true">color:rgb(255, 0, 255)</string> + <string notr="true">color:rgb(0, 0, 255)</string> </property> <property name="digitCount"> <number>4</number> </property> </widget> </item> - <item row="3" column="2"> - <widget class="QLabel" name="label_14"> - <property name="text"> - <string><html><head/><body><p><span style=" color:#c8c800;">KAGRA Orientation</span></p></body></html></string> - </property> - </widget> - </item> <item row="2" column="2"> - <widget class="QLabel" name="label_4"> + <widget class="QLabel" name="label"> <property name="text"> - <string><html><head/><body><p><span style=" color:#009900;">Virgo Orientation</span></p></body></html></string> + <string><html><head/><body><p><span style=" color:#ff0000;">LIGO Livingston Orientation</span></p></body></html></string> </property> </widget> </item> - <item row="2" column="7"> + <item row="3" column="7"> <widget class="QLabel" name="label_11"> <property name="text"> <string>A:</string> </property> </widget> </item> - <item row="2" column="3"> - <widget class="QSlider" name="sliderVirgoAngle"> - <property name="statusTip"> - <string>Use this slider to rotate Virgo away from its actual orientation. The meter on the far right shows the relative Virgo strain amplitude.</string> - </property> - <property name="maximum"> - <number>360</number> - </property> - <property name="value"> - <number>0</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBelow</enum> + <item row="7" column="5"> + <widget class="QLabel" name="label_9"> + <property name="text"> + <string>deg</string> </property> </widget> </item> <item row="2" column="4"> - <widget class="QLCDNumber" name="lcdVirgoAngle"> + <widget class="QLCDNumber" name="lcdLLOAngle"> <property name="digitCount"> <number>6</number> </property> @@ -536,33 +497,58 @@ <property name="value" stdset="0"> <double>0.000000000000000</double> </property> - <property name="intValue" stdset="0"> - <number>0</number> - </property> </widget> </item> - <item row="1" column="0"> - <widget class="QCheckBox" name="chkLLO"> + <item row="5" column="0"> + <widget class="QCheckBox" name="chkLI"> <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QCheckBox" name="chkKAGRA"> <property name="checked"> <bool>true</bool> </property> </widget> </item> - <item row="4" column="4"> - <widget class="QLCDNumber" name="lcdLIAngle"> + <item row="3" column="4"> + <widget class="QLCDNumber" name="lcdVirgoAngle"> <property name="digitCount"> <number>6</number> </property> + <property name="segmentStyle"> + <enum>QLCDNumber::Flat</enum> + </property> + <property name="value" stdset="0"> + <double>0.000000000000000</double> + </property> + <property name="intValue" stdset="0"> + <number>0</number> + </property> + </widget> + </item> + <item row="3" column="3"> + <widget class="QSlider" name="sliderVirgoAngle"> + <property name="statusTip"> + <string>Use this slider to rotate Virgo away from its actual orientation. The meter on the far right shows the relative Virgo strain amplitude.</string> + </property> + <property name="maximum"> + <number>360</number> + </property> + <property name="value"> + <number>0</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBelow</enum> + </property> </widget> </item> - <item row="0" column="1"> + <item row="1" column="1"> <spacer name="horizontalSpacer_6"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -578,6 +564,51 @@ </property> </spacer> </item> + <item row="5" column="4"> + <widget class="QLCDNumber" name="lcdLIAngle"> + <property name="digitCount"> + <number>6</number> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QCheckBox" name="chkLLO"> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="3"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QComboBox" name="cmbSource"> + <property name="maximumSize"> + <size> + <width>120</width> + <height>16777215</height> + </size> + </property> + <property name="statusTip"> + <string>Select an event source from the list of presets</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="lblSource"> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="label_20"> + <property name="text"> + <string>Source preset:</string> + </property> + </widget> + </item> </layout> </item> </layout> -- GitLab