/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to olive/__init__.py

  • Committer: Jasper Groenewegen
  • Date: 2008-07-20 16:19:25 UTC
  • mfrom: (533.12.3 mainwindow)
  • Revision ID: colbrac@xs4all.nl-20080720161925-s9tui6wzjrlnmtrq
Merge replacement of Olive main window with glade-less version

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
import gobject
33
33
import gtk
34
34
import gtk.gdk
35
 
import gtk.glade
36
35
 
37
36
from bzrlib.branch import Branch
38
37
import bzrlib.errors as bzrerrors
43
42
from bzrlib.plugins.gtk import _i18n
44
43
from bzrlib.plugins.gtk.dialog import error_dialog, info_dialog, warning_dialog
45
44
from bzrlib.plugins.gtk.errors import show_bzr_error
46
 
from guifiles import GLADEFILENAME
 
45
from bzrlib.plugins.gtk.olive.window import OliveGui
47
46
 
48
47
from bzrlib.plugins.gtk.diff import DiffWindow
49
48
lazy_import(globals(), """
89
88
    program. """
90
89
    
91
90
    def __init__(self):
92
 
        self.toplevel = gtk.glade.XML(GLADEFILENAME, 'window_main', 'olive-gtk')
93
 
        self.window = self.toplevel.get_widget('window_main')
 
91
        self.window = OliveGui(calling_app = self)
 
92
        
94
93
        self.pref = Preferences()
95
94
        self.path = None
96
95
 
97
96
        # Initialize the statusbar
98
 
        self.statusbar = self.toplevel.get_widget('statusbar')
99
 
        self.context_id = self.statusbar.get_context_id('olive')
100
 
        
101
 
        # Get the main window
102
 
        self.window_main = self.toplevel.get_widget('window_main')
103
 
        # Get the HPaned
104
 
        self.hpaned_main = self.toplevel.get_widget('hpaned_main')
105
 
        # Get the TreeViews
106
 
        self.treeview_left = self.toplevel.get_widget('treeview_left')
107
 
        self.treeview_right = self.toplevel.get_widget('treeview_right')
108
 
        # Get some important menu items
109
 
        self.menuitem_add_files = self.toplevel.get_widget('menuitem_add_files')
110
 
        self.menuitem_remove_files = self.toplevel.get_widget('menuitem_remove_file')
111
 
        self.menuitem_file_bookmark = self.toplevel.get_widget('menuitem_file_bookmark')
112
 
        self.menuitem_file_make_directory = self.toplevel.get_widget('menuitem_file_make_directory')
113
 
        self.menuitem_file_rename = self.toplevel.get_widget('menuitem_file_rename')
114
 
        self.menuitem_file_move = self.toplevel.get_widget('menuitem_file_move')
115
 
        self.menuitem_file_annotate = self.toplevel.get_widget('menuitem_file_annotate')
116
 
        self.menuitem_view_show_hidden_files = self.toplevel.get_widget('menuitem_view_show_hidden_files')
117
 
        self.menuitem_view_show_ignored_files = self.toplevel.get_widget('menuitem_view_show_ignored_files')
118
 
        self.menuitem_branch = self.toplevel.get_widget('menuitem_branch')
119
 
        self.menuitem_branch_init = self.toplevel.get_widget('menuitem_branch_initialize')
120
 
        self.menuitem_branch_get = self.toplevel.get_widget('menuitem_branch_get')
121
 
        self.menuitem_branch_checkout = self.toplevel.get_widget('menuitem_branch_checkout')
122
 
        self.menuitem_branch_pull = self.toplevel.get_widget('menuitem_branch_pull')
123
 
        self.menuitem_branch_push = self.toplevel.get_widget('menuitem_branch_push')
124
 
        self.menuitem_branch_update = self.toplevel.get_widget('menuitem_branch_update')
125
 
        self.menuitem_branch_revert = self.toplevel.get_widget('menuitem_branch_revert')
126
 
        self.menuitem_branch_merge = self.toplevel.get_widget('menuitem_branch_merge')
127
 
        self.menuitem_branch_commit = self.toplevel.get_widget('menuitem_branch_commit')
128
 
        self.menuitem_branch_tags = self.toplevel.get_widget('menuitem_branch_tags')
129
 
        self.menuitem_branch_status = self.toplevel.get_widget('menuitem_branch_status')
130
 
        self.menuitem_branch_missing = self.toplevel.get_widget('menuitem_branch_missing_revisions')
131
 
        self.menuitem_branch_conflicts = self.toplevel.get_widget('menuitem_branch_conflicts')
132
 
        self.menuitem_stats = self.toplevel.get_widget('menuitem_stats')
133
 
        self.menuitem_stats_diff = self.toplevel.get_widget('menuitem_stats_diff')
134
 
        self.menuitem_stats_log = self.toplevel.get_widget('menuitem_stats_log')
135
 
        # Get some toolbuttons
136
 
        #self.menutoolbutton_diff = self.toplevel.get_widget('menutoolbutton_diff')
137
 
        self.toolbutton_diff = self.toplevel.get_widget('toolbutton_diff')
138
 
        self.toolbutton_log = self.toplevel.get_widget('toolbutton_log')
139
 
        self.toolbutton_commit = self.toplevel.get_widget('toolbutton_commit')
140
 
        self.toolbutton_pull = self.toplevel.get_widget('toolbutton_pull')
141
 
        self.toolbutton_push = self.toplevel.get_widget('toolbutton_push')
142
 
        self.toolbutton_update = self.toplevel.get_widget('toolbutton_update')
 
97
        self.context_id = self.window.statusbar.get_context_id('olive')
 
98
        
 
99
                # Get the TreeViews
 
100
        self.treeview_left = self.window.treeview_left
 
101
        self.treeview_right = self.window.treeview_right
 
102
        
143
103
        # Get the drive selector
144
104
        self.combobox_drive = gtk.combo_box_new_text()
145
105
        self.combobox_drive.connect("changed", self._refresh_drives)
146
106
        
147
107
        # Get the navigation widgets
148
 
        self.hbox_location = self.toplevel.get_widget('hbox_location')
149
 
        self.button_location_up = self.toplevel.get_widget('button_location_up')
150
 
        self.button_location_jump = self.toplevel.get_widget('button_location_jump')
151
 
        self.entry_location = self.toplevel.get_widget('entry_location')
152
 
        self.image_location_error = self.toplevel.get_widget('image_location_error')
 
108
        self.hbox_location = self.window.locationbar
 
109
        self.button_location_up = self.window.button_location_up
 
110
        self.button_location_jump = self.window.button_location_jump
 
111
        self.entry_location = self.window.entry_location
 
112
        self.image_location_error = self.window.image_location_error
153
113
        
154
114
        # Get the History widgets
155
 
        self.check_history = self.toplevel.get_widget('checkbutton_history')
156
 
        self.entry_history = self.toplevel.get_widget('entry_history_revno')
157
 
        self.button_history = self.toplevel.get_widget('button_history_browse')
158
 
        
159
 
        self.vbox_main_right = self.toplevel.get_widget('vbox_main_right')
160
 
        
161
 
        # Dictionary for signal_autoconnect
162
 
        dic = { "on_window_main_destroy": gtk.main_quit,
163
 
                "on_window_main_delete_event": self.on_window_main_delete_event,
164
 
                "on_quit_activate": self.on_window_main_delete_event,
165
 
                "on_about_activate": self.on_about_activate,
166
 
                "on_menuitem_add_files_activate": self.on_menuitem_add_files_activate,
167
 
                "on_menuitem_remove_file_activate": self.on_menuitem_remove_file_activate,
168
 
                "on_menuitem_file_bookmark_activate": self.on_menuitem_file_bookmark_activate,
169
 
                "on_menuitem_file_make_directory_activate": self.on_menuitem_file_make_directory_activate,
170
 
                "on_menuitem_file_move_activate": self.on_menuitem_file_move_activate,
171
 
                "on_menuitem_file_rename_activate": self.on_menuitem_file_rename_activate,
172
 
                "on_menuitem_file_annotate_activate": self.on_menuitem_file_annotate_activate,
173
 
                "on_menuitem_view_show_hidden_files_activate": self.on_menuitem_view_show_hidden_files_activate,
174
 
                "on_menuitem_view_show_ignored_files_activate": self.on_menuitem_view_show_ignored_files_activate,
175
 
                "on_menuitem_view_refresh_activate": self.on_menuitem_view_refresh_activate,
176
 
                "on_menuitem_branch_initialize_activate": self.on_menuitem_branch_initialize_activate,
177
 
                "on_menuitem_branch_get_activate": self.on_menuitem_branch_get_activate,
178
 
                "on_menuitem_branch_checkout_activate": self.on_menuitem_branch_checkout_activate,
179
 
                "on_menuitem_branch_revert_activate": self.on_menuitem_branch_revert_activate,
180
 
                "on_menuitem_branch_merge_activate": self.on_menuitem_branch_merge_activate,
181
 
                "on_menuitem_branch_commit_activate": self.on_menuitem_branch_commit_activate,
182
 
                "on_menuitem_branch_push_activate": self.on_menuitem_branch_push_activate,
183
 
                "on_menuitem_branch_pull_activate": self.on_menuitem_branch_pull_activate,
184
 
                "on_menuitem_branch_update_activate": self.on_menuitem_branch_update_activate,                
185
 
                "on_menuitem_branch_tags_activate": self.on_menuitem_branch_tags_activate,
186
 
                "on_menuitem_branch_status_activate": self.on_menuitem_branch_status_activate,
187
 
                "on_menuitem_branch_missing_revisions_activate": self.on_menuitem_branch_missing_revisions_activate,
188
 
                "on_menuitem_branch_conflicts_activate": self.on_menuitem_branch_conflicts_activate,
189
 
                "on_menuitem_stats_diff_activate": self.on_menuitem_stats_diff_activate,
190
 
                "on_menuitem_stats_log_activate": self.on_menuitem_stats_log_activate,
191
 
                "on_menuitem_stats_infos_activate": self.on_menuitem_stats_infos_activate,
192
 
                "on_toolbutton_refresh_clicked": self.on_menuitem_view_refresh_activate,
193
 
                "on_toolbutton_log_clicked": self.on_menuitem_stats_log_activate,
194
 
                #"on_menutoolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
195
 
                "on_toolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
196
 
                "on_toolbutton_commit_clicked": self.on_menuitem_branch_commit_activate,
197
 
                "on_toolbutton_pull_clicked": self.on_menuitem_branch_pull_activate,
198
 
                "on_toolbutton_push_clicked": self.on_menuitem_branch_push_activate,
199
 
                "on_toolbutton_update_clicked": self.on_menuitem_branch_update_activate,
200
 
                "on_treeview_right_button_press_event": self.on_treeview_right_button_press_event,
201
 
                "on_treeview_right_row_activated": self.on_treeview_right_row_activated,
202
 
                "on_treeview_left_button_press_event": self.on_treeview_left_button_press_event,
203
 
                "on_treeview_left_button_release_event": self.on_treeview_left_button_release_event,
204
 
                "on_treeview_left_row_activated": self.on_treeview_left_row_activated,
205
 
                "on_button_location_up_clicked": self.on_button_location_up_clicked,
206
 
                "on_button_location_jump_clicked": self.on_button_location_jump_clicked,
207
 
                "on_entry_location_key_press_event": self.on_entry_location_key_press_event,
208
 
                "on_checkbutton_history_toggled": self.on_checkbutton_history_toggled,
209
 
                "on_entry_history_revno_key_press_event": self.on_entry_history_revno_key_press_event,
210
 
                "on_button_history_browse_clicked": self.on_button_history_browse_clicked
211
 
            }
212
 
        
213
 
        # Connect the signals to the handlers
214
 
        self.toplevel.signal_autoconnect(dic)
 
115
        self.check_history = self.window.checkbutton_history
 
116
        self.entry_history = self.window.entry_history_revno
 
117
        self.button_history = self.window.button_history_browse
215
118
        
216
119
        self._just_started = True
217
120
        
224
127
        self.window.move(x, y)
225
128
        # Apply paned position
226
129
        pos = self.pref.get_preference('paned_position', 'int')
227
 
        self.hpaned_main.set_position(pos)
228
 
        
229
 
        # Apply menu to the toolbutton
230
 
        #menubutton = self.toplevel.get_widget('menutoolbutton_diff')
231
 
        #menubutton.set_menu(handler.menu.toolbar_diff)
 
130
        self.window.hpaned_main.set_position(pos)
232
131
        
233
132
        # Now we can show the window
234
133
        self.window.show()
246
145
        self._load_left()
247
146
 
248
147
        # Apply menu state
249
 
        self.menuitem_view_show_hidden_files.set_active(self.pref.get_preference('dotted_files', 'bool'))
250
 
        self.menuitem_view_show_ignored_files.set_active(self.pref.get_preference('ignored_files', 'bool'))
 
148
        self.window.mb_view_showhidden.set_active(self.pref.get_preference('dotted_files', 'bool'))
 
149
        self.window.mb_view_showignored.set_active(self.pref.get_preference('ignored_files', 'bool'))
251
150
 
252
151
        # We're starting local
253
152
        self.remote = False
380
279
        else:
381
280
            self.check_history.set_sensitive(True)
382
281
        
383
 
        self.statusbar.push(self.context_id, path)
 
282
        self.window.statusbar.push(self.context_id, path)
384
283
        self.entry_location.set_text(path)
385
284
        self.path = path
386
285
        return True
519
418
    @show_bzr_error
520
419
    def on_menuitem_branch_commit_activate(self, widget):
521
420
        """ Branch/Commit... menu handler. """
522
 
#     def __init__(self, wt, wtpath, notbranch, selected=None, parent=None):
523
421
        selected = self.get_selected_right()
524
422
        if selected:
525
423
            selected = os.path.join(self.wtpath, selected)
943
841
    
944
842
    def on_window_main_delete_event(self, widget, event=None):
945
843
        """ Do some stuff before exiting. """
946
 
        width, height = self.window_main.get_size()
 
844
        width, height = self.window.get_size()
947
845
        self.pref.set_preference('window_width', width)
948
846
        self.pref.set_preference('window_height', height)
949
 
        x, y = self.window_main.get_position()
 
847
        x, y = self.window.get_position()
950
848
        self.pref.set_preference('window_x', x)
951
849
        self.pref.set_preference('window_y', y)
952
850
        self.pref.set_preference('paned_position',
953
 
                                 self.hpaned_main.get_position())
 
851
                                 self.window.hpaned_main.get_position())
