/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-18 09:10:11 UTC
  • mto: This revision was merged to the branch mainline in revision 558.
  • Revision ID: colbrac@xs4all.nl-20080718091011-ygqfuatwjcmwmvmx
Replace glade window_main with OliveGui

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
from bzrlib.plugins.gtk.dialog import error_dialog, info_dialog, warning_dialog
46
46
from bzrlib.plugins.gtk.errors import show_bzr_error
47
47
from guifiles import GLADEFILENAME
 
48
from bzrlib.plugins.gtk.olive.window import OliveGui
48
49
 
49
50
from bzrlib.plugins.gtk.diff import DiffWindow
50
51
lazy_import(globals(), """
87
88
    program. """
88
89
    
89
90
    def __init__(self):
90
 
        self.toplevel = gtk.glade.XML(GLADEFILENAME, 'window_main', 'olive-gtk')
91
 
        self.window = self.toplevel.get_widget('window_main')
 
91
        self.window = OliveGui(calling_app = self)
 
92
        
92
93
        self.pref = Preferences()
93
94
        self.path = None
94
95
 
95
96
        # Initialize the statusbar
96
 
        self.statusbar = self.toplevel.get_widget('statusbar')
97
 
        self.context_id = self.statusbar.get_context_id('olive')
98
 
        
99
 
        # Get the main window
100
 
        self.window_main = self.toplevel.get_widget('window_main')
101
 
        # Get the HPaned
102
 
        self.hpaned_main = self.toplevel.get_widget('hpaned_main')
103
 
        # Get the TreeViews
104
 
        self.treeview_left = self.toplevel.get_widget('treeview_left')
105
 
        self.treeview_right = self.toplevel.get_widget('treeview_right')
106
 
        # Get some important menu items
107
 
        self.menuitem_add_files = self.toplevel.get_widget('menuitem_add_files')
108
 
        self.menuitem_remove_files = self.toplevel.get_widget('menuitem_remove_file')
109
 
        self.menuitem_file_bookmark = self.toplevel.get_widget('menuitem_file_bookmark')
110
 
        self.menuitem_file_make_directory = self.toplevel.get_widget('menuitem_file_make_directory')
111
 
        self.menuitem_file_rename = self.toplevel.get_widget('menuitem_file_rename')
112
 
        self.menuitem_file_move = self.toplevel.get_widget('menuitem_file_move')
113
 
        self.menuitem_file_annotate = self.toplevel.get_widget('menuitem_file_annotate')
114
 
        self.menuitem_view_show_hidden_files = self.toplevel.get_widget('menuitem_view_show_hidden_files')
115
 
        self.menuitem_view_show_ignored_files = self.toplevel.get_widget('menuitem_view_show_ignored_files')
116
 
        self.menuitem_branch = self.toplevel.get_widget('menuitem_branch')
117
 
        self.menuitem_branch_init = self.toplevel.get_widget('menuitem_branch_initialize')
118
 
        self.menuitem_branch_get = self.toplevel.get_widget('menuitem_branch_get')
119
 
        self.menuitem_branch_checkout = self.toplevel.get_widget('menuitem_branch_checkout')
120
 
        self.menuitem_branch_pull = self.toplevel.get_widget('menuitem_branch_pull')
121
 
        self.menuitem_branch_push = self.toplevel.get_widget('menuitem_branch_push')
122
 
        self.menuitem_branch_update = self.toplevel.get_widget('menuitem_branch_update')
123
 
        self.menuitem_branch_revert = self.toplevel.get_widget('menuitem_branch_revert')
124
 
        self.menuitem_branch_merge = self.toplevel.get_widget('menuitem_branch_merge')
125
 
        self.menuitem_branch_commit = self.toplevel.get_widget('menuitem_branch_commit')
126
 
        self.menuitem_branch_tags = self.toplevel.get_widget('menuitem_branch_tags')
127
 
        self.menuitem_branch_status = self.toplevel.get_widget('menuitem_branch_status')
128
 
        self.menuitem_branch_missing = self.toplevel.get_widget('menuitem_branch_missing_revisions')
129
 
        self.menuitem_branch_conflicts = self.toplevel.get_widget('menuitem_branch_conflicts')
130
 
        self.menuitem_stats = self.toplevel.get_widget('menuitem_stats')
131
 
        self.menuitem_stats_diff = self.toplevel.get_widget('menuitem_stats_diff')
132
 
        self.menuitem_stats_log = self.toplevel.get_widget('menuitem_stats_log')
133
 
        # Get some toolbuttons
134
 
        #self.menutoolbutton_diff = self.toplevel.get_widget('menutoolbutton_diff')
135
 
        self.toolbutton_diff = self.toplevel.get_widget('toolbutton_diff')
136
 
        self.toolbutton_log = self.toplevel.get_widget('toolbutton_log')
137
 
        self.toolbutton_commit = self.toplevel.get_widget('toolbutton_commit')
138
 
        self.toolbutton_pull = self.toplevel.get_widget('toolbutton_pull')
139
 
        self.toolbutton_push = self.toplevel.get_widget('toolbutton_push')
140
 
        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
        
141
103
        # Get the drive selector
142
104
        self.combobox_drive = gtk.combo_box_new_text()
143
105
        self.combobox_drive.connect("changed", self._refresh_drives)
144
106
        
145
107
        # Get the navigation widgets
146
 
        self.hbox_location = self.toplevel.get_widget('hbox_location')
147
 
        self.button_location_up = self.toplevel.get_widget('button_location_up')
148
 
        self.button_location_jump = self.toplevel.get_widget('button_location_jump')
149
 
        self.entry_location = self.toplevel.get_widget('entry_location')
150
 
        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
151
113
        
152
114
        # Get the History widgets
153
 
        self.check_history = self.toplevel.get_widget('checkbutton_history')
154
 
        self.entry_history = self.toplevel.get_widget('entry_history_revno')
155
 
        self.button_history = self.toplevel.get_widget('button_history_browse')
156
 
        
157
 
        self.vbox_main_right = self.toplevel.get_widget('vbox_main_right')
158
 
        
159
 
        # Dictionary for signal_autoconnect
160
 
        dic = { "on_window_main_destroy": gtk.main_quit,
161
 
                "on_window_main_delete_event": self.on_window_main_delete_event,
162
 
                "on_quit_activate": self.on_window_main_delete_event,
163
 
                "on_about_activate": self.on_about_activate,
164
 
                "on_menuitem_add_files_activate": self.on_menuitem_add_files_activate,
165
 
                "on_menuitem_remove_file_activate": self.on_menuitem_remove_file_activate,
166
 
                "on_menuitem_file_bookmark_activate": self.on_menuitem_file_bookmark_activate,
167
 
                "on_menuitem_file_make_directory_activate": self.on_menuitem_file_make_directory_activate,
168
 
                "on_menuitem_file_move_activate": self.on_menuitem_file_move_activate,
169
 
                "on_menuitem_file_rename_activate": self.on_menuitem_file_rename_activate,
170
 
                "on_menuitem_file_annotate_activate": self.on_menuitem_file_annotate_activate,
171
 
                "on_menuitem_view_show_hidden_files_activate": self.on_menuitem_view_show_hidden_files_activate,
172
 
                "on_menuitem_view_show_ignored_files_activate": self.on_menuitem_view_show_ignored_files_activate,
173
 
                "on_menuitem_view_refresh_activate": self.on_menuitem_view_refresh_activate,
174
 
                "on_menuitem_branch_initialize_activate": self.on_menuitem_branch_initialize_activate,
175
 
                "on_menuitem_branch_get_activate": self.on_menuitem_branch_get_activate,
176
 
                "on_menuitem_branch_checkout_activate": self.on_menuitem_branch_checkout_activate,
177
 
                "on_menuitem_branch_revert_activate": self.on_menuitem_branch_revert_activate,
178
 
                "on_menuitem_branch_merge_activate": self.on_menuitem_branch_merge_activate,
179
 
                "on_menuitem_branch_commit_activate": self.on_menuitem_branch_commit_activate,
180
 
                "on_menuitem_branch_push_activate": self.on_menuitem_branch_push_activate,
181
 
                "on_menuitem_branch_pull_activate": self.on_menuitem_branch_pull_activate,
182
 
                "on_menuitem_branch_update_activate": self.on_menuitem_branch_update_activate,                
183
 
                "on_menuitem_branch_tags_activate": self.on_menuitem_branch_tags_activate,
184
 
                "on_menuitem_branch_status_activate": self.on_menuitem_branch_status_activate,
185
 
                "on_menuitem_branch_missing_revisions_activate": self.on_menuitem_branch_missing_revisions_activate,
186
 
                "on_menuitem_branch_conflicts_activate": self.on_menuitem_branch_conflicts_activate,
187
 
                "on_menuitem_stats_diff_activate": self.on_menuitem_stats_diff_activate,
188
 
                "on_menuitem_stats_log_activate": self.on_menuitem_stats_log_activate,
189
 
                "on_menuitem_stats_infos_activate": self.on_menuitem_stats_infos_activate,
190
 
                "on_toolbutton_refresh_clicked": self.on_menuitem_view_refresh_activate,
191
 
                "on_toolbutton_log_clicked": self.on_menuitem_stats_log_activate,
192
 
                #"on_menutoolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
193
 
                "on_toolbutton_diff_clicked": self.on_menuitem_stats_diff_activate,
194
 
                "on_toolbutton_commit_clicked": self.on_menuitem_branch_commit_activate,
195
 
                "on_toolbutton_pull_clicked": self.on_menuitem_branch_pull_activate,
196
 
                "on_toolbutton_push_clicked": self.on_menuitem_branch_push_activate,
197
 
                "on_toolbutton_update_clicked": self.on_menuitem_branch_update_activate,
198
 
                "on_treeview_right_button_press_event": self.on_treeview_right_button_press_event,
199
 
                "on_treeview_right_row_activated": self.on_treeview_right_row_activated,
200
 
                "on_treeview_left_button_press_event": self.on_treeview_left_button_press_event,
201
 
                "on_treeview_left_button_release_event": self.on_treeview_left_button_release_event,
202
 
                "on_treeview_left_row_activated": self.on_treeview_left_row_activated,
203
 
                "on_button_location_up_clicked": self.on_button_location_up_clicked,
204
 
                "on_button_location_jump_clicked": self.on_button_location_jump_clicked,
205
 
                "on_entry_location_key_press_event": self.on_entry_location_key_press_event,
206
 
                "on_checkbutton_history_toggled": self.on_checkbutton_history_toggled,
207
 
                "on_entry_history_revno_key_press_event": self.on_entry_history_revno_key_press_event,
208
 
                "on_button_history_browse_clicked": self.on_button_history_browse_clicked
209
 
            }
210
 
        
211
 
        # Connect the signals to the handlers
212
 
        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
213
118
        
214
119
        self._just_started = True
215
120
        
222
127
        self.window.move(x, y)
223
128
        # Apply paned position
224
129
        pos = self.pref.get_preference('paned_position', 'int')
225
 
        self.hpaned_main.set_position(pos)
226
 
        
227
 
        # Apply menu to the toolbutton
228
 
        #menubutton = self.toplevel.get_widget('menutoolbutton_diff')
229
 
        #menubutton.set_menu(handler.menu.toolbar_diff)
 
130
        self.window.hpaned_main.set_position(pos)
230
131
        
231
132
        # Now we can show the window
232
133
        self.window.show()
241
142
        self._load_left()
242
143
 
243
144
        # Apply menu state
244
 
        self.menuitem_view_show_hidden_files.set_active(self.pref.get_preference('dotted_files', 'bool'))
245
 
        self.menuitem_view_show_ignored_files.set_active(self.pref.get_preference('ignored_files', 'bool'))
 
145
        self.window.mb_view_showhidden.set_active(self.pref.get_preference('dotted_files', 'bool'))
 
146
        self.window.mb_view_showignored.set_active(self.pref.get_preference('ignored_files', 'bool'))
246
147
 
247
148
        # We're starting local
248
149
        self.remote = False
375
276
        else:
376
277
            self.check_history.set_sensitive(True)
377
278
        
378
 
        self.statusbar.push(self.context_id, path)
 
279
        self.window.statusbar.push(self.context_id, path)
379
280
        self.entry_location.set_text(path)
380
281
        self.path = path
381
282
        return True
511
412
    @show_bzr_error
512
413
    def on_menuitem_branch_commit_activate(self, widget):
513
414
        """ Branch/Commit... menu handler. """
514
 
#     def __init__(self, wt, wtpath, notbranch, selected=None, parent=None):
515
415
        selected = self.get_selected_right()
516
416
        if selected:
517
417
            selected = os.path.join(self.wtpath, selected)
923
823
    
924
824
    def on_window_main_delete_event(self, widget, event=None):
925
825
        """ Do some stuff before exiting. """
926
 
        width, height = self.window_main.get_size()
 
826
        width, height = self.window.get_size()
927
827
        self.pref.set_preference('window_width', width)
928
828
        self.pref.set_preference('window_height', height)
929
 
        x, y = self.window_main.get_position()
 
829
        x, y = self.window.get_position()
930
830
        self.pref.set_preference('window_x', x)
931
831
        self.pref.set_preference('window_y', y)
932
832
        self.pref.set_preference('paned_position',
933
 
                                 self.hpaned_main.get_position())
 
833
                                 self.window.hpaned_main.get_position())
