[Pkg-bazaar-commits] ./bzr-gtk/unstable r573: Merge rewrite of Olive mouse button event handling

Jasper Groenewegen colbrac at xs4all.nl
Fri Apr 10 07:44:32 UTC 2009


------------------------------------------------------------
revno: 573
committer: Jasper Groenewegen <colbrac at xs4all.nl>
branch nick: trunk
timestamp: Fri 2008-07-25 21:54:31 +0200
message:
  Merge rewrite of Olive mouse button event handling
modified:
  NEWS
  olive/__init__.py
  olive/window.py
    ------------------------------------------------------------
    revno: 554.2.1
    committer: klight at walkertechnical.com
    branch nick: fixrightclick3
    timestamp: Sat 2008-07-19 02:36:14 -0400
    message:
      This patch fixes the right click functionality for the bookmark and file panes (take 3).
      The mouse press signals have been modified to determine if the mouse has been clicked
          on a valid item in either list.  If the click is not on a valid item,
          the pop-up menu is modified or not shown at all and any previously selected item
          is un-selected.
      The release signal handler for the bookmark pane has been removed and its functionality
          combined with the press signal.
      The "Remove and delete" file pop-up menu item is now sensitized properly.
    modified:
      olive.glade
      olive/__init__.py
    ------------------------------------------------------------
    revno: 560.9.1
    committer: Jasper Groenewegen <colbrac at xs4all.nl>
    branch nick: right-mouse-button
    timestamp: Sun 2008-07-20 23:58:24 +0200
    message:
      Adapt right mouse button fix of Kevin to removal of Glade
    modified:
      olive/__init__.py
      olive/window.py
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-07-25 18:45:04 +0000
+++ b/NEWS	2008-07-25 19:54:31 +0000
@@ -90,6 +90,8 @@
   * Remove glade from olive main window (Jasper Groenewegen)
   
   * Remove glade from olive info dialog (Jasper Groenewegen)
+
+  * Rewrite Olive mouse button event handling (Kevin Light)
   
 0.94.0    2008-05-04
 

=== modified file 'olive/__init__.py'
--- a/olive/__init__.py	2008-07-20 18:53:25 +0000
+++ b/olive/__init__.py	2008-07-25 19:54:31 +0000
@@ -712,34 +712,34 @@
             self.refresh_right()
             
     def on_treeview_left_button_press_event(self, widget, event):
