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);