934
834
        
935
835
        self.pref.write()
936
 
        self.window_main.destroy()
 
836
        self.window.destroy()
937
837
        
938
838
    def _load_left(self):
939
839
        """ Load data into the left panel. (Bookmarks) """
1159
1059
 
1160
1060
    def set_statusbar(self, message):
1161
1061
        """ Set the statusbar message. """
1162
 
        self.statusbar.push(self.context_id, message)
 
1062
        self.window.statusbar.push(self.context_id, message)
1163
1063
    
1164
1064
    def clear_statusbar(self):
1165
1065
        """ Clean the last message from the statusbar. """
1166
 
        self.statusbar.pop(self.context_id)
 
1066
        self.window.statusbar.pop(self.context_id)
1167
1067
    
1168
1068
    def set_sensitivity(self):
1169
1069
        """ Set menu and toolbar sensitivity. """
1170
1070
        if not self.remote:
1171
 
            # We're local
1172
 
            self.menuitem_branch_init.set_sensitive(self.notbranch)
1173
 
            self.menuitem_branch_get.set_sensitive(self.notbranch)
1174
 
            self.menuitem_branch_checkout.set_sensitive(self.notbranch)
1175
 
            self.menuitem_branch_pull.set_sensitive(not self.notbranch)
1176
 
            self.menuitem_branch_push.set_sensitive(not self.notbranch)
