[Pkg-bazaar-commits] ./bzr-gtk/unstable r462: Merge from trunk

Martin Albisetti argentina at gmail.com
Fri Apr 10 07:50:20 UTC 2009


------------------------------------------------------------
revno: 462
committer: Martin Albisetti <argentina at gmail.com>
branch nick: gtk.nautilus
timestamp: Thu 2008-04-10 21:24:41 -0300
message:
  Merge from trunk
added:
  icons/bug.png
modified:
  AUTHORS
  revisionview.py
  setup.py
    ------------------------------------------------------------
    revno: 450.6.1
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 00:05:41 +0200
    message:
      Made bug tab prettier.
    added:
      icons/bug.png
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.2
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 00:10:40 +0200
    message:
      Further improved the look of the bug tab.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.3
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 00:27:50 +0200
    message:
      Made the bug icon be installed.
    modified:
      setup.py
    ------------------------------------------------------------
    revno: 450.6.4
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 01:15:14 +0200
    message:
      Moved bug parsing code into the bug page itself.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.5
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 01:16:46 +0200
    message:
      Simplified bug parsing.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.6
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 01:17:58 +0200
    message:
      Changed bug page heading.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.7
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 01:32:10 +0200
    message:
      Improved spacing in the bugs page.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.8
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 01:55:41 +0200
    message:
      Removed status column from bug table.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.9
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 02:02:23 +0200
    message:
      Made it possible to open bugs in the browser.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.10
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 14:26:16 +0200
    message:
      Only show fixed bugs in Bugs page.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.11
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 14:39:56 +0200
    message:
      Made Bugs page always visible, but only sensitive when the revision has bug associations.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.12
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Wed 2008-04-02 14:51:58 +0200
    message:
      Changed Bugs page labels.
    modified:
      revisionview.py
    ------------------------------------------------------------
    revno: 450.6.13
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: bugs
    timestamp: Mon 2008-04-07 22:24:12 +0200
    message:
      Added attribution for the bug icon.
    modified:
      AUTHORS
    ------------------------------------------------------------
    revno: 461.1.1
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: trunk
    timestamp: Mon 2008-04-07 22:34:51 +0200
    message:
      Merged bug page improvements.
    added:
      icons/bug.png
    modified:
      AUTHORS
      revisionview.py
      setup.py
    ------------------------------------------------------------
    revno: 461.1.2
    committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
    branch nick: trunk
    timestamp: Mon 2008-04-07 22:45:00 +0200
    message:
      Merged Seahorse integration performance fixes.
    modified:
      revisionview.py
        ------------------------------------------------------------
        revno: 450.1.19
        committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
        branch nick: seahorse-performance
        timestamp: Fri 2008-04-04 00:32:54 +0200
        message:
          Made sure the Signature page only gets updated when it is selected.
        modified:
          revisionview.py
        ------------------------------------------------------------
        revno: 450.1.20
        committer: Daniel Schierbeck <daniel.schierbeck at gmail.com>
        branch nick: seahorse-performance
        timestamp: Mon 2008-04-07 22:44:07 +0200
        message:
          Removed usage of lambda expressions as callbacks.
        modified:
          revisionview.py
-------------- next part --------------
=== modified file 'AUTHORS'
--- a/AUTHORS	2008-04-02 15:54:41 +0000
+++ b/AUTHORS	2008-04-07 20:34:51 +0000
@@ -14,6 +14,7 @@
 Olive was written by Szilveszter Farkas <Szilveszter.Farkas at gmail.com>.
 
 The tag icon was created by Jakub Steiner.
+The bug icon was created by Josef Vyb?ral.
 
 Numerous other people have contributed useful patches.  See the Bazaar history 
 of this branch for a full list of authors.

=== added file 'icons/bug.png'
Binary files a/icons/bug.png	1970-01-01 00:00:00 +0000 and b/icons/bug.png	2008-04-01 22:05:41 +0000 differ
=== modified file 'revisionview.py'
--- a/revisionview.py	2008-04-03 20:20:39 +0000
+++ b/revisionview.py	2008-04-07 20:45:00 +0000
@@ -33,34 +33,101 @@
 else:
     has_seahorse = True
 
+PAGE_GENERAL = 0
+PAGE_RELATIONS = 1
+PAGE_SIGNATURE = 2
+PAGE_BUGS = 3
+
 def _open_link(widget, uri):
     subprocess.Popen(['sensible-browser', uri], close_fds=True)
 
 gtk.link_button_set_uri_hook(_open_link)
 
-class BugsTab(gtk.Table):
+class BugsTab(gtk.VBox):
 
     def __init__(self):
