/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
1
# Copyright (C) 2006 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
2
# Some parts of the code are:
3
# Copyright (C) 2005, 2006 by Canonical Ltd
4
#
5
# This program is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 2 of the License, or
8
# (at your option) any later version.
9
#
10
# This program is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with this program; if not, write to the Free Software
17
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
19
import os
20
import gtk
21
import gobject
22
23
from bzrlib.plugins.gtk import _i18n, icon_path
24
25
26
class OliveGui(gtk.Window):
27
    """ Olive main window """
28
    
29
    def __init__(self, calling_app):
30
        # Pointer to calling instance for signal connection
31
        self.signal = calling_app
32
        
33
        # Initialise window
34
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
35
        self.set_title(_i18n("Olive - Bazaar GUI"))
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
36
        self.set_icon_list(gtk.gdk.pixbuf_new_from_file(icon_path("oliveicon2.png")),
37
                           gtk.gdk.pixbuf_new_from_file(icon_path("olive-gtk.png")),
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
38
                           # Who has the svg version of the icon? Would be nice to include
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
39
                           #gtk.gdk.pixbuf_new_from_file(icon_path("olive.svg"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
40
                           )
41
        self.set_property("width-request", 700)
42
        self.set_property("height-request", 400)
43
        
44
        self.connect("destroy", self.destroy)
45
        self.connect("delete_event", self.signal.on_window_main_delete_event)
46
        
47
        # Accelerator group to Quit program
48
        accelgroup = gtk.AccelGroup()
49
        self.add_accel_group(accelgroup)
50
        self.quit_action = gtk.Action(_i18n("Quit"), None, None, gtk.STOCK_QUIT)
51
        self.quit_action.connect('activate', self.signal.on_window_main_delete_event)
52
        actiongroup = gtk.ActionGroup('QuitAction')
53
        actiongroup.add_action_with_accel(self.quit_action, None)
54
        self.quit_action.set_accel_group(accelgroup)
55
        self.quit_action.connect_accelerator()
56
        
57
        # High level build up of window
58
        self.vbox = gtk.VBox(False, 0)
59
        self.add(self.vbox)
60
        
61
        # Menu bar
62
        self._create_menubar()
63
        self.vbox.pack_start(self.mb, False, False, 0)
64
        
65
        # Toolbar
66
        self._create_toolbar()
67
        self.vbox.pack_start(self.tb, False, False, 0)
68
        
69
        # Locationbar
70
        self._create_locationbar()
71
        self.vbox.pack_start(self.locationbar, False, False, 0)
72
        
73
        # Main area
74
        self.hpaned_main = gtk.HPaned()
75
        self._create_bookmarklist()
76
        self.hpaned_main.add(self.scrolledwindow_left)
77
        self._create_filelist()
78
        self.hpaned_main.add(self.scrolledwindow_right)
79
        self.vbox.pack_start(self.hpaned_main, True, True, 0)
80
        
81
        # Statusbar
82
        self.statusbar = gtk.Statusbar()
83
        self.vbox.pack_end(self.statusbar, False, False, 0)
84
    
85
    def show(self):
86
        self.show_all()        
87
    
88
    def destroy(self, widget=None, data=None):
89
        """ Ends the program """
90
        gtk.main_quit()
91
92
    def _create_menubar(self):
93
        self.mb = gtk.MenuBar()
94
        
95
        # File menu
96
        self.mb_file = gtk.MenuItem(_i18n("_File"))
97
        self.mb_file_menu = gtk.Menu()
98
        
99
        self.mb_file_add = gtk.ImageMenuItem(gtk.STOCK_ADD, _i18n("_Add file(s)"))
100
        self.mb_file_add.connect('activate', self.signal.on_menuitem_add_files_activate)
101
        self.mb_file_menu.append(self.mb_file_add)
102
        
103
        self.mb_file_remove = gtk.ImageMenuItem(gtk.STOCK_REMOVE, _i18n("_Remove file(s)"))
104
        self.mb_file_remove.connect('activate', self.signal.on_menuitem_remove_file_activate)
105
        self.mb_file_menu.append(self.mb_file_remove)
106
        
107
        self.mb_file_menu.append(gtk.SeparatorMenuItem())
108
        