1177
 
            self.menuitem_branch_update.set_sensitive(not self.notbranch)
1178
 
            self.menuitem_branch_revert.set_sensitive(not self.notbranch)
1179
 
            self.menuitem_branch_merge.set_sensitive(not self.notbranch)
1180
 
            self.menuitem_branch_commit.set_sensitive(not self.notbranch)
1181
 
            self.menuitem_branch_tags.set_sensitive(not self.notbranch)
1182
 
            self.menuitem_branch_status.set_sensitive(not self.notbranch)
1183
 
            self.menuitem_branch_missing.set_sensitive(not self.notbranch)
1184
 
            self.menuitem_branch_conflicts.set_sensitive(not self.notbranch)
1185
 
            self.menuitem_stats.set_sensitive(not self.notbranch)
1186
 
            self.menuitem_stats_diff.set_sensitive(not self.notbranch)
1187
 
            self.menuitem_add_files.set_sensitive(not self.notbranch)
1188
 
            self.menuitem_remove_files.set_sensitive(not self.notbranch)
1189
 
            self.menuitem_file_make_directory.set_sensitive(not self.notbranch)
1190
 
            self.menuitem_file_rename.set_sensitive(not self.notbranch)
1191
 
            self.menuitem_file_move.set_sensitive(not self.notbranch)
