59
58
self.window = self.toplevel.get_widget('window_main')
61
60
self.pref = OlivePreferences()
62
self.comm = OliveCommunicator(self.toplevel, self.pref)
63
handler = OliveHandler(self.comm.get_path())
62
# Initialize the statusbar
63
self.statusbar = self.toplevel.get_widget('statusbar')
64
self.context_id = self.statusbar.get_context_id('olive')
67
self.window_main = self.toplevel.get_widget('window_main')
69
self.hpaned_main = self.toplevel.get_widget('hpaned_main')
71
self.treeview_left = self.toplevel.get_widget('treeview_left')
72
self.treeview_right = self.toplevel.get_widget('treeview_right')
73
# Get some important menu items
74
self.menuitem_add_files = self.toplevel.get_widget('menuitem_add_files')
75
self.menuitem_remove_files = self.toplevel.get_widget('menuitem_remove_file')
76
self.menuitem_file_make_directory = self.toplevel.get_widget('menuitem_file_make_directory')
77
self.menuitem_file_rename = self.toplevel.get_widget('menuitem_file_rename')
78
self.menuitem_file_move = self.toplevel.get_widget('menuitem_file_move')
79
self.menuitem_view_show_hidden_files = self.toplevel.get_widget('menuitem_view_show_hidden_files')
80
self.menuitem_branch = self.toplevel.get_widget('menuitem_branch')
81
self.menuitem_branch_init = self.toplevel.get_widget('menuitem_branch_initialize')
82
self.menuitem_branch_get = self.toplevel.get_widget('menuitem_branch_get')
83
self.menuitem_branch_checkout = self.toplevel.get_widget('menuitem_branch_checkout')
84
self.menuitem_branch_pull = self.toplevel.get_widget('menuitem_branch_pull')
85
self.menuitem_branch_push = self.toplevel.get_widget('menuitem_branch_push')
86
self.menuitem_branch_commit = self.toplevel.get_widget('menuitem_branch_commit')
87
self.menuitem_branch_status = self.toplevel.get_widget('menuitem_branch_status')
88
self.menuitem_branch_missing = self.toplevel.get_widget('menuitem_branch_missing_revisions')
89
self.menuitem_stats = self.toplevel.get_widget('menuitem_stats')
90
self.menuitem_stats_diff = self.toplevel.get_widget('menuitem_stats_diff')
91
self.menuitem_stats_log = self.toplevel.get_widget('menuitem_stats_log')
92
# Get some toolbuttons
93
#self.menutoolbutton_diff = self.toplevel.get_widget('menutoolbutton_diff')
94
self.toolbutton_diff = self.toplevel.get_widget('toolbutton_diff')
95
self.toolbutton_log = self.toplevel.get_widget('toolbutton_log')
96
self.toolbutton_commit = self.toplevel.get_widget('toolbutton_commit')
97
self.toolbutton_pull = self.toplevel.get_widget('toolbutton_pull')
98
self.toolbutton_push = self.toplevel.get_widget('toolbutton_push')
99
# Get the drive selector
100
self.combobox_drive = gtk.combo_box_new_text()
101
self.combobox_drive.connect("changed", self._refresh_drives)
103
self.vbox_main_right = self.toplevel.get_widget('vbox_main_right')
65
106
# Dictionary for signal_autoconnect
66
107
dic = { "on_window_main_destroy": gtk.main_quit,
67
"on_window_main_delete_event": handler.on_window_main_delete_event,
68
"on_quit_activate": handler.on_window_main_delete_event,
69
"on_about_activate": handler.on_about_activate,
70
"on_menuitem_add_files_activate": handler.on_menuitem_add_files_activate,
71
"on_menuitem_remove_file_activate": handler.on_menuitem_remove_file_activate,
72
"on_menuitem_file_make_directory_activate": handler.on_menuitem_file_make_directory_activate,
73
"on_menuitem_file_move_activate": handler.on_menuitem_file_move_activate,
74
"on_menuitem_file_rename_activate": handler.on_menuitem_file_rename_activate,
75
"on_menuitem_view_show_hidden_files_activate": handler.on_menuitem_view_show_hidden_files_activate,
76
"on_menuitem_view_refresh_activate": handler.on_menuitem_view_refresh_activate,
77
"on_menuitem_branch_initialize_activate": handler.on_menuitem_branch_initialize_activate,
78
"on_menuitem_branch_get_activate": handler.on_menuitem_branch_get_activate,
79
"on_menuitem_branch_checkout_activate": handler.on_menuitem_branch_checkout_activate,
80
"on_menuitem_branch_commit_activate": handler.on_menuitem_branch_commit_activate,
81
"on_menuitem_branch_push_activate": handler.on_menuitem_branch_push_activate,
82
"on_menuitem_branch_pull_activate": handler.on_menuitem_branch_pull_activate,
83
"on_menuitem_branch_status_activate": handler.on_menuitem_branch_status_activate,
84
"on_menuitem_branch_missing_revisions_activate": handler.on_menuitem_branch_missing_revisions_activate,
85
"on_menuitem_stats_diff_activate": handler.on_menuitem_stats_diff_activate,
86
"on_menuitem_stats_log_activate": handler.on_menuitem_stats_log_activate,
87
"on_menuitem_stats_infos_activate": handler.on_menuitem_stats_infos_activate,
88
"on_toolbutton_refresh_clicked": handler.on_menuitem_view_refresh_activate,
89
"on_toolbutton_log_clicked": handler.on_menuitem_stats_log_activate,
90
#"on_menutoolbutton_diff_clicked": handler.on_menuitem_stats_diff_activate,
91
"on_toolbutton_diff_clicked": handler.on_menuitem_stats_diff_activate,
92
"on_toolbutton_commit_clicked": handler.on_menuitem_branch_commit_activate,
93
"on_toolbutton_pull_clicked": handler.on_menuitem_branch_pull_activate,
94
"on_toolbutton_push_clicked": handler.on_menuitem_branch_push_activate,
95
"on_treeview_right_button_press_event": handler.on_treeview_right_button_press_event,
96
"on_treeview_right_row_activated": handler.on_treeview_right_row_activated,
97
"on_treeview_left_button_press_event": handler.on_treeview_left_button_press_event,
98
"on_treeview_left_row_activated": handler.on_treeview_left_row_activated }
108
"on_window_main_delete_event": self.on_window_main_delete_event,
109
"on_quit_activate": self.on_window_main_delete_event,
110
"on_about_activate": self.on_about_activate,
111
"on_menuitem_add_files_activate": self.on_menuitem_add_files_activate,
112
"on_menuitem_remove_file_activate": self.on_menuitem_remove_file_activate,
113
"on_menuitem_file_make_directory_activate": self.on_menuitem_file_make_directory_activate,
114
"on_menuitem_file_move_activate": self.on_menuitem_file_move_activate,
115
"on_menuitem_file_rename_activate": self.on_menuitem_file_rename_activate,
116
"on_menuitem_view_show_hidden_files_activate": self.on_menuitem_view_show_hidden_files_activate,
117
"on_menuitem_view_refresh_activate": self.on_menuitem_view_refresh_activate,
118
"on_menuitem_branch_initialize_activate": self.on_menuitem_branch_initialize_activate,
119
"on_menuitem_branch_get_activate": self.on_menuitem_branch_get_activate,
120
"on_menuitem_branch_checkout_activate": self.on_menuitem_branch_checkout_activate,
121
"on_menuitem_branch_commit_activate": self.on_menuitem_branch_commit_activate,
122
"on_menuitem_branch_push_activate": self.on_menuitem_branch_push_activate,
123
"on_menuitem_branch_pull_activate": self.on_menuitem_branch_pull_activate,
124
"on_menuitem_branch_status_activate": self.on_menuitem_branch_status_activate,
125
"on_menuitem_branch_missing_revisions_activate": self.on_menuitem_branch_missing_revisions_activate,
126
"on_menuitem_stats_diff_activate": self.on_menuitem_stats_diff_activate,
127
"on_menuitem_stats_log_activate": self.on_menuitem_stats_log_activate,
128
"on_menuitem_stats_infos_activate": self.on_menuitem_stats_infos_activate,
129
"on_toolbutton_refresh_clicked": self.on_menuitem_view_refresh_activate,
130
"on_toolbutton_log_clicked": self.on_menuitem_stats_log_activate,
131
#"on_menutoolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
132
"on_toolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
133
"on_toolbutton_commit_clicked": self.on_menuitem_branch_commit_activate,
134
"on_toolbutton_pull_clicked": self.on_menuitem_branch_pull_activate,
135
"on_toolbutton_push_clicked": self.on_menuitem_branch_push_activate,
136
"on_treeview_right_button_press_event": self.on_treeview_right_button_press_event,
137
"on_treeview_right_row_activated": self.on_treeview_right_row_activated,
138
"on_treeview_left_button_press_event": self.on_treeview_left_button_press_event,
139
"on_treeview_left_row_activated": self.on_treeview_left_row_activated }
100
141
# Connect the signals to the handlers
101
142
self.toplevel.signal_autoconnect(dic)
121
162
# Show drive selector if under Win32
122
163
if sys.platform == 'win32':
123
self.comm.vbox_main_right.pack_start(self.comm.combobox_drive, False, True, 0)
124
self.comm.vbox_main_right.reorder_child(self.comm.combobox_drive, 0)
125
self.comm.combobox_drive.show()
126
self.comm.gen_hard_selector()
164
self.vbox_main_right.pack_start(self.combobox_drive, False, True, 0)
165
self.vbox_main_right.reorder_child(self.combobox_drive, 0)
166
self.combobox_drive.show()
167
self.gen_hard_selector()
128
169
# Load default data into the panels
129
170
self.treeview_left = self.toplevel.get_widget('treeview_left')
130
171
self.treeview_right = self.toplevel.get_widget('treeview_right')
131
172
self._load_left()
175
self.menuitem_view_show_hidden_files.set_active(self.pref.get_preference('dotted_files', 'bool'))
177
self.set_path(os.getcwd())
179
def set_path(self, path):
181
self.notbranch = False
183
self.wt, self.wtpath = WorkingTree.open_containing(self.path)
184
except NotBranchError:
185
self.notbranch = True
132
186
self._load_right()
135
self.comm.menuitem_view_show_hidden_files.set_active(self.pref.get_preference('dotted_files', 'bool'))
191
def on_about_activate(self, widget):
194
def on_menuitem_add_files_activate(self, widget):
195
""" Add file(s)... menu handler. """
196
from add import OliveAdd
197
add = OliveAdd(self.wt, self.wtpath, self.get_selected_right())
200
def on_menuitem_branch_get_activate(self, widget):
201
""" Branch/Get... menu handler. """
202
from branch import OliveBranch
203
branch = OliveBranch()
206
def on_menuitem_branch_checkout_activate(self, widget):
207
""" Branch/Checkout... menu handler. """
208
from checkout import OliveCheckout
209
checkout = OliveCheckout()
212
def on_menuitem_branch_commit_activate(self, widget):
213
""" Branch/Commit... menu handler. """
214
from commit import OliveCommit
215
commit = OliveCommit(self.wt, self.wtpath)
218
def on_menuitem_branch_missing_revisions_activate(self, widget):
219
""" Branch/Missing revisions menu handler. """
223
local_branch = self.wt.branch
225
other_branch = local_branch.get_parent()
226
if other_branch is None:
227
error_dialog(_('Parent location is unknown'),
228
_('Cannot determine missing revisions if no parent location is known.'))
231
remote_branch = Branch.open(other_branch)
233
if remote_branch.base == local_branch.base:
234
remote_branch = local_branch
236
ret = len(local_branch.missing_revisions(remote_branch))
239
info_dialog(_('There are missing revisions'),
240
_('%d revision(s) missing.') % ret)
242
info_dialog(_('Local branch up to date'),
243
_('There are no missing revisions.'))
245
def on_menuitem_branch_pull_activate(self, widget):
246
""" Branch/Pull menu handler. """
248
branch_to = self.wt.branch
250
location = branch_to.get_parent()
252
error_dialog(_('Parent location is unknown'),
253
_('Pulling is not possible until there is a parent location.'))
257
branch_from = Branch.open(location)
258
except errors.NotBranchError:
259
error_dialog(_('Directory is not a branch'),
260
_('You can perform this action only in a branch.'))
262
if branch_to.get_parent() is None:
263
branch_to.set_parent(branch_from.base)
265
old_rh = branch_to.revision_history()
266
if tree_to is not None:
267
tree_to.pull(branch_from)
269
branch_to.pull(branch_from)
271
info_dialog(_('Pull successful'), _('%d revision(s) pulled.') % ret)
273
def on_menuitem_branch_push_activate(self, widget):
274
""" Branch/Push... menu handler. """
275
from push import OlivePush
276
push = OlivePush(self.wt.branch)
279
def on_menuitem_branch_status_activate(self, widget):
280
""" Branch/Status... menu handler. """
281
from status import OliveStatus
282
status = OliveStatus(self.wt, self.wtpath)
285
def on_menuitem_branch_initialize_activate(self, widget):
286
""" Initialize current directory. """
288
if not os.path.exists(self.path):
292
existing_bzrdir = bzrdir.BzrDir.open(self.path)
293
except NotBranchError:
294
bzrdir.BzrDir.create_branch_convenience(self.path)
296
if existing_bzrdir.has_branch():
297
if existing_bzrdir.has_workingtree():
298
raise AlreadyBranchError(self.path)
300
raise BranchExistsWithoutWorkingTree(self.path)
302
existing_bzrdir.create_branch()
303
existing_bzrdir.create_workingtree()
304
except errors.AlreadyBranchError, errmsg:
305
error_dialog(_('Directory is already a branch'),
306
_('The current directory (%s) is already a branch.\nYou can start using it, or initialize another directory.') % errmsg)
307
except errors.BranchExistsWithoutWorkingTree, errmsg:
308
error_dialog(_('Branch without a working tree'),
309
_('The current directory (%s)\nis a branch without a working tree.') % errmsg)
311
info_dialog(_('Initialize successful'),
312
_('Directory successfully initialized.'))
315
def on_menuitem_file_make_directory_activate(self, widget):
316
""" File/Make directory... menu handler. """
317
from mkdir import OliveMkdir
318
mkdir = OliveMkdir(self.wt, self.wtpath)
321
def on_menuitem_file_move_activate(self, widget):
322
""" File/Move... menu handler. """
323
from move import OliveMove
324
move = OliveMove(self.wt, self.wtpath, self.get_selected_right())
327
def on_menuitem_file_rename_activate(self, widget):
328
""" File/Rename... menu handler. """
329
from rename import OliveRename
330
rename = OliveRename(self.wt, self.wtpath, self.get_selected_right())
333
def on_menuitem_remove_file_activate(self, widget):
334
""" Remove (unversion) selected file. """
335
from remove import OliveRemove
336
remove = OliveRemove(self.wt, self.wtpath, self.get_selected_right())
339
def on_menuitem_stats_diff_activate(self, widget):
340
""" Statistics/Differences... menu handler. """
341
from bzrlib.plugins.gtk.viz.diffwin import DiffWindow
342
window = DiffWindow()
343
parent_tree = self.wt.branch.repository.revision_tree(self.wt.branch.last_revision())
344
window.set_diff(self.wt.branch.nick, self.wt, parent_tree)
347
def on_menuitem_stats_infos_activate(self, widget):
348
""" Statistics/Informations... menu handler. """
349
from info import OliveInfo
350
info = OliveInfo(self.wt)
353
def on_menuitem_stats_log_activate(self, widget):
354
""" Statistics/Log... menu handler. """
355
from bzrlib.plugins.gtk.viz.branchwin import BranchWindow
356
window = BranchWindow()
357
window.set_branch(self.wt.branch, self.wt.branch.last_revision(), None)
360
def on_menuitem_view_refresh_activate(self, widget):
361
""" View/Refresh menu handler. """
362
# Refresh the left pane
364
# Refresh the right pane
368
def on_menuitem_view_show_hidden_files_activate(self, widget):
369
""" View/Show hidden files menu handler. """
370
self.set_preference('dotted_files', widget.get_active())
372
def on_treeview_left_button_press_event(self, widget, event):
373
""" Occurs when somebody right-clicks in the bookmark list. """
374
if event.button == 3:
375
# Don't show context with nothing selected
376
if self.get_selected_left() == None:
379
self.menu.left_context_menu().popup(None, None, None, 0,
382
def on_treeview_left_row_activated(self, treeview, path, view_column):
383
""" Occurs when somebody double-clicks or enters an item in the
386
newdir = self.get_selected_left()
390
self.set_path(newdir)
393
def on_treeview_right_button_press_event(self, widget, event):
394
""" Occurs when somebody right-clicks in the file list. """
395
if event.button == 3:
397
m_add = self.menu.ui.get_widget('/context_right/add')
398
m_remove = self.menu.ui.get_widget('/context_right/remove')
399
m_commit = self.menu.ui.get_widget('/context_right/commit')
400
m_diff = self.menu.ui.get_widget('/context_right/diff')
401
# check if we're in a branch
403
from bzrlib.branch import Branch
404
Branch.open_containing(self.get_path())
405
m_add.set_sensitive(False)
406
m_remove.set_sensitive(False)
407
m_commit.set_sensitive(False)
408
m_diff.set_sensitive(False)
409
except errors.NotBranchError:
410
m_add.set_sensitive(True)
411
m_remove.set_sensitive(True)
412
m_commit.set_sensitive(True)
413
m_diff.set_sensitive(True)
414
self.menu.right_context_menu().popup(None, None, None, 0,
417
def on_treeview_right_row_activated(self, treeview, path, view_column):
418
""" Occurs when somebody double-clicks or enters an item in the
422
newdir = self.get_selected_right()
425
self.set_path(os.path.split(self.get_path())[0])
427
fullpath = self.get_path() + os.sep + newdir
428
if os.path.isdir(fullpath):
429
# selected item is an existant directory
430
self.set_path(fullpath)
436
def on_window_main_delete_event(self, widget, event=None):
437
""" Do some stuff before exiting. """
438
width, height = self.window_main.get_size()
439
self.pref.set_preference('window_width', width)
440
self.pref.set_preference('window_height', height)
441
x, y = self.window_main.get_position()
442
self.pref.set_preference('window_x', x)
443
self.pref.set_preference('window_y', y)
444
self.pref.set_preference('paned_position',
445
self.hpaned_main.get_position())
448
self.window_main.destroy()
137
450
def _load_left(self):
138
451
""" Load data into the left panel. (Bookmarks) """
260
561
tvcolumn_filename.add_attribute(cell, 'text', 1)
261
562
tvcolumn_status.pack_start(cell, True)
262
563
tvcolumn_status.add_attribute(cell, 'text', 2)
565
self.menuitem_branch_init.set_sensitive(self.notbranch)
264
566
# Check if current directory is a branch
266
# Activate some items
267
self.comm.menuitem_branch_init.set_sensitive(False)
268
self.comm.menuitem_branch_get.set_sensitive(True)
269
self.comm.menuitem_branch_checkout.set_sensitive(True)
270
self.comm.menuitem_branch_pull.set_sensitive(True)
271
self.comm.menuitem_branch_push.set_sensitive(True)
272
self.comm.menuitem_branch_commit.set_sensitive(True)
273
self.comm.menuitem_branch_status.set_sensitive(True)
274
self.comm.menuitem_branch_missing.set_sensitive(True)
275
self.comm.menuitem_stats.set_sensitive(True)
276
self.comm.menuitem_add_files.set_sensitive(True)
277
self.comm.menuitem_remove_files.set_sensitive(True)
278
self.comm.menuitem_file_make_directory.set_sensitive(True)
279
self.comm.menuitem_file_rename.set_sensitive(True)
280
self.comm.menuitem_file_move.set_sensitive(True)
281
#self.comm.menutoolbutton_diff.set_sensitive(True)
282
self.comm.toolbutton_diff.set_sensitive(True)
283
self.comm.toolbutton_log.set_sensitive(True)
284
self.comm.toolbutton_commit.set_sensitive(True)
285
self.comm.toolbutton_pull.set_sensitive(True)
286
self.comm.toolbutton_push.set_sensitive(True)
288
# Deactivate some items
289
self.comm.menuitem_branch_init.set_sensitive(True)
290
self.comm.menuitem_branch_get.set_sensitive(False)
291
self.comm.menuitem_branch_checkout.set_sensitive(False)
292
self.comm.menuitem_branch_pull.set_sensitive(False)
293
self.comm.menuitem_branch_push.set_sensitive(False)
294
self.comm.menuitem_branch_commit.set_sensitive(False)
295
self.comm.menuitem_branch_status.set_sensitive(False)
296
self.comm.menuitem_branch_missing.set_sensitive(False)
297
self.comm.menuitem_stats.set_sensitive(False)
298
self.comm.menuitem_add_files.set_sensitive(False)
299
self.comm.menuitem_remove_files.set_sensitive(False)
300
self.comm.menuitem_file_make_directory.set_sensitive(False)
301
self.comm.menuitem_file_rename.set_sensitive(False)
302
self.comm.menuitem_file_move.set_sensitive(False)
303
#self.comm.menutoolbutton_diff.set_sensitive(False)
304
self.comm.toolbutton_diff.set_sensitive(False)
305
self.comm.toolbutton_log.set_sensitive(False)
306
self.comm.toolbutton_commit.set_sensitive(False)
307
self.comm.toolbutton_pull.set_sensitive(False)
308
self.comm.toolbutton_push.set_sensitive(False)
310
class OliveCommunicator:
311
""" This class is responsible for the communication between the different
313
def __init__(self, toplevel, pref):
314
# Get glade main component
315
self.toplevel = toplevel
319
self._path = os.getcwd()
321
# Initialize the statusbar
322
self.statusbar = self.toplevel.get_widget('statusbar')
323
self.context_id = self.statusbar.get_context_id('olive')
325
# Get the main window
326
self.window_main = self.toplevel.get_widget('window_main')
328
self.hpaned_main = self.toplevel.get_widget('hpaned_main')
330
self.treeview_left = self.toplevel.get_widget('treeview_left')
331
self.treeview_right = self.toplevel.get_widget('treeview_right')
332
# Get some important menu items
333
self.menuitem_add_files = self.toplevel.get_widget('menuitem_add_files')
334
self.menuitem_remove_files = self.toplevel.get_widget('menuitem_remove_file')
335
self.menuitem_file_make_directory = self.toplevel.get_widget('menuitem_file_make_directory')
336
self.menuitem_file_rename = self.toplevel.get_widget('menuitem_file_rename')
337
self.menuitem_file_move = self.toplevel.get_widget('menuitem_file_move')
338
self.menuitem_view_show_hidden_files = self.toplevel.get_widget('menuitem_view_show_hidden_files')
339
self.menuitem_branch = self.toplevel.get_widget('menuitem_branch')
340
self.menuitem_branch_init = self.toplevel.get_widget('menuitem_branch_initialize')
341
self.menuitem_branch_get = self.toplevel.get_widget('menuitem_branch_get')
342
self.menuitem_branch_checkout = self.toplevel.get_widget('menuitem_branch_checkout')
343
self.menuitem_branch_pull = self.toplevel.get_widget('menuitem_branch_pull')
344
self.menuitem_branch_push = self.toplevel.get_widget('menuitem_branch_push')
345
self.menuitem_branch_commit = self.toplevel.get_widget('menuitem_branch_commit')
346
self.menuitem_branch_status = self.toplevel.get_widget('menuitem_branch_status')
347
self.menuitem_branch_missing = self.toplevel.get_widget('menuitem_branch_missing_revisions')
348
self.menuitem_stats = self.toplevel.get_widget('menuitem_stats')
349
self.menuitem_stats_diff = self.toplevel.get_widget('menuitem_stats_diff')
350
self.menuitem_stats_log = self.toplevel.get_widget('menuitem_stats_log')
351
# Get some toolbuttons
352
#self.menutoolbutton_diff = self.toplevel.get_widget('menutoolbutton_diff')
353
self.toolbutton_diff = self.toplevel.get_widget('toolbutton_diff')
354
self.toolbutton_log = self.toplevel.get_widget('toolbutton_log')
355
self.toolbutton_commit = self.toplevel.get_widget('toolbutton_commit')
356
self.toolbutton_pull = self.toplevel.get_widget('toolbutton_pull')
357
self.toolbutton_push = self.toplevel.get_widget('toolbutton_push')
358
# Get the drive selector
359
self.combobox_drive = gtk.combo_box_new_text()
360
self.combobox_drive.connect("changed", self._refresh_drives)
362
self.vbox_main_right = self.toplevel.get_widget('vbox_main_right')
364
def set_path(self, path):
365
""" Set the current path while browsing the directories. """
369
""" Get the current path. """
567
self.menuitem_branch_get.set_sensitive(not self.notbranch)
568
self.menuitem_branch_checkout.set_sensitive(not self.notbranch)
569
self.menuitem_branch_pull.set_sensitive(not self.notbranch)
570
self.menuitem_branch_push.set_sensitive(not self.notbranch)
571
self.menuitem_branch_commit.set_sensitive(not self.notbranch)
572
self.menuitem_branch_status.set_sensitive(not self.notbranch)
573
self.menuitem_branch_missing.set_sensitive(not self.notbranch)
574
self.menuitem_stats.set_sensitive(not self.notbranch)
575
self.menuitem_add_files.set_sensitive(not self.notbranch)
576
self.menuitem_remove_files.set_sensitive(not self.notbranch)
577
self.menuitem_file_make_directory.set_sensitive(not self.notbranch)
578
self.menuitem_file_rename.set_sensitive(not self.notbranch)
579
self.menuitem_file_move.set_sensitive(not self.notbranch)
580
#self.menutoolbutton_diff.set_sensitive(True)
581
self.toolbutton_diff.set_sensitive(not self.notbranch)
582
self.toolbutton_log.set_sensitive(not self.notbranch)
583
self.toolbutton_commit.set_sensitive(not self.notbranch)
584
self.toolbutton_pull.set_sensitive(not self.notbranch)
585
self.toolbutton_push.set_sensitive(not self.notbranch)
372
587
def get_selected_right(self):
373
588
""" Get the selected filename. """
374
589
treeselection = self.treeview_right.get_selection()
512
727
# Add the ListStore to the TreeView
513
728
self.treeview_right.set_model(liststore)
515
# Check if current directory is a branch
517
# Activate some items
518
self.menuitem_branch_init.set_sensitive(False)
519
self.menuitem_branch_get.set_sensitive(True)
520
self.menuitem_branch_checkout.set_sensitive(True)
521
self.menuitem_branch_pull.set_sensitive(True)
522
self.menuitem_branch_push.set_sensitive(True)
523
self.menuitem_branch_commit.set_sensitive(True)
524
self.menuitem_branch_status.set_sensitive(True)
525
self.menuitem_branch_missing.set_sensitive(True)
526
self.menuitem_stats.set_sensitive(True)
527
self.menuitem_add_files.set_sensitive(True)
528
self.menuitem_remove_files.set_sensitive(True)
529
self.menuitem_file_make_directory.set_sensitive(True)
530
self.menuitem_file_rename.set_sensitive(True)
531
self.menuitem_file_move.set_sensitive(True)
532
#self.menutoolbutton_diff.set_sensitive(True)
533
self.toolbutton_diff.set_sensitive(True)
534
self.toolbutton_log.set_sensitive(True)
535
self.toolbutton_commit.set_sensitive(True)
536
self.toolbutton_pull.set_sensitive(True)
537
self.toolbutton_push.set_sensitive(True)
539
# Deactivate some items
540
self.menuitem_branch_init.set_sensitive(True)
541
self.menuitem_branch_get.set_sensitive(False)
542
self.menuitem_branch_checkout.set_sensitive(False)
543
self.menuitem_branch_pull.set_sensitive(False)
544
self.menuitem_branch_push.set_sensitive(False)
545
self.menuitem_branch_commit.set_sensitive(False)
546
self.menuitem_branch_status.set_sensitive(False)
547
self.menuitem_branch_missing.set_sensitive(False)
548
self.menuitem_stats.set_sensitive(False)
549
self.menuitem_add_files.set_sensitive(False)
550
self.menuitem_remove_files.set_sensitive(False)
551
self.menuitem_file_make_directory.set_sensitive(False)
552
self.menuitem_file_rename.set_sensitive(False)
553
self.menuitem_file_move.set_sensitive(False)
554
#self.menutoolbutton_diff.set_sensitive(False)
555
self.toolbutton_diff.set_sensitive(False)
556
self.toolbutton_log.set_sensitive(False)
557
self.toolbutton_commit.set_sensitive(False)
558
self.toolbutton_pull.set_sensitive(False)
559
self.toolbutton_push.set_sensitive(False)
561
def set_busy(self, widget, busy=True):
563
widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
565
widget.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.LEFT_PTR))
567
gtk.main_iteration(0)
569
730
def _harddisks(self):
570
731
""" Returns hard drive letters under Win32. """