109
        self.mb_file_bookmark = gtk.MenuItem(_i18n("_Bookmark current directory"))
110
        self.mb_file_bookmark.connect('activate', self.signal.on_menuitem_file_bookmark_activate)
111
        self.mb_file_menu.append(self.mb_file_bookmark)
112
        
113
        self.mb_file_mkdir = gtk.MenuItem(_i18n("_Make directory"))
114
        self.mb_file_mkdir.connect('activate', self.signal.on_menuitem_file_make_directory_activate)
115
        self.mb_file_menu.append(self.mb_file_mkdir)
116
        
117
        self.mb_file_menu.append(gtk.SeparatorMenuItem())
118
        
119
        self.mb_file_rename = gtk.MenuItem(_i18n("_Rename"))
120
        self.mb_file_rename.connect('activate', self.signal.on_menuitem_file_rename_activate)
121
        self.mb_file_menu.append(self.mb_file_rename)
122
        
123
        self.mb_file_move = gtk.MenuItem(_i18n("_Move"))
124
        self.mb_file_move.connect('activate', self.signal.on_menuitem_file_move_activate)
125
        self.mb_file_menu.append(self.mb_file_move)
126
        
127
        self.mb_file_annotate = gtk.MenuItem(_i18n("_Annotate"))
128
        self.mb_file_annotate.connect('activate', self.signal.on_menuitem_file_annotate_activate)
129
        self.mb_file_menu.append(self.mb_file_annotate)
130
        
131
        self.mb_file_menu.append(gtk.SeparatorMenuItem())
132
        
133
        self.mb_file_quit = self.quit_action.create_menu_item()
134
        self.mb_file_menu.append(self.mb_file_quit)
135
        
136
        self.mb_file.set_submenu(self.mb_file_menu)
137
        self.mb.append(self.mb_file)
138
        
139
        # View menu
140
        self.mb_view = gtk.MenuItem(_i18n("_View"))
141
        self.mb_view_menu = gtk.Menu()
142
        
143
        self.mb_view_showhidden = gtk.CheckMenuItem(_i18n("Show _hidden files"))
144
        self.mb_view_showhidden.connect('activate', self.signal.on_menuitem_view_show_hidden_files_activate)
145
        self.mb_view_menu.append(self.mb_view_showhidden)
146
        
147
        self.mb_view_showignored = gtk.CheckMenuItem(_i18n("Show _ignored files"))
148
        self.mb_view_showignored.connect('activate', self.signal.on_menuitem_view_show_ignored_files_activate)
149
        self.mb_view_menu.append(self.mb_view_showignored)
150
        
151
        self.mb_view_menu.append(gtk.SeparatorMenuItem())
152
        
153
        self.mb_view_refresh = gtk.ImageMenuItem(gtk.STOCK_REFRESH, _i18n("_Refresh"))
154
        self.mb_view_refresh.connect('activate', self.signal.on_menuitem_view_refresh_activate)
155
        self.mb_view_menu.append(self.mb_view_refresh)
156
        
157
        self.mb_view.set_submenu(self.mb_view_menu)
158
        self.mb.append(self.mb_view)
159
        
160
        # Branch menu
161
        self.mb_branch = gtk.MenuItem(_i18n("_Branch"))
162
        self.mb_branch_menu = gtk.Menu()
163
        
164
        self.mb_branch_initialize = gtk.MenuItem(_i18n("_Initialize"))
165
        self.mb_branch_initialize.connect('activate', self.signal.on_menuitem_branch_initialize_activate)
166
        self.mb_branch_menu.append(self.mb_branch_initialize)
167
        
168
        self.mb_branch_get = gtk.MenuItem(_i18n("_Get"))
169
        self.mb_branch_get.connect('activate', self.signal.on_menuitem_branch_get_activate)
170
        self.mb_branch_menu.append(self.mb_branch_get)
171
        
172
        self.mb_branch_checkout = gtk.MenuItem(_i18n("C_heckout"))
173
        self.mb_branch_checkout.connect('activate', self.signal.on_menuitem_branch_checkout_activate)
174
        self.mb_branch_menu.append(self.mb_branch_checkout)
175
        
176
        self.mb_branch_menu.append(gtk.SeparatorMenuItem())
177
        
178
        self.mb_branch_pull = gtk.ImageMenuItem(_i18n("Pu_ll"))
