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

  • Committer: Szilveszter Farkas (Phanatic)
  • Date: 2007-05-17 16:12:27 UTC
  • mto: This revision was merged to the branch mainline in revision 201.
  • Revision ID: szilveszter.farkas@gmail.com-20070517161227-9e37lj2rm2t0cwj6
Some small modifications to Branch, Checkout and Info to support remote branches.

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
 
from gi.repository import Gtk
 
17
try:
 
18
    import pygtk
 
19
    pygtk.require("2.0")
 
20
except:
 
21
    pass
 
22
 
 
23
import gtk
18
24
 
19
25
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
23
26
 
24
 
class PreferencesWindow(Gtk.Dialog):
 
27
class PreferencesWindow(gtk.Dialog):
25
28
    """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
 
 
31
29
    def __init__(self, config=None):
32
30
        """ Initialize the Status window. """
33
 
        super(PreferencesWindow, self).__init__(flags=Gtk.DialogFlags.MODAL)
 
31
        super(PreferencesWindow, self).__init__(flags=gtk.DIALOG_MODAL)
34
32
        self.set_title("Bazaar Preferences")
35
33
        self.config = config
36
34
        if self.config is None:
37
35
            self.config = GlobalConfig()
38
36
        self._create()
39
37
 
 
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
        self.check_sigs = gtk.Entry()
 
75
        #self.check_sigs.set_text(self.config.signature_checking())
 
76
        align.add(self.check_sigs)
 
77
        table.attach(align, 1, 2, 2, 3, gtk.EXPAND | gtk.FILL, gtk.FILL)
 
78
 
 
79
        align = gtk.Alignment(1.0, 0.5)
 
80
        label = gtk.Label()
 
81
        label.set_markup("<b>Create GPG Signatures:</b>")
 
82
        align.add(label)
 
83
        table.attach(align, 0, 1, 3, 4, gtk.FILL, gtk.FILL)
 
84
 
 
85
        align = gtk.Alignment(0.0, 0.5)
 
86
        self.create_sigs = gtk.Entry()
 
87
        #self.create_sigs.set_text(self.config.signing_policy())
 
88
        align.add(self.create_sigs)
 
89
        table.attach(align, 1, 2, 3, 4, gtk.EXPAND | gtk.FILL, gtk.FILL)
 
90
 
 
91
        return table
 
92
 
 
93
 
 
94
 
 
95
    def _create_pluginpage(self):
 
96
        vbox = gtk.VBox(False, 2)
 
97
        vbox.set_border_width(6)
 
98
 
 
99
        scrolledwindow = gtk.ScrolledWindow()
 
100
        scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
 
101
        model = gtk.ListStore(str, str)
 
102
        treeview = gtk.TreeView()
 
103
        scrolledwindow.add(treeview)
 
104
 
 
105
        table = gtk.Table(columns=2)
 
106
        table.set_row_spacings(6)
 
107
        table.set_col_spacings(6)
 
108
 
 
109
 
 
110
        def row_selected(tv, path, tvc):
 
111
            p = bzrlib.plugin.all_plugins()[model[path][0]]
 
112
            from inspect import getdoc
 
113
 
 
114
            for w in table.get_children():
 
115
                table.remove(w)
 
116
 
 
117
            if getattr(p, '__author__', None) is not None:
 
118
                align = gtk.Alignment(1.0, 0.5)
 
119
                label = gtk.Label()
 
120
                label.set_markup("<b>Author:</b>")
 
121
                align.add(label)
 
122
                table.attach(align, 0, 1, 0, 1, gtk.FILL, gtk.FILL)
 
123
                align.show()
 
124
                label.show()
 
125
 
 
126
                align = gtk.Alignment(0.0, 0.5)
 
127
                author = gtk.Label()
 
128
                author.set_text(p.__author__)
 
129
                author.set_selectable(True)
 
130
                align.add(author)
 
131
                table.attach(align, 1, 2, 0, 1, gtk.EXPAND | gtk.FILL, gtk.FILL)
 
132
 
 
133
            if getattr(p, '__version__', None) is not None:
 
134
                align = gtk.Alignment(1.0, 0.5)
 
135
                label = gtk.Label()
 
136
                label.set_markup("<b>Version:</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.__version__)
 
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 getdoc(p) is not None:
 
150
                align = gtk.Alignment(0.0, 0.5)
 
151
                description = gtk.Label()
 
152
                description.set_text(getdoc(p))
 
153
                description.set_selectable(True)
 
154
                align.add(description)
 
155
                table.attach(align, 0, 2, 1, 2, gtk.EXPAND | gtk.FILL, gtk.FILL)
 
156
 
 
157
            table.show_all()
 
158
 
 
159
        treeview.set_headers_visible(False)
 
160
        treeview.set_model(model)
 
161
        treeview.connect("row-activated", row_selected)
 
162
 
 
163
        cell = gtk.CellRendererText()
 
164
        column = gtk.TreeViewColumn()
 
165
        column.pack_start(cell, expand=True)
 
166
        column.add_attribute(cell, "text", 0)
 
167
        treeview.append_column(column)
 
168
 
 
169
        cell = gtk.CellRendererText()
 
170
        column = gtk.TreeViewColumn()
 
171
        column.pack_start(cell, expand=True)
 
172
        column.add_attribute(cell, "text", 1)
 
173
        treeview.append_column(column)
 
174
        
 
175
        import bzrlib.plugin
 
176
        plugins = bzrlib.plugin.all_plugins()
 
177
        plugin_names = plugins.keys()
 
178
        plugin_names.sort()
 
179
        for name in plugin_names:
 
180
            model.append([name, getattr(plugins[name], '__file__', None)])
 
181
                 
 
182
        vbox.pack_start(scrolledwindow, expand=True, fill=True)
 
183
 
 
184
        vbox.pack_start(table)
 
185
 
 
186
        return vbox
 
187
 
40
188
    def _create(self):
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))]
 
189
        self.set_default_size(600, 600)
 
190
        notebook = gtk.Notebook()
 
191
        notebook.insert_page(self._create_mainpage(), gtk.Label("Main"))
 
192
        notebook.insert_page(self._create_pluginpage(), gtk.Label("Plugins"))
 
193
        self.vbox.pack_start(notebook, True, True)
 
194
        self.vbox.show_all()
60
195
 
61
196
    def display(self):
62
197
        self.window.show_all()
63
198
 
64
199
    def close(self, widget=None):
65
200
        self.window.destroy()
66
 
 
67
 
 
68
 
class BranchPreferencesWindow(Gtk.Dialog):
69
 
    """Displays global preferences windows."""
70
 
    def __init__(self, config=None):
71
 
        super(BranchPreferencesWindow, self).__init__(config)
72