From 9293d4bc1433c1f498e62d03e1bfd3d50129297f Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 1 Nov 2017 08:32:44 +0100 Subject: [PATCH] Plugin manager: removed direct combo box population methods --- sdrgui/mainwindow.cpp | 10 ++++++++-- sdrgui/plugin/pluginapi.cpp | 1 - sdrgui/plugin/pluginmanager.cpp | 24 ++++++++++++++---------- sdrgui/plugin/pluginmanager.h | 7 +++++-- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index e06ee717b..99fd18e97 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -216,7 +216,10 @@ void MainWindow::addSourceDevice() m_deviceUIs.back()->m_deviceSourceAPI = deviceSourceAPI; m_deviceUIs.back()->m_samplingDeviceControl->setDeviceAPI(deviceSourceAPI); m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(m_pluginManager); - m_pluginManager->populateRxChannelComboBox(m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()); + QList channelNames; + m_pluginManager->listRxChannels(channelNames); + QStringList channelNamesList(channelNames); + m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()->addItems(channelNamesList); connect(m_deviceUIs.back()->m_samplingDeviceControl->getAddChannelButton(), SIGNAL(clicked(bool)), this, SLOT(on_channel_addClicked(bool))); @@ -279,7 +282,10 @@ void MainWindow::addSinkDevice() m_deviceUIs.back()->m_deviceSinkAPI = deviceSinkAPI; m_deviceUIs.back()->m_samplingDeviceControl->setDeviceAPI(deviceSinkAPI); m_deviceUIs.back()->m_samplingDeviceControl->setPluginManager(m_pluginManager); - m_pluginManager->populateTxChannelComboBox(m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()); + QList channelNames; + m_pluginManager->listTxChannels(channelNames); + QStringList channelNamesList(channelNames); + m_deviceUIs.back()->m_samplingDeviceControl->getChannelSelector()->addItems(channelNamesList); connect(m_deviceUIs.back()->m_samplingDeviceControl->getAddChannelButton(), SIGNAL(clicked(bool)), this, SLOT(on_channel_addClicked(bool))); diff --git a/sdrgui/plugin/pluginapi.cpp b/sdrgui/plugin/pluginapi.cpp index 1e2f55039..6f8d32c41 100644 --- a/sdrgui/plugin/pluginapi.cpp +++ b/sdrgui/plugin/pluginapi.cpp @@ -1,4 +1,3 @@ -#include #include "plugin/pluginapi.h" #include "plugin/pluginmanager.h" diff --git a/sdrgui/plugin/pluginmanager.cpp b/sdrgui/plugin/pluginmanager.cpp index 1ff3f9ef2..cae4c42af 100644 --- a/sdrgui/plugin/pluginmanager.cpp +++ b/sdrgui/plugin/pluginmanager.cpp @@ -600,21 +600,25 @@ PluginInterface* PluginManager::getPluginInterfaceAt(int index) } } -void PluginManager::populateRxChannelComboBox(QComboBox *channels) +void PluginManager::listTxChannels(QList& list) { - for(PluginAPI::ChannelRegistrations::iterator it = m_rxChannelRegistrations.begin(); it != m_rxChannelRegistrations.end(); ++it) - { - const PluginDescriptor& pluginDescipror = it->m_plugin->getPluginDescriptor(); - channels->addItem(pluginDescipror.displayedName); - } -} + list.clear(); -void PluginManager::populateTxChannelComboBox(QComboBox *channels) -{ for(PluginAPI::ChannelRegistrations::iterator it = m_txChannelRegistrations.begin(); it != m_txChannelRegistrations.end(); ++it) { const PluginDescriptor& pluginDescipror = it->m_plugin->getPluginDescriptor(); - channels->addItem(pluginDescipror.displayedName); + list.append(pluginDescipror.displayedName); + } +} + +void PluginManager::listRxChannels(QList& list) +{ + list.clear(); + + for(PluginAPI::ChannelRegistrations::iterator it = m_rxChannelRegistrations.begin(); it != m_rxChannelRegistrations.end(); ++it) + { + const PluginDescriptor& pluginDescipror = it->m_plugin->getPluginDescriptor(); + list.append(pluginDescipror.displayedName); } } diff --git a/sdrgui/plugin/pluginmanager.h b/sdrgui/plugin/pluginmanager.h index 2498ed177..8516ef317 100644 --- a/sdrgui/plugin/pluginmanager.h +++ b/sdrgui/plugin/pluginmanager.h @@ -4,6 +4,9 @@ #include #include #include +#include +#include + #include "plugin/plugininterface.h" #include "plugin/pluginapi.h" #include "util/export.h" @@ -70,11 +73,11 @@ public: PluginInterface* getPluginInterfaceAt(int index); - void populateRxChannelComboBox(QComboBox *channels); void createRxChannelInstance(int channelPluginIndex, DeviceUISet *deviceUISet); + void listRxChannels(QList& list); - void populateTxChannelComboBox(QComboBox *channels); void createTxChannelInstance(int channelPluginIndex, DeviceUISet *deviceUISet); + void listTxChannels(QList& list); private: struct SamplingDeviceRegistration {