/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 preferences/__init__.py

  • Committer: Jelmer Vernooij
  • Date: 2012-07-09 15:23:26 UTC
  • mto: This revision was merged to the branch mainline in revision 794.
  • Revision ID: jelmer@samba.org-20120709152326-dzxb8zoz0btull7n
Remove bzr-notify.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
16
16
 
17
 
try:
18
 
    import pygtk
19
 
    pygtk.require("2.0")
20
 
except:
21
 
    pass
22
 
 
23
 
import gtk
 
17
from gi.repository import Gtk
24
18
 
25
19
from bzrlib.config import GlobalConfig
 
20
from bzrlib.plugins.gtk.preferences.identity import IdentityPage
 
21
from bzrlib.plugins.gtk.preferences.plugins import PluginsPage
 
22
from bzrlib.plugins.gtk.preferences.notifications import NotificationsPage
26
23
 
27
 
class PreferencesWindow(gtk.Dialog):
 
24
class PreferencesWindow(Gtk.Dialog):
28
25
    """Displays global preferences windows."""
 
26
    # Note that we don't allow configuration of aliases or
 
27
    # default log formats. This is because doing so wouldn't make
 
28
    # a lot of sense to pure GUI users. Users that need these settings
 
29
    # will already be familiar with the configuration file.
 
30
 
29
31
    def __init__(self, config=None):
30
32
        """ Initialize the Status window. """
31
 
        super(PreferencesWindow, self).__init__(flags=gtk.DIALOG_MODAL)
 
33
        super(PreferencesWindow, self).__init__(flags=Gtk.DialogFlags.MODAL)
32
34
        self.set_title("Bazaar Preferences")
33
35
        self.config = config
34
36
        if self.config is None:
35
37
            self.config = GlobalConfig()
36
38
        self._create()
37
39
 
38
 
    def _create_mainpage(self):
39
 
        table = gtk.Table(rows=4, columns=2)
40
 
        table.set_row_spacings(6)
41
 
        table.set_col_spacings(6)
42
 
 
43
 
        align = gtk.Alignment(1.0, 0.5)
44
 
        label = gtk.Label()
45
 
        label.set_markup("<b>User Id:</b>")
46
 
        align.add(label)
47
 
        table.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
48
 
 
49
 
        align = gtk.Alignment(0.0, 0.5)
50
 
        self.username = gtk.Entry()
51
 
        align.add(self.username)
52
 
        self.username.set_text(self.config.username())
53
 
        table.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
54
 
 
55
 
        align = gtk.Alignment(1.0, 0.5)
56
 
        label = gtk.Label()
57
 
        label.set_markup("<b>GPG signing command:</b>")
58
 
        align.add(label)
59
 
        table.attach(align, 0, 1, 1, 2, gtk.FILL, gtk.FILL)
60
 
 
61
 
        align = gtk.Alignment(0.0, 0.5)
62
 
        self.email = gtk.Entry()
63
 
        self.email.set_text(self.config.gpg_signing_command())
64
 
        align.add(self.email)
65
 
        table.attach(align, 1, 2, 1, 2, gtk.EXPAND | gtk.FILL, gtk.FILL)
66
 
 
67
 
        align = gtk.Alignment(1.0, 0.5)
68
 
        label = gtk.Label()
69
 
        label.set_markup("<b>Check GPG Signatures:</b>")
70
 
        align.add(label)
71
 
        table.attach(align, 0, 1, 2, 3, gtk.FILL, gtk.FILL)
72
 
 
73
 
        align = gtk.Alignment(0.0, 0.5)
74
 
        sigvals = gtk.VBox()
75
 
        self.check_sigs_if_possible = gtk.RadioButton(None, 
76
 
                                                      "_Check if possible")
77
 
        sigvals.pack_start(self.check_sigs_if_possible)
78
 
        self.check_sigs_always = gtk.RadioButton(self.check_sigs_if_possible, 
79
 
                                                 "Check _always")
80
 
        sigvals.pack_start(self.check_sigs_always)
81
 
        self.check_sigs_never = gtk.RadioButton(self.check_sigs_if_possible,
82
 
                                                "Check _never")
83
 
        sigvals.pack_start(self.check_sigs_never)
84
 
        # FIXME: Set default
85
 
        align.add(sigvals)
86
 
        table.attach(align, 1, 2, 2, 3, gtk.EXPAND | gtk.FILL, gtk.FILL)
87
 
 
88
 
        align = gtk.Alignment(1.0, 0.5)
89
 
        label = gtk.Label()
90
 
        label.set_markup("<b>Create GPG Signatures:</b>")
91
 
        align.add(label)
92
 
        table.attach(align, 0, 1, 3, 4, gtk.FILL, gtk.FILL)
93
 
 
94
 
        align = gtk.Alignment(0.0, 0.5)
95
 
        create_sigs = gtk.VBox()
96
 
        self.create_sigs_when_required = gtk.RadioButton(None, 
97
 
                                                         "Sign When _Required")
98
 
        create_sigs.pack_start(self.create_sigs_when_required)
99
 
        self.create_sigs_always = gtk.RadioButton(
100
 
            self.create_sigs_when_required, "Sign _Always")
101
 
        create_sigs.pack_start(self.create_sigs_always)
102
 
        self.create_sigs_never = gtk.RadioButton(
103
 
            self.create_sigs_when_required, "Sign _Never")
104
 
        create_sigs.pack_start(self.create_sigs_never)
105
 
        # FIXME: Set default
106
 
        align.add(create_sigs)
107
 
        table.attach(align, 1, 2, 3, 4, gtk.EXPAND | gtk.FILL, gtk.FILL)
