1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 01:18:38 -05:00

Merge pull request #1056 from srcejon/channel_help

Add links to documentation
This commit is contained in:
Edouard Griffiths 2021-11-24 22:02:11 +01:00 committed by GitHub
commit cab9dc6094
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 116 additions and 9 deletions

View File

@ -469,6 +469,7 @@ ChannelAnalyzerGUI::ChannelAnalyzerGUI(PluginAPI* pluginAPI, DeviceUISet *device
m_basebandSampleRate(48000) m_basebandSampleRate(48000)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/chanalyzer/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -2514,6 +2514,7 @@ ADSBDemodGUI::ADSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb
m_progressDialog(nullptr) m_progressDialog(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodadsb/readme.md";
m_osmPort = 0; // Pick a free port m_osmPort = 0; // Pick a free port
m_templateServer = new ADSBOSMTemplateServer("q2RVNAe3eFKCH4XsrE3r", m_osmPort); m_templateServer = new ADSBOSMTemplateServer("q2RVNAe3eFKCH4XsrE3r", m_osmPort);

View File

@ -420,6 +420,7 @@ AISDemodGUI::AISDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodais/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -243,6 +243,7 @@ AMDemodGUI::AMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodam/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -450,6 +450,7 @@ APTDemodGUI::APTDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_pixmapItem(nullptr) m_pixmapItem(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodapt/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -223,6 +223,7 @@ ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Base
m_basebandSampleRate(48000) m_basebandSampleRate(48000)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodatv/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -381,6 +381,7 @@ ChirpChatDemodGUI::ChirpChatDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUI
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodchirpchat/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -435,6 +435,7 @@ DABDemodGUI::DABDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_channelFreq(0.0) m_channelFreq(0.0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demoddab/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -198,6 +198,7 @@ DATVDemodGUI::DATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, Ba
m_cstlnSetByModcod(false) m_cstlnSetByModcod(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demoddatv/readme.md";
ui->screenTV->setColor(true); ui->screenTV->setColor(true);
ui->screenTV->resizeTVScreen(256,256); ui->screenTV->resizeTVScreen(256,256);
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);

View File

@ -321,6 +321,7 @@ DSDDemodGUI::DSDDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_dsdStatusTextDialog(0) m_dsdStatusTextDialog(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demoddsd/readme.md";
ui->screenTV->setColor(true); ui->screenTV->setColor(true);
ui->screenTV->resizeTVScreen(200,200); ui->screenTV->resizeTVScreen(200,200);
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);

View File

@ -253,6 +253,7 @@ FreeDVDemodGUI::FreeDVDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B
m_audioSampleRate(-1) m_audioSampleRate(-1)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodfreedv/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -343,6 +343,7 @@ NFMDemodGUI::NFMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodnfm/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -419,6 +419,7 @@ PacketDemodGUI::PacketDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodpacket/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -469,6 +469,7 @@ PagerDemodGUI::PagerDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodpager/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -293,6 +293,7 @@ SSBDemodGUI::SSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_audioSampleRate(-1) m_audioSampleRate(-1)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodssb/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -1167,6 +1167,7 @@ VORDemodGUI::VORDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_vors(nullptr) m_vors(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodvor/readme.md";
ui->map->rootContext()->setContextProperty("vorModel", &m_vorModel); ui->map->rootContext()->setContextProperty("vorModel", &m_vorModel);
ui->map->setSource(QUrl(QStringLiteral("qrc:/demodvor/map/map.qml"))); ui->map->setSource(QUrl(QStringLiteral("qrc:/demodvor/map/map.qml")));

View File

@ -282,6 +282,7 @@ VORDemodSCGUI::VORDemodSCGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodvorsc/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -205,6 +205,7 @@ WFMDemodGUI::WFMDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_audioSampleRate(-1) m_audioSampleRate(-1)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/demodwfm/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -183,6 +183,7 @@ FileSinkGUI::FileSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/filesink/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -311,6 +311,7 @@ FreqTrackerGUI::FreqTrackerGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/freqtracker/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -101,6 +101,7 @@ LocalSinkGUI::LocalSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/localsink/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -611,6 +611,7 @@ NoiseFigureGUI::NoiseFigureGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B
m_chart(nullptr) m_chart(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/noisefigure/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -267,6 +267,7 @@ RadioClockGUI::RadioClockGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/radioclock/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -100,6 +100,7 @@ RemoteSinkGUI::RemoteSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/remotesink/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -170,6 +170,7 @@ SigMFFileSinkGUI::SigMFFileSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISe
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/sigmffilesink/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -146,6 +146,7 @@ UDPSinkGUI::UDPSinkGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS
m_rfBandwidthChanged(false) m_rfBandwidthChanged(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channelrx/udpsink/readme.md";
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);

View File

@ -179,6 +179,7 @@ FileSourceGUI::FileSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
(void) channelTx; (void) channelTx;
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/filesource/readme.md";
ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue); ui->channelPowerMeter->setColorTheme(LevelMeterSignalDB::ColorGreenAndBlue);
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);

View File

@ -95,6 +95,7 @@ LocalSourceGUI::LocalSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, B
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/localsource/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -379,6 +379,7 @@ IEEE_802_15_4_ModGUI::IEEE_802_15_4_ModGUI(PluginAPI* pluginAPI, DeviceUISet *de
m_basebandSampleRate(12000000) m_basebandSampleRate(12000000)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/mod802.15.4/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -388,6 +388,7 @@ AISModGUI::AISModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam
m_doApplySettings(true) m_doApplySettings(true)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modais/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -335,6 +335,7 @@ AMModGUI::AMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampl
m_enableNavTime(false) m_enableNavTime(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modam/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -64,6 +64,7 @@ ATVModGUI::ATVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam
m_rfSliderDivisor(100000) m_rfSliderDivisor(100000)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modatv/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -416,6 +416,7 @@ ChirpChatModGUI::ChirpChatModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet,
m_tickCount(0) m_tickCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modchirpchat/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -64,6 +64,7 @@ DATVModGUI::DATVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandS
m_enableNavTime(false) m_enableNavTime(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/moddatv/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -348,6 +348,7 @@ FreeDVModGUI::FreeDVModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb
m_enableNavTime(false) m_enableNavTime(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modfreedv/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -408,6 +408,7 @@ NFMModGUI::NFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam
m_dcsCodeValidator(QRegExp("[0-7]{1,3}")) m_dcsCodeValidator(QRegExp("[0-7]{1,3}"))
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modnfm/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
ui->channelSpacing->blockSignals(true); ui->channelSpacing->blockSignals(true);

View File

@ -425,6 +425,7 @@ PacketModGUI::PacketModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb
m_doApplySettings(true) m_doApplySettings(true)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modpacket/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -413,6 +413,7 @@ SSBModGUI::SSBModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam
m_enableNavTime(false) m_enableNavTime(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modssb/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -342,6 +342,7 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSam
m_enableNavTime(false) m_enableNavTime(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/modwfm/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
blockApplySettings(true); blockApplySettings(true);

View File

@ -159,6 +159,7 @@ RemoteSourceGUI::RemoteSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet,
{ {
(void) channelTx; (void) channelTx;
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/remotesource/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));

View File

@ -106,6 +106,7 @@ UDPSourceGUI::UDPSourceGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseb
m_doApplySettings(true) m_doApplySettings(true)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/channeltx/udpsource/readme.md";
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));
connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &))); connect(this, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(onMenuDialogCalled(const QPoint &)));
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);

View File

@ -127,6 +127,7 @@ AFCGUI::AFCGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *featur
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/afc/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
ui->targetFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); ui->targetFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));

View File

@ -128,6 +128,7 @@ AISGUI::AISGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *featur
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/ais/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -115,6 +115,7 @@ AntennaToolsGUI::AntennaToolsGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISe
m_deviceSets(0) m_deviceSets(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/antennatools/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);

View File

@ -422,6 +422,7 @@ APRSGUI::APRSGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *feat
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/aprs/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);

