[pitivi] pitivi/ui/sourcelist.py: make popup insensitive when not useable
- From: Edward Hervey <edwardrv src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pitivi] pitivi/ui/sourcelist.py: make popup insensitive when not useable
- Date: Mon, 8 Feb 2010 16:49:14 +0000 (UTC)
commit b09ecaa9cfdfdd1a69308905c2a709b394e159d3
Author: Brandon Lewis <brandon_lewis alum berkeley edu>
Date: Fri Feb 5 17:15:44 2010 -0800
pitivi/ui/sourcelist.py: make popup insensitive when not useable
pitivi/ui/sourcelist.py | 72 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 56 insertions(+), 16 deletions(-)
---
diff --git a/pitivi/ui/sourcelist.py b/pitivi/ui/sourcelist.py
index 669bc21..754c7f6 100644
--- a/pitivi/ui/sourcelist.py
+++ b/pitivi/ui/sourcelist.py
@@ -127,25 +127,25 @@ class SourceList(gtk.VBox, Loggable):
# Popup Menu
self.popup = gtk.Menu()
- additem = gtk.ImageMenuItem(_("Add Clips..."))
+ self.popup_additem = gtk.ImageMenuItem(_("Add Clips..."))
image = gtk.Image()
image.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_MENU)
- additem.set_image(image)
+ self.popup_additem.set_image(image)
- remitem = gtk.ImageMenuItem(_("Remove Clip"))
+ self.popup_remitem = gtk.ImageMenuItem(_("Remove Clip"))
image = gtk.Image()
image.set_from_stock(gtk.STOCK_REMOVE, gtk.ICON_SIZE_MENU)
- remitem.set_image(image)
- playmenuitem = gtk.MenuItem(_("Play Clip"))
- playmenuitem.connect("activate", self._playButtonClickedCb)
- additem.connect("activate", self._addButtonClickedCb)
- remitem.connect("activate", self._removeButtonClickedCb)
- additem.show()
- remitem.show()
- playmenuitem.show()
- self.popup.append(additem)
- self.popup.append(remitem)
- self.popup.append(playmenuitem)
+ self.popup_remitem.set_image(image)
+ self.popup_playmenuitem = gtk.MenuItem(_("Play Clip"))
+ self.popup_playmenuitem.connect("activate", self._playButtonClickedCb)
+ self.popup_additem.connect("activate", self._addButtonClickedCb)
+ self.popup_remitem.connect("activate", self._removeButtonClickedCb)
+ self.popup_additem.show()
+ self.popup_remitem.show()
+ self.popup_playmenuitem.show()
+ self.popup.append(self.popup_additem)
+ self.popup.append(self.popup_remitem)
+ self.popup.append(self.popup_playmenuitem)
# import sources dialogbox
self._importDialog = None
@@ -672,11 +672,47 @@ class SourceList(gtk.VBox, Loggable):
def _nothingUnderMouse(self, view, event):
return not bool(view.get_path_at_pos(int(event.x), int(event.y)))
+ def _viewShowPopup(self, view, event):
+ if view != None and self._rowUnderMouseSelected(view, event):
+ self.popup_remitem.set_sensitive(True)
+ self.popup_playmenuitem.set_sensitive(True)
+ elif view != None and (not self._nothingUnderMouse(view, event)):
+ self._viewUnselectAll()
+ self._viewSelectPath(self._viewGetPathAtPos(event))
+ self.popup_remitem.set_sensitive(True)
+ self.popup_playmenuitem.set_sensitive(True)
+ else:
+ self.popup_remitem.set_sensitive(False)
+ self.popup_playmenuitem.set_sensitive(False)
+
+ self.popup.popup(None, None, None, event.button, event.time)
+
+ def _viewGetPathAtPos(self, event):
+ if self.clip_view == SHOW_TREEVIEW:
+ pathinfo = self.treeview.get_path_at_pos(int(event.x), int(event.y))
+ return pathinfo[0]
+ elif self.clip_view == SHOW_ICONVIEW:
+ return self.iconview.get_path_at_pos(int(event.x), int(event.y))
+
+ def _viewSelectPath(self, path):
+ if self.clip_view == SHOW_TREEVIEW:
+ selection = self.treeview.get_selection()
+ selection.select_path(path)
+ elif self.clip_view == SHOW_ICONVIEW:
+ self.iconview.select_path(path)
+
+ def _viewUnselectAll(self):
+ if self.clip_view == SHOW_TREEVIEW:
+ selection = self.treeview.get_selection()
+ selection.unselect_all()
+ elif self.clip_view == SHOW_ICONVIEW:
+ self.iconview.unselect_all()
+
def _treeViewButtonPressEventCb(self, treeview, event):
chain_up = True
if event.button == 3:
- self.popup.popup(None, None, None, event.button, event.time)
+ self._viewShowPopup(treeview, event)
chain_up = False
else:
@@ -762,7 +798,7 @@ class SourceList(gtk.VBox, Loggable):
#popup menu
if event.button == 3:
- self.popup.popup(None, None, None, event.button, event.time)
+ self._viewShowPopup(iconview, event)
chain_up = False
else:
if not event.state & (gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK):
@@ -794,6 +830,10 @@ class SourceList(gtk.VBox, Loggable):
iconview.select_path(path)
return False
+ def _textBoxButtonPressEventCb(self, textbox, event):
+ if event.button == 3:
+ self._viewShowPopup(None, event)
+
def _newProjectCreatedCb(self, app, project):
# clear the storemodel
self.storemodel.clear()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]