-        """ Occurs when somebody right-clicks in the bookmark list. """
-        if event.button == 3:
-            # Don't show context with nothing selected
-            if self.get_selected_left() == None:
-                return
-
-            # Create a menu
-            from menu import OliveMenu
-            menu = OliveMenu(path=self.get_path(),
-                             selected=self.get_selected_left(),
-                             app=self)
-            
-            menu.left_context_menu().popup(None, None, None, 0,
-                                           event.time)
-
-    def on_treeview_left_button_release_event(self, widget, event):
-        """ Occurs when somebody just clicks a bookmark. """
-        if event.button != 3:
-            # Allow one-click bookmark opening
-            if self.get_selected_left() == None:
-                return
-            
-            newdir = self.get_selected_left()
-            if newdir == None:
-                return
-
-            if self.set_path(newdir):
-                self.refresh_right()
+        """ Occurs when somebody clicks in the bookmark list. """
+        treepathpos = widget.get_path_at_pos(int(event.x), int(event.y))
+        treeselection = widget.get_selection()
+        if treepathpos is not None:
+            treeselection.select_path(treepathpos[0])
+            if event.button == 1:
+                newdir = self.get_selected_left()
+                if newdir == None:
+                    return
+
+                if self.set_path(newdir):
+                    self.refresh_right()
+            elif event.button == 3:
+                # Don't show context with nothing selected
+                if self.get_selected_left() == None:
+                    return
+
+                # Create a menu
+                from menu import OliveMenu
+                menu = OliveMenu(path=self.get_path(),
+                                 selected=self.get_selected_left(),
+                                 app=self)
+                
+                menu.left_context_menu().popup(None, None, None, 0,
+                                               event.time)
+        else:
+            if treeselection is not None:
+                treeselection.unselect_all()
 
     def on_treeview_left_row_activated(self, treeview, path, view_column):
         """ Occurs when somebody double-clicks or enters an item in the
@@ -753,8 +753,19 @@
             self.refresh_right()
 
     def on_treeview_right_button_press_event(self, widget, event):
-        """ Occurs when somebody right-clicks in the file list. """
-        if event.button == 3:
+        """ Occurs when somebody clicks in the file list. """
+        treepathpos = widget.get_path_at_pos(int(event.x), int(event.y))
+        if event.button == 1:
+            if treepathpos is None and widget.get_selection is not None:
+                treeselection = widget.get_selection()
+                treeselection.unselect_all()
+        elif event.button == 3:
+            treeselection = widget.get_selection()
+            if treepathpos is not None:
+                treeselection.select_path(treepathpos[0])
+            else:
+                if treeselection is not None:
+                    treeselection.unselect_all()
             # Create a menu
             from menu import OliveMenu
             menu = OliveMenu(path=self.get_path(),
@@ -764,6 +775,7 @@
             m_open = menu.ui.get_widget('/context_right/open')
             m_add = menu.ui.get_widget('/context_right/add')
             m_remove = menu.ui.get_widget('/context_right/remove')
+            m_remove_and_delete = menu.ui.get_widget('/context_right/remove_and_delete')
             m_rename = menu.ui.get_widget('/context_right/rename')
             m_revert = menu.ui.get_widget('/context_right/revert')
             m_commit = menu.ui.get_widget('/context_right/commit')
@@ -777,24 +789,40 @@
                     m_open.set_sensitive(False)
                     m_add.set_sensitive(False)
                     m_remove.set_sensitive(False)
+                    m_remove_and_delete.set_sensitive(False)
                     m_rename.set_sensitive(False)
                     m_revert.set_sensitive(False)
                     m_commit.set_sensitive(False)
                     m_annotate.set_sensitive(False)
                     m_diff.set_sensitive(False)
                 else:
+                    if treepathpos is None:
+                        m_open.set_sensitive(False)
+                        m_add.set_sensitive(False)
+                        m_remove.set_sensitive(False)
+                        m_remove_and_delete.set_sensitive(False)
+                        m_rename.set_sensitive(False)
+                        m_annotate.set_sensitive(False)
+                        m_diff.set_sensitive(False)
+                        m_revert.set_sensitive(False)
+                    else:
+                        m_open.set_sensitive(True)
+                        m_add.set_sensitive(True)
+                        m_remove.set_sensitive(True)
+                        m_remove_and_delete.set_sensitive(True)
+                        m_rename.set_sensitive(True)
+                        m_annotate.set_sensitive(True)
+                        m_diff.set_sensitive(True)
+                        m_revert.set_sensitive(True)
+                    m_commit.set_sensitive(True)
+            except bzrerrors.NotBranchError:
+                if treepathpos is None:
+                    m_open.set_sensitive(False)
+                else:
                     m_open.set_sensitive(True)
-                    m_add.set_sensitive(True)
-                    m_remove.set_sensitive(True)
-                    m_rename.set_sensitive(True)
-                    m_revert.set_sensitive(True)
-                    m_commit.set_sensitive(True)
-                    m_annotate.set_sensitive(True)
-                    m_diff.set_sensitive(True)
-            except bzrerrors.NotBranchError:
-                m_open.set_sensitive(True)
                 m_add.set_sensitive(False)
                 m_remove.set_sensitive(False)
+                m_remove_and_delete.set_sensitive(False)
                 m_rename.set_sensitive(False)
                 m_revert.set_sensitive(False)
                 m_commit.set_sensitive(False)

=== modified file 'olive/window.py'
--- a/olive/window.py	2008-07-20 18:53:25 +0000
+++ b/olive/window.py	2008-07-25 19:54:31 +0000
@@ -375,7 +375,6 @@
         self.treeview_left = gtk.TreeView()
         self.treeview_left.set_headers_visible(False)
         self.treeview_left.connect("button-press-event", self.signal.on_treeview_left_button_press_event)
-        self.treeview_left.connect("button-release-event", self.signal.on_treeview_left_button_release_event)
         self.treeview_left.connect("row-activated", self.signal.on_treeview_left_row_activated)
         self.scrolledwindow_left.add(self.treeview_left)
 



More information about the Pkg-bazaar-commits mailing list