diff options
author | Colin Guthrie <cguthrie@mandriva.org> | 2009-03-16 20:18:01 +0000 |
---|---|---|
committer | Colin Guthrie <cguthrie@mandriva.org> | 2009-06-17 08:54:11 +0100 |
commit | d617c39a0814401714df6bd983579c204ab49d82 (patch) | |
tree | 9aec58841b7412264d9a1d537e303099958d7a3a /src/sourceoutputwidget.cc | |
parent | 7b7a12f1d2e6e02b11b7649b394d2122eec57813 (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.cc | 14 |
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); |