diff options
author | Lennart Poettering <lennart@poettering.net> | 2006-08-03 00:16:56 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2006-08-03 00:16:56 +0000 |
commit | 54304572789679ebe5fcb10e8dd197328e3e36d7 (patch) | |
tree | 35645821979045e563f34666a22a50754adef02e /src/MainWindow.cc | |
parent | 760c75cdf02022ac14ccab3078a1ce8c250e2832 (diff) |
move sink input/source output list items if they are moved between sinks/sources
git-svn-id: file:///home/lennart/svn/public/paman/trunk@82 cdefa82f-4ce1-0310-97f5-ab6066f37c3c
Diffstat (limited to 'src/MainWindow.cc')
-rw-r--r-- | src/MainWindow.cc | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/src/MainWindow.cc b/src/MainWindow.cc index 233f539..d13f131 100644 --- a/src/MainWindow.cc +++ b/src/MainWindow.cc @@ -223,11 +223,20 @@ void MainWindow::updateInfo(ModuleInfo &i) { void MainWindow::updateInfo(SinkInputInfo &i) { char t[256]; + + SinkInfo *si = serverInfoManager->getSinkInfo(i.sink); + if (!si) + return; + + if (i.treeRef) { + Gtk::TreePath path = i.treeRef.get_path(); + path.up(); + + if (path != si->treeRef.get_path()) + deviceTreeStore->erase(deviceTreeStore->get_iter(i.treeRef.get_path())); + } + if (!i.treeRef) { - SinkInfo *si = serverInfoManager->getSinkInfo(i.sink); - if (!si) - return; - Gtk::TreeIter iter = deviceTreeStore->get_iter(si->treeRef.get_path()); i.treeRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(deviceTreeStore->append(iter->children()))); } @@ -245,11 +254,20 @@ void MainWindow::updateInfo(SinkInputInfo &i) { void MainWindow::updateInfo(SourceOutputInfo &i) { char t[256]; - if (!i.treeRef) { - SourceInfo *si = serverInfoManager->getSourceInfo(i.source); - if (!si) - return; + + SourceInfo *si = serverInfoManager->getSourceInfo(i.source); + if (!si) + return; + + if (i.treeRef) { + Gtk::TreePath path = i.treeRef.get_path(); + path.up(); + if (path != si->treeRef.get_path()) + deviceTreeStore->erase(deviceTreeStore->get_iter(i.treeRef.get_path())); + } + + if (!i.treeRef) { Gtk::TreeIter iter = deviceTreeStore->get_iter(si->treeRef.get_path()); i.treeRef = Gtk::TreeRowReference(deviceTreeStore, Gtk::TreePath(deviceTreeStore->append(iter->children()))); } |