108
 
 
109
 
        return table
110
 
 
111
 
    def _create_pluginpage(self):
112
 
        vbox = gtk.VBox(False, 2)
113
 
        vbox.set_border_width(6)
114
 
 
115
 
        scrolledwindow = gtk.ScrolledWindow()
116
 
        scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
117
 
        model = gtk.ListStore(str, str)
118
 
        treeview = gtk.TreeView()
119
 
        scrolledwindow.add(treeview)
120
 
 
121
 
        table = gtk.Table(columns=2)
122
 
        table.set_row_spacings(6)
123
 
        table.set_col_spacings(6)
124
 
 
125
 
 
126
 
        def row_selected(tv, path, tvc):
127
 
            p = bzrlib.plugin.all_plugins()[model[path][0]]
128
 
            from inspect import getdoc
129
 
 
130
 
            for w in table.get_children():
131
 
                table.remove(w)
132
 
 
133
 
            if getattr(p, '__author__', None) is not None:
134
 
                align = gtk.Alignment(1.0, 0.5)
135
 
                label = gtk.Label()
136
 
                label.set_markup("<b>Author:</b>")
137
 
                align.add(label)
138
 
                table.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
139
 
                align.show()
140
 
                label.show()
141
 
 
142
 
                align = gtk.Alignment(0.0, 0.5)
143
 
                author = gtk.Label()
144
 
                author.set_text(p.__author__)
145
 
                author.set_selectable(True)
146
 
                align.add(author)
147
 
                table.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
148
 
 
149
 
            if getattr(p, '__version__', None) is not None:
150
 
                align = gtk.Alignment(1.0, 0.5)
151
 
                label = gtk.Label()
152
 
                label.set_markup("<b>Version:</b>")
153
 
                align.add(label)
154
 
                table.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
155
 
                align.show()
156
 
                label.show()
157
 
 
158
 
                align = gtk.Alignment(0.0, 0.5)
159
 
                author = gtk.Label()
160
 
                author.set_text(p.__version__)
161
 
                author.set_selectable(True)
162
 
                align.add(author)
163
 
                table.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
164
 
 
165
 
            if getdoc(p) is not None:
166
 
                align = gtk.Alignment(0.0, 0.5)
167
 
                description = gtk.Label()
168
 
                description.set_text(getdoc(p))
169
 
                description.set_selectable(True)
170
 
                align.add(description)
171
 
                table.attach(align, 0, 2, 1, 2, gtk.EXPAND | gtk.FILL, gtk.FILL)
172
 
 
173
 
            table.show_all()
174
 
 
175
 
        treeview.set_headers_visible(False)
176
 
        treeview.set_model(model)
177
 
        treeview.connect("row-activated", row_selected)
178
 
 
179
 
        cell = gtk.CellRendererText()
180
 
        column = gtk.TreeViewColumn()
181
 
        column.pack_start(cell, expand=True)
182
 
        column.add_attribute(cell, "text", 0)
183
 
        treeview.append_column(column)
184
 
 
185
 
        cell = gtk.CellRendererText()
186
 
        column = gtk.TreeViewColumn()
187
 
        column.pack_start(cell, expand=True)
188
 
        column.add_attribute(cell, "text", 1)
189
 
        treeview.append_column(column)
190
 
        
191
 
        import bzrlib.plugin
192
 
        plugins = bzrlib.plugin.all_plugins()
193
 
        plugin_names = plugins.keys()
194
 
        plugin_names.sort()
195
 
        for name in plugin_names:
196
 
            model.append([name, getattr(plugins[name], '__file__', None)])
197
 
                 
198
 
        vbox.pack_start(scrolledwindow, expand=True, fill=True)
199
 
 
200
 
        vbox.pack_start(table)
201
 
 
202
 
        return vbox
203
 
 
204
40
    def _create(self):
205
 
        self.set_default_size(600, 600)
206
 
        notebook = gtk.Notebook()
207
 
        notebook.insert_page(self._create_mainpage(), gtk.Label("Main"))
208
 
        notebook.insert_page(self._create_pluginpage(), gtk.Label("Plugins"))
209
 
        self.vbox.pack_start(notebook, True, True)
210
 
        self.vbox.show_all()
 
41
        self.set_default_size(320, 480)
 
42
        self.set_border_width(0)
 
43
 
 
44
        notebook = Gtk.Notebook()
 
45
        notebook.set_border_width(12)
 
46
        for (label, page) in self._create_pages():
 
47
            notebook.append_page(page, Gtk.Label(label=label))
 
48
 
 
49
        notebook.set_current_page(0)
 
50
        content_area = self.get_content_area()
 
51
        content_area.set_border_width(0)
 
52
        content_area.pack_start(notebook, True, True, 0)
 
53
        content_area.show_all()
 
54
        self.get_action_area().set_border_width(12)
 
55
 
 
56
    def _create_pages(self):
 
57
        return [("Identity", IdentityPage(self.config)),
 
58
                ("Plugins", PluginsPage()),
 
59
                ("Notifications", NotificationsPage(self.config))]
211
60
 
212
61
    def display(self):
213
62
        self.window.show_all()
215
64
    def close(self, widget=None):
216
65
        self.window.destroy()
217
66
 
218
 
class BranchPreferencesWindow(gtk.Dialog):
 
67
 
 
68
class BranchPreferencesWindow(Gtk.Dialog):
219
69
    """Displays global preferences windows."""
220
70
    def __init__(self, config=None):
221
71
        super(BranchPreferencesWindow, self).__init__(config)