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

  • Committer: rodney.dawes at canonical
  • Date: 2008-10-25 06:02:09 UTC
  • Revision ID: rodney.dawes@canonical.com-20081025060209-irlizouino63cs1m
        * preferences/__init__.py:
        Remove the dialog separator
        Remove useless extra call to self._create_pages()
        Make the default window size smaller
        Set the default border width on various widgets
        Set the current notebook page to the first one

        * preferences/identity.py:
        Set various border widths appropriately
        Align the labels to the left
        Remove the unneeded bold markup from the labels
        Change the "User Id" label to "E-Mail"
        Align the radio group labels to the top of the groups

        * preferences/plugins.py:
        Set various border widths appropriately
        Set the default paned position to something more sensible
        Set the shadow type on the treeview's scrolled window to in
        Align the Author and Version labels to the left

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
import os
18
18
 
19
 
from gi.repository import Gtk
 
19
try:
 
20
    import pygtk
 
21
    pygtk.require("2.0")
 
22
except:
 
23
    pass
 
24
 
 
25
import gtk
20
26
 
21
27
from bzrlib.branch import Branch
22
28
import bzrlib.errors as errors
23
29
 
24
 
from bzrlib.plugins.gtk import icon_path
25
 
from bzrlib.plugins.gtk.dialog import (
26
 
    error_dialog,
27
 
    info_dialog,
28
 
    warning_dialog,
29
 
    )
 
30
from bzrlib.plugins.gtk import _i18n, icon_path
 
31
from bzrlib.plugins.gtk.dialog import error_dialog, info_dialog, warning_dialog
30
32
from bzrlib.plugins.gtk.errors import show_bzr_error
31
 
from bzrlib.plugins.gtk.i18n import _i18n
32
 
 
33
 
 
34
 
class MergeDialog(Gtk.Dialog):
 
33
 
 
34
 
 
35
class MergeDialog(gtk.Dialog):
35
36
    """ Display the Merge dialog and perform the needed actions. """
36
37
    
37
38
    def __init__(self, wt, wtpath, default_branch_path=None, parent=None):
38
39
        """ Initialize the Merge dialog. """