View File

@ -138,6 +138,7 @@ DemodAnalyzerGUI::DemodAnalyzerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUI
m_selectedChannel(nullptr) m_selectedChannel(nullptr)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/demodanalyzer/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -141,6 +141,7 @@ GS232ControllerGUI::GS232ControllerGUI(PluginAPI* pluginAPI, FeatureUISet *featu
m_lastOnTarget(false) m_lastOnTarget(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/gs232controller/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -686,6 +686,7 @@ MapGUI::MapGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Feature *featur
m_radioTimeDialog(this) m_radioTimeDialog(this)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/map/readme.md";
quint16 port = 0; // Pick a free port quint16 port = 0; // Pick a free port
// Free keys, so no point in stealing them :) // Free keys, so no point in stealing them :)

View File

@ -127,6 +127,7 @@ PERTesterGUI::PERTesterGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Fea
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/pertester/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -127,6 +127,7 @@ RigCtlServerGUI::RigCtlServerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISe
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/rigctlserver/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -246,6 +246,7 @@ SatelliteTrackerGUI::SatelliteTrackerGUI(PluginAPI* pluginAPI, FeatureUISet *fea
m_geostationarySatVisible(false) m_geostationarySatVisible(false)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/satellitetracker/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -134,6 +134,7 @@ SimplePTTGUI::SimplePTTGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet, Fea
m_lastFeatureState(0) m_lastFeatureState(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/simpleptt/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -255,6 +255,7 @@ StarTrackerGUI::StarTrackerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISet,
m_moonDec(0.0) m_moonDec(0.0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/startracker/readme.md";
setAttribute(Qt::WA_DeleteOnClose, true); setAttribute(Qt::WA_DeleteOnClose, true);
setChannelWidget(false); setChannelWidget(false);
connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool)));

View File

@ -1226,6 +1226,7 @@ VORLocalizerGUI::VORLocalizerGUI(PluginAPI* pluginAPI, FeatureUISet *featureUISe
m_rrSecondsCount(0) m_rrSecondsCount(0)
{ {
ui->setupUi(this); ui->setupUi(this);
m_helpURL = "plugins/feature/vorlocalizer/readme.md";
ui->map->rootContext()->setContextProperty("vorModel", &m_vorModel); ui->map->rootContext()->setContextProperty("vorModel", &m_vorModel);
ui->map->setSource(QUrl(QStringLiteral("qrc:/demodvor/map/map.qml"))); ui->map->setSource(QUrl(QStringLiteral("qrc:/demodvor/map/map.qml")));

View File

@ -1,8 +1,6 @@
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2015-2020 Edouard Griffiths, F4EXB // // Copyright (C) 2015-2020 Edouard Griffiths, F4EXB //
// // // //
// API for features //
// //
// This program is free software; you can redistribute it and/or modify // // This program is free software; you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by // // it under the terms of the GNU General Public License as published by //
// the Free Software Foundation as version 3 of the License, or // // the Free Software Foundation as version 3 of the License, or //
@ -22,6 +20,7 @@
#include <QPainterPath> #include <QPainterPath>
#include <QMouseEvent> #include <QMouseEvent>
#include <QDialog> #include <QDialog>
#include <QDesktopServices>
#include "gui/rollupwidget.h" #include "gui/rollupwidget.h"
#include "ui_glspectrumgui.h" #include "ui_glspectrumgui.h"
@ -262,7 +261,7 @@ void RollupWidget::paintEvent(QPaintEvent*)
p.setRenderHint(QPainter::Antialiasing, true); p.setRenderHint(QPainter::Antialiasing, true);
// Ecken // Ecken (corners)
p.setPen(Qt::NoPen); p.setPen(Qt::NoPen);
p.setBrush(palette().base()); p.setBrush(palette().base());
p.drawRect(0, 0, 5, 5); p.drawRect(0, 0, 5, 5);
@ -270,14 +269,14 @@ void RollupWidget::paintEvent(QPaintEvent*)
p.drawRect(0, height() - 5, 5, 5); p.drawRect(0, height() - 5, 5, 5);
p.drawRect(width() - 5, height() - 5, 5, 5); p.drawRect(width() - 5, height() - 5, 5, 5);
// Rahmen // Rahmen (frame)
p.setPen(m_highlighted ? Qt::white : frame); p.setPen(m_highlighted ? Qt::white : frame);
p.setBrush(palette().window()); p.setBrush(palette().window());
QRectF r(rect()); QRectF r(rect());
r.adjust(0.5, 0.5, -0.5, -0.5); r.adjust(0.5, 0.5, -0.5, -0.5);
p.drawRoundedRect(r, 3.0, 3.0, Qt::AbsoluteSize); p.drawRoundedRect(r, 3.0, 3.0, Qt::AbsoluteSize);
// Titel-Hintergrund // Titel-Hintergrund (Title background)
p.setPen(Qt::NoPen); p.setPen(Qt::NoPen);
p.setBrush(m_titleColor); p.setBrush(m_titleColor);
QPainterPath path; QPainterPath path;
@ -289,7 +288,7 @@ void RollupWidget::paintEvent(QPaintEvent*)
path.arcTo(QRectF(1.5, 2.5, 2.5, 2.5), 90, 90); path.arcTo(QRectF(1.5, 2.5, 2.5, 2.5), 90, 90);
p.drawPath(path); p.drawPath(path);
// Titel-Abschlusslinie // Titel-Abschlusslinie (Title closing line)
p.setPen(frame); p.setPen(frame);
p.drawLine(QPointF(0.5, 2 + fm.height() + 1.5), QPointF(width() - 1.5, 2 + fm.height() + 1.5)); p.drawLine(QPointF(0.5, 2 + fm.height() + 1.5), QPointF(width() - 1.5, 2 + fm.height() + 1.5));
@ -302,7 +301,7 @@ void RollupWidget::paintEvent(QPaintEvent*)
if (m_channelWidget) if (m_channelWidget)
{ {
// Stromkanal-Button links // Stromkanal-Button links (Current channel)
p.setPen(QPen(palette().windowText().color(), 1.0)); p.setPen(QPen(palette().windowText().color(), 1.0));
p.setBrush(palette().light()); p.setBrush(palette().light());
p.drawRoundedRect(QRectF(5.5 + fm.ascent(), 2.5, fm.ascent() + 2.0, fm.ascent() + 2.0), 2.0, 2.0, Qt::AbsoluteSize); p.drawRoundedRect(QRectF(5.5 + fm.ascent(), 2.5, fm.ascent() + 2.0, fm.ascent() + 2.0), 2.0, 2.0, Qt::AbsoluteSize);
@ -310,7 +309,21 @@ void RollupWidget::paintEvent(QPaintEvent*)
p.drawText(QRectF(5.5 + fm.ascent(), 2.5, fm.ascent() + 2.0, fm.ascent() + 2.0), Qt::AlignCenter, m_streamIndicator); p.drawText(QRectF(5.5 + fm.ascent(), 2.5, fm.ascent() + 2.0, fm.ascent() + 2.0), Qt::AlignCenter, m_streamIndicator);
} }
// Schließen-Button rechts // Help button
if (!m_helpURL.isEmpty())
{
p.setRenderHint(QPainter::Antialiasing, true);
p.setPen(QPen(palette().windowText().color(), 1.0));
p.setBrush(palette().light());
r = QRectF(width() - 2*(3.5 + fm.ascent()), 3.5, fm.ascent(), fm.ascent());
p.drawRoundedRect(r, 2.0, 2.0, Qt::AbsoluteSize);
p.drawText(QRectF(width() - 2*(3.5 + fm.ascent()), 5, fm.ascent(), fm.ascent() - 2), Qt::AlignCenter, "?");
}
//p.drawLine(r.topLeft() + QPointF(1, 1), r.bottomRight() + QPointF(-1, -1));
//p.drawLine(r.bottomLeft() + QPointF(1, -1), r.topRight() + QPointF(-1, 1));
// Schließen-Button rechts (Close button on the right)
p.setRenderHint(QPainter::Antialiasing, true); p.setRenderHint(QPainter::Antialiasing, true);
p.setPen(QPen(palette().windowText().color(), 1.0)); p.setPen(QPen(palette().windowText().color(), 1.0));
p.setBrush(palette().light()); p.setBrush(palette().light());
@ -451,6 +464,19 @@ void RollupWidget::mousePressEvent(QMouseEvent* event)
} }
} }
// help button
if(!m_helpURL.isEmpty() && QRectF(width() - 2*(3.5 + fm.ascent()), 3.5, fm.ascent(), fm.ascent()).contains(event->pos()))
{
QString url;
if (m_helpURL.startsWith("http")) {
url = m_helpURL;
} else {
url = QString("https://github.com/f4exb/sdrangel/blob/master/%1").arg(m_helpURL); // Something like "plugins/channelrx/chanalyzer/readme.md"
}
QDesktopServices::openUrl(QUrl(url));
return;
}
// close button right // close button right
if(QRectF(width() - 3.5 - fm.ascent(), 3.5, fm.ascent(), fm.ascent()).contains(event->pos())) { if(QRectF(width() - 3.5 - fm.ascent(), 3.5, fm.ascent(), fm.ascent()).contains(event->pos())) {
close(); close();

View File

@ -52,6 +52,7 @@ protected:
bool m_highlighted; bool m_highlighted;
ContextMenuType m_contextMenuType; ContextMenuType m_contextMenuType;
QString m_streamIndicator; QString m_streamIndicator;
QString m_helpURL;
int arrangeRollups(); int arrangeRollups();

View File

@ -29,6 +29,7 @@
#include <QResource> #include <QResource>
#include <QFontDatabase> #include <QFontDatabase>
#include <QStandardPaths> #include <QStandardPaths>
#include <QDesktopServices>
#include "device/devicegui.h" #include "device/devicegui.h"
#include "device/deviceapi.h" #include "device/deviceapi.h"
@ -1753,6 +1754,16 @@ void MainWindow::on_presetTree_itemActivated(QTreeWidgetItem *item, int column)
on_presetLoad_clicked(); on_presetLoad_clicked();
} }
void MainWindow::on_action_Quick_Start_triggered()
{
QDesktopServices::openUrl(QUrl("https://github.com/f4exb/sdrangel/wiki/Quick-start"));
}
void MainWindow::on_action_Main_Window_triggered()
{
QDesktopServices::openUrl(QUrl("https://github.com/f4exb/sdrangel/blob/master/sdrgui/readme.md"));
}
void MainWindow::on_action_Loaded_Plugins_triggered() void MainWindow::on_action_Loaded_Plugins_triggered()
{ {
PluginsDialog pluginsDialog(m_pluginManager, this); PluginsDialog pluginsDialog(m_pluginManager, this);

View File

@ -184,6 +184,8 @@ private slots:
void samplingDeviceChanged(int deviceType, int tabIndex, int newDeviceIndex); void samplingDeviceChanged(int deviceType, int tabIndex, int newDeviceIndex);
void channelAddClicked(int channelIndex); void channelAddClicked(int channelIndex);
void featureAddClicked(int featureIndex); void featureAddClicked(int featureIndex);
void on_action_Quick_Start_triggered();
void on_action_Main_Window_triggered();
void on_action_Loaded_Plugins_triggered(); void on_action_Loaded_Plugins_triggered();
void on_action_About_triggered(); void on_action_About_triggered();
void on_action_addSourceDevice_triggered(); void on_action_addSourceDevice_triggered();

View File

@ -64,7 +64,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1012</width> <width>1012</width>
<height>27</height> <height>20</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menu_File"> <widget class="QMenu" name="menu_File">
@ -92,6 +92,9 @@
<property name="title"> <property name="title">
<string>&amp;Help</string> <string>&amp;Help</string>
</property> </property>
<addaction name="action_Quick_Start"/>
<addaction name="action_Main_Window"/>
<addaction name="separator"/>
<addaction name="action_Loaded_Plugins"/> <addaction name="action_Loaded_Plugins"/>
<addaction name="separator"/> <addaction name="separator"/>
<addaction name="action_About"/> <addaction name="action_About"/>
@ -978,6 +981,16 @@
<string>FFT</string> <string>FFT</string>
</property> </property>
</action> </action>
<action name="action_Quick_Start">
<property name="text">
<string>&amp;Quick Start...</string>
</property>
</action>
<action name="action_Main_Window">
<property name="text">
<string>&amp;Main Window...</string>
</property>
</action>
<zorder>presetDock</zorder> <zorder>presetDock</zorder>
<zorder>channelDock</zorder> <zorder>channelDock</zorder>
<zorder>commandsDock</zorder> <zorder>commandsDock</zorder>