diff --git a/slsDetectorGui/forms/form_dac.ui b/slsDetectorGui/forms/form_dac.ui
index 25e512d1d..83e0d7c56 100755
--- a/slsDetectorGui/forms/form_dac.ui
+++ b/slsDetectorGui/forms/form_dac.ui
@@ -52,6 +52,9 @@
25
+
+ false
+
-1.000000000000000
diff --git a/slsDetectorGui/forms/form_tab_advanced.ui b/slsDetectorGui/forms/form_tab_advanced.ui
index ea19dab8a..0adf847a9 100755
--- a/slsDetectorGui/forms/form_tab_advanced.ui
+++ b/slsDetectorGui/forms/form_tab_advanced.ui
@@ -98,6 +98,9 @@
25
+
+ false
+
-1
diff --git a/slsDetectorGui/forms/form_tab_dataoutput.ui b/slsDetectorGui/forms/form_tab_dataoutput.ui
index ea7f80c65..d6f8d5225 100755
--- a/slsDetectorGui/forms/form_tab_dataoutput.ui
+++ b/slsDetectorGui/forms/form_tab_dataoutput.ui
@@ -463,6 +463,9 @@ Compression using Root. Available only for Gotthard in Expert Mode.
25
+
+ false
+
ns
diff --git a/slsDetectorGui/forms/form_tab_developer.ui b/slsDetectorGui/forms/form_tab_developer.ui
index 8cf71fea6..e16e86287 100755
--- a/slsDetectorGui/forms/form_tab_developer.ui
+++ b/slsDetectorGui/forms/form_tab_developer.ui
@@ -180,6 +180,9 @@
<html><head/><body><p>High Voltage. Range: 60 - 200V. Swich off high voltage by setting to 0.</p><p>-1 corresponds to different values from detectors.</p><p>#highvoltage#</p></body></html>
+
+ false
+
-1
diff --git a/slsDetectorGui/forms/form_tab_plot.ui b/slsDetectorGui/forms/form_tab_plot.ui
index 22be36a18..9d3ee2616 100755
--- a/slsDetectorGui/forms/form_tab_plot.ui
+++ b/slsDetectorGui/forms/form_tab_plot.ui
@@ -2169,7 +2169,7 @@ Displays minimum, maximum and sum of values for each plot.
-
- 0
+ 1
@@ -2181,6 +2181,9 @@ Displays minimum, maximum and sum of values for each plot.
0
+
+ false
+
3
@@ -2249,6 +2252,9 @@ Displays minimum, maximum and sum of values for each plot.
0
+
+ false
+
1
diff --git a/slsDetectorGui/include/qTabAdvanced.h b/slsDetectorGui/include/qTabAdvanced.h
index 7165eeb2f..ba4ff2a0e 100644
--- a/slsDetectorGui/include/qTabAdvanced.h
+++ b/slsDetectorGui/include/qTabAdvanced.h
@@ -18,17 +18,24 @@ class qTabAdvanced : public QWidget, private Ui::TabAdvancedObject {
void SetDetector();
void SetControlPort(int port);
void SetStopPort(int port);
- void SetDetectorUDPIP();
- void SetDetectorUDPMAC();
+ void SetDetectorUDPIP(bool force = false);
+ void ForceSetDetectorUDPIP();
+ void SetDetectorUDPMAC(bool force = false);
+ void ForceSetDetectorUDPMAC();
void SetCltZMQPort(int port);
- void SetCltZMQIP();
- void SetRxrHostname();
+ void SetCltZMQIP(bool force = false);
+ void ForceSetCltZMQIP();
+ void SetRxrHostname(bool force = false);
+ void ForceSetRxrHostname();
void SetRxrTCPPort(int port);
void SetRxrUDPPort(int port);
- void SetRxrUDPIP();
- void SetRxrUDPMAC();
+ void SetRxrUDPIP(bool force = false);
+ void ForceSetRxrUDPIP();
+ void SetRxrUDPMAC(bool force = false);
+ void ForceSetRxrUDPMAC();
void SetRxrZMQPort(int port);
- void SetRxrZMQIP();
+ void SetRxrZMQIP(bool force = false);
+ void ForceSetRxrZMQIP();
void GetROI();
void ClearROI();
void SetROI();
diff --git a/slsDetectorGui/include/qTabDataOutput.h b/slsDetectorGui/include/qTabDataOutput.h
index 0df374e57..e1cdf5fcb 100644
--- a/slsDetectorGui/include/qTabDataOutput.h
+++ b/slsDetectorGui/include/qTabDataOutput.h
@@ -13,7 +13,8 @@ class qTabDataOutput : public QWidget, private Ui::TabDataOutputObject {
private slots:
void GetOutputDir();
void BrowseOutputDir();
- void SetOutputDir();
+ void SetOutputDir(bool force = false);
+ void ForceSetOutputDir();
void SetFileFormat(int format);
void SetOverwriteEnable(bool enable);
void SetTenGigaEnable(bool enable);
diff --git a/slsDetectorGui/include/qTabMeasurement.h b/slsDetectorGui/include/qTabMeasurement.h
index b38148188..091936ecc 100644
--- a/slsDetectorGui/include/qTabMeasurement.h
+++ b/slsDetectorGui/include/qTabMeasurement.h
@@ -31,7 +31,8 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
void SetDelay();
void SetBurstPeriod();
void SetFileWrite(bool val);
- void SetFileName();
+ void SetFileName(bool force = false);
+ void ForceSetFileName();
void SetRunIndex(int val);
void SetStartingFrameNumber(int val);
void UpdateProgress();
diff --git a/slsDetectorGui/include/qTabPlot.h b/slsDetectorGui/include/qTabPlot.h
index 879e6f259..5bca30acd 100644
--- a/slsDetectorGui/include/qTabPlot.h
+++ b/slsDetectorGui/include/qTabPlot.h
@@ -24,6 +24,12 @@ class qTabPlot : public QWidget, private Ui::TabPlotObject {
void SetBinary();
void SetGapPixels(bool enable);
void SetTitles();
+ void isXMinModified();
+ void isXMaxModified();
+ void isYMinModified();
+ void isYMaxModified();
+ void isZMinModified();
+ void isZMaxModified();
void SetXRange();
void SetYRange();
void CheckAspectRatio();
diff --git a/slsDetectorGui/src/qDacWidget.cpp b/slsDetectorGui/src/qDacWidget.cpp
index 045bf5e75..5db875e4f 100644
--- a/slsDetectorGui/src/qDacWidget.cpp
+++ b/slsDetectorGui/src/qDacWidget.cpp
@@ -26,7 +26,7 @@ void qDacWidget::SetupWidgetWindow(std::string name) {
void qDacWidget::Initialization() {
if (isDac) {
- connect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac()));
+ connect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
}
}
@@ -38,7 +38,7 @@ void qDacWidget::SetDetectorIndex(int id) {
void qDacWidget::GetDac() {
LOG(logDEBUG) << "Getting Dac " << index;
- disconnect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac()));
+ disconnect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
try {
// dac units
auto retval = det->getDAC(index, 0, {detectorIndex}).squash(-1);
@@ -52,7 +52,7 @@ void qDacWidget::GetDac() {
CATCH_DISPLAY(std::string("Could not get dac ") + std::to_string(index),
"qDacWidget::GetDac")
- connect(spinDac, SIGNAL(editingFinished()), this, SLOT(SetDac()));
+ connect(spinDac, SIGNAL(valueChanged(double)), this, SLOT(SetDac()));
}
void qDacWidget::SetDac() {
diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp
index e5ad30cab..85f7c42a3 100644
--- a/slsDetectorGui/src/qTabAdvanced.cpp
+++ b/slsDetectorGui/src/qTabAdvanced.cpp
@@ -65,8 +65,7 @@ void qTabAdvanced::Initialization() {
// trimming
if (tab_trimming->isEnabled()) {
- // editingFinished to not set trimbits for every character input
- connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this,
+ connect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
SLOT(SetAllTrimbits()));
}
@@ -79,23 +78,36 @@ void qTabAdvanced::Initialization() {
SLOT(SetStopPort(int)));
connect(dispDetectorUDPIP, SIGNAL(editingFinished()), this,
SLOT(SetDetectorUDPIP()));
+ connect(dispDetectorUDPIP, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetDetectorUDPIP()));
connect(dispDetectorUDPMAC, SIGNAL(editingFinished()), this,
SLOT(SetDetectorUDPMAC()));
+ connect(dispDetectorUDPMAC, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetDetectorUDPMAC()));
connect(spinZMQPort, SIGNAL(valueChanged(int)), this,
SLOT(SetCltZMQPort(int)));
connect(dispZMQIP, SIGNAL(editingFinished()), this, SLOT(SetCltZMQIP()));
+ connect(dispZMQIP, SIGNAL(returnPressed()), this, SLOT(ForceSetCltZMQIP()));
connect(dispRxrHostname, SIGNAL(editingFinished()), this,
SLOT(SetRxrHostname()));
+ connect(dispRxrHostname, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetRxrHostname()));
connect(spinRxrTCPPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrTCPPort(int)));
connect(spinRxrUDPPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrUDPPort(int)));
connect(dispRxrUDPIP, SIGNAL(editingFinished()), this, SLOT(SetRxrUDPIP()));
+ connect(dispRxrUDPIP, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetRxrUDPIP()));
connect(dispRxrUDPMAC, SIGNAL(editingFinished()), this,
SLOT(SetRxrUDPMAC()));
+ connect(dispRxrUDPMAC, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetRxrUDPMAC()));
connect(spinRxrZMQPort, SIGNAL(valueChanged(int)), this,
SLOT(SetRxrZMQPort(int)));
connect(dispRxrZMQIP, SIGNAL(editingFinished()), this, SLOT(SetRxrZMQIP()));
+ connect(dispRxrZMQIP, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetRxrZMQIP()));
// roi
if (tab_roi->isEnabled()) {
@@ -421,28 +433,42 @@ void qTabAdvanced::SetStopPort(int port) {
&qTabAdvanced::GetStopPort)
}
-void qTabAdvanced::SetDetectorUDPIP() {
- std::string s = dispDetectorUDPIP->text().toAscii().constData();
- LOG(logINFO) << "Setting Detector UDP IP:" << s;
- try {
- det->setSourceUDPIP(sls::IpAddr{s}, {comboDetector->currentIndex()});
+void qTabAdvanced::SetDetectorUDPIP(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispDetectorUDPIP->isModified() || force) {
+ dispDetectorUDPIP->setModified(false);
+ std::string s = dispDetectorUDPIP->text().toAscii().constData();
+ LOG(logINFO) << "Setting Detector UDP IP:" << s;
+ try {
+ det->setSourceUDPIP(sls::IpAddr{s},
+ {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Detector UDP IP.",
+ "qTabAdvanced::SetDetectorUDPIP", this,
+ &qTabAdvanced::GetDetectorUDPIP)
}
- CATCH_HANDLE("Could not set Detector UDP IP.",
- "qTabAdvanced::SetDetectorUDPIP", this,
- &qTabAdvanced::GetDetectorUDPIP)
}
-void qTabAdvanced::SetDetectorUDPMAC() {
- std::string s = dispDetectorUDPMAC->text().toAscii().constData();
- LOG(logINFO) << "Setting Detector UDP MAC:" << s;
- try {
- det->setSourceUDPMAC(sls::MacAddr{s}, {comboDetector->currentIndex()});
+void qTabAdvanced::ForceSetDetectorUDPIP() { SetDetectorUDPIP(true); };
+
+void qTabAdvanced::SetDetectorUDPMAC(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispDetectorUDPMAC->isModified() || force) {
+ dispDetectorUDPMAC->setModified(false);
+ std::string s = dispDetectorUDPMAC->text().toAscii().constData();
+ LOG(logINFO) << "Setting Detector UDP MAC:" << s;
+ try {
+ det->setSourceUDPMAC(sls::MacAddr{s},
+ {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Detector UDP MAC.",
+ "qTabAdvanced::SetDetectorUDPMAC", this,
+ &qTabAdvanced::GetDetectorUDPMAC)
}
- CATCH_HANDLE("Could not set Detector UDP MAC.",
- "qTabAdvanced::SetDetectorUDPMAC", this,
- &qTabAdvanced::GetDetectorUDPMAC)
}
+void qTabAdvanced::ForceSetDetectorUDPMAC() { SetDetectorUDPMAC(true); }
+
void qTabAdvanced::SetCltZMQPort(int port) {
LOG(logINFO) << "Setting Client ZMQ Port:" << port;
try {
@@ -453,29 +479,44 @@ void qTabAdvanced::SetCltZMQPort(int port) {
&qTabAdvanced::GetCltZMQPort)
}
-void qTabAdvanced::SetCltZMQIP() {
- std::string s = dispZMQIP->text().toAscii().constData();
- LOG(logINFO) << "Setting Client ZMQ IP:" << s;
- try {
- det->setClientZmqIp(sls::IpAddr{s}, {comboDetector->currentIndex()});
+void qTabAdvanced::SetCltZMQIP(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispZMQIP->isModified() || force) {
+ dispZMQIP->setModified(false);
+ std::string s = dispZMQIP->text().toAscii().constData();
+ LOG(logINFO) << "Setting Client ZMQ IP:" << s;
+ try {
+ det->setClientZmqIp(sls::IpAddr{s},
+ {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Client ZMQ IP.",
+ "qTabAdvanced::SetCltZMQIP", this,
+ &qTabAdvanced::GetCltZMQIP)
}
- CATCH_HANDLE("Could not set Client ZMQ IP.", "qTabAdvanced::SetCltZMQIP",
- this, &qTabAdvanced::GetCltZMQIP)
}
-void qTabAdvanced::SetRxrHostname() {
- std::string s = dispZMQIP->text().toAscii().constData();
- LOG(logINFO) << "Setting Receiver Hostname:" << s;
- try {
- det->setRxHostname(s, {comboDetector->currentIndex()});
- }
- CATCH_HANDLE("Could not set Client ZMQ IP.", "qTabAdvanced::SetRxrHostname",
- this, &qTabAdvanced::GetRxrHostname)
+void qTabAdvanced::ForceSetCltZMQIP() { SetCltZMQIP(true); }
- // update all network widgets (receiver mainly)
- SetDetector();
+void qTabAdvanced::SetRxrHostname(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispRxrHostname->isModified() || force) {
+ dispRxrHostname->setModified(false);
+ std::string s = dispRxrHostname->text().toAscii().constData();
+ LOG(logINFO) << "Setting Receiver Hostname:" << s;
+ try {
+ det->setRxHostname(s, {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Client ZMQ IP.",
+ "qTabAdvanced::SetRxrHostname", this,
+ &qTabAdvanced::GetRxrHostname)
+
+ // update all network widgets (receiver mainly)
+ SetDetector();
+ }
}
+void qTabAdvanced::ForceSetRxrHostname() { SetRxrHostname(true); }
+
void qTabAdvanced::SetRxrTCPPort(int port) {
LOG(logINFO) << "Setting Receiver TCP Port:" << port;
try {
@@ -496,29 +537,42 @@ void qTabAdvanced::SetRxrUDPPort(int port) {
&qTabAdvanced::GetRxrUDPPort)
}
-void qTabAdvanced::SetRxrUDPIP() {
- std::string s = dispRxrUDPIP->text().toAscii().constData();
- LOG(logINFO) << "Setting Receiver UDP IP:" << s;
- try {
- det->setDestinationUDPIP(sls::IpAddr{s},
- {comboDetector->currentIndex()});
+void qTabAdvanced::SetRxrUDPIP(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispRxrUDPIP->isModified() || force) {
+ dispRxrUDPIP->setModified(false);
+ std::string s = dispRxrUDPIP->text().toAscii().constData();
+ LOG(logINFO) << "Setting Receiver UDP IP:" << s;
+ try {
+ det->setDestinationUDPIP(sls::IpAddr{s},
+ {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Receiver UDP IP.",
+ "qTabAdvanced::SetRxrUDPIP", this,
+ &qTabAdvanced::GetRxrUDPIP)
}
- CATCH_HANDLE("Could not set Receiver UDP IP.", "qTabAdvanced::SetRxrUDPIP",
- this, &qTabAdvanced::GetRxrUDPIP)
}
-void qTabAdvanced::SetRxrUDPMAC() {
- std::string s = dispRxrUDPMAC->text().toAscii().constData();
- LOG(logINFO) << "Setting Receiver UDP MAC:" << s;
- try {
- det->setDestinationUDPMAC(sls::MacAddr{s},
- {comboDetector->currentIndex()});
+void qTabAdvanced::ForceSetRxrUDPIP() { SetRxrUDPIP(true); }
+
+void qTabAdvanced::SetRxrUDPMAC(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispRxrUDPMAC->isModified() || force) {
+ dispRxrUDPMAC->setModified(false);
+ std::string s = dispRxrUDPMAC->text().toAscii().constData();
+ LOG(logINFO) << "Setting Receiver UDP MAC:" << s;
+ try {
+ det->setDestinationUDPMAC(sls::MacAddr{s},
+ {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Receiver UDP MAC.",
+ "qTabAdvanced::SetRxrUDPMAC", this,
+ &qTabAdvanced::GetRxrUDPMAC)
}
- CATCH_HANDLE("Could not set Receiver UDP MAC.",
- "qTabAdvanced::SetRxrUDPMAC", this,
- &qTabAdvanced::GetRxrUDPMAC)
}
+void qTabAdvanced::ForceSetRxrUDPMAC() { SetRxrUDPMAC(true); }
+
void qTabAdvanced::SetRxrZMQPort(int port) {
LOG(logINFO) << "Setting Receiver ZMQ Port:" << port;
try {
@@ -529,16 +583,23 @@ void qTabAdvanced::SetRxrZMQPort(int port) {
&qTabAdvanced::GetRxrZMQPort)
}
-void qTabAdvanced::SetRxrZMQIP() {
- std::string s = dispRxrZMQIP->text().toAscii().constData();
- LOG(logINFO) << "Setting Receiver ZMQ IP:" << s;
- try {
- det->setRxZmqIP(sls::IpAddr{s}, {comboDetector->currentIndex()});
+void qTabAdvanced::SetRxrZMQIP(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispRxrZMQIP->isModified() || force) {
+ dispRxrZMQIP->setModified(false);
+ std::string s = dispRxrZMQIP->text().toAscii().constData();
+ LOG(logINFO) << "Setting Receiver ZMQ IP:" << s;
+ try {
+ det->setRxZmqIP(sls::IpAddr{s}, {comboDetector->currentIndex()});
+ }
+ CATCH_HANDLE("Could not set Receiver ZMQ IP.",
+ "qTabAdvanced::SetRxrZMQIP", this,
+ &qTabAdvanced::GetRxrZMQIP)
}
- CATCH_HANDLE("Could not set Receiver ZMQ IP.", "qTabAdvanced::SetRxrZMQIP",
- this, &qTabAdvanced::GetRxrZMQIP)
}
+void qTabAdvanced::ForceSetRxrZMQIP() { SetRxrZMQIP(true); }
+
void qTabAdvanced::GetROI() {
LOG(logDEBUG) << "Getting ROI";
try {
@@ -575,7 +636,7 @@ void qTabAdvanced::SetROI() {
void qTabAdvanced::GetAllTrimbits() {
LOG(logDEBUG) << "Getting all trimbits value";
- disconnect(spinSetAllTrimbits, SIGNAL(editingFinished()), this,
+ disconnect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
SLOT(SetAllTrimbits()));
try {
@@ -584,7 +645,7 @@ void qTabAdvanced::GetAllTrimbits() {
}
CATCH_DISPLAY("Could not get all trimbits.", "qTabAdvanced::GetAllTrimbits")
- connect(spinSetAllTrimbits, SIGNAL(editingFinished()), this,
+ connect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this,
SLOT(SetAllTrimbits()));
}
diff --git a/slsDetectorGui/src/qTabDataOutput.cpp b/slsDetectorGui/src/qTabDataOutput.cpp
index 590477855..9767e519a 100644
--- a/slsDetectorGui/src/qTabDataOutput.cpp
+++ b/slsDetectorGui/src/qTabDataOutput.cpp
@@ -54,6 +54,8 @@ void qTabDataOutput::Initialization() {
SLOT(GetOutputDir()));
connect(dispOutputDir, SIGNAL(editingFinished()), this,
SLOT(SetOutputDir()));
+ connect(dispOutputDir, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetOutputDir()));
connect(btnOutputBrowse, SIGNAL(clicked()), this, SLOT(BrowseOutputDir()));
connect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetFileFormat(int)));
@@ -69,7 +71,7 @@ void qTabDataOutput::Initialization() {
SLOT(EnableRateCorrection()));
connect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection()));
- connect(spinCustomDeadTime, SIGNAL(editingFinished()), this,
+ connect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection()));
}
// flags, speed
@@ -169,35 +171,41 @@ void qTabDataOutput::BrowseOutputDir() {
dispOutputDir->setText(directory);
}
-void qTabDataOutput::SetOutputDir() {
- QString path = dispOutputDir->text();
- LOG(logDEBUG) << "Setting output directory to "
- << path.toAscii().constData();
+void qTabDataOutput::SetOutputDir(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispOutputDir->isModified() || force) {
+ dispOutputDir->setModified(false);
+ QString path = dispOutputDir->text();
+ LOG(logDEBUG) << "Setting output directory to "
+ << path.toAscii().constData();
- // empty
- if (path.isEmpty()) {
- qDefs::Message(qDefs::WARNING,
- "Invalid Output Path. Must not be empty.",
- "qTabDataOutput::SetOutputDir");
- LOG(logWARNING) << "Invalid Output Path. Must not be empty.";
- GetOutputDir();
- } else {
- // chop off trailing '/'
- if (path.endsWith('/')) {
- while (path.endsWith('/')) {
- path.chop(1);
+ // empty
+ if (path.isEmpty()) {
+ qDefs::Message(qDefs::WARNING,
+ "Invalid Output Path. Must not be empty.",
+ "qTabDataOutput::SetOutputDir");
+ LOG(logWARNING) << "Invalid Output Path. Must not be empty.";
+ GetOutputDir();
+ } else {
+ // chop off trailing '/'
+ if (path.endsWith('/')) {
+ while (path.endsWith('/')) {
+ path.chop(1);
+ }
}
+ std::string spath = std::string(path.toAscii().constData());
+ try {
+ det->setFilePath(spath, {comboDetector->currentIndex() - 1});
+ }
+ CATCH_HANDLE("Could not set output file path.",
+ "qTabDataOutput::SetOutputDir", this,
+ &qTabDataOutput::GetOutputDir)
}
- std::string spath = std::string(path.toAscii().constData());
- try {
- det->setFilePath(spath, {comboDetector->currentIndex() - 1});
- }
- CATCH_HANDLE("Could not set output file path.",
- "qTabDataOutput::SetOutputDir", this,
- &qTabDataOutput::GetOutputDir)
}
}
+void qTabDataOutput::ForceSetOutputDir() { SetOutputDir(true); };
+
void qTabDataOutput::GetFileFormat() {
LOG(logDEBUG) << "Getting File Format";
disconnect(comboFileFormat, SIGNAL(currentIndexChanged(int)), this,
@@ -288,7 +296,7 @@ void qTabDataOutput::GetRateCorrection() {
SLOT(EnableRateCorrection()));
disconnect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection()));
- disconnect(spinCustomDeadTime, SIGNAL(editingFinished()), this,
+ disconnect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection()));
try {
spinCustomDeadTime->setValue(-1);
@@ -305,7 +313,7 @@ void qTabDataOutput::GetRateCorrection() {
connect(chkRate, SIGNAL(toggled(bool)), this, SLOT(EnableRateCorrection()));
connect(btnGroupRate, SIGNAL(buttonClicked(int)), this,
SLOT(SetRateCorrection()));
- connect(spinCustomDeadTime, SIGNAL(editingFinished()), this,
+ connect(spinCustomDeadTime, SIGNAL(valueChanged(int)), this,
SLOT(SetRateCorrection()));
}
diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp
index 3e3742f7d..8d0084719 100644
--- a/slsDetectorGui/src/qTabDeveloper.cpp
+++ b/slsDetectorGui/src/qTabDeveloper.cpp
@@ -290,7 +290,7 @@ void qTabDeveloper::Initialization() {
SLOT(Refresh()));
connect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage()));
- connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
+ connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
}
void qTabDeveloper::PopulateDetectors() {
@@ -312,7 +312,7 @@ void qTabDeveloper::GetHighVoltage() {
if (!comboHV->isVisible() && !spinHV->isVisible())
return;
LOG(logDEBUG) << "Getting High Voltage";
- disconnect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
+ disconnect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage()));
try {
@@ -359,7 +359,7 @@ void qTabDeveloper::GetHighVoltage() {
}
CATCH_DISPLAY("Could not get high voltage.",
"qTabDeveloper::GetHighVoltage")
- connect(spinHV, SIGNAL(editingFinished()), this, SLOT(SetHighVoltage()));
+ connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage()));
connect(comboHV, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetHighVoltage()));
}
diff --git a/slsDetectorGui/src/qTabMeasurement.cpp b/slsDetectorGui/src/qTabMeasurement.cpp
index 4af9b9053..06d283f15 100644
--- a/slsDetectorGui/src/qTabMeasurement.cpp
+++ b/slsDetectorGui/src/qTabMeasurement.cpp
@@ -129,6 +129,8 @@ void qTabMeasurement::Initialization() {
}
connect(chkFile, SIGNAL(toggled(bool)), this, SLOT(SetFileWrite(bool)));
connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName()));
+ connect(dispFileName, SIGNAL(returnPressed()), this,
+ SLOT(ForceSetFileName()));
connect(spinIndex, SIGNAL(valueChanged(int)), this, SLOT(SetRunIndex(int)));
if (startingFnumImplemented) {
connect(spinStartingFrameNumber, SIGNAL(valueChanged(int)), this,
@@ -723,19 +725,26 @@ void qTabMeasurement::GetFileName() {
connect(dispFileName, SIGNAL(editingFinished()), this, SLOT(SetFileName()));
}
-void qTabMeasurement::SetFileName() {
- std::string val = std::string(dispFileName->text().toAscii().constData());
- LOG(logINFO) << "Setting File Name Prefix:" << val;
- try {
- det->setFileNamePrefix(val);
- }
- CATCH_HANDLE("Could not set file name prefix.",
- "qTabMeasurement::SetFileName", this,
- &qTabMeasurement::GetFileName)
+void qTabMeasurement::SetFileName(bool force) {
+ // return forces modification (inconsistency from command line)
+ if (dispFileName->isModified() || force) {
+ dispFileName->setModified(false);
+ std::string val =
+ std::string(dispFileName->text().toAscii().constData());
+ LOG(logINFO) << "Setting File Name Prefix:" << val;
+ try {
+ det->setFileNamePrefix(val);
+ }
+ CATCH_HANDLE("Could not set file name prefix.",
+ "qTabMeasurement::SetFileName", this,
+ &qTabMeasurement::GetFileName)
- emit FileNameChangedSignal(dispFileName->text());
+ emit FileNameChangedSignal(dispFileName->text());
+ }
}
+void qTabMeasurement::ForceSetFileName() { SetFileName(true); }
+
void qTabMeasurement::GetRunIndex() {
LOG(logDEBUG) << "Getting Acquisition File index";
disconnect(spinIndex, SIGNAL(valueChanged(int)), this,
diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp
index 31eca3458..5a0a9e9fc 100644
--- a/slsDetectorGui/src/qTabPlot.cpp
+++ b/slsDetectorGui/src/qTabPlot.cpp
@@ -87,9 +87,9 @@ void qTabPlot::Initialization() {
SLOT(SetStreamingFrequency()));
connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency()));
- connect(spinTimeGap, SIGNAL(editingFinished()), this,
+ connect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency()));
- connect(spinNthFrame, SIGNAL(editingFinished()), this,
+ connect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency()));
// navigation buttons for options
@@ -174,17 +174,17 @@ void qTabPlot::Initialization() {
connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
- connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
- connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
+ connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(isXMinModified()));
+ connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(isXMaxModified()));
+ connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(isYMinModified()));
+ connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(isYMaxModified()));
connect(chkAspectRatio, SIGNAL(toggled(bool)), this,
SLOT(CheckAspectRatio()));
connect(chkZMin, SIGNAL(toggled(bool)), this, SLOT(SetZRange()));
connect(chkZMax, SIGNAL(toggled(bool)), this, SLOT(SetZRange()));
- connect(dispZMin, SIGNAL(editingFinished()), this, SLOT(SetZRange()));
- connect(dispZMax, SIGNAL(editingFinished()), this, SLOT(SetZRange()));
+ connect(dispZMin, SIGNAL(editingFinished()), this, SLOT(isZMinModified()));
+ connect(dispZMax, SIGNAL(editingFinished()), this, SLOT(isZMaxModified()));
}
void qTabPlot::Select1DPlot(bool enable) {
@@ -389,6 +389,48 @@ void qTabPlot::SetTitles() {
SLOT(SetTitles()));
}
+void qTabPlot::isXMinModified() {
+ if (dispXMin->isModified()) {
+ dispXMin->setModified(false);
+ SetXRange();
+ }
+}
+
+void qTabPlot::isXMaxModified() {
+ if (dispXMax->isModified()) {
+ dispXMax->setModified(false);
+ SetXRange();
+ }
+}
+
+void qTabPlot::isYMinModified() {
+ if (dispYMin->isModified()) {
+ dispYMin->setModified(false);
+ SetYRange();
+ }
+}
+
+void qTabPlot::isYMaxModified() {
+ if (dispYMax->isModified()) {
+ dispYMax->setModified(false);
+ SetYRange();
+ }
+}
+
+void qTabPlot::isZMinModified() {
+ if (dispZMin->isModified()) {
+ dispZMin->setModified(false);
+ SetZRange();
+ }
+}
+
+void qTabPlot::isZMaxModified() {
+ if (dispZMax->isModified()) {
+ dispZMax->setModified(false);
+ SetZRange();
+ }
+}
+
void qTabPlot::SetXRange() {
LOG(logDEBUG) << "Enable X axis range";
@@ -452,10 +494,14 @@ void qTabPlot::MaintainAspectRatio(int dimension) {
disconnect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
disconnect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
disconnect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
- disconnect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- disconnect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- disconnect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
- disconnect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
+ disconnect(dispXMin, SIGNAL(editingFinished()), this,
+ SLOT(isXMinModified()));
+ disconnect(dispXMax, SIGNAL(editingFinished()), this,
+ SLOT(isXMaxModified()));
+ disconnect(dispYMin, SIGNAL(editingFinished()), this,
+ SLOT(isYMinModified()));
+ disconnect(dispYMax, SIGNAL(editingFinished()), this,
+ SLOT(isYMaxModified()));
// check all, fill all
chkXMin->setChecked(true);
@@ -550,10 +596,10 @@ void qTabPlot::MaintainAspectRatio(int dimension) {
connect(chkXMax, SIGNAL(toggled(bool)), this, SLOT(SetXRange()));
connect(chkYMin, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
connect(chkYMax, SIGNAL(toggled(bool)), this, SLOT(SetYRange()));
- connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(SetXRange()));
- connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
- connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(SetYRange()));
+ connect(dispXMin, SIGNAL(editingFinished()), this, SLOT(isXMinModified()));
+ connect(dispXMax, SIGNAL(editingFinished()), this, SLOT(isXMaxModified()));
+ connect(dispYMin, SIGNAL(editingFinished()), this, SLOT(isYMinModified()));
+ connect(dispYMax, SIGNAL(editingFinished()), this, SLOT(isYMaxModified()));
bool isRange[4]{true, true, true, true};
plot->SetXYRangeChanged(true, ranges, isRange);
@@ -583,9 +629,9 @@ void qTabPlot::GetStreamingFrequency() {
SLOT(SetStreamingFrequency()));
disconnect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency()));
- disconnect(spinTimeGap, SIGNAL(editingFinished()), this,
+ disconnect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency()));
- disconnect(spinNthFrame, SIGNAL(editingFinished()), this,
+ disconnect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency()));
try {
int freq = det->getRxZmqFrequency().tsquash(
@@ -621,9 +667,9 @@ void qTabPlot::GetStreamingFrequency() {
SLOT(SetStreamingFrequency()));
connect(comboTimeGapUnit, SIGNAL(currentIndexChanged(int)), this,
SLOT(SetStreamingFrequency()));
- connect(spinTimeGap, SIGNAL(editingFinished()), this,
+ connect(spinTimeGap, SIGNAL(valueChanged(double)), this,
SLOT(SetStreamingFrequency()));
- connect(spinNthFrame, SIGNAL(editingFinished()), this,
+ connect(spinNthFrame, SIGNAL(valueChanged(int)), this,
SLOT(SetStreamingFrequency()));
}