[pitivi] [medialibrary] : Allow unselection of paths.
- From: Jean-FranÃois Fortin Tam <jfft src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] [medialibrary] : Allow unselection of paths.
- Date: Sun, 2 Sep 2012 04:05:07 +0000 (UTC)
commit c9b8f17299c9ce63d28e16245e4243caa14906ce
Author: Mathieu Duponchelle <mathieu duponchelle epitech eu>
Date: Sun Aug 26 22:25:19 2012 +0200
[medialibrary] : Allow unselection of paths.
pitivi/medialibrary.py | 31 ++++++++++++++++++++++++-------
1 files changed, 24 insertions(+), 7 deletions(-)
---
diff --git a/pitivi/medialibrary.py b/pitivi/medialibrary.py
index e0073c8..30716bc 100644
--- a/pitivi/medialibrary.py
+++ b/pitivi/medialibrary.py
@@ -338,6 +338,7 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
self.treeview = gtk.TreeView(self.modelFilter)
self.treeview_scrollwin.add(self.treeview)
self.treeview.connect("button-press-event", self._treeViewButtonPressEventCb)
+ self.treeview.connect("button-release-event", self._treeViewButtonReleaseEventCb)
self.treeview.connect("focus-in-event", self._disableKeyboardShortcutsCb)
self.treeview.connect("focus-out-event", self._enableKeyboardShortcutsCb)
self.treeview.connect("row-activated", self._itemOrRowActivatedCb)
@@ -380,6 +381,7 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
self.iconview = gtk.IconView(self.modelFilter)
self.iconview_scrollwin.add(self.iconview)
self.iconview.connect("button-press-event", self._iconViewButtonPressEventCb)
+ self.iconview.connect("button-release-event", self._iconViewButtonReleaseEventCb)
self.iconview.connect("focus-in-event", self._disableKeyboardShortcutsCb)
self.iconview.connect("focus-out-event", self._enableKeyboardShortcutsCb)
self.iconview.connect("item-activated", self._itemOrRowActivatedCb)
@@ -1151,6 +1153,8 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
elif not event.state & (gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK):
chain_up = not self._rowUnderMouseSelected(treeview, event)
+ self.clickedPath = self.getSelectedPaths()
+
if not chain_up:
self._draggedPaths = self.getSelectedPaths()
else:
@@ -1160,14 +1164,22 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
ts = self.treeview.get_selection()
- if (self._draggedPaths):
+ if self._draggedPaths:
for path in self._draggedPaths:
ts.select_path(path)
- self._ignoreRelease = chain_up
-
return True
+ def _treeViewButtonReleaseEventCb(self, treeview, event):
+ ts = self.treeview.get_selection()
+ state = event.state & (gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK)
+ path = self.treeview.get_path_at_pos(event.x, event.y)
+
+ if not state and not self.dragged:
+ ts.unselect_all()
+ if path:
+ ts.select_path(path[0])
+
def _viewSelectionChangedCb(self, unused):
if self._viewHasSelection():
self.selection_actions.set_sensitive(True)
@@ -1211,6 +1223,15 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
return True
+ def _iconViewButtonReleaseEventCb(self, iconview, event):
+ state = event.state & (gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK)
+ path = self.iconview.get_path_at_pos(event.x, event.y)
+
+ if not state and not self.dragged:
+ iconview.unselect_all()
+ if path:
+ iconview.select_path(path)
+
def _newProjectCreatedCb(self, app, project):
if not self._project is project:
self._project = project
@@ -1265,10 +1286,6 @@ class MediaLibraryWidget(gtk.VBox, Loggable):
self.info("tree drag_begin")
self.dragged = True
paths = self.getSelectedPaths()
- ts = self.treeview.get_selection()
-
- for path in self._draggedPaths:
- ts.select_path(path)
if len(paths) < 1:
context.drag_abort(int(time.time()))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]