/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/frontend/gtk/menu.py

  • Committer: Szilveszter Farkas (Phanatic)
  • Date: 2006-08-09 17:43:44 UTC
  • mto: (0.14.1 main) (93.1.1 win32.bialix)
  • mto: This revision was merged to the branch mainline in revision 83.
  • Revision ID: Szilveszter.Farkas@gmail.com-20060809174344-61ca8dac23ebe7cb
Main window preferences (size, position) are stored.

2006-08-09  Szilveszter Farkas <Szilveszter.Farkas@gmail.com>

    * olive/frontend/gtk/__init__.py: simplified preference handling
    * olive/frontend/gtk/handler.py: window preferences are stored on quit

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2006 by Szilveszter Farkas (Phanatic) <szilveszter.farkas@gmail.com>
2
 
#
 
2
 
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
#
 
7
 
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
12
 
#
 
12
 
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
31
31
import olive.backend.fileops as fileops
32
32
import olive.backend.errors as errors
33
33
 
 
34
from commit import OliveCommit
 
35
from diff import OliveDiff
 
36
 
34
37
class OliveMenu:
35
38
    """ This class is responsible for building the context menus. """
36
39
    def __init__(self, gladefile, comm, dialog):
37
40
        # Load the UI file
38
 
        if sys.platform == 'win32':
39
 
            self.uifile = os.path.dirname(sys.executable) + "/share/olive/cmenu.ui"
40
 
        else:
41
 
            self.uifile = "/usr/share/olive/cmenu.ui"
42
 
        
 
41
        self.uifile = "/usr/share/olive/cmenu.ui"
43
42
        if not os.path.exists(self.uifile):
44
43
            # Load from current directory if not installed
45
44
            self.uifile = "cmenu.ui"
46
 
            # Check again
47
 
            if not os.path.exists(self.uifile):
48
 
                # Fail
49
 
                print _('UI description file cannot be found.')
50
 
                sys.exit(1)
51
45
        
52
46
        self.gladefile = gladefile
53
47
        self.comm = comm
58
52
        
59
53
        self.actiongroup = gtk.ActionGroup('context')
60
54
        self.actiongroup.add_actions([('add', gtk.STOCK_ADD,
61
 
                                       _('Add'), None,
62
 
                                       _('Add the selected file'),
 
55
                                       'Add', None,
 
56
                                       'Add the selected file',
63
57
                                       self.add_file),
64
58
                                      ('remove', gtk.STOCK_REMOVE,
65
 
                                       _('Remove'), None,
66
 
                                       _('Remove the selected file'),
 
59
                                       'Remove', None,
 
60
                                       'Remove the selected file',
67
61
                                       self.remove_file),
68
 
                                      ('commit', None,
69
 
                                       _('Commit'), None,
70
 
                                       _('Commit the changes'),
 
62
                                      ('commit', gtk.STOCK_REDO,
 
63
                                       'Commit', None,
 
64
                                       'Commit the changes',
71
65
                                       self.commit),
72
66
                                      ('diff', None,
73
 
                                       _('Diff'), None,
74
 
                                       _('Show the diff of the file'),
 
67
                                       'Diff', None,
 
68
                                       'Show the diff of the file',
75
69
                                       self.diff),
 
70
                                      ('log', None,
 
71
                                       'Log', None,
 
72
                                       'Show the log of the file',
 
73
                                       self.log),
76
74
                                      ('bookmark', None,
77
 
                                       _('Bookmark'), None,
78
 
                                       _('Bookmark current location'),
 
75
                                       'Bookmark', None,
 
76
                                       'Bookmark current location',
79
77
                                       self.bookmark),
80
78
                                      ('remove_bookmark', gtk.STOCK_REMOVE,
81
 
                                       _('Remove'), None,
82
 
                                       _('Remove the selected bookmark'),
83
 
                                       self.remove_bookmark),
84
 
                                      ('diff_selected', None,
85
 
                                       _('Selected...'), None,
86
 
                                       _('Show the differences of the selected file'),
87
 
                                       self.diff_selected),
88
 
                                      ('diff_all', None,
89
 
                                       _('All...'), None,
90
 
                                       _('Show the differences of all files'),
91
 
                                       self.diff_all)
 
79
                                       'Remove', None,
 
80
                                       'Remove the selected bookmark',
 
81
                                       self.remove_bookmark)
92
82
                                     ])
93
83
        
94
84
        self.ui.insert_action_group(self.actiongroup, 0)
95
85
        self.ui.add_ui_from_file(self.uifile)
96
86
        
97
87
        self.cmenu_right = self.ui.get_widget('/context_right')
 
88
        
98
89
        self.cmenu_left = self.ui.get_widget('/context_left')
99
 
        self.toolbar_diff = self.ui.get_widget('/toolbar_diff')