954
852
        
955
853
        self.pref.write()
956
 
        self.window_main.destroy()
 
854
        self.window.destroy()
957
855
        
958
856
    def _load_left(self):
959
857
        """ Load data into the left panel. (Bookmarks) """
1182
1080
 
1183
1081
    def set_statusbar(self, message):
1184
1082
        """ Set the statusbar message. """
1185
 
        self.statusbar.push(self.context_id, message)
 
1083
        self.window.statusbar.push(self.context_id, message)
1186
1084
    
1187
1085
    def clear_statusbar(self):
1188
1086
        """ Clean the last message from the statusbar. """
1189
 
        self.statusbar.pop(self.context_id)
 
1087
        self.window.statusbar.pop(self.context_id)
1190
1088
    
1191
1089
    def set_sensitivity(self):
1192
1090
        """ Set menu and toolbar sensitivity. """
1193
1091
        if not self.remote:
1194
 
            # We're local
1195
 
            self.menuitem_branch_init.set_sensitive(self.notbranch)
1196
 
            self.menuitem_branch_get.set_sensitive(self.notbranch)
1197
 
            self.menuitem_branch_checkout.set_sensitive(self.notbranch)
1198
 
            self.menuitem_branch_pull.set_sensitive(not self.notbranch)
1199
 
            self.menuitem_branch_push.set_sensitive(not self.notbranch)
