summaryrefslogtreecommitdiffstats
path: root/src/sourceoutputwidget.cc
diff options
context:
space:
mode:
authorColin Guthrie <cguthrie@mandriva.org>2009-03-16 20:18:01 +0000
committerColin Guthrie <cguthrie@mandriva.org>2009-06-17 08:54:11 +0100
commitd617c39a0814401714df6bd983579c204ab49d82 (patch)
tree9aec58841b7412264d9a1d537e303099958d7a3a /src/sourceoutputwidget.cc
parent7b7a12f1d2e6e02b11b7649b394d2122eec57813 (diff)
Set the mainwindow pointer via an init() method rather than directly via public member variable.
This allows us to perform other general initialisation task (such as setting the tree model on the device combo)
Diffstat (limited to 'src/sourceoutputwidget.cc')
-rw-r--r--src/sourceoutputwidget.cc14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc
index 54940f3..f6c42c5 100644
--- a/src/sourceoutputwidget.cc
+++ b/src/sourceoutputwidget.cc
@@ -30,9 +30,9 @@
SourceOutputWidget::SourceOutputWidget(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade::Xml>& x) :
StreamWidget(cobject, x),
- mainWindow(NULL),
titleMenuItem(_("_Move Stream..."), true),
- killMenuItem(_("_Terminate Stream"), true) {
+ killMenuItem(_("_Terminate Stream"), true),
+ mpMainWindow(NULL) {
directionLabel->set_label(_("<i>Recording from </i> "));
@@ -45,14 +45,20 @@ SourceOutputWidget::SourceOutputWidget(BaseObjectType* cobject, const Glib::RefP
killMenuItem.signal_activate().connect(sigc::mem_fun(*this, &SourceOutputWidget::onKill));
}
+void SourceOutputWidget::init(MainWindow* mainWindow) {
+ mpMainWindow = mainWindow;
+ deviceCombo->set_model(mpMainWindow->sourceTree);
+}
+
SourceOutputWidget::~SourceOutputWidget() {
clearMenu();
}
-SourceOutputWidget* SourceOutputWidget::create() {
+SourceOutputWidget* SourceOutputWidget::create(MainWindow* mainWindow) {
SourceOutputWidget* w;
Glib::RefPtr<Gnome::Glade::Xml> x = Gnome::Glade::Xml::create(GLADE_FILE, "streamWidget");
x->get_widget_derived("streamWidget", w);
+ w->init(mainWindow);
return w;
}
@@ -76,7 +82,7 @@ void SourceOutputWidget::clearMenu() {
}
void SourceOutputWidget::buildMenu() {
- for (std::map<uint32_t, SourceWidget*>::iterator i = mainWindow->sourceWidgets.begin(); i != mainWindow->sourceWidgets.end(); ++i) {
+ for (std::map<uint32_t, SourceWidget*>::iterator i = mpMainWindow->sourceWidgets.begin(); i != mpMainWindow->sourceWidgets.end(); ++i) {
SourceMenuItem *m;
sourceMenuItems[i->second->index] = m = new SourceMenuItem(this, i->second->description.c_str(), i->second->index, i->second->index == sourceIndex);
submenu.append(m->menuItem);