-        super(BugsTab, self).__init__(rows=5, columns=2)
-        self.set_row_spacings(6)
-        self.set_col_spacings(6)
-        self.clear()
+        super(BugsTab, self).__init__(False, 6)
+    
+        table = gtk.Table(rows=2, columns=2)
+
+        table.set_row_spacings(6)
+        table.set_col_spacing(0, 16)
+
+        image = gtk.Image()
+        image.set_from_file(icon_path("bug.png"))
+        table.attach(image, 0, 1, 0, 1, gtk.FILL)
+
+        align = gtk.Alignment(0.0, 0.1)
+        self.label = gtk.Label()
+        align.add(self.label)
+        table.attach(align, 1, 2, 0, 1, gtk.FILL)
+
+        treeview = self.construct_treeview()
+        table.attach(treeview, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND)
+
+        self.set_border_width(6)
+        self.pack_start(table, expand=False)
+
+        self.clear()
+        self.show_all()
+
+    def set_revision(self, revision):
+        if revision is None:
+            return
+
+        self.clear()
+        bugs_text = revision.properties.get('bugs', '')
+        for bugline in bugs_text.splitlines():
+                (url, status) = bugline.split(" ")
+                if status == "fixed":
+                    self.add_bug(url, status)
+        
+        if self.num_bugs == 0:
+            return
+        elif self.num_bugs == 1:
+            label = "bug"
+        else:
+            label = "bugs"
+
+        self.label.set_markup("<b>Bugs fixed</b>\n" +
+                              "This revision claims to fix " +
+                              "%d %s." % (self.num_bugs, label))
+
+    def construct_treeview(self):
+        self.bugs = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
+        self.treeview = gtk.TreeView(self.bugs)
+        self.treeview.set_headers_visible(False)
+
+        uri_column = gtk.TreeViewColumn('Bug URI', gtk.CellRendererText(), text=0)
+        self.treeview.append_column(uri_column)
+
+        self.treeview.connect('row-activated', self.on_row_activated)
+
+        win = gtk.ScrolledWindow()
+        win.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        win.set_shadow_type(gtk.SHADOW_IN)
+        win.add(self.treeview)
+
+        return win
 
     def clear(self):
-        for c in self.get_children():
-            self.remove(c)
-        self.count = 0
-        self.hide_all() # Only shown when there are bugs
+        self.num_bugs = 0
+        self.bugs.clear()
+        self.set_sensitive(False)
+        self.label.set_markup("<b>No bugs fixed</b>\n" +
+                              "This revision does not claim to fix any bugs.")
 
     def add_bug(self, url, status):
-        button = gtk.LinkButton(url, url)
-        self.attach(button, 0, 1, self.count, self.count + 1,
-                              gtk.EXPAND | gtk.FILL, gtk.FILL)
-        status_label = gtk.Label(status)
-        self.attach(status_label, 1, 2, self.count, self.count + 1,
-                              gtk.EXPAND | gtk.FILL, gtk.FILL)
-        self.count += 1
-        self.show_all()
+        self.num_bugs += 1
+        self.bugs.append([url, status])
+        self.set_sensitive(True)
+
+    def get_num_bugs(self):
+        return self.num_bugs
+
+    def on_row_activated(self, treeview, path, column):
+        uri = self.bugs.get_value(self.bugs.get_iter(path), 0)
+        _open_link(self, uri)
 
 
 class SignatureTab(gtk.VBox):
@@ -238,7 +305,6 @@
         )
     }
 
-
     def __init__(self, branch=None):
         gtk.Notebook.__init__(self)
 
@@ -252,7 +318,8 @@
         self._create_file_info_view()
         self._create_bugs()
 
-        self.set_current_page(0)
+        self.set_current_page(PAGE_GENERAL)
+        self.connect_after('switch-page', self._switch_page_cb)
         
         self._show_callback = None
         self._clicked_callback = None
@@ -359,13 +426,6 @@
         else:
             self.file_info_box.hide()
 
-        self.bugs_table.clear()
-        bugs_text = revision.properties.get('bugs', None)
-        if bugs_text:
-            for bugline in bugs_text.splitlines():
-                (url, status) = bugline.split(" ")
-                self.bugs_table.add_bug(url, status)
-
     def update_tags(self):
         if self._branch is not None and self._branch.supports_tags():
             self._tagdict = self._branch.tags.get_reverse_tag_dict()
@@ -375,13 +435,25 @@
         self._add_tags()
 
     def _update_signature(self, widget, param):
-        self.signature_table.set_revision(self._revision)
+        if self.get_current_page() == PAGE_SIGNATURE:
+            self.signature_table.set_revision(self._revision)
+
+    def _update_bugs(self, widget, param):
+        self.bugs_page.set_revision(self._revision)
+        label = self.get_tab_label(self.bugs_page)
+        label.set_sensitive(self.bugs_page.get_num_bugs() != 0)
 
     def set_children(self, children):
         self._add_parents_or_children(children,
                                       self.children_widgets,
                                       self.children_table)
 
+    def _switch_page_cb(self, notebook, page, page_num):
+        if page_num == PAGE_SIGNATURE:
+            self.signature_table.set_revision(self._revision)
+
+
+
     def _show_clicked_cb(self, widget, revid, parentid):
         """Callback for when the show button for a parent is clicked."""
         self._show_callback(revid, parentid)
@@ -629,8 +701,9 @@
         return window
 
     def _create_bugs(self):
-        self.bugs_table = BugsTab()
-        self.append_page(self.bugs_table, tab_label=gtk.Label('Bugs'))
+        self.bugs_page = BugsTab()
+        self.connect_after('notify::revision', self._update_bugs) 
+        self.append_page(self.bugs_page, tab_label=gtk.Label('Bugs'))
 
     def _create_file_info_view(self):
         self.file_info_box = gtk.VBox(False, 6)

=== modified file 'setup.py'
--- a/setup.py	2008-03-30 15:58:52 +0000
+++ b/setup.py	2008-04-01 22:27:50 +0000
@@ -133,6 +133,7 @@
                                  'icons/sign-ok.png',
                                  'icons/sign.png',
                                  'icons/sign-unknown.png',
+                                 'icons/bug.png',
                                  'icons/bzr-icon-64.png']),
                 ('share/applications', ['olive-gtk.desktop',
                                         'bazaar-properties.desktop',



More information about the Pkg-bazaar-commits mailing list