1200
 
            self.menuitem_branch_update.set_sensitive(not self.notbranch)
1201
 
            self.menuitem_branch_revert.set_sensitive(not self.notbranch)
1202
 
            self.menuitem_branch_merge.set_sensitive(not self.notbranch)
1203
 
            self.menuitem_branch_commit.set_sensitive(not self.notbranch)
1204
 
            self.menuitem_branch_tags.set_sensitive(not self.notbranch)
1205
 
            self.menuitem_branch_status.set_sensitive(not self.notbranch)
1206
 
            self.menuitem_branch_missing.set_sensitive(not self.notbranch)
1207
 
            self.menuitem_branch_conflicts.set_sensitive(not self.notbranch)
1208
 
            self.menuitem_stats.set_sensitive(not self.notbranch)
1209
 
            self.menuitem_stats_diff.set_sensitive(not self.notbranch)
1210
 
            self.menuitem_add_files.set_sensitive(not self.notbranch)
1211
 
            self.menuitem_remove_files.set_sensitive(not self.notbranch)
1212
 
            self.menuitem_file_make_directory.set_sensitive(not self.notbranch)
1213
 
            self.menuitem_file_rename.set_sensitive(not self.notbranch)
1214
 
            self.menuitem_file_move.set_sensitive(not self.notbranch)
