From 360b8a9753736a87864580a77f98d55e67175bf6 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 24 Apr 2022 12:28:56 +0200 Subject: [PATCH] Massive UI revamping (v7): Fixed sizing of channel windows. Part of #1209 --- .../beamsteeringcwmodgui.cpp | 19 ++++-- .../beamsteeringcwmod/beamsteeringcwmodgui.h | 3 + .../interferometer/interferometergui.cpp | 23 +++++-- .../channelrx/chanalyzer/chanalyzergui.cpp | 24 +++++-- plugins/channelrx/demodadsb/adsbdemodgui.cpp | 24 +++++-- plugins/channelrx/demodais/aisdemodgui.cpp | 24 +++++-- plugins/channelrx/demodapt/aptdemodgui.cpp | 24 +++++-- plugins/channelrx/demodatv/atvdemodgui.cpp | 19 ++++-- plugins/channelrx/demodatv/atvdemodgui.h | 3 + plugins/channelrx/demodbfm/bfmdemodgui.cpp | 24 +++++-- .../demodchirpchat/chirpchatdemodgui.cpp | 23 +++++-- plugins/channelrx/demoddab/dabdemodgui.cpp | 24 +++++-- plugins/channelrx/demoddatv/datvdemodgui.cpp | 21 ++++-- plugins/channelrx/demoddatv/datvdemodgui.h | 3 + .../channelrx/demodfreedv/freedvdemodgui.cpp | 23 +++++-- .../channelrx/demodpacket/packetdemodgui.cpp | 24 +++++-- .../channelrx/demodpager/pagerdemodgui.cpp | 24 +++++-- .../demodradiosonde/radiosondedemodgui.cpp | 24 +++++-- plugins/channelrx/demodvor/vordemodgui.cpp | 23 +++++-- .../channelrx/demodvorsc/vordemodscgui.cpp | 20 ++++-- plugins/channelrx/demodvorsc/vordemodscgui.h | 3 + plugins/channelrx/demodvorsc/vordemodscgui.ui | 24 ++++--- plugins/channelrx/filesink/filesinkgui.cpp | 23 +++++-- plugins/channelrx/filesink/filesinkgui.ui | 45 ++++++++----- .../channelrx/freqtracker/freqtrackergui.ui | 54 ++++++++++------ plugins/channelrx/localsink/localsinkgui.cpp | 19 ++++-- plugins/channelrx/localsink/localsinkgui.h | 3 + plugins/channelrx/localsink/localsinkgui.ui | 4 +- .../channelrx/noisefigure/noisefiguregui.cpp | 24 +++++-- .../radioastronomy/radioastronomygui.cpp | 23 +++++-- .../channelrx/radioclock/radioclockgui.cpp | 24 +++++-- .../channelrx/remotesink/remotesinkgui.cpp | 19 ++++-- plugins/channelrx/remotesink/remotesinkgui.h | 3 + plugins/channelrx/remotesink/remotesinkgui.ui | 8 +-- .../sigmffilesink/sigmffilesinkgui.cpp | 23 +++++-- .../sigmffilesink/sigmffilesinkgui.ui | 45 ++++++++----- plugins/channelrx/udpsink/udpsinkgui.cpp | 25 ++++++-- plugins/channelrx/udpsink/udpsinkgui.ui | 62 +++++++++++++++--- .../channeltx/filesource/filesourcegui.cpp | 25 +++++--- plugins/channeltx/filesource/filesourcegui.h | 3 + plugins/channeltx/filesource/filesourcegui.ui | 21 ++++-- .../channeltx/localsource/localsourcegui.cpp | 19 ++++-- .../channeltx/localsource/localsourcegui.h | 3 + .../channeltx/localsource/localsourcegui.ui | 4 +- .../mod802.15.4/ieee_802_15_4_modgui.cpp | 24 +++++-- .../mod802.15.4/ieee_802_15_4_modgui.ui | 42 ++++++------ plugins/channeltx/modais/aismodgui.cpp | 24 +++++-- plugins/channeltx/modais/aismodgui.ui | 64 ++++++++++++++----- plugins/channeltx/modam/ammodgui.cpp | 19 ++++-- plugins/channeltx/modam/ammodgui.h | 3 + plugins/channeltx/modam/ammodgui.ui | 18 ++++-- plugins/channeltx/modatv/atvmodgui.cpp | 19 ++++-- plugins/channeltx/modatv/atvmodgui.h | 3 + plugins/channeltx/modatv/atvmodgui.ui | 16 +++-- .../modchirpchat/chirpchatmodgui.cpp | 20 ++++-- .../channeltx/modchirpchat/chirpchatmodgui.h | 3 + .../channeltx/modchirpchat/chirpchatmodgui.ui | 37 ++++++----- plugins/channeltx/moddatv/datvmodgui.cpp | 19 ++++-- plugins/channeltx/moddatv/datvmodgui.h | 3 + plugins/channeltx/moddatv/datvmodgui.ui | 18 ++++-- plugins/channeltx/modfreedv/freedvmodgui.cpp | 23 +++++-- plugins/channeltx/modfreedv/freedvmodgui.ui | 26 ++++++-- plugins/channeltx/modnfm/nfmmodgui.cpp | 19 ++++-- plugins/channeltx/modnfm/nfmmodgui.h | 3 + plugins/channeltx/modnfm/nfmmodgui.ui | 18 ++++-- plugins/channeltx/modpacket/packetmodgui.cpp | 24 +++++-- plugins/channeltx/modpacket/packetmodgui.ui | 36 +++++++---- plugins/channeltx/modssb/ssbmodgui.cpp | 23 +++++-- plugins/channeltx/modssb/ssbmodgui.ui | 34 ++++++---- plugins/channeltx/modwfm/wfmmodgui.cpp | 19 ++++-- plugins/channeltx/modwfm/wfmmodgui.h | 3 + plugins/channeltx/modwfm/wfmmodgui.ui | 24 ++++--- .../remotesource/remotesourcegui.cpp | 19 ++++-- .../channeltx/remotesource/remotesourcegui.h | 3 + .../channeltx/remotesource/remotesourcegui.ui | 21 ++---- plugins/channeltx/udpsource/udpsourcegui.cpp | 25 ++++++-- plugins/channeltx/udpsource/udpsourcegui.ui | 32 ++++------ 77 files changed, 1146 insertions(+), 440 deletions(-) diff --git a/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.cpp b/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.cpp index 5c35e4b8c..f54ec2100 100644 --- a/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.cpp +++ b/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "device/deviceuiset.h" #include "gui/basicchannelsettingsdialog.h" @@ -61,6 +62,14 @@ bool BeamSteeringCWModGUI::deserialize(const QByteArray& data) } } +void BeamSteeringCWModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool BeamSteeringCWModGUI::handleMessage(const Message& message) { if (BeamSteeringCWMod::MsgBasebandNotification::match(message)) @@ -96,11 +105,13 @@ BeamSteeringCWModGUI::BeamSteeringCWModGUI(PluginAPI* pluginAPI, DeviceUISet *de m_centerFrequency(435000000), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelmimo/beamSteeringcwmod/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_bsCWSource = (BeamSteeringCWMod*) mimoChannel; diff --git a/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.h b/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.h index 984eb4dd4..b515573b1 100644 --- a/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.h +++ b/plugins/channelmimo/beamsteeringcwmod/beamsteeringcwmodgui.h @@ -93,6 +93,9 @@ private: void applyInterpolation(); void applyPosition(); +protected: + void resizeEvent(QResizeEvent* size); + private slots: void handleSourceMessages(); void on_channelOutput_currentIndexChanged(int index); diff --git a/plugins/channelmimo/interferometer/interferometergui.cpp b/plugins/channelmimo/interferometer/interferometergui.cpp index 8ab582f62..d97dfb80d 100644 --- a/plugins/channelmimo/interferometer/interferometergui.cpp +++ b/plugins/channelmimo/interferometer/interferometergui.cpp @@ -106,11 +106,13 @@ InterferometerGUI::InterferometerGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUI m_centerFrequency(435000000), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelmimo/interferometer/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_interferometer = (Interferometer*) channelMIMO; @@ -248,7 +250,18 @@ void InterferometerGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } diff --git a/plugins/channelrx/chanalyzer/chanalyzergui.cpp b/plugins/channelrx/chanalyzer/chanalyzergui.cpp index aa5289e1e..ce061c88a 100644 --- a/plugins/channelrx/chanalyzer/chanalyzergui.cpp +++ b/plugins/channelrx/chanalyzer/chanalyzergui.cpp @@ -458,7 +458,18 @@ void ChannelAnalyzerGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -518,12 +529,13 @@ ChannelAnalyzerGUI::ChannelAnalyzerGUI(PluginAPI* pluginAPI, DeviceUISet *device m_doApplySettings(true), m_basebandSampleRate(48000) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/chanalyzer/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/chanalyzer/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_channelAnalyzer = (ChannelAnalyzer*) rxChannel; diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp index 4005e67a6..ee16b190d 100644 --- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp +++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp @@ -2765,7 +2765,18 @@ void ADSBDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -3694,9 +3705,13 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_highlightAircraft(nullptr), m_progressDialog(nullptr) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); + setAttribute(Qt::WA_DeleteOnClose, true); m_helpURL = "plugins/channelrx/demodadsb/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); m_osmPort = 0; // Pick a free port m_templateServer = new ADSBOSMTemplateServer("q2RVNAe3eFKCH4XsrE3r", m_osmPort); @@ -3707,9 +3722,6 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb ui->map->rootContext()->setContextProperty("navAidModel", &m_navAidModel); ui->map->setSource(QUrl(QStringLiteral("qrc:/map/map.qml"))); - setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(&m_dlm, &HttpDownloadManager::downloadComplete, this, &ADSBDemodGUI::downloadFinished); diff --git a/plugins/channelrx/demodais/aisdemodgui.cpp b/plugins/channelrx/demodais/aisdemodgui.cpp index c1095e8f5..72946bac4 100644 --- a/plugins/channelrx/demodais/aisdemodgui.cpp +++ b/plugins/channelrx/demodais/aisdemodgui.cpp @@ -382,7 +382,18 @@ void AISDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) } } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -444,12 +455,13 @@ AISDemodGUI::AISDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodais/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodais/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_aisDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodapt/aptdemodgui.cpp b/plugins/channelrx/demodapt/aptdemodgui.cpp index f7889956a..789459c4e 100644 --- a/plugins/channelrx/demodapt/aptdemodgui.cpp +++ b/plugins/channelrx/demodapt/aptdemodgui.cpp @@ -542,7 +542,18 @@ void APTDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -605,12 +616,13 @@ APTDemodGUI::APTDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_scene(nullptr), m_pixmapItem(nullptr) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodapt/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodapt/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_aptDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodatv/atvdemodgui.cpp b/plugins/channelrx/demodatv/atvdemodgui.cpp index bc0ca5eab..41b819517 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.cpp +++ b/plugins/channelrx/demodatv/atvdemodgui.cpp @@ -18,6 +18,7 @@ #include #include +#include #include "atvdemodgui.h" @@ -76,6 +77,14 @@ bool ATVDemodGUI::deserialize(const QByteArray& data) } } +void ATVDemodGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + void ATVDemodGUI::displaySettings() { m_channelMarker.blockSignals(true); @@ -268,11 +277,13 @@ ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Base m_intTickCount(0), m_basebandSampleRate(48000) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodatv/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodatv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_atvDemod = (ATVDemod*) rxChannel; diff --git a/plugins/channelrx/demodatv/atvdemodgui.h b/plugins/channelrx/demodatv/atvdemodgui.h index 663d565a9..d950a0b1e 100644 --- a/plugins/channelrx/demodatv/atvdemodgui.h +++ b/plugins/channelrx/demodatv/atvdemodgui.h @@ -66,6 +66,9 @@ public slots: void channelMarkerChangedByCursor(); void channelMarkerHighlightedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::ATVDemodGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channelrx/demodbfm/bfmdemodgui.cpp b/plugins/channelrx/demodbfm/bfmdemodgui.cpp index 9917db345..c486ef29e 100644 --- a/plugins/channelrx/demodbfm/bfmdemodgui.cpp +++ b/plugins/channelrx/demodbfm/bfmdemodgui.cpp @@ -316,7 +316,18 @@ void BFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -379,9 +390,14 @@ BFMDemodGUI::BFMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_radiotext_AB_flag(false), m_rate(625000) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); + setAttribute(Qt::WA_DeleteOnClose, true); m_helpURL = "plugins/channelrx/demodbfm/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03))); ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); ui->deltaFrequency->setValueRange(false, 8, -99999999, 99999999); @@ -390,8 +406,6 @@ BFMDemodGUI::BFMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban CRightClickEnabler *audioMuteRightClickEnabler = new CRightClickEnabler(ui->audioStereo); connect(audioMuteRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(audioSelect())); - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); diff --git a/plugins/channelrx/demodchirpchat/chirpchatdemodgui.cpp b/plugins/channelrx/demodchirpchat/chirpchatdemodgui.cpp index 1226ebbae..a2ca6ffd6 100644 --- a/plugins/channelrx/demodchirpchat/chirpchatdemodgui.cpp +++ b/plugins/channelrx/demodchirpchat/chirpchatdemodgui.cpp @@ -329,7 +329,18 @@ void ChirpChatDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -391,11 +402,13 @@ ChirpChatDemodGUI::ChirpChatDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUI m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodchirpchat/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodchirpchat/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_chirpChatDemod = (ChirpChatDemod*) rxChannel; diff --git a/plugins/channelrx/demoddab/dabdemodgui.cpp b/plugins/channelrx/demoddab/dabdemodgui.cpp index dd8e36f21..b64e9e8a5 100644 --- a/plugins/channelrx/demoddab/dabdemodgui.cpp +++ b/plugins/channelrx/demoddab/dabdemodgui.cpp @@ -392,7 +392,18 @@ void DABDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -454,12 +465,13 @@ DABDemodGUI::DABDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_tickCount(0), m_channelFreq(0.0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demoddab/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demoddab/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_dabDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demoddatv/datvdemodgui.cpp b/plugins/channelrx/demoddatv/datvdemodgui.cpp index eeb480588..6e5b70674 100644 --- a/plugins/channelrx/demoddatv/datvdemodgui.cpp +++ b/plugins/channelrx/demoddatv/datvdemodgui.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include "device/deviceuiset.h" #include "dsp/dspengine.h" @@ -80,6 +81,14 @@ bool DATVDemodGUI::deserialize(const QByteArray& arrData) } } +void DATVDemodGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool DATVDemodGUI::handleMessage(const Message& message) { if (DATVDemodReport::MsgReportModcodCstlnChange::match(message)) @@ -213,13 +222,17 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba m_modcodCodeRateIndex(-1), m_cstlnSetByModcod(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); + setAttribute(Qt::WA_DeleteOnClose, true); m_helpURL = "plugins/channelrx/demoddatv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + ui->screenTV->setColor(true); ui->screenTV->resizeTVScreen(256,256); - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); diff --git a/plugins/channelrx/demoddatv/datvdemodgui.h b/plugins/channelrx/demoddatv/datvdemodgui.h index 34b987c10..c39c5a143 100644 --- a/plugins/channelrx/demoddatv/datvdemodgui.h +++ b/plugins/channelrx/demoddatv/datvdemodgui.h @@ -65,6 +65,9 @@ public: static const char* const m_strChannelID; +protected: + void resizeEvent(QResizeEvent* size); + private slots: void channelMarkerChangedByCursor(); void channelMarkerHighlightedByCursor(); diff --git a/plugins/channelrx/demodfreedv/freedvdemodgui.cpp b/plugins/channelrx/demodfreedv/freedvdemodgui.cpp index 6ea0372a8..2ed6714be 100644 --- a/plugins/channelrx/demodfreedv/freedvdemodgui.cpp +++ b/plugins/channelrx/demodfreedv/freedvdemodgui.cpp @@ -248,7 +248,18 @@ void FreeDVDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -268,11 +279,13 @@ FreeDVDemodGUI::FreeDVDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B m_squelchOpen(false), m_audioSampleRate(-1) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodfreedv/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodfreedv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_freeDVDemod = (FreeDVDemod*) rxChannel; diff --git a/plugins/channelrx/demodpacket/packetdemodgui.cpp b/plugins/channelrx/demodpacket/packetdemodgui.cpp index 28bbf01db..e132d0547 100644 --- a/plugins/channelrx/demodpacket/packetdemodgui.cpp +++ b/plugins/channelrx/demodpacket/packetdemodgui.cpp @@ -374,7 +374,18 @@ void PacketDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -435,12 +446,13 @@ PacketDemodGUI::PacketDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodpacket/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodpacket/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_packetDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodpager/pagerdemodgui.cpp b/plugins/channelrx/demodpager/pagerdemodgui.cpp index bbab5548b..8ae79a3a3 100644 --- a/plugins/channelrx/demodpager/pagerdemodgui.cpp +++ b/plugins/channelrx/demodpager/pagerdemodgui.cpp @@ -431,7 +431,18 @@ void PagerDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) } } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -493,12 +504,13 @@ PagerDemodGUI::PagerDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodpager/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodpager/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_pagerDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodradiosonde/radiosondedemodgui.cpp b/plugins/channelrx/demodradiosonde/radiosondedemodgui.cpp index d45f552a4..1c34e1542 100644 --- a/plugins/channelrx/demodradiosonde/radiosondedemodgui.cpp +++ b/plugins/channelrx/demodradiosonde/radiosondedemodgui.cpp @@ -488,7 +488,18 @@ void RadiosondeDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) } } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -550,12 +561,13 @@ RadiosondeDemodGUI::RadiosondeDemodGUI(PluginAPI* pluginAPI, DeviceUISet *device m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodradiosonde/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodradiosonde/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_radiosondeDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodvor/vordemodgui.cpp b/plugins/channelrx/demodvor/vordemodgui.cpp index 18df17879..14410fb43 100644 --- a/plugins/channelrx/demodvor/vordemodgui.cpp +++ b/plugins/channelrx/demodvor/vordemodgui.cpp @@ -1107,7 +1107,18 @@ void VORDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -1172,9 +1183,13 @@ VORDemodGUI::VORDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_vorModel(this), m_vors(nullptr) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); + setAttribute(Qt::WA_DeleteOnClose, true); m_helpURL = "plugins/channelrx/demodvor/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); ui->map->rootContext()->setContextProperty("vorModel", &m_vorModel); ui->map->setSource(QUrl(QStringLiteral("qrc:/demodvor/map/map.qml"))); @@ -1182,8 +1197,6 @@ VORDemodGUI::VORDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_muteIcon.addPixmap(QPixmap("://sound_off.png"), QIcon::Normal, QIcon::On); m_muteIcon.addPixmap(QPixmap("://sound_on.png"), QIcon::Normal, QIcon::Off); - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(&m_dlm, &HttpDownloadManager::downloadComplete, this, &VORDemodGUI::downloadFinished); diff --git a/plugins/channelrx/demodvorsc/vordemodscgui.cpp b/plugins/channelrx/demodvorsc/vordemodscgui.cpp index 2cfe7740e..8cdd2be12 100644 --- a/plugins/channelrx/demodvorsc/vordemodscgui.cpp +++ b/plugins/channelrx/demodvorsc/vordemodscgui.cpp @@ -19,6 +19,7 @@ #include #include +#include #include "device/deviceuiset.h" #include "dsp/dspengine.h" @@ -76,6 +77,14 @@ bool VORDemodSCGUI::deserialize(const QByteArray& data) } } +void VORDemodSCGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool VORDemodSCGUI::handleMessage(const Message& message) { if (VORDemodSC::MsgConfigureVORDemod::match(message)) @@ -290,12 +299,13 @@ VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas m_squelchOpen(false), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/demodvorsc/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/demodvorsc/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_vorDemod = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/demodvorsc/vordemodscgui.h b/plugins/channelrx/demodvorsc/vordemodscgui.h index 058d36c20..53e23bac4 100644 --- a/plugins/channelrx/demodvorsc/vordemodscgui.h +++ b/plugins/channelrx/demodvorsc/vordemodscgui.h @@ -64,6 +64,9 @@ public slots: void channelMarkerChangedByCursor(); void channelMarkerHighlightedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::VORDemodSCGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channelrx/demodvorsc/vordemodscgui.ui b/plugins/channelrx/demodvorsc/vordemodscgui.ui index e406cd4c2..2e14ac898 100644 --- a/plugins/channelrx/demodvorsc/vordemodscgui.ui +++ b/plugins/channelrx/demodvorsc/vordemodscgui.ui @@ -7,11 +7,11 @@ 0 0 402 - 189 + 138 - + 0 0 @@ -22,6 +22,12 @@ 110 + + + 560 + 16777215 + + Liberation Sans @@ -619,25 +625,25 @@
gui/rollupcontents.h
1 - - LevelMeterSignalDB - QWidget -
gui/levelmeter.h
- 1 -
ValueDialZ QWidget
gui/valuedialz.h
1
+ + LevelMeterSignalDB + QWidget +
gui/levelmeter.h
+ 1 +
audioMute - + diff --git a/plugins/channelrx/filesink/filesinkgui.cpp b/plugins/channelrx/filesink/filesinkgui.cpp index e2ab550d1..98ddc362e 100644 --- a/plugins/channelrx/filesink/filesinkgui.cpp +++ b/plugins/channelrx/filesink/filesinkgui.cpp @@ -189,11 +189,13 @@ FileSinkGUI::FileSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_fixedPosition(false), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/filesink/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/filesink/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_fileSink = (FileSink*) channelrx; @@ -352,7 +354,18 @@ void FileSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } diff --git a/plugins/channelrx/filesink/filesinkgui.ui b/plugins/channelrx/filesink/filesinkgui.ui index b109a54f9..55ba0b170 100644 --- a/plugins/channelrx/filesink/filesinkgui.ui +++ b/plugins/channelrx/filesink/filesinkgui.ui @@ -10,6 +10,12 @@ 458
+ + + 0 + 0 + + 552 @@ -508,7 +514,7 @@ - + 0 @@ -517,8 +523,11 @@ 351 - - Channel Spectrum + + + 0 + 0 + @@ -526,9 +535,15 @@ + + + 0 + 0 + + - 0 + 300 300 @@ -553,17 +568,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -576,6 +580,17 @@
gui/glspectrumgui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/channelrx/freqtracker/freqtrackergui.ui b/plugins/channelrx/freqtracker/freqtrackergui.ui index 72ba59785..cc5d7a76f 100644 --- a/plugins/channelrx/freqtracker/freqtrackergui.ui +++ b/plugins/channelrx/freqtracker/freqtrackergui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -754,6 +754,12 @@ 161 + + + 0 + 0 + + Channel Spectrum @@ -775,6 +781,18 @@
+ + + 0 + 0 + + + + + 300 + 300 + + Liberation Mono @@ -796,23 +814,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - LevelMeterSignalDB - QWidget -
gui/levelmeter.h
- 1 -
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -825,6 +826,23 @@
gui/glspectrumgui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + LevelMeterSignalDB + QWidget +
gui/levelmeter.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/channelrx/localsink/localsinkgui.cpp b/plugins/channelrx/localsink/localsinkgui.cpp index 399cae251..24230a796 100644 --- a/plugins/channelrx/localsink/localsinkgui.cpp +++ b/plugins/channelrx/localsink/localsinkgui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "device/deviceuiset.h" #include "gui/basicchannelsettingsdialog.h" @@ -68,6 +69,14 @@ bool LocalSinkGUI::deserialize(const QByteArray& data) } } +void LocalSinkGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool LocalSinkGUI::handleMessage(const Message& message) { if (DSPSignalNotification::match(message)) @@ -105,11 +114,13 @@ LocalSinkGUI::LocalSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_basebandSampleRate(0), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/localsink/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/localsink/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_localSink = (LocalSink*) channelrx; diff --git a/plugins/channelrx/localsink/localsinkgui.h b/plugins/channelrx/localsink/localsinkgui.h index 6d678d563..201615245 100644 --- a/plugins/channelrx/localsink/localsinkgui.h +++ b/plugins/channelrx/localsink/localsinkgui.h @@ -60,6 +60,9 @@ public: virtual int getStreamIndex() const { return m_settings.m_streamIndex; } virtual void setStreamIndex(int streamIndex) { m_settings.m_streamIndex = streamIndex; } +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::LocalSinkGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channelrx/localsink/localsinkgui.ui b/plugins/channelrx/localsink/localsinkgui.ui index dc64076d2..8ebd37b1b 100644 --- a/plugins/channelrx/localsink/localsinkgui.ui +++ b/plugins/channelrx/localsink/localsinkgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -24,7 +24,7 @@ - 320 + 560 16777215 diff --git a/plugins/channelrx/noisefigure/noisefiguregui.cpp b/plugins/channelrx/noisefigure/noisefiguregui.cpp index 765d13515..8c0b1f427 100644 --- a/plugins/channelrx/noisefigure/noisefiguregui.cpp +++ b/plugins/channelrx/noisefigure/noisefiguregui.cpp @@ -537,7 +537,18 @@ void NoiseFigureGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -601,12 +612,13 @@ NoiseFigureGUI::NoiseFigureGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B m_runningTest(false), m_chart(nullptr) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/noisefigure/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/noisefigure/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_noiseFigure = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/radioastronomy/radioastronomygui.cpp b/plugins/channelrx/radioastronomy/radioastronomygui.cpp index 5fe80f66a..d37a99def 100644 --- a/plugins/channelrx/radioastronomy/radioastronomygui.cpp +++ b/plugins/channelrx/radioastronomy/radioastronomygui.cpp @@ -1949,7 +1949,18 @@ void RadioAstronomyGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -2063,11 +2074,13 @@ RadioAstronomyGUI::RadioAstronomyGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUI m_downloadingLAB(false) { qDebug("RadioAstronomyGUI::RadioAstronomyGUI"); - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/radioastronomy/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_radioAstronomy = reinterpret_cast(rxChannel); diff --git a/plugins/channelrx/radioclock/radioclockgui.cpp b/plugins/channelrx/radioclock/radioclockgui.cpp index 826736eab..72976c9b0 100644 --- a/plugins/channelrx/radioclock/radioclockgui.cpp +++ b/plugins/channelrx/radioclock/radioclockgui.cpp @@ -222,7 +222,18 @@ void RadioClockGUI::onWidgetRolled(QWidget* widget, bool rollDown) } } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -284,12 +295,13 @@ RadioClockGUI::RadioClockGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/radioclock/readme.md"; - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/radioclock/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); m_radioClock = reinterpret_cast(rxChannel); m_radioClock->setMessageQueueToGUI(getInputMessageQueue()); diff --git a/plugins/channelrx/remotesink/remotesinkgui.cpp b/plugins/channelrx/remotesink/remotesinkgui.cpp index eaeae5cb2..fb2a1df70 100644 --- a/plugins/channelrx/remotesink/remotesinkgui.cpp +++ b/plugins/channelrx/remotesink/remotesinkgui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "device/deviceuiset.h" #include "gui/basicchannelsettingsdialog.h" @@ -63,6 +64,14 @@ bool RemoteSinkGUI::deserialize(const QByteArray& data) } } +void RemoteSinkGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool RemoteSinkGUI::handleMessage(const Message& message) { if (RemoteSink::MsgConfigureRemoteSink::match(message)) @@ -101,11 +110,13 @@ RemoteSinkGUI::RemoteSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas m_deviceCenterFrequency(0), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/remotesink/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/remotesink/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_remoteSink = (RemoteSink*) channelrx; diff --git a/plugins/channelrx/remotesink/remotesinkgui.h b/plugins/channelrx/remotesink/remotesinkgui.h index 441ae61ec..39287de17 100644 --- a/plugins/channelrx/remotesink/remotesinkgui.h +++ b/plugins/channelrx/remotesink/remotesinkgui.h @@ -60,6 +60,9 @@ public: virtual int getStreamIndex() const { return m_settings.m_streamIndex; } virtual void setStreamIndex(int streamIndex) { m_settings.m_streamIndex = streamIndex; } +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::RemoteSinkGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channelrx/remotesink/remotesinkgui.ui b/plugins/channelrx/remotesink/remotesinkgui.ui index 9f9d3526f..8cdbf64a0 100644 --- a/plugins/channelrx/remotesink/remotesinkgui.ui +++ b/plugins/channelrx/remotesink/remotesinkgui.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -24,7 +24,7 @@ - 320 + 360 16777215 @@ -40,8 +40,8 @@ - 10 - 10 + 0 + 0 301 141 diff --git a/plugins/channelrx/sigmffilesink/sigmffilesinkgui.cpp b/plugins/channelrx/sigmffilesink/sigmffilesinkgui.cpp index 48c10287e..eca7730ba 100644 --- a/plugins/channelrx/sigmffilesink/sigmffilesinkgui.cpp +++ b/plugins/channelrx/sigmffilesink/sigmffilesinkgui.cpp @@ -175,11 +175,13 @@ SigMFFileSinkGUI::SigMFFileSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISe m_fixedPosition(false), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/sigmffilesink/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channelrx/sigmffilesink/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_sigMFFileSink = (SigMFFileSink*) channelrx; @@ -344,7 +346,18 @@ void SigMFFileSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } diff --git a/plugins/channelrx/sigmffilesink/sigmffilesinkgui.ui b/plugins/channelrx/sigmffilesink/sigmffilesinkgui.ui index b2e55f758..a12c65b03 100644 --- a/plugins/channelrx/sigmffilesink/sigmffilesinkgui.ui +++ b/plugins/channelrx/sigmffilesink/sigmffilesinkgui.ui @@ -10,6 +10,12 @@ 458 + + + 0 + 0 + + 552 @@ -505,7 +511,7 @@
- + 0 @@ -514,8 +520,11 @@ 351 - - Channel Spectrum + + + 0 + 0 + @@ -523,9 +532,15 @@ + + + 0 + 0 + + - 0 + 300 300 @@ -550,17 +565,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -573,6 +577,17 @@
gui/glspectrumgui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/channelrx/udpsink/udpsinkgui.cpp b/plugins/channelrx/udpsink/udpsinkgui.cpp index 8f2269cf4..44bf1b881 100644 --- a/plugins/channelrx/udpsink/udpsinkgui.cpp +++ b/plugins/channelrx/udpsink/udpsinkgui.cpp @@ -160,12 +160,14 @@ UDPSinkGUI::UDPSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS m_doApplySettings(true), m_rfBandwidthChanged(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channelrx/udpsink/readme.md"; - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); - connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); setAttribute(Qt::WA_DeleteOnClose, true); + m_helpURL = "plugins/channelrx/udpsink/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_udpSink = (UDPSink*) rxChannel; m_spectrumVis = m_udpSink->getSpectrumVis(); @@ -598,7 +600,18 @@ void UDPSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown) m_udpSink->enableSpectrum(rollDown); } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } diff --git a/plugins/channelrx/udpsink/udpsinkgui.ui b/plugins/channelrx/udpsink/udpsinkgui.ui index ea438e23c..037195b5c 100644 --- a/plugins/channelrx/udpsink/udpsinkgui.ui +++ b/plugins/channelrx/udpsink/udpsinkgui.ui @@ -10,18 +10,18 @@ 355
+ + + 0 + 0 + + - 342 + 382 0 - - - 400 - 16777215 - - Liberation Sans @@ -183,6 +183,15 @@ + + + + 26 + 26 + 26 + + + @@ -203,6 +212,15 @@ + + + + 26 + 26 + 26 + + + @@ -223,11 +241,21 @@ + + + + 26 + 26 + 26 + + + + Liberation Sans 8 @@ -821,10 +849,16 @@ 15 160 - 231 + 361 156 + + + 0 + 0 + + Channel Spectrum @@ -846,6 +880,18 @@ + + + 0 + 0 + + + + + 300 + 300 + + Liberation Mono diff --git a/plugins/channeltx/filesource/filesourcegui.cpp b/plugins/channeltx/filesource/filesourcegui.cpp index 6bff969f8..eb2b26d06 100644 --- a/plugins/channeltx/filesource/filesourcegui.cpp +++ b/plugins/channeltx/filesource/filesourcegui.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include "device/deviceapi.h" #include "device/deviceuiset.h" @@ -69,6 +70,14 @@ bool FileSourceGUI::deserialize(const QByteArray& data) } } +void FileSourceGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool FileSourceGUI::handleMessage(const Message& message) { if (DSPSignalNotification::match(message)) @@ -181,17 +190,17 @@ FileSourceGUI::FileSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas m_doApplySettings(true), m_tickCount(0) { - (void) channelTx; - - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/filesource/readme.md"; - ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); - setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/filesource/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); + ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); + m_fileSource = (FileSource*) channelTx; m_fileSource->setMessageQueueToGUI(getInputMessageQueue()); diff --git a/plugins/channeltx/filesource/filesourcegui.h b/plugins/channeltx/filesource/filesourcegui.h index 92c86ec7f..640000b8c 100644 --- a/plugins/channeltx/filesource/filesourcegui.h +++ b/plugins/channeltx/filesource/filesourcegui.h @@ -60,6 +60,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::FileSourceGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/filesource/filesourcegui.ui b/plugins/channeltx/filesource/filesourcegui.ui index 8ae7b0701..43a157b87 100644 --- a/plugins/channeltx/filesource/filesourcegui.ui +++ b/plugins/channeltx/filesource/filesourcegui.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -22,6 +22,12 @@ 140 + + + 560 + 16777215 + + Liberation Sans @@ -416,6 +422,7 @@ + Liberation Sans 9 @@ -447,6 +454,7 @@ + Liberation Sans 9 @@ -472,6 +480,7 @@ + Liberation Sans 9 @@ -701,17 +710,17 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
LevelMeterSignalDB QWidget
gui/levelmeter.h
1
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/channeltx/localsource/localsourcegui.cpp b/plugins/channeltx/localsource/localsourcegui.cpp index e18769251..4c028620c 100644 --- a/plugins/channeltx/localsource/localsourcegui.cpp +++ b/plugins/channeltx/localsource/localsourcegui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "device/deviceuiset.h" #include "gui/basicchannelsettingsdialog.h" @@ -63,6 +64,14 @@ bool LocalSourceGUI::deserialize(const QByteArray& data) } } +void LocalSourceGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool LocalSourceGUI::handleMessage(const Message& message) { if (DSPSignalNotification::match(message)) @@ -99,11 +108,13 @@ LocalSourceGUI::LocalSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B m_deviceCenterFrequency(0), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/localsource/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/localsource/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_localSource = (LocalSource*) channeltx; diff --git a/plugins/channeltx/localsource/localsourcegui.h b/plugins/channeltx/localsource/localsourcegui.h index c7a58498e..890874924 100644 --- a/plugins/channeltx/localsource/localsourcegui.h +++ b/plugins/channeltx/localsource/localsourcegui.h @@ -60,6 +60,9 @@ public: virtual int getStreamIndex() const { return m_settings.m_streamIndex; } virtual void setStreamIndex(int streamIndex) { m_settings.m_streamIndex = streamIndex; } +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::LocalSourceGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/localsource/localsourcegui.ui b/plugins/channeltx/localsource/localsourcegui.ui index a4e0aa877..e54ccc920 100644 --- a/plugins/channeltx/localsource/localsourcegui.ui +++ b/plugins/channeltx/localsource/localsourcegui.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -24,7 +24,7 @@ - 320 + 560 16777215 diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp index fa95810e0..ae3dddd83 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.cpp @@ -320,7 +320,18 @@ void IEEE_802_15_4_ModGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -381,12 +392,13 @@ IEEE_802_15_4_ModGUI::IEEE_802_15_4_ModGUI(PluginAPI* pluginAPI, DeviceUISet *de m_doApplySettings(true), m_basebandSampleRate(12000000) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/mod802.15.4/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/mod802.15.4/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_IEEE_802_15_4_Mod = (IEEE_802_15_4_Mod*) channelTx; diff --git a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.ui b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.ui index 472cb688b..e53cb30e5 100644 --- a/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.ui +++ b/plugins/channeltx/mod802.15.4/ieee_802_15_4_modgui.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -701,6 +701,12 @@ 284 + + + 0 + 0 + + 598 @@ -761,17 +767,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -784,12 +779,6 @@
gui/glspectrumgui.h
1
- - LevelMeterVU - QWidget -
gui/levelmeter.h
- 1 -
GLScope QWidget @@ -802,6 +791,23 @@
gui/glscopegui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
+ + LevelMeterVU + QWidget +
gui/levelmeter.h
+ 1 +
deltaFrequency diff --git a/plugins/channeltx/modais/aismodgui.cpp b/plugins/channeltx/modais/aismodgui.cpp index 4a6f74a47..6514ee8ba 100644 --- a/plugins/channeltx/modais/aismodgui.cpp +++ b/plugins/channeltx/modais/aismodgui.cpp @@ -343,7 +343,18 @@ void AISModGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -404,12 +415,13 @@ AISModGUI::AISModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_basebandSampleRate(1), m_doApplySettings(true) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modais/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modais/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_aisMod = (AISMod*) channelTx; diff --git a/plugins/channeltx/modais/aismodgui.ui b/plugins/channeltx/modais/aismodgui.ui index 342e69e97..cf270f5b8 100644 --- a/plugins/channeltx/modais/aismodgui.ui +++ b/plugins/channeltx/modais/aismodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -1010,15 +1010,21 @@ 0 290 431 - 141 + 200 - + 0 0 + + + 0 + 200 + + Transmitted Messages @@ -1056,6 +1062,12 @@ 331 + + + 0 + 0 + + Baseband Spectrum @@ -1077,6 +1089,12 @@ + + + 0 + 0 + + 200 @@ -1105,6 +1123,12 @@ 311 + + + 0 + 0 + + IQ Waveforms @@ -1126,6 +1150,12 @@ + + + 0 + 0 + + 200 @@ -1154,9 +1184,15 @@ 1 - ValueDialZ + GLSpectrum QWidget -
gui/valuedialz.h
+
gui/glspectrum.h
+ 1 +
+ + GLSpectrumGUI + QWidget +
gui/glspectrumgui.h
1
@@ -1171,23 +1207,17 @@
gui/glscopegui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
ButtonSwitch QToolButton
gui/buttonswitch.h
- - GLSpectrum - QWidget -
gui/glspectrum.h
- 1 -
- - GLSpectrumGUI - QWidget -
gui/glspectrumgui.h
- 1 -
LevelMeterVU QWidget diff --git a/plugins/channeltx/modam/ammodgui.cpp b/plugins/channeltx/modam/ammodgui.cpp index e7b71bfb4..b2a1889b8 100644 --- a/plugins/channeltx/modam/ammodgui.cpp +++ b/plugins/channeltx/modam/ammodgui.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include "device/deviceuiset.h" @@ -73,6 +74,14 @@ bool AMModGUI::deserialize(const QByteArray& data) } } +void AMModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool AMModGUI::handleMessage(const Message& message) { if (AMMod::MsgReportFileSourceStreamData::match(message)) @@ -351,11 +360,13 @@ AMModGUI::AMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampl m_tickCount(0), m_enableNavTime(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modam/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modam/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_amMod = (AMMod*) channelTx; diff --git a/plugins/channeltx/modam/ammodgui.h b/plugins/channeltx/modam/ammodgui.h index 07985e85c..76239be4e 100644 --- a/plugins/channeltx/modam/ammodgui.h +++ b/plugins/channeltx/modam/ammodgui.h @@ -63,6 +63,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::AMModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/modam/ammodgui.ui b/plugins/channeltx/modam/ammodgui.ui index b1f136cf0..e34f48ebd 100644 --- a/plugins/channeltx/modam/ammodgui.ui +++ b/plugins/channeltx/modam/ammodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -22,6 +22,12 @@ 0 + + + 560 + 16777215 + + Liberation Sans @@ -736,17 +742,17 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
ValueDialZ QWidget
gui/valuedialz.h
1
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
LevelMeterVU QWidget diff --git a/plugins/channeltx/modatv/atvmodgui.cpp b/plugins/channeltx/modatv/atvmodgui.cpp index 511765c84..3be698ead 100644 --- a/plugins/channeltx/modatv/atvmodgui.cpp +++ b/plugins/channeltx/modatv/atvmodgui.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include @@ -66,11 +67,13 @@ ATVModGUI::ATVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_camBusyFPSMessageBox(0), m_rfSliderDivisor(100000) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modatv/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modatv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_atvMod = (ATVMod*) channelTx; @@ -151,6 +154,14 @@ bool ATVModGUI::deserialize(const QByteArray& data) } } +void ATVModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool ATVModGUI::handleMessage(const Message& message) { if (ATVModReport::MsgReportVideoFileSourceStreamData::match(message)) diff --git a/plugins/channeltx/modatv/atvmodgui.h b/plugins/channeltx/modatv/atvmodgui.h index cfbf04961..d8235ebb0 100644 --- a/plugins/channeltx/modatv/atvmodgui.h +++ b/plugins/channeltx/modatv/atvmodgui.h @@ -62,6 +62,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::ATVModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/modatv/atvmodgui.ui b/plugins/channeltx/modatv/atvmodgui.ui index 7155fd5cb..d175a0f95 100644 --- a/plugins/channeltx/modatv/atvmodgui.ui +++ b/plugins/channeltx/modatv/atvmodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -22,6 +22,12 @@ 0 + + + 760 + 16777215 + + Liberation Sans @@ -1310,9 +1316,9 @@ 1 - LevelMeterVU + ValueDialZ QWidget -
gui/levelmeter.h
+
gui/valuedialz.h
1
@@ -1321,9 +1327,9 @@
gui/buttonswitch.h
- ValueDialZ + LevelMeterVU QWidget -
gui/valuedialz.h
+
gui/levelmeter.h
1
diff --git a/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp b/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp index c30310e72..30c055a3c 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp +++ b/plugins/channeltx/modchirpchat/chirpchatmodgui.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include "device/deviceuiset.h" #include "plugin/pluginapi.h" @@ -74,6 +75,14 @@ bool ChirpChatModGUI::deserialize(const QByteArray& data) } } +void ChirpChatModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool ChirpChatModGUI::handleMessage(const Message& message) { if (ChirpChatMod::MsgConfigureChirpChatMod::match(message)) @@ -425,12 +434,13 @@ ChirpChatModGUI::ChirpChatModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, m_doApplySettings(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modchirpchat/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modchirpchat/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_chirpChatMod = (ChirpChatMod*) channelTx; diff --git a/plugins/channeltx/modchirpchat/chirpchatmodgui.h b/plugins/channeltx/modchirpchat/chirpchatmodgui.h index 98d3affb7..219a7f933 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodgui.h +++ b/plugins/channeltx/modchirpchat/chirpchatmodgui.h @@ -61,6 +61,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::ChirpChatModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/modchirpchat/chirpchatmodgui.ui b/plugins/channeltx/modchirpchat/chirpchatmodgui.ui index f6b917abf..feb0f9db1 100644 --- a/plugins/channeltx/modchirpchat/chirpchatmodgui.ui +++ b/plugins/channeltx/modchirpchat/chirpchatmodgui.ui @@ -10,12 +10,24 @@ 573
+ + + 0 + 0 + + 392 180 + + + 560 + 16777215 + + Liberation Sans @@ -26,9 +38,6 @@ ChirpChat Modulator - - RF/mod/coder settings - 0 @@ -37,6 +46,9 @@ 131 + + RF/mod/coder settings + 2 @@ -498,9 +510,6 @@ - - Payload - 0 @@ -509,6 +518,9 @@ 401 + + Payload + 2 @@ -1180,19 +1192,6 @@
- - - - Qt::Vertical - - - - 20 - 40 - - - -
diff --git a/plugins/channeltx/moddatv/datvmodgui.cpp b/plugins/channeltx/moddatv/datvmodgui.cpp index 5040dd02a..50ed21d8b 100644 --- a/plugins/channeltx/moddatv/datvmodgui.cpp +++ b/plugins/channeltx/moddatv/datvmodgui.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -66,11 +67,13 @@ DATVModGUI::DATVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS m_tickCount(0), m_enableNavTime(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/moddatv/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/moddatv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_datvMod = (DATVMod*) channelTx; @@ -150,6 +153,14 @@ bool DATVModGUI::deserialize(const QByteArray& data) } } +void DATVModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool DATVModGUI::handleMessage(const Message& message) { if (DATVModReport::MsgReportTsFileSourceStreamData::match(message)) diff --git a/plugins/channeltx/moddatv/datvmodgui.h b/plugins/channeltx/moddatv/datvmodgui.h index 561f44f44..40096319c 100644 --- a/plugins/channeltx/moddatv/datvmodgui.h +++ b/plugins/channeltx/moddatv/datvmodgui.h @@ -63,6 +63,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::DATVModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/moddatv/datvmodgui.ui b/plugins/channeltx/moddatv/datvmodgui.ui index 1d69e20b9..fca177925 100644 --- a/plugins/channeltx/moddatv/datvmodgui.ui +++ b/plugins/channeltx/moddatv/datvmodgui.ui @@ -11,7 +11,7 @@ - + 0 0 @@ -22,6 +22,12 @@ 0 + + + 700 + 16777215 + + Liberation Sans @@ -799,17 +805,17 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
ValueDialZ QWidget
gui/valuedialz.h
1
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/channeltx/modfreedv/freedvmodgui.cpp b/plugins/channeltx/modfreedv/freedvmodgui.cpp index 6adc7b4fe..19ac57d3e 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.cpp +++ b/plugins/channeltx/modfreedv/freedvmodgui.cpp @@ -295,7 +295,18 @@ void FreeDVModGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -363,11 +374,13 @@ FreeDVModGUI::FreeDVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_tickCount(0), m_enableNavTime(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modfreedv/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modfreedv/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_freeDVMod = (FreeDVMod*) channelTx; diff --git a/plugins/channeltx/modfreedv/freedvmodgui.ui b/plugins/channeltx/modfreedv/freedvmodgui.ui index cd10b32e3..0f3a15610 100644 --- a/plugins/channeltx/modfreedv/freedvmodgui.ui +++ b/plugins/channeltx/modfreedv/freedvmodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -675,6 +675,12 @@ 284 + + + 0 + 0 + + Channel Spectrum @@ -696,6 +702,12 @@ + + + 0 + 0 + + 200 @@ -736,9 +748,9 @@ 1 - LevelMeterVU + ValueDialZ QWidget -
gui/levelmeter.h
+
gui/valuedialz.h
1
@@ -747,15 +759,15 @@
gui/buttonswitch.h
- CWKeyerGUI + LevelMeterVU QWidget -
gui/cwkeyergui.h
+
gui/levelmeter.h
1
- ValueDialZ + CWKeyerGUI QWidget -
gui/valuedialz.h
+
gui/cwkeyergui.h
1
diff --git a/plugins/channeltx/modnfm/nfmmodgui.cpp b/plugins/channeltx/modnfm/nfmmodgui.cpp index c5221d99d..cf1937b4b 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.cpp +++ b/plugins/channeltx/modnfm/nfmmodgui.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "device/deviceuiset.h" #include "plugin/pluginapi.h" @@ -74,6 +75,14 @@ bool NFMModGUI::deserialize(const QByteArray& data) } } +void NFMModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool NFMModGUI::handleMessage(const Message& message) { if (NFMMod::MsgReportFileSourceStreamData::match(message)) @@ -424,10 +433,13 @@ NFMModGUI::NFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_enableNavTime(false), m_dcsCodeValidator(QRegExp("[0-7]{1,3}")) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modnfm/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); + m_helpURL = "plugins/channeltx/modnfm/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); ui->channelSpacing->blockSignals(true); ui->channelSpacing->clear(); @@ -439,7 +451,6 @@ NFMModGUI::NFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam ui->channelSpacing->setCurrentIndex(NFMModSettings::getChannelSpacingIndex(25000)); ui->channelSpacing->blockSignals(false); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_nfmMod = (NFMMod*) channelTx; diff --git a/plugins/channeltx/modnfm/nfmmodgui.h b/plugins/channeltx/modnfm/nfmmodgui.h index 030ab68ae..3d20b38e4 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.h +++ b/plugins/channeltx/modnfm/nfmmodgui.h @@ -63,6 +63,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::NFMModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/modnfm/nfmmodgui.ui b/plugins/channeltx/modnfm/nfmmodgui.ui index ec293e1c7..086c4d5da 100644 --- a/plugins/channeltx/modnfm/nfmmodgui.ui +++ b/plugins/channeltx/modnfm/nfmmodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -22,6 +22,12 @@ 0 + + + 560 + 16777215 + + Liberation Sans @@ -933,17 +939,17 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
ValueDialZ QWidget
gui/valuedialz.h
1
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
LevelMeterVU QWidget diff --git a/plugins/channeltx/modpacket/packetmodgui.cpp b/plugins/channeltx/modpacket/packetmodgui.cpp index 621314241..74d0b793b 100644 --- a/plugins/channeltx/modpacket/packetmodgui.cpp +++ b/plugins/channeltx/modpacket/packetmodgui.cpp @@ -380,7 +380,18 @@ void PacketModGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -441,12 +452,13 @@ PacketModGUI::PacketModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_basebandSampleRate(1), m_doApplySettings(true) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modpacket/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modpacket/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_packetMod = (PacketMod*) channelTx; diff --git a/plugins/channeltx/modpacket/packetmodgui.ui b/plugins/channeltx/modpacket/packetmodgui.ui index b6d77bc32..8df7d2d31 100644 --- a/plugins/channeltx/modpacket/packetmodgui.ui +++ b/plugins/channeltx/modpacket/packetmodgui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -828,6 +828,12 @@ APRS examples: 284 + + + 0 + 0 + + Baseband Spectrum @@ -849,6 +855,12 @@ APRS examples: + + + 0 + 0 + + 200 @@ -876,17 +888,6 @@ APRS examples:
gui/rollupcontents.h
1 - - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
- - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
GLSpectrum QWidget @@ -899,6 +900,17 @@ APRS examples:
gui/glspectrumgui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
LevelMeterVU QWidget diff --git a/plugins/channeltx/modssb/ssbmodgui.cpp b/plugins/channeltx/modssb/ssbmodgui.cpp index c9a8696f3..7a3749b09 100644 --- a/plugins/channeltx/modssb/ssbmodgui.cpp +++ b/plugins/channeltx/modssb/ssbmodgui.cpp @@ -359,7 +359,18 @@ void SSBModGUI::onWidgetRolled(QWidget* widget, bool rollDown) (void) widget; (void) rollDown; - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } @@ -428,11 +439,13 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_tickCount(0), m_enableNavTime(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modssb/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/modssb/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_ssbMod = (SSBMod*) channelTx; diff --git a/plugins/channeltx/modssb/ssbmodgui.ui b/plugins/channeltx/modssb/ssbmodgui.ui index 06b6eb17f..69d90c843 100644 --- a/plugins/channeltx/modssb/ssbmodgui.ui +++ b/plugins/channeltx/modssb/ssbmodgui.ui @@ -1235,6 +1235,12 @@
+ + + 0 + 0 + + 200 @@ -1262,17 +1268,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -1286,9 +1281,15 @@ 1 - TickedSlider - QSlider -
gui/tickedslider.h
+ ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
LevelMeterVU @@ -1302,6 +1303,11 @@
gui/cwkeyergui.h
1
+ + TickedSlider + QSlider +
gui/tickedslider.h
+
diff --git a/plugins/channeltx/modwfm/wfmmodgui.cpp b/plugins/channeltx/modwfm/wfmmodgui.cpp index d9d744c22..4af2c0a31 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.cpp +++ b/plugins/channeltx/modwfm/wfmmodgui.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include "device/deviceuiset.h" #include "plugin/pluginapi.h" @@ -73,6 +74,14 @@ bool WFMModGUI::deserialize(const QByteArray& data) } } +void WFMModGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool WFMModGUI::handleMessage(const Message& message) { if (WFMMod::MsgReportFileSourceStreamData::match(message)) @@ -357,10 +366,13 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam m_tickCount(0), m_enableNavTime(false) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/modwfm/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); + m_helpURL = "plugins/channeltx/modwfm/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); blockApplySettings(true); @@ -372,7 +384,6 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam blockApplySettings(false); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_wfmMod = (WFMMod*) channelTx; diff --git a/plugins/channeltx/modwfm/wfmmodgui.h b/plugins/channeltx/modwfm/wfmmodgui.h index 19e72eae9..35d0c1ad1 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.h +++ b/plugins/channeltx/modwfm/wfmmodgui.h @@ -61,6 +61,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::WFMModGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/modwfm/wfmmodgui.ui b/plugins/channeltx/modwfm/wfmmodgui.ui index 9183b2492..4a8d5bb2b 100644 --- a/plugins/channeltx/modwfm/wfmmodgui.ui +++ b/plugins/channeltx/modwfm/wfmmodgui.ui @@ -6,22 +6,28 @@ 0 0 - 298 + 360 300
- + 0 0 - 0 + 360 0 + + + 560 + 16777215 + + Liberation Sans @@ -771,9 +777,9 @@ 1 - LevelMeterVU + ValueDialZ QWidget -
gui/levelmeter.h
+
gui/valuedialz.h
1
@@ -782,15 +788,15 @@
gui/buttonswitch.h
- CWKeyerGUI + LevelMeterVU QWidget -
gui/cwkeyergui.h
+
gui/levelmeter.h
1
- ValueDialZ + CWKeyerGUI QWidget -
gui/valuedialz.h
+
gui/cwkeyergui.h
1
diff --git a/plugins/channeltx/remotesource/remotesourcegui.cpp b/plugins/channeltx/remotesource/remotesourcegui.cpp index 5ca564926..5ae264408 100644 --- a/plugins/channeltx/remotesource/remotesourcegui.cpp +++ b/plugins/channeltx/remotesource/remotesourcegui.cpp @@ -16,6 +16,7 @@ /////////////////////////////////////////////////////////////////////////////////// #include +#include #include "device/deviceapi.h" #include "device/deviceuiset.h" @@ -65,6 +66,14 @@ bool RemoteSourceGUI::deserialize(const QByteArray& data) } } +void RemoteSourceGUI::resizeEvent(QResizeEvent* size) +{ + int maxWidth = getRollupContents()->maximumWidth(); + int minHeight = getRollupContents()->minimumHeight() + getAdditionalHeight(); + resize(width() < maxWidth ? width() : maxWidth, minHeight); + size->accept(); +} + bool RemoteSourceGUI::handleMessage(const Message& message) { if (DSPSignalNotification::match(message)) @@ -172,11 +181,13 @@ RemoteSourceGUI::RemoteSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, m_resetCounts(true), m_tickCount(0) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/remotesource/readme.md"; setAttribute(Qt::WA_DeleteOnClose, true); - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + m_helpURL = "plugins/channeltx/remotesource/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_remoteSrc = (RemoteSource*) channelTx; diff --git a/plugins/channeltx/remotesource/remotesourcegui.h b/plugins/channeltx/remotesource/remotesourcegui.h index 0035875b1..09c410ad3 100644 --- a/plugins/channeltx/remotesource/remotesourcegui.h +++ b/plugins/channeltx/remotesource/remotesourcegui.h @@ -62,6 +62,9 @@ public: public slots: void channelMarkerChangedByCursor(); +protected: + void resizeEvent(QResizeEvent* size); + private: Ui::RemoteSourceGUI* ui; PluginAPI* m_pluginAPI; diff --git a/plugins/channeltx/remotesource/remotesourcegui.ui b/plugins/channeltx/remotesource/remotesourcegui.ui index 7409712b6..a246d4290 100644 --- a/plugins/channeltx/remotesource/remotesourcegui.ui +++ b/plugins/channeltx/remotesource/remotesourcegui.ui @@ -11,7 +11,7 @@
- + 0 0 @@ -24,7 +24,7 @@ - 320 + 560 16777215 @@ -40,8 +40,8 @@ - 10 - 10 + 0 + 0 301 191 @@ -571,19 +571,6 @@
- - - - Qt::Vertical - - - - 20 - 40 - - - -
diff --git a/plugins/channeltx/udpsource/udpsourcegui.cpp b/plugins/channeltx/udpsource/udpsourcegui.cpp index 2e48c1598..0dd9c2533 100644 --- a/plugins/channeltx/udpsource/udpsourcegui.cpp +++ b/plugins/channeltx/udpsource/udpsourcegui.cpp @@ -120,12 +120,14 @@ UDPSourceGUI::UDPSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb m_rfBandwidthChanged(false), m_doApplySettings(true) { - ui->setupUi(getRollupContents()); - getRollupContents()->arrangeRollups(); - m_helpURL = "plugins/channeltx/udpsource/readme.md"; - connect(getRollupContents(), SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); - connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); setAttribute(Qt::WA_DeleteOnClose, true); + m_helpURL = "plugins/channeltx/udpsource/readme.md"; + RollupContents *rollupContents = getRollupContents(); + ui->setupUi(rollupContents); + setSizePolicy(rollupContents->sizePolicy()); + rollupContents->arrangeRollups(); + connect(rollupContents, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); + connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); m_udpSource = (UDPSource*) channelTx; m_spectrumVis = m_udpSource->getSpectrumVis(); @@ -480,7 +482,18 @@ void UDPSourceGUI::onWidgetRolled(QWidget* widget, bool rollDown) m_udpSource->setSpectrum(rollDown); } - getRollupContents()->saveState(m_rollupState); + RollupContents *rollupContents = getRollupContents(); + + if (rollupContents->hasExpandableWidgets()) { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Expanding); + } else { + setSizePolicy(sizePolicy().horizontalPolicy(), QSizePolicy::Fixed); + } + + int h = rollupContents->height() + getAdditionalHeight(); + resize(width(), h); + + rollupContents->saveState(m_rollupState); applySettings(); } diff --git a/plugins/channeltx/udpsource/udpsourcegui.ui b/plugins/channeltx/udpsource/udpsourcegui.ui index dcc1dc6d8..90cccc5ef 100644 --- a/plugins/channeltx/udpsource/udpsourcegui.ui +++ b/plugins/channeltx/udpsource/udpsourcegui.ui @@ -6,7 +6,7 @@ 0 0 - 414 + 420 400 @@ -18,16 +18,10 @@ - 395 + 420 0 - - - 414 - 16777215 - - Liberation Sans @@ -1091,17 +1085,6 @@
gui/rollupcontents.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
- - ValueDialZ - QWidget -
gui/valuedialz.h
- 1 -
GLSpectrum QWidget @@ -1114,6 +1097,17 @@
gui/glspectrumgui.h
1
+ + ValueDialZ + QWidget +
gui/valuedialz.h
+ 1 +
+ + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
LevelMeterVU QWidget