Very simple patch that avoids a traceback when trying to search when
there's no index.

Cheers,

Jelmer

-- 
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: lp:bzr-gtk
# testament_sha1: bdc6b203f64999945bad16883df5d1c8877f0450
# timestamp: 2008-07-17 14:31:16 +0200
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'search.py'
--- search.py	2008-07-01 15:28:30 +0000
+++ search.py	2008-07-17 12:30:39 +0000
@@ -26,7 +26,7 @@
 
 class SearchDialog(gtk.Dialog):
     """Search dialog."""
-    def __init__(self, branch, parent=None):
+    def __init__(self, index, parent=None):
         gtk.Dialog.__init__(self, title="Search Revisions",
                                   parent=parent,
                                   flags=gtk.DIALOG_MODAL,
@@ -34,9 +34,7 @@
                                            gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
     
         # Get arguments
-        self.branch = branch
-
-        self.index = _mod_index.open_index_url(branch.base)
+        self.index = index
 
         self.searchbar = gtk.HBox()
         self.searchentry = gtk.Entry()

=== modified file 'viz/branchwin.py'
--- viz/branchwin.py	2008-07-01 21:54:21 +0000
+++ viz/branchwin.py	2008-07-17 12:30:39 +0000
@@ -420,8 +420,23 @@
         _mod_index.index_url(self.branch.base)
 
     def _branch_search_cb(self, w):
+        from bzrlib.plugins.search import index as _mod_index
         from bzrlib.plugins.gtk.search import SearchDialog
-        dialog = SearchDialog(self.branch)
+        from bzrlib.plugins.search import errors as search_errors
+
+        try:
+            index = _mod_index.open_index_url(self.branch.base)
+        except search_errors.NoSearchIndex:
+            dialog = gtk.MessageDialog(self, type=gtk.MESSAGE_QUESTION, 
+                buttons=gtk.BUTTONS_OK_CANCEL, 
+                message_format="This branch has not been indexed yet. "
+                               "Index now?")
+            if dialog.run() == gtk.RESPONSE_OK:
+                index = _mod_index.index_url(self.branch.base)
+            else:
+                return
+
+        dialog = SearchDialog(index)
         
         if dialog.run() == gtk.RESPONSE_OK:
             self.set_revision(dialog.get_revision())

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWW8ROxUAAmL/gERUAAhRZ///
/r//AL////BQBT53cbgUusdVC0UBJImhKfoNCbIyT1Ho1TR+qekYRkBoAbSNPUGqnkT0TyT0QAAA
AA0AAaNMmmgEigQjU9Kfqn6ptqZR6mRo9E2kyAZDQHqBoNDhppkYjCaYCGATTCMExMhpkaGgEkhN
NNJ6E0ymAp6mp7SnlPSPKejUMmmmjIZAIpHw+WWzVyXD/DH99nt+ZxfjF7x8oDXszZ2qKZRannlx
hUJcjzwrxsi1K50AOAyEEQDzfGV6xMxkzDMY7RXdc6hxH2puBcNXvhlI26RvHi07dUScMz/JfSTo
emfTh9BA+ovaFViMg5QkIZWVUIEkEU5QFCAxkljmq6qu/1bLIpzZthhMEjndNID+SfdEJcc+pzv2
7eVVmrL0P+nz45G3nMajgxiQq9GlVFe3mA5Y3OrW1oGRTk4laVwYYySlashmpO1EWeNCyudekF4U
GkpoepAHxkpi4EztneSUklYpaufTrNhbkXrvFuMLoxmhlW4XpvY8k+jioDtH3WP049ErUxwKSNQ9
YVPCrAvHZwwSJHheaddKhzLcUtLKCChoWzkXvHmBItLyFRcwDkRHGVZYVGV0mKiUknGS6Cw4yD+h
FSwlIKPDFzwGpozrVQxdaNfMCypRTJRisSA5wzzAr+kIXKJWTJmq0pQtNks3kVtgP0wtLCg+huMT
XM+1iJ0q1Ww0TvrIjDoGpjUbTIef3rCWqU1QJJDSM+W2sJlDu2l2E8iShmjJ6LjImWyjeEORadYF
YTItO4ZkHKzJjSVEytycPNAMTXPDxdz+HHMo1LGBlmD8VeirIx9R2sl5Mbw72p1teWD4oRiYmoZB
lU+SW/7ljKMoFbhHsyiXX8r6F4xt4OaW75jLwPQseXYZKCQBloFMQFqSB69nYVMWUeISm4qs0mFt
bLyZbHwTwNB305eBRskiijv1VcDWw1nsErCiicZBMj956X+XeOPR5E+8PIwD0I9onCWpXQSpJBMD
LBsT4hv8aHm9l6tKxLmaSRb+O0B04jelvlA9fpQNuxG3m4dgaziH+8tRA48BkyW1ye7/sJkDCR1H
rLAgFJa+UJhbllO/DGgGN/hkuViwMfAD7GjaTPNdRXUs4cfeQ+os61d8Dhs7nDy8ZEzutR3jHEwM
enqJEM9tGBH+/Alrz8UIy5MLHNRmjw6aYCUIcOnkbEFxilO5jxJwEUAOpqIjjYzcUVGJ2DFZtOB1
n0DHYONimX6Lyk8rLTnOq8oYZCazGg3Hj8jyGhBcmRaJ81Jz++NZkor59ZwGsH0UCkPPjkVFQoES
yLsQ6XrwdkS8Ggnuyv6iFkUKUHmd6UGbde+Mo2+zxsO1j2jgYrXr57Zm1hP1rSjlIwyC6EPL73pJ
yGv4qS4kCNAQSWPDptN0rlLWqibVUuen7TJwqm3qxKIL3shmpD6HZTIxgRJ1igxNa97e+N6r3UWQ
M1iCmiyyPNgehwlaD1sUFVNv5O0C7Bbt2wILysR9l5Ap0UAtttG5rX4JxMT/kTA6h/FhwmQF6HJP
QP5OAq8+jtuLmT5iVlmBuIA6HIDbvK6BvUVJGBAgzCuI3O96iBDOqqDfCHYJelVFq8Npx53nNgeq
nR0hmtSBj9sQiioV+eZpzidP3HhnYo3N7QdtddkFdDQ+544tBoyRMPnk4rYNGVvYBUT8LjzQNGsu
r55AeF6og37FcMZ9wE/FaAIgSQubCMIWCcOasdnmBucsFLSaf/F3JFOFCQbxE7FQ
-- 
bzr-gtk mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.canonical.com/mailman/listinfo/bzr-gtk

Reply via email to