1215
 
            self.menuitem_file_annotate.set_sensitive(not self.notbranch)
1216
 
            #self.menutoolbutton_diff.set_sensitive(True)
1217
 
            self.toolbutton_diff.set_sensitive(not self.notbranch)
1218
 
            self.toolbutton_log.set_sensitive(not self.notbranch)
1219
 
            self.toolbutton_commit.set_sensitive(not self.notbranch)
1220
 
            self.toolbutton_pull.set_sensitive(not self.notbranch)
1221
 
            self.toolbutton_push.set_sensitive(not self.notbranch)
1222
 
            self.toolbutton_update.set_sensitive(not self.notbranch)
 
1092
            self.window.set_view_to_localbranch(self.notbranch)
1223
1093
        else:
1224
 
            # We're remote
1225
 
            self.menuitem_branch_init.set_sensitive(False)
1226
 
            self.menuitem_branch_get.set_sensitive(True)
1227
 
            self.menuitem_branch_checkout.set_sensitive(True)
1228
 
            self.menuitem_branch_pull.set_sensitive(False)
1229
 
            self.menuitem_branch_push.set_sensitive(False)
1230
 
            self.menuitem_branch_update.set_sensitive(False)
1231
 
            self.menuitem_branch_revert.set_sensitive(False)
1232
 
            self.menuitem_branch_merge.set_sensitive(False)
