From 4ff5d241c805826ddfbf05e35520139bdfedf046 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 10 Apr 2022 00:11:23 +0200 Subject: [PATCH] Massive UI revamping (v7): main spectrum show/hide and minimum width set to 360 --- sdrgui/device/devicegui.cpp | 6 ++++++ sdrgui/device/devicegui.h | 2 ++ sdrgui/device/deviceuiset.cpp | 5 +++++ sdrgui/gui/glspectrum.cpp | 2 +- sdrgui/mainwindow.cpp | 11 +++++++++++ sdrgui/mainwindow.h | 1 + 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/sdrgui/device/devicegui.cpp b/sdrgui/device/devicegui.cpp index 28715039c..bd76017cf 100644 --- a/sdrgui/device/devicegui.cpp +++ b/sdrgui/device/devicegui.cpp @@ -174,6 +174,7 @@ DeviceGUI::DeviceGUI(QWidget *parent) : connect(this, SIGNAL(forceShrink()), this, SLOT(shrinkWindow())); connect(m_closeButton, SIGNAL(clicked()), this, SLOT(close())); connect(this, SIGNAL(forceClose()), this, SLOT(close())); + connect(m_showSpectrumButton, SIGNAL(clicked()), this, SLOT(showSpectrumHandler())); } DeviceGUI::~DeviceGUI() @@ -274,6 +275,11 @@ void DeviceGUI::openMoveToWorkspaceDialog() } } +void DeviceGUI::showSpectrumHandler() +{ + emit showSpectrum(m_deviceSetIndex); +} + void DeviceGUI::shrinkWindow() { qDebug("DeviceGUI::shrinkWindow"); diff --git a/sdrgui/device/devicegui.h b/sdrgui/device/devicegui.h index a4167d704..5ba14ccad 100644 --- a/sdrgui/device/devicegui.h +++ b/sdrgui/device/devicegui.h @@ -125,6 +125,7 @@ private slots: void deviceReload(); void showHelp(); void openMoveToWorkspaceDialog(); + void showSpectrumHandler(); signals: void forceClose(); @@ -133,6 +134,7 @@ signals: void forceShrink(); void deviceAdd(int deviceType, int deviceIndex); void deviceChange(int newDeviceIndex); + void showSpectrum(int deviceSetIndex); }; #endif // INCLUDE_DEVICEGUI_H diff --git a/sdrgui/device/deviceuiset.cpp b/sdrgui/device/deviceuiset.cpp index 3570517df..2a8bff4f9 100644 --- a/sdrgui/device/deviceuiset.cpp +++ b/sdrgui/device/deviceuiset.cpp @@ -174,6 +174,10 @@ void DeviceUISet::loadDeviceSetSettings( m_spectrumGUI->deserialize(preset->getSpectrumConfig()); m_deviceAPI->loadSamplingDeviceSettings(preset); + if (!preset->getShowSpectrum()) { + m_mainSpectrumGUI->hide(); + } + if (m_deviceSourceEngine) { // source device loadRxChannelSettings(preset, pluginAPI); } else if (m_deviceSinkEngine) { // sink device @@ -188,6 +192,7 @@ void DeviceUISet::saveDeviceSetSettings(Preset* preset) const preset->setSpectrumConfig(m_spectrumGUI->serialize()); preset->setSpectrumWorkspaceIndex(m_mainSpectrumGUI->getWorkspaceIndex()); preset->setSpectrumGeometry(m_mainSpectrumGUI->saveGeometry()); + preset->setShowSpectrum(m_spectrumGUI->isVisible()); preset->setSelectedDevice(Preset::SelectedDevice{ m_deviceAPI->getSamplingDeviceId(), m_deviceAPI->getSamplingDeviceSerial(), diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp index 2c9c1513f..f6a6485e4 100644 --- a/sdrgui/gui/glspectrum.cpp +++ b/sdrgui/gui/glspectrum.cpp @@ -99,7 +99,7 @@ GLSpectrum::GLSpectrum(QWidget* parent) : setAttribute(Qt::WA_NoSystemBackground, true); setMouseTracking(true); - setMinimumSize(200, 200); + setMinimumSize(360, 200); m_waterfallShare = 0.5; diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index 3b9d3f654..7c9a4b462 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -516,6 +516,12 @@ void MainWindow::sampleSourceCreate( this, [=](int newDeviceIndex){ this->sampleDeviceChangeHandler(deviceGUI, newDeviceIndex); } ); + QObject::connect( + deviceGUI, + &DeviceGUI::showSpectrum, + this, + [=](int deviceSetIndex){ this->mainSpectrumShow(this->m_deviceUIs[deviceSetIndex]->m_mainSpectrumGUI); } + ); deviceAPI->getSampleSource()->setMessageQueueToGUI(deviceGUI->getInputMessageQueue()); deviceUISet->m_deviceGUI = deviceGUI; const PluginInterface::SamplingDevice *selectedDevice = DeviceEnumerator::instance()->getRxSamplingDevice(selectedDeviceIndex); @@ -2501,6 +2507,11 @@ void MainWindow::mainSpectrumMove(MainSpectrumGUI *gui, int wsIndexDestnation) m_workspaces[wsIndexDestnation]->addToMdiArea(gui); } +void MainWindow::mainSpectrumShow(MainSpectrumGUI *gui) +{ + gui->show(); +} + void MainWindow::openFeaturePresetsDialog(QPoint p, Workspace *workspace) { FeaturePresetsDialog dialog; diff --git a/sdrgui/mainwindow.h b/sdrgui/mainwindow.h index 1a5151365..2b799cf3d 100644 --- a/sdrgui/mainwindow.h +++ b/sdrgui/mainwindow.h @@ -208,6 +208,7 @@ private slots: void openFeaturePresetsDialog(QPoint p, Workspace *workspace); void deviceMove(DeviceGUI *gui, int wsIndexDestnation); void mainSpectrumMove(MainSpectrumGUI *gui, int wsIndexDestnation); + void mainSpectrumShow(MainSpectrumGUI *gui); void on_action_Quick_Start_triggered(); void on_action_Main_Window_triggered(); void on_action_Loaded_Plugins_triggered();