39
 
        super(MergeDialog, self).__init__(
40
 
            title="Merge changes", parent=parent, flags=0,
41
 
            buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
 
40
        gtk.Dialog.__init__(self, title="Merge changes",
 
41
                                  parent=parent,
 
42
                                  flags=0,
 
43
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
42
44
        self.set_icon_from_file(icon_path("bzr-icon-64.png"))
43
45
        # Get arguments
44
46
        self.wt = wt
47
49
        self.parent_window = parent
48
50
        
49
51
        # Create widgets
50
 
        self._hbox = Gtk.HBox()
51
 
        self._source = Gtk.HBox()
52
 
        self._label_merge_from = Gtk.Label(label=_i18n("Merge from"))
53
 
        self._combo_source = Gtk.ComboBoxText()
 
52
        self._hbox = gtk.HBox()
 
53
        self._source = gtk.HBox()
 
54
        self._label_merge_from = gtk.Label(_i18n("Merge from"))
 
55
        self._combo_source = gtk.combo_box_new_text()
54
56
        for entry in [_i18n("Folder"),_i18n("Custom Location")]:
55
57
            self._combo_source.append_text(entry)
56
58
        self._combo_source.connect("changed", self._on_combo_changed)
57
 
        self._button_merge = Gtk.Button(_i18n("_Merge"), use_underline=True)
58
 
        self._button_merge_icon = Gtk.Image()
59
 
        self._button_merge_icon.set_from_stock(Gtk.STOCK_APPLY, Gtk.IconSize.BUTTON)
 
59
        self._button_merge = gtk.Button(_i18n("_Merge"))
 
60
        self._button_merge_icon = gtk.Image()
 
61
        self._button_merge_icon.set_from_stock(gtk.STOCK_APPLY, gtk.ICON_SIZE_BUTTON)
60
62
        self._button_merge.set_image(self._button_merge_icon)
61
63
        self._button_merge.connect('clicked', self._on_merge_clicked)
62
64
        
63
65
        # Add widgets to dialog
64
 
        self.get_content_area().pack_start(self._hbox, False, False, 0)
 
66
        self.vbox.pack_start(self._hbox, False, False, 0)
65
67
        self._hbox.add(self._label_merge_from)
66
68
        self._hbox.add(self._combo_source)
67
69
        self._hbox.set_spacing(5)
68
 
        self.action_area.pack_end(self._button_merge, False, False, 0)
 
70
        self.action_area.pack_end(self._button_merge)
69
71
        
70
72
        if self.default_branch_path and os.path.isdir(
71
73
                            self.default_branch_path.partition('file://')[2]):
76
78
        else:
77
79
            # If no default_branch_path give, default to folder source with current folder
78
80
            self._combo_source.set_active(0)
79
 
        self.get_content_area().show_all()
 
81
        self.vbox.show_all()
80
82
    
81
83
    def _on_folder_source(self):
82
84
        """ Merge from folder, create a filechooser dialog and button """
83
 
        self._source = Gtk.HBox()
84
 
        self._filechooser_dialog = Gtk.FileChooserDialog(title="Please select a folder",
 
85
        self._source = gtk.HBox()
 
86
        self._filechooser_dialog = gtk.FileChooserDialog(title="Please select a folder",
85
87
                                    parent=self.parent_window,
86
 
                                    action=Gtk.FileChooserAction.SELECT_FOLDER,
87
 
                                    buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
88
 
                                             Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
89
 
        self._filechooser_dialog.set_default_response(Gtk.ResponseType.OK)
90
 
        self._filechooser = Gtk.FileChooserButton(self._filechooser_dialog)
 
88
                                    action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
 
89
                                    buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
 
90
                                             gtk.STOCK_OPEN, gtk.RESPONSE_OK))
 
91
        self._filechooser_dialog.set_default_response(gtk.RESPONSE_OK)
 
92
        self._filechooser = gtk.FileChooserButton(self._filechooser_dialog)
91
93
        self._filechooser.show()
92
94
        directory = getattr(self, 'directory', None)
93
95
        if not directory:
94
96
            directory = os.path.dirname(self.wt.abspath(self.wtpath))
95
97
        self._filechooser_dialog.set_current_folder(directory)
96
98
        self._source.pack_start(self._filechooser, True, True, 0)
97
 
        self.get_content_area().pack_start(self._source, True, True, 5)
 
99
        self.vbox.pack_start(self._source, True, True, 5)
98
100
        self._source.show()
99
101
    
100
102
    def _on_custom_source(self):
101
103
        """ Merge from a custom source (can be folder, remote, etc), create entry """
102
 
        self._source = Gtk.HBox()
103
 
        self._custom_entry = Gtk.Entry()
 
104
        self._source = gtk.HBox()
 
105
        self._custom_entry = gtk.Entry()
104
106
        if self.default_branch_path:
105
107
            self._custom_entry.set_text(self.default_branch_path)
106
108
        self._custom_entry.connect("activate", self._on_merge_clicked)
107
109
        self._custom_entry.show()
108
110
        self._source.pack_start(self._custom_entry, True, True, 0)
109
 
        self.get_content_area().pack_start(self._source, True, True, 5)
 
111
        self.vbox.pack_start(self._source, True, True, 5)
110
112
        self._source.show()
111
113
    
112
114
    def _on_combo_changed(self, widget):
148
150
            warning_dialog(_i18n('Conflicts encountered'),
149
151
                           _i18n('Please resolve the conflicts manually before committing.'))
150
152
        
151
 
        self.response(Gtk.ResponseType.OK)
 
153
        self.response(gtk.RESPONSE_OK)