1233
 
            self.menuitem_branch_commit.set_sensitive(False)
1234
 
            self.menuitem_branch_tags.set_sensitive(True)
1235
 
            self.menuitem_branch_status.set_sensitive(False)
1236
 
            self.menuitem_branch_missing.set_sensitive(False)
1237
 
            self.menuitem_branch_conflicts.set_sensitive(False)
1238
 
            self.menuitem_stats.set_sensitive(True)
1239
 
            self.menuitem_stats_diff.set_sensitive(False)
1240
 
            self.menuitem_add_files.set_sensitive(False)
1241
 
            self.menuitem_remove_files.set_sensitive(False)
1242
 
            self.menuitem_file_make_directory.set_sensitive(False)
1243
 
            self.menuitem_file_rename.set_sensitive(False)
1244
 
            self.menuitem_file_move.set_sensitive(False)
1245
 
            self.menuitem_file_annotate.set_sensitive(False)
1246
 
            #self.menutoolbutton_diff.set_sensitive(True)
1247
 
            self.toolbutton_diff.set_sensitive(False)
1248
 
            self.toolbutton_log.set_sensitive(True)
1249
 
            self.toolbutton_commit.set_sensitive(False)
1250
 
            self.toolbutton_pull.set_sensitive(False)
1251
 
            self.toolbutton_push.set_sensitive(False)
1252
 
            self.toolbutton_update.set_sensitive(False)
 
1094
            self.window.set_view_to_remotebranch()
1253
1095
    
1254
1096
    def refresh_left(self):
1255
1097
        """ Refresh the bookmark list. """