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). - - false - + + false + View @@ -4220,9 +4220,9 @@ list. The list can be maintained in Settings (F2). - - false - + + false + Decode @@ -4263,9 +4263,9 @@ list. The list can be maintained in Settings (F2). - - false - + + false + Mode @@ -4304,6 +4304,16 @@ list. The list can be maintained in Settings (F2). + + + Window + + + + + + + @@ -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 +