179
        pullimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
180
        pullimage.set_from_file(icon_path("pull16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
181
        self.mb_branch_pull.set_image(pullimage)
182
        self.mb_branch_pull.connect('activate', self.signal.on_menuitem_branch_pull_activate)
183
        self.mb_branch_menu.append(self.mb_branch_pull)
184
        
185
        self.mb_branch_push = gtk.ImageMenuItem(_i18n("Pu_sh"))
186
        pushimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
187
        pushimage.set_from_file(icon_path("push16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
188
        self.mb_branch_push.set_image(pushimage)
189
        self.mb_branch_push.connect('activate', self.signal.on_menuitem_branch_push_activate)
190
        self.mb_branch_menu.append(self.mb_branch_push)
191
        
192
        self.mb_branch_update = gtk.MenuItem(_i18n("_Update"))
193
        self.mb_branch_update.connect('activate', self.signal.on_menuitem_branch_update_activate)
194
        self.mb_branch_menu.append(self.mb_branch_update)
195
        
196
        self.mb_branch_menu.append(gtk.SeparatorMenuItem())
197
        
198
        self.mb_branch_revert = gtk.ImageMenuItem(_i18n("_Revert all changes"))
199
        revertimage = gtk.Image()
200
        revertimage.set_from_stock(gtk.STOCK_REVERT_TO_SAVED, gtk.ICON_SIZE_MENU)
201
        self.mb_branch_revert.set_image(revertimage)
202
        self.mb_branch_revert.connect('activate', self.signal.on_menuitem_branch_revert_activate)
203
        self.mb_branch_menu.append(self.mb_branch_revert)
204
        
205
        self.mb_branch_merge = gtk.MenuItem(_i18n("_Merge"))
206
        self.mb_branch_merge.connect('activate', self.signal.on_menuitem_branch_merge_activate)
207
        self.mb_branch_menu.append(self.mb_branch_merge)
208
        
209
        self.mb_branch_commit = gtk.ImageMenuItem(_i18n("_Commit"))
210
        commitimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
211
        commitimage.set_from_file(icon_path("commit16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
212
        self.mb_branch_commit.set_image(commitimage)
213
        self.mb_branch_commit.connect('activate', self.signal.on_menuitem_branch_commit_activate)
214
        self.mb_branch_menu.append(self.mb_branch_commit)
215
        
216
        self.mb_branch_menu.append(gtk.SeparatorMenuItem())
217
        
218
        self.mb_branch_tags = gtk.ImageMenuItem(_i18n("Ta_gs"))
219
        tagsimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
220
        tagsimage.set_from_file(icon_path("tag-16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
221
        self.mb_branch_tags.set_image(tagsimage)
222
        self.mb_branch_tags.connect('activate', self.signal.on_menuitem_branch_tags_activate)
223
        self.mb_branch_menu.append(self.mb_branch_tags)
224
        
225
        self.mb_branch_status = gtk.MenuItem(_i18n("S_tatus"))
226
        self.mb_branch_status.connect('activate', self.signal.on_menuitem_branch_status_activate)
227
        self.mb_branch_menu.append(self.mb_branch_status)
228
        
229
        self.mb_branch_missingrevisions = gtk.MenuItem(_i18n("Missing _revisions"))
230
        self.mb_branch_missingrevisions.connect('activate', self.signal.on_menuitem_branch_missing_revisions_activate)
231
        self.mb_branch_menu.append(self.mb_branch_missingrevisions)
232
        
233
        self.mb_branch_conflicts = gtk.MenuItem(_i18n("Con_flicts"))
234
        self.mb_branch_conflicts.connect('activate', self.signal.on_menuitem_branch_conflicts_activate)
235
        self.mb_branch_menu.append(self.mb_branch_conflicts)
236
        
237
        self.mb_branch.set_submenu(self.mb_branch_menu)
238
        self.mb.append(self.mb_branch)
239
        
240
        # Statistics menu
241
        self.mb_statistics = gtk.MenuItem(_i18n("_Statistics"))
242
        self.mb_statistics_menu = gtk.Menu()
243
        
244
        self.mb_statistics_differences = gtk.ImageMenuItem(_i18n("_Differences"))
245
        diffimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
246
        diffimage.set_from_file(icon_path("diff16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
247
        self.mb_statistics_differences.set_image(diffimage)
248
        self.mb_statistics_differences.connect('activate', self.signal.on_menuitem_stats_diff_activate)
249
        self.mb_statistics_menu.append(self.mb_statistics_differences)
250
        
251
        self.mb_statistics_log = gtk.ImageMenuItem(_i18n("_Log"))
252
        logimage = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
253
        logimage.set_from_file(icon_path("log16.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
254
        self.mb_statistics_log.set_image(logimage)
255
        self.mb_statistics_log.connect('activate', self.signal.on_menuitem_stats_log_activate)
256
        self.mb_statistics_menu.append(self.mb_statistics_log)
257
        
258
        self.mb_statistics_information = gtk.MenuItem(_i18n("_Information"))
259
        self.mb_statistics_information.connect('activate', self.signal.on_menuitem_stats_infos_activate)
260
        self.mb_statistics_menu.append(self.mb_statistics_information)
261
        
262
        self.mb_statistics.set_submenu(self.mb_statistics_menu)
263
        self.mb.append(self.mb_statistics)
264
        
265
        # Help menu
266
        self.mb_help = gtk.MenuItem(_i18n("Help"))
267
        self.mb_help_menu = gtk.Menu()
268
        
269
        self.mb_help_about = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
270
        self.mb_help_about.connect('activate', self.signal.on_about_activate)
271
        self.mb_help_menu.append(self.mb_help_about)
272
        
273
        self.mb_help.set_submenu(self.mb_help_menu)
274
        self.mb.append(self.mb_help)
275
    
276
    def _create_toolbar(self):
277
        self.tb = gtk.Toolbar()
278
        
279
        self.tb_refresh_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
280
        self.tb_refresh_icon.set_from_file(icon_path("refresh.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
281
        self.tb_refresh = gtk.ToolButton(self.tb_refresh_icon, _i18n("Refresh"))
282
        self.tb_refresh.connect('clicked', self.signal.on_menuitem_view_refresh_activate)
283
        self.tb.add(self.tb_refresh)
284
        
285
        self.tb_diff_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
286
        self.tb_diff_icon.set_from_file(icon_path("diff.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
287
        self.tb_diff = gtk.ToolButton(self.tb_diff_icon, _i18n("Diff"))
288
        self.tb_diff.connect('clicked', self.signal.on_menuitem_stats_diff_activate)
289
        self.tb.add(self.tb_diff)
290
        
291
        self.tb_log_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
292
        self.tb_log_icon.set_from_file(icon_path("log.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
293
        self.tb_log = gtk.ToolButton(self.tb_log_icon, _i18n("Log"))
294
        self.tb_log.connect('clicked', self.signal.on_menuitem_stats_log_activate)
295
        self.tb.add(self.tb_log)
296
        
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
297
        self.tb.add(gtk.SeparatorToolItem())
298
        
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
299
        self.tb_commit_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
300
        self.tb_commit_icon.set_from_file(icon_path("commit.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
301
        self.tb_commit = gtk.ToolButton(self.tb_commit_icon, _i18n("Commit"))
302
        self.tb_commit.connect('clicked', self.signal.on_menuitem_branch_commit_activate)
303
        self.tb.add(self.tb_commit)
304
        
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
305
        self.tb.add(gtk.SeparatorToolItem())
306
        
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
307
        self.tb_pull_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
308
        self.tb_pull_icon.set_from_file(icon_path("pull.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
309
        self.tb_pull = gtk.ToolButton(self.tb_pull_icon, _i18n("Pull"))
310
        self.tb_pull.connect('clicked', self.signal.on_menuitem_branch_pull_activate)
311
        self.tb.add(self.tb_pull)
312
        
313
        self.tb_push_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
314
        self.tb_push_icon.set_from_file(icon_path("push.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
315
        self.tb_push = gtk.ToolButton(self.tb_push_icon, _i18n("Push"))
316
        self.tb_push.connect('clicked', self.signal.on_menuitem_branch_push_activate)
317
        self.tb.add(self.tb_push)
318
        
319
        self.tb_update_icon = gtk.Image()
533.12.2 by Jasper Groenewegen
Use icon_path.. The Right Way (tm)
320
        self.tb_update_icon.set_from_file(icon_path("pull.png"))
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
321
        self.tb_update = gtk.ToolButton(self.tb_update_icon, _i18n("Update"))
322
        self.tb_update.connect('clicked', self.signal.on_menuitem_branch_update_activate)
323
        self.tb.add(self.tb_update)
324
    
325
    def _create_locationbar(self):
326
        """ Creates the location bar, including the history widgets """
327
        self.locationbar = gtk.HBox()
328
        
329
        self.button_location_up = gtk.Button()
330
        self.button_location_up.set_relief(gtk.RELIEF_NONE)
331
        image_location_up = gtk.Image()
332
        image_location_up.set_from_stock(gtk.STOCK_GO_UP, gtk.ICON_SIZE_BUTTON)
333
        self.button_location_up.add(image_location_up)
334
        self.button_location_up.connect("clicked", self.signal.on_button_location_up_clicked)
335
        self.locationbar.pack_start(self.button_location_up, False, False, 0)
336
        
337
        self.entry_location = gtk.Entry()
560.3.1 by Jasper Groenewegen
Change locationbar bits (event signals, handling)
338
        self.entry_location.connect("activate", self.signal.on_button_location_jump_clicked)
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
339
        self.locationbar.pack_start(self.entry_location, True, True, 0)
340
        
341
        self.image_location_error = gtk.Image()
342
        self.image_location_error.set_from_stock(gtk.STOCK_DIALOG_ERROR, gtk.ICON_SIZE_BUTTON)
343
        self.locationbar.pack_start(self.image_location_error, False, False, 0)
344
        
345
        self.button_location_jump = gtk.Button(stock=gtk.STOCK_JUMP_TO)
346
        self.button_location_jump.set_relief(gtk.RELIEF_NONE)
347
        self.button_location_jump.connect("clicked", self.signal.on_button_location_jump_clicked)
348
        self.locationbar.pack_start(self.button_location_jump, False, False, 0)
349
        
350
        self.locationbar.pack_start(gtk.VSeparator(), False, False, 0)
351
        
352
        self.checkbutton_history = gtk.CheckButton(_i18n("H_istory Mode"))
353
        self.checkbutton_history.connect("toggled", self.signal.on_checkbutton_history_toggled)
354
        self.locationbar.pack_start(self.checkbutton_history, False, False, 0)
355
        
356
        self.entry_history_revno = gtk.Entry()
357
        self.entry_history_revno.set_property("width-request", 75)
358
        self.entry_history_revno.set_sensitive(False)
560.3.1 by Jasper Groenewegen
Change locationbar bits (event signals, handling)
359
        self.entry_history_revno.connect("activate", self.signal.on_entry_history_revno_activate)
533.12.1 by Jasper Groenewegen
Replace glade window_main with OliveGui
360
        self.locationbar.pack_start(self.entry_history_revno, False, False, 0)
361
        
362
        self.button_history_browse = gtk.Button()
363
        self.button_history_browse.set_sensitive(False)
364
        self.image_history_browse = gtk.Image()
365
        self.image_history_browse.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
366
        self.button_history_browse.add(self.image_history_browse)
367
        self.button_history_browse.connect("clicked", self.signal.on_button_history_browse_clicked)
368
        self.locationbar.pack_start(self.button_history_browse, False, False, 0)
369
    
370
    def _create_bookmarklist(self):
371
        """ Creates the bookmark list (a ListStore in a TreeView in a ScrolledWindow)"""
372
        self.scrolledwindow_left = gtk.ScrolledWindow()
373
        self.scrolledwindow_left.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
374
        
375
        self.treeview_left = gtk.TreeView()
376
        self.treeview_left.set_headers_visible(False)
377
        self.treeview_left.connect("button-press-event", self.signal.on_treeview_left_button_press_event)
378
        self.treeview_left.connect("row-activated", self.signal.on_treeview_left_row_activated)
379
        self.scrolledwindow_left.add(self.treeview_left)
380
381
        # Move olive/__init__.py _load_left List creation here
382
            
383
    def _create_filelist(self):
384
        """ Creates the file list (a ListStore in a TreeView in a ScrolledWindow)"""
385
        # Model: [ icon, dir, name, status text, status, size (int), size (human), mtime (int), mtime (local), fileid ]
386
        self.scrolledwindow_right = gtk.ScrolledWindow()
387
        self.scrolledwindow_right.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
388
        
389
        self.treeview_right = gtk.TreeView()
390
        self.treeview_right.connect("button-press-event", self.signal.on_treeview_right_button_press_event)
391
        self.treeview_right.connect("row-activated", self.signal.on_treeview_right_row_activated)
392
        self.scrolledwindow_right.add(self.treeview_right)
393
394
        # Move olive/__init__.py _load_right List creation here
395
    
396
    def set_view_to_localbranch(self, notbranch=False):
397
        """ Change the sensitivity of gui items to reflect the fact that the path is a branch or not"""
398
        self.mb_branch_initialize.set_sensitive(notbranch)
399
        self.mb_branch_get.set_sensitive(notbranch)
400
        self.mb_branch_checkout.set_sensitive(notbranch)
401
        self.mb_branch_pull.set_sensitive(not notbranch)
402
        self.mb_branch_push.set_sensitive(not notbranch)
403
        self.mb_branch_update.set_sensitive(not notbranch)
404
        self.mb_branch_revert.set_sensitive(not notbranch)
405
        self.mb_branch_merge.set_sensitive(not notbranch)
406
        self.mb_branch_commit.set_sensitive(not notbranch)
407
        self.mb_branch_tags.set_sensitive(not notbranch)
408
        self.mb_branch_status.set_sensitive(not notbranch)
409
        self.mb_branch_missingrevisions.set_sensitive(not notbranch)
410
        self.mb_branch_conflicts.set_sensitive(not notbranch)
411
        self.mb_statistics.set_sensitive(not notbranch)
412
        self.mb_statistics_differences.set_sensitive(not notbranch)
413
        self.mb_file_add.set_sensitive(not notbranch)
414
        self.mb_file_remove.set_sensitive(not notbranch)
415
        self.mb_file_mkdir.set_sensitive(not notbranch)
416
        self.mb_file_rename.set_sensitive(not notbranch)
417
        self.mb_file_move.set_sensitive(not notbranch)
418
        self.mb_file_annotate.set_sensitive(not notbranch)
419
        self.tb_diff.set_sensitive(not notbranch)
420
        self.tb_log.set_sensitive(not notbranch)
421
        self.tb_commit.set_sensitive(not notbranch)
422
        self.tb_pull.set_sensitive(not notbranch)
423
        self.tb_push.set_sensitive(not notbranch)
424
        self.tb_update.set_sensitive(not notbranch)
425
    
426
    def set_view_to_remotebranch(self):
427
        """ Change the sensitivity of gui items to reflect the fact that the branch is remote"""
428
        self.mb_file_add.set_sensitive(False)
429
        self.mb_file_remove.set_sensitive(False)
430
        self.mb_file_mkdir.set_sensitive(False)
431
        self.mb_file_rename.set_sensitive(False)
432
        self.mb_file_move.set_sensitive(False)
433
        self.mb_file_annotate.set_sensitive(False)
434
        self.mb_branch_initialize.set_sensitive(False)
435
        self.mb_branch_get.set_sensitive(True)
436
        self.mb_branch_checkout.set_sensitive(True)
437
        self.mb_branch_pull.set_sensitive(False)
438
        self.mb_branch_push.set_sensitive(False)
439
        self.mb_branch_update.set_sensitive(False)
440
        self.mb_branch_revert.set_sensitive(False)
441
        self.mb_branch_merge.set_sensitive(False)
442
        self.mb_branch_commit.set_sensitive(False)
443
        self.mb_branch_tags.set_sensitive(True)
444
        self.mb_branch_status.set_sensitive(False)
445
        self.mb_branch_missingrevisions.set_sensitive(False)
446
        self.mb_branch_conflicts.set_sensitive(False)
447
        self.mb_statistics.set_sensitive(True)
448
        self.mb_statistics_differences.set_sensitive(False)
449
        self.tb_diff.set_sensitive(False)
450
        self.tb_log.set_sensitive(True)
451
        self.tb_commit.set_sensitive(False)
452
        self.tb_pull.set_sensitive(False)
453
        self.tb_push.set_sensitive(False)
454
        self.tb_update.set_sensitive(False)