diff --git a/sdrbase/mainwindow.cpp b/sdrbase/mainwindow.cpp index e2f96db64..a8e522495 100644 --- a/sdrbase/mainwindow.cpp +++ b/sdrbase/mainwindow.cpp @@ -268,14 +268,19 @@ void MainWindow::removeChannelMarker(ChannelMarker* channelMarker) m_deviceUIs.back()->m_spectrum->removeChannelMarker(channelMarker); } -void MainWindow::setInputGUI(QWidget* gui) +//void MainWindow::setInputGUI(QWidget* gui) +//{ +// // FIXME: Ceci est un tres tres gros CACA! +// if(m_inputGUI != 0) +// ui->inputDock->widget()->layout()->removeWidget(m_inputGUI); +// if(gui != 0) +// ui->inputDock->widget()->layout()->addWidget(gui); +// m_inputGUI = gui; +//} + +void MainWindow::setInputGUI(int deviceTabIndex, QWidget* gui) { - // FIXME: Ceci est un tres tres gros CACA! - if(m_inputGUI != 0) - ui->inputDock->widget()->layout()->removeWidget(m_inputGUI); - if(gui != 0) - ui->inputDock->widget()->layout()->addWidget(gui); - m_inputGUI = gui; + ui->stackInputs->addWidget(gui); } void MainWindow::loadSettings() diff --git a/sdrbase/mainwindow.h b/sdrbase/mainwindow.h index c6d2a6eeb..36878c80a 100644 --- a/sdrbase/mainwindow.h +++ b/sdrbase/mainwindow.h @@ -78,7 +78,8 @@ public: void addChannelMarker(ChannelMarker* channelMarker); void removeChannelMarker(ChannelMarker* channelMarker); - void setInputGUI(QWidget* gui); +// void setInputGUI(QWidget* gui); + void setInputGUI(int deviceTabIndex, QWidget* gui); const QTimer& getMasterTimer() const { return m_masterTimer; } private: diff --git a/sdrbase/mainwindow.ui b/sdrbase/mainwindow.ui index 9caeb7c7e..5d41033c9 100644 --- a/sdrbase/mainwindow.ui +++ b/sdrbase/mainwindow.ui @@ -7,7 +7,7 @@ 0 0 1012 - 621 + 635 @@ -432,6 +432,9 @@ + + + diff --git a/sdrbase/plugin/pluginapi.cpp b/sdrbase/plugin/pluginapi.cpp index abd4ac6de..764f072d8 100644 --- a/sdrbase/plugin/pluginapi.cpp +++ b/sdrbase/plugin/pluginapi.cpp @@ -21,7 +21,7 @@ MessageQueue* PluginAPI::getMainWindowMessageQueue() void PluginAPI::setInputGUI(QWidget* inputGUI) { - m_mainWindow->setInputGUI(inputGUI); + m_pluginManager->setInputGUI(inputGUI); } void PluginAPI::registerChannel(const QString& channelName, PluginInterface* plugin, QAction* action) @@ -46,12 +46,12 @@ void PluginAPI::removeChannelInstance(PluginGUI* pluginGUI) void PluginAPI::addChannelMarker(ChannelMarker* channelMarker) { - m_mainWindow->addChannelMarker(channelMarker); + m_mainWindow->addChannelMarker(channelMarker); // TODO: suspect verify. No ref to main window expected. } void PluginAPI::removeChannelMarker(ChannelMarker* channelMarker) { - m_mainWindow->removeChannelMarker(channelMarker); + m_mainWindow->removeChannelMarker(channelMarker); // TODO: suspect verify. No ref to main window expected. } void PluginAPI::registerSampleSource(const QString& sourceName, PluginInterface* plugin) diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrbase/plugin/pluginmanager.cpp index fd4b4faba..c9f771952 100644 --- a/sdrbase/plugin/pluginmanager.cpp +++ b/sdrbase/plugin/pluginmanager.cpp @@ -88,6 +88,12 @@ void PluginManager::registerSampleSource(const QString& sourceName, PluginInterf m_sampleSourceRegistrations.append(SampleSourceRegistration(sourceName, plugin)); } +void PluginManager::setInputGUI(QWidget* gui) +{ + //m_mainWindow->setInputGUI(gui); + m_mainWindow->setInputGUI(m_deviceTabIndex, gui); +} + void PluginManager::addSink(SampleSink* sink) { m_dspDeviceEngine->addSink(sink); diff --git a/sdrbase/plugin/pluginmanager.h b/sdrbase/plugin/pluginmanager.h index cb0bf1c14..25cb6659a 100644 --- a/sdrbase/plugin/pluginmanager.h +++ b/sdrbase/plugin/pluginmanager.h @@ -51,6 +51,7 @@ public: void removeChannelInstance(PluginGUI* pluginGUI); void registerSampleSource(const QString& sourceName, PluginInterface* plugin); + void setInputGUI(QWidget* gui); void addSink(SampleSink* sink); void removeSink(SampleSink* sink);