diff --git a/mainwindow.cpp b/mainwindow.cpp
index 47c5091..c6bc6f3 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -1391,6 +1391,11 @@ void MainWindow::writeSettings()
m_settings->setValue("FoxNlist",ui->sbNlist->value());
m_settings->setValue("FoxNslots",ui->sbNslots->value());
m_settings->setValue("FoxMaxDB",ui->sbMax_dB->value());
+
+ m_settings->setValue("MainSplitter", ui->mainSplitter->saveState());
+ m_settings->setValue("TextHorizontalSplitter", ui->textHorizontalSplitter->saveState());
+ m_settings->setValue("TextVerticalSplitter", ui->textVerticalSplitter->saveState());
+
m_settings->endGroup();
m_settings->beginGroup("Common");
@@ -1477,6 +1482,11 @@ void MainWindow::readSettings()
ui->sbNlist->setValue(m_settings->value("FoxNlist",12).toInt());
ui->sbNslots->setValue(m_settings->value("FoxNslots",5).toInt());
ui->sbMax_dB->setValue(m_settings->value("FoxMaxDB",30).toInt());
+
+ ui->mainSplitter->restoreState(m_settings->value("MainSplitter", ui->mainSplitter->saveState()).toByteArray());
+ ui->textHorizontalSplitter->restoreState(m_settings->value("TextHorizontalSplitter", ui->textHorizontalSplitter->saveState()).toByteArray());
+ ui->textVerticalSplitter->restoreState(m_settings->value("TextVerticalSplitter", ui->textVerticalSplitter->saveState()).toByteArray());
+
m_settings->endGroup();
// do this outside of settings group because it uses groups internally
@@ -1995,6 +2005,60 @@ void MainWindow::showSoundOutError(const QString& errorMsg)
void MainWindow::showStatusMessage(const QString& statusMsg)
{statusBar()->showMessage(statusMsg);}
+
+void MainWindow::on_menuWindow_aboutToShow(){
+ auto hsizes = ui->textHorizontalSplitter->sizes();
+ ui->actionShow_Band_Activity->setChecked(hsizes.at(0) > 0);
+ ui->actionShow_Call_Activity->setChecked(hsizes.at(2) > 0);
+
+ auto vsizes = ui->mainSplitter->sizes();
+ ui->actionShow_Waterfall->setChecked(vsizes.last() > 0);
+}
+
+void MainWindow::on_actionShow_Band_Activity_triggered(bool checked){
+ auto hsizes = ui->textHorizontalSplitter->sizes();
+ hsizes[0] = checked ? ui->textHorizontalSplitter->width()/4 : 0;
+ ui->textHorizontalSplitter->setSizes(hsizes);
+}
+
+void MainWindow::on_actionShow_Call_Activity_triggered(bool checked){
+ auto hsizes = ui->textHorizontalSplitter->sizes();
+ hsizes[2] = checked ? ui->textHorizontalSplitter->width()/4 : 0;
+ ui->textHorizontalSplitter->setSizes(hsizes);
+}
+
+void MainWindow::on_actionShow_Waterfall_triggered(bool checked){
+ auto vsizes = ui->mainSplitter->sizes();
+ vsizes[0] = qMin(vsizes[0], ui->logHorizontalWidget->minimumHeight());
+ int oldHeight = vsizes[vsizes.length()-1];
+ int newHeight = checked ? ui->mainSplitter->height()/4 : 0;
+ vsizes[1] += oldHeight - newHeight;
+ vsizes[vsizes.length()-1] = newHeight;
+ ui->mainSplitter->setSizes(vsizes);
+}
+
+void MainWindow::on_actionReset_Window_Sizes_triggered(){
+ auto size = this->centralWidget()->size();
+
+ ui->mainSplitter->setSizes({
+ ui->logHorizontalWidget->minimumHeight(),
+ ui->mainSplitter->height()/2,
+ ui->macroHorizonalWidget->minimumHeight(),
+ ui->mainSplitter->height()/4
+ });
+
+ ui->textHorizontalSplitter->setSizes({
+ ui->textHorizontalSplitter->width()/4,
+ ui->textHorizontalSplitter->width()/2,
+ ui->textHorizontalSplitter->width()/4
+ });
+
+ ui->textVerticalSplitter->setSizes({
+ ui->textVerticalSplitter->height()/2,
+ ui->textVerticalSplitter->height()/2
+ });
+}
+
void MainWindow::on_actionSettings_triggered() //Setup Dialog
{
// things that might change that we need know about
@@ -5566,12 +5630,15 @@ void MainWindow::displayTextForFreq(QString text, int freq, QDateTime date, bool
block = -1;
m_rxFrameBlockNumbers.remove(freq);
}
+
if(newLine){
m_rxFrameBlockNumbers.remove(freq);
block = -1;
}
block = writeMessageTextToUI(date, text, freq, bold, block);
+
+ // TODO: jsherer - might be better to see if the bits are "last" versus checking for the EOT
if(!text.contains("\u2301")){
m_rxFrameBlockNumbers.insert(freq, block);
}
diff --git a/mainwindow.h b/mainwindow.h
index de5ce5f..7d32132 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -158,6 +158,11 @@ private slots:
void on_tx4_editingFinished();
void on_tx5_currentTextChanged (QString const&);
void on_tx6_editingFinished();
+ void on_menuWindow_aboutToShow();
+ void on_actionShow_Band_Activity_triggered(bool checked);
+ void on_actionShow_Call_Activity_triggered(bool checked);
+ void on_actionShow_Waterfall_triggered(bool checked);
+ void on_actionReset_Window_Sizes_triggered();
void on_actionSettings_triggered();
void preparePSKReporter();
void on_spotButton_clicked(bool checked);
diff --git a/mainwindow.ui b/mainwindow.ui
index 160e90d..1d4d1ba 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -1669,14 +1669,14 @@ background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #2ecc71, stop:1 #00FF
-
-
-
- More CQs
-
-
- false
-
-
+
+
+ false
+
+
+ More CQs
+
+
-
@@ -4205,9 +4205,9 @@ list. The list can be maintained in Settings (F2).
+
@@ -4311,6 +4321,7 @@ list. The list can be maintained in Settings (F2).
+
@@ -4430,9 +4441,6 @@ list. The list can be maintained in Settings (F2).
-
- false
-
false
@@ -4442,6 +4450,9 @@ list. The list can be maintained in Settings (F2).
F1
+
+ false
+
@@ -4670,12 +4681,12 @@ list. The list can be maintained in Settings (F2).
false
-
- false
-
List of Type 1 prefixes and suffixes
+
+ false
+
@@ -4686,15 +4697,15 @@ list. The list can be maintained in Settings (F2).
-
- false
-
false
Local User Guide
+
+ false
+
@@ -4919,9 +4930,6 @@ list. The list can be maintained in Settings (F2).
-
- false
-
Fox Log
@@ -4931,28 +4939,69 @@ list. The list can be maintained in Settings (F2).
Fox Log
+
+ false
+
-
- false
-
false
Erase FoxQSO.txt
+
+ false
+
false
-
- false
-
FT8 DXpedition Mode User Guide
+
+ false
+
+
+
+
+ true
+
+
+ true
+
+
+ Show Band Activity
+
+
+
+
+ true
+
+
+ true
+
+
+ Show Call Activity
+
+
+
+
+ true
+
+
+ true
+
+
+ Show Waterfall
+
+
+
+
+ Reset Window Sizes
+