From 6d1de0a9336d5d7ceed8a977b75b8dcd962d95bb Mon Sep 17 00:00:00 2001 From: fgerlits Date: Mon, 27 Nov 2006 18:22:44 +0000 Subject: [PATCH] fixed #2018 --- .../products/gLiveSupport/src/LiveModeWindow.cxx | 15 +++++++++++++-- .../products/gLiveSupport/src/LiveModeWindow.h | 5 +++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx index 1ae05a670..7f61ac9cb 100644 --- a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx +++ b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx @@ -77,7 +77,8 @@ LiveModeWindow :: LiveModeWindow (Ptr::Ref gLiveSupport, throw () : GuiWindow(gLiveSupport, bundle, - windowOpenerButton) + windowOpenerButton), + isDeleting(false) { try { set_title(*getResourceUstring("windowTitle")); @@ -397,7 +398,7 @@ LiveModeWindow :: onKeyPressed(GdkEventKey * event) throw () return true; case KeyboardShortcut::removeItem : - treeView->onRemoveMenuOption(); + onRemoveItemButtonClicked(); return true; case KeyboardShortcut::playAudio : @@ -638,7 +639,10 @@ LiveModeWindow :: constructPlaylistContextMenu(void) throw () void LiveModeWindow :: onClearListButtonClicked (void) throw () { + isDeleting = true; treeModel->clear(); + isDeleting = false; + onTreeModelChanged(); } @@ -648,7 +652,10 @@ LiveModeWindow :: onClearListButtonClicked (void) throw () void LiveModeWindow :: onRemoveItemButtonClicked(void) throw () { + isDeleting = true; treeView->onRemoveMenuOption(); + isDeleting = false; + onTreeModelChanged(); } @@ -658,6 +665,10 @@ LiveModeWindow :: onRemoveItemButtonClicked(void) throw () void LiveModeWindow :: onTreeModelChanged(void) throw () { + if (isDeleting) { + return; + } + Gtk::TreeModel::iterator iter = treeModel->children().begin(); if (iter) { diff --git a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h index 1b5c2a0d8..8ad76305a 100644 --- a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h +++ b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h @@ -86,6 +86,11 @@ class LiveModeWindow : public GuiWindow */ Ptr::Ref savedTopPlayable; + /** + * A flag used to disable preload() while deleting items. + */ + bool isDeleting; + /** * The Export Playlist pop-up window. */