100
 
        
101
 
        # Set icons
102
 
        commit_menu = self.ui.get_widget('/context_right/commit')
103
 
        commit_image = self.comm.menuitem_branch_commit.get_image()
104
 
        commit_pixbuf = commit_image.get_pixbuf()
105
 
        commit_icon = gtk.Image()
106
 
        commit_icon.set_from_pixbuf(commit_pixbuf)
107
 
        commit_menu.set_image(commit_icon)
108
 
        diff_menu = self.ui.get_widget('/context_right/diff')
109
 
        diff_image = self.comm.menuitem_stats_diff.get_image()
110
 
        diff_pixbuf = diff_image.get_pixbuf()
111
 
        diff_icon = gtk.Image()
112
 
        diff_icon.set_from_pixbuf(diff_pixbuf)
113
 
        diff_menu.set_image(diff_icon)
114
90
 
115
91
    def right_context_menu(self):
116
92
        return self.cmenu_right
125
101
        filename = self.comm.get_selected_right()
126
102
            
127
103
        if filename is None:
128
 
            self.dialog.error_dialog(_('No file was selected'),
129
 
                                     _('Please select a file from the list,\nor choose the other option.'))
 
104
            self.dialog.error_dialog('No file was selected.')
130
105
            return
131
106
        
132
107
        try:
133
108
            fileops.add([directory + '/' + filename])
134
109
        except errors.NotBranchError:
135
 
            self.dialog.error_dialog(_('Directory is not a branch'),
136
 
                                     _('You can perform this action only in a branch.'))
 
110
            self.dialog.error_dialog('The directory is not a branch.')
137
111
            return
138
112
        except:
139
113
            raise
147
121
        filename = self.comm.get_selected_right()
148
122
        
149
123
        if filename is None:
150
 
            self.dialog.error_dialog(_('No file was selected'),
151
 
                                     _('Please select a file from the list,\nor choose the other option.'))
 
124
            self.dialog.error_dialog('No file was selected.')
152
125
            return
153
126
        
154
127
        try:
155
128
            fileops.remove([directory + '/' + filename])
156
129
        except errors.NotBranchError:
157
 
            self.dialog.error_dialog(_('Directory is not a branch'),
158
 
                                     _('You can perform this action only in a branch.'))
 
130
            self.dialog.error_dialog('The directory is not a branch.')
159
131
            return
160
132
        except errors.NotVersionedError:
161
 
            self.dialog.error_dialog(_('File not versioned'),
162
 
                                     _('The selected file is not versioned.'))
 
133
            self.dialog.error_dialog('Selected file is not versioned.')
163
134
            return
164
135
        except:
165
136
            raise
168
139
 
169
140
    def commit(self, action):
170
141
        """ Right context menu -> Commit """
171
 
        from commit import OliveCommit
172
 
        commit = OliveCommit(self.gladefile, self.comm, self.dialog)
 
142
        commit = OliveCommit(self.gladefile, self.comm)
173
143
        commit.display()
174
144
    
175
145
    def diff(self, action):
176
146
        """ Right context menu -> Diff """
177
 
        from diff import OliveDiff
178
 
        diff = OliveDiff(self.gladefile, self.comm, self.dialog)
 
147
        diff = OliveDiff(self.gladefile, self.comm)
179
148
        diff.display()
180
149
    
 
150
    def log(self, action):
 
151
        """ Right context menu -> Log """
 
152
        self.dialog.error_dialog('This feature is not yet implemented.')
 
153
    
181
154
    def bookmark(self, action):
182
155
        """ Right context menu -> Bookmark """
183
156
        if self.comm.pref.add_bookmark(self.comm.get_path()):
184
 
            self.dialog.info_dialog(_('Bookmark successfully added'),
185
 
                                    _('The current directory was bookmarked. You can reach\nit by selecting it from the left panel.'))
 
157
            self.dialog.info_dialog('Bookmark successfully added.')
186
158
        else:
187
 
            self.dialog.warning_dialog(_('Location already bookmarked'),
188
 
                                       _('The current directory is already bookmarked.\nSee the left panel for reference.'))
 
159
            self.dialog.warning_dialog('Location already bookmarked.')
189
160
        
190
161
        self.comm.refresh_left()
191
162
 
194
165
        self.comm.pref.remove_bookmark(self.comm.get_selected_left())
195
166
        
196
167
        self.comm.refresh_left()
197
 
    
198
 
    def diff_selected(self, action):
199
 
        """ Diff toolbutton -> Selected... """
200
 
        print "DEBUG: not implemented."
201
 
    
202
 
    def diff_all(self, action):
203
 
        """ Diff toolbutton -> All... """
204
 
        from diff import OliveDiff
205
 
        diff = OliveDiff(self.gladefile, self.comm, self.dialog)
206
 
        diff.display()