/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 commit.py

  • Committer: Jelmer Vernooij
  • Date: 2007-07-15 18:12:57 UTC
  • Revision ID: jelmer@samba.org-20070715181257-g264qus2zyi3v39z
Add RevisionSelectionBox widget, use in TagDialog.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import bzrlib.errors as errors
30
30
from bzrlib import osutils
31
31
 
32
 
from olive.dialog import error_dialog, question_dialog
 
32
from dialog import error_dialog, question_dialog
33
33
from errors import show_bzr_error
34
34
 
 
35
try:
 
36
    import dbus
 
37
    import dbus.glib
 
38
    have_dbus = True
 
39
except ImportError:
 
40
    have_dbus = False
 
41
 
35
42
class CommitDialog(gtk.Dialog):
36
43
    """ New implementation of the Commit dialog. """
37
44
    def __init__(self, wt, wtpath, notbranch, selected=None, parent=None):
79
86
        
80
87
        # Create the widgets
81
88
        self._button_commit = gtk.Button(_("Comm_it"), use_underline=True)
82
 
        if self._is_checkout:
83
 
            self._check_local = gtk.CheckButton(_("_Only commit locally"),
84
 
                                                use_underline=True)
85
 
        self._check_strict = gtk.CheckButton(_("_Allow unknown files"),
86
 
                                             use_underline=True)
87
89
        self._expander_files = gtk.Expander(_("File(s) to commit"))
88
90
        self._vpaned_main = gtk.VPaned()
89
91
        self._scrolledwindow_files = gtk.ScrolledWindow()
111
113
        self._textview_message.modify_font(pango.FontDescription("Monospace"))
112
114
        self.set_default_size(500, 500)
113
115
        self._vpaned_main.set_position(200)
 
116
        self._button_commit.set_flags(gtk.CAN_DEFAULT)
114
117
 
115
118
        if self._is_pending:
116
119
            self._scrolledwindow_merges.set_policy(gtk.POLICY_AUTOMATIC,
140
143
        self._vpaned_main.add2(self._vbox_message)
141
144
        
142
145
        self.vbox.pack_start(self._vpaned_main, True, True)
143
 
        if self._is_checkout:
 
146
        if self._is_checkout: 
 
147
            self._check_local = gtk.CheckButton(_("_Only commit locally"),
 
148
                                                use_underline=True)
144
149
            self.vbox.pack_start(self._check_local, False, False)
145
 
        self.vbox.pack_start(self._check_strict, False, False)
 
150
            if have_dbus:
 
151
                bus = dbus.SystemBus()
 
152
                proxy_obj = bus.get_object('org.freedesktop.NetworkManager', 
 
153
                              '/org/freedesktop/NetworkManager')
 
154
                dbus_iface = dbus.Interface(
 
155
                        proxy_obj, 'org.freedesktop.NetworkManager')
 
156
                # 3 is the enum value for STATE_CONNECTED
 
157
                self._check_local.set_active(dbus_iface.state() != 3)
146
158
        
147
159
        # Create the file list
148
160
        self._create_file_view()
157
169
        
158
170
        # Display dialog
159
171
        self.vbox.show_all()
 
172
        
 
173
        # Default to Commit button
 
174
        self._button_commit.grab_default()
160
175
    
161
176
    def _on_treeview_files_row_activated(self, treeview, path, view_column):
162
177
        # FIXME: the diff window freezes for some reason
164
179
        (model, iter) = treeselection.get_selected()
165
180
        
166
181
        if iter is not None:
167
 
            from olive import DiffWindow
 
182
            from diff import DiffWindow
168
183
            
169
184
            _selected = model.get_value(iter, 1)
170
185
            
171
186
            diff = DiffWindow()
 
187
            diff.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
 
188
            diff.set_modal(True)
172
189
            parent_tree = self.wt.branch.repository.revision_tree(self.wt.branch.last_revision())
173
190
            diff.set_diff(self.wt.branch.nick, self.wt, parent_tree)
174
191
            try:
201
218
            local = self._check_local.get_active()
202
219
        else:
203
220
            local = False
 
221
 
 
222
        if list(self.wt.unknowns()) != []:
 
223
            response = question_dialog(_("Commit with unknowns?"),
 
224
               _("Unknown files exist in the working tree. Commit anyway?"))
 
225
            if response == gtk.RESPONSE_NO:
 
226
                return
204
227
        
205
228
        try:
206
229
            self.wt.commit(message,
207
230
                       allow_pointless=False,
208
 
                       strict=self._check_strict.get_active(),
 
231
                       strict=False,
209
232
                       local=local,
210
233
                       specific_files=specific_files)
211
234
        except errors.PointlessCommit:
214
237
            if response == gtk.RESPONSE_YES:
215
238
                self.wt.commit(message,
216
239
                               allow_pointless=True,
217
 
                               strict=self._check_strict.get_active(),
 
240
                               strict=False,
218
241
                               local=local,
219
242
                               specific_files=specific_files)
220
243
        self.response(gtk.RESPONSE_OK)