1192
 
            self.menuitem_file_annotate.set_sensitive(not self.notbranch)
1193
 
            #self.menutoolbutton_diff.set_sensitive(True)
1194
 
            self.toolbutton_diff.set_sensitive(not self.notbranch)
1195
 
            self.toolbutton_log.set_sensitive(not self.notbranch)
1196
 
            self.toolbutton_commit.set_sensitive(not self.notbranch)
1197
 
            self.toolbutton_pull.set_sensitive(not self.notbranch)
1198
 
            self.toolbutton_push.set_sensitive(not self.notbranch)
1199
 
            self.toolbutton_update.set_sensitive(not self.notbranch)
 
1071
            self.window.set_view_to_localbranch(self.notbranch)
1200
1072
        else:
1201
 
            # We're remote
1202
 
            self.menuitem_branch_init.set_sensitive(False)
1203
 
            self.menuitem_branch_get.set_sensitive(True)
1204
 
            self.menuitem_branch_checkout.set_sensitive(True)
1205
 
            self.menuitem_branch_pull.set_sensitive(False)
1206
 
            self.menuitem_branch_push.set_sensitive(False)
1207
 
            self.menuitem_branch_update.set_sensitive(False)
1208
 
            self.menuitem_branch_revert.set_sensitive(False)
1209
 
            self.menuitem_branch_merge.set_sensitive(False)
