From d617c39a0814401714df6bd983579c204ab49d82 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Mon, 16 Mar 2009 20:18:01 +0000 Subject: 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) --- src/sourceoutputwidget.cc | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/sourceoutputwidget.cc') 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& x) : StreamWidget(cobject, x), - mainWindow(NULL), titleMenuItem(_("_Move Stream..."), true), - killMenuItem(_("_Terminate Stream"), true) { + killMenuItem(_("_Terminate Stream"), true), + mpMainWindow(NULL) { directionLabel->set_label(_("Recording from ")); @@ -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 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::iterator i = mainWindow->sourceWidgets.begin(); i != mainWindow->sourceWidgets.end(); ++i) { + for (std::map::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); -- cgit