/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-04-06 17:48:23 UTC
  • mto: (188.2.1 trunk)
  • mto: This revision was merged to the branch mainline in revision 190.
  • Revision ID: szilveszter.farkas@gmail.com-20070406174823-bclt7vsgn2nkcas2
Implemented init functionality.

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
        for name, plugin in bzrlib.plugin.all_plugins().items():
 
177
            model.append([name, getattr(plugin, '__file__', None)])
 
178
                 
 
179
        vbox.pack_start(scrolledwindow, expand=True, fill=True)
 
180
 
 
181
        vbox.pack_start(table)
 
182
 
 
183
        return vbox
 
184
 
40
185
    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))]
 
186
        self.set_default_size(600, 600)
 
187
        notebook = gtk.Notebook()
 
188
        notebook.insert_page(self._create_mainpage(), gtk.Label("Main"))
 
189
        notebook.insert_page(self._create_pluginpage(), gtk.Label("Plugins"))
 
190
        self.vbox.pack_start(notebook, True, True)
 
191
        self.vbox.show_all()
60
192
 
61
193
    def display(self):
62
194
        self.window.show_all()
63
195
 
64
196
    def close(self, widget=None):
65
197
        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