1210
 
            self.menuitem_branch_commit.set_sensitive(False)
1211
 
            self.menuitem_branch_tags.set_sensitive(True)
1212
 
            self.menuitem_branch_status.set_sensitive(False)
1213
 
            self.menuitem_branch_missing.set_sensitive(False)
1214
 
            self.menuitem_branch_conflicts.set_sensitive(False)
1215
 
            self.menuitem_stats.set_sensitive(True)
1216
 
            self.menuitem_stats_diff.set_sensitive(False)
1217
 
            self.menuitem_add_files.set_sensitive(False)
1218
 
            self.menuitem_remove_files.set_sensitive(False)
1219
 
            self.menuitem_file_make_directory.set_sensitive(False)
1220
 
            self.menuitem_file_rename.set_sensitive(False)
1221
 
            self.menuitem_file_move.set_sensitive(False)
1222
 
            self.menuitem_file_annotate.set_sensitive(False)
1223
 
            #self.menutoolbutton_diff.set_sensitive(True)
1224
 
            self.toolbutton_diff.set_sensitive(False)
1225
 
            self.toolbutton_log.set_sensitive(True)
1226
 
            self.toolbutton_commit.set_sensitive(False)
1227
 
            self.toolbutton_pull.set_sensitive(False)
1228
 
            self.toolbutton_push.set_sensitive(False)
1229
 
            self.toolbutton_update.set_sensitive(False)
 
1073
            self.window.set_view_to_remotebranch()
1230
1074
    
1231
1075
    def refresh_left(self):
1232
1076
        """ Refresh the bookmark list. """
1729
1573
                return self._get_default(option)
1730
1574
            except KeyError:
1731
1575
                return None
1732