aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugeni Dodonov <eugeni@mandriva.org>2009-01-13 21:33:15 +0000
committerEugeni Dodonov <eugeni@mandriva.org>2009-01-13 21:33:15 +0000
commit3bdff69d5639da4a737c3c41658caffc4b4071f9 (patch)
treeaa50fb5c75286bdac7981be71476ff835639bdf0
parent5a99da1cb78a30ce1c0ef9763117b8b830be3bcb (diff)
downloadmsec-3bdff69d5639da4a737c3c41658caffc4b4071f9.tar
msec-3bdff69d5639da4a737c3c41658caffc4b4071f9.tar.gz
msec-3bdff69d5639da4a737c3c41658caffc4b4071f9.tar.bz2
msec-3bdff69d5639da4a737c3c41658caffc4b4071f9.tar.xz
msec-3bdff69d5639da4a737c3c41658caffc4b4071f9.zip
Added menu and save screen.
-rwxr-xr-xsrc/msec/msecgui.py89
1 files changed, 55 insertions, 34 deletions
diff --git a/src/msec/msecgui.py b/src/msec/msecgui.py
index dbc94a8..468498d 100755
--- a/src/msec/msecgui.py
+++ b/src/msec/msecgui.py
@@ -106,6 +106,8 @@ or current permission is reported. The permissions can be enforced, automaticall
changing them to the specified values when a change is detected.
""")
+SAVE_SETTINGS_TEXT=_("""Save and apply new configuration?""")
+
class MsecGui:
"""Msec GUI"""
# common columns
@@ -182,13 +184,44 @@ class MsecGui:
main_vbox = gtk.VBox(homogeneous=False, spacing=5)
self.window.add(main_vbox)
- # main frame
- frame = gtk.Frame()
- main_vbox.pack_start(frame)
+ # menu
+ menubar = gtk.MenuBar()
+ main_vbox.pack_start(menubar)
+ menus = [
+ (_("File"),
+ [
+ (_("Save configuration"), self.ok),
+ (None, None),
+ (_("Import configuration"), None),
+ (_("Export configuration"), None),
+ (None, None),
+ (_("Quit"), self.quit),
+ ]),
+ (_("Help"),
+ [
+ (_("Help"), self.quit),
+ (_("About"), self.ok),
+ ]),
+ ]
+ # building menus
+ for topmenu, items in menus:
+ # file menu
+ filemenu = gtk.MenuItem(topmenu)
+ menubar.add(filemenu)
+ menu = gtk.Menu()
+ filemenu.set_submenu(menu)
+ group = None
+ for submenu, callback in items:
+ menuitem = gtk.MenuItem(submenu)
+ if callback:
+ menuitem.connect('activate', callback)
+ else:
+ menuitem.set_sensitive(False)
+ menu.add(menuitem)
# creating tabs
self.notebook = gtk.Notebook()
- frame.add(self.notebook)
+ main_vbox.add(self.notebook)
self.notebook.append_page(self.level_security_page(), gtk.Label(_("Basic security")))
self.notebook.append_page(self.auth_security_page(), gtk.Label(_("Authentication")))
@@ -198,26 +231,6 @@ class MsecGui:
self.notebook.append_page(self.notifications_page(), gtk.Label(_("Security notifications")))
self.notebook.append_page(self.permissions_security_page(), gtk.Label(_("Permissions")))
- # menu
- hbox = gtk.HBox(homogeneous=False, spacing=10)
- main_vbox.pack_start(hbox, False, False)
-
- # control buttons
- # TODO: improve spacing
- cancel = gtk.Button(gtk.STOCK_CANCEL)
- cancel.set_use_stock(True)
- cancel.connect('clicked', self.cancel)
- hbox.pack_start(cancel, expand=True, fill=True)
- help = gtk.Button(gtk.STOCK_HELP)
- help.set_sensitive(False)
- help.set_use_stock(True)
- help.connect('clicked', self.help)
- hbox.pack_start(help, expand=True, fill=True)
- ok = gtk.Button(gtk.STOCK_OK)
- ok.set_use_stock(True)
- ok.connect('clicked', self.ok)
- hbox.pack_start(ok, expand=True, fill=True)
-
self.window.show_all()
def cancel(self, widget):
@@ -246,26 +259,34 @@ class MsecGui:
messages = self.log.get_buffer()
# creating preview window
- dialog = gtk.Dialog(_("Preview changes"),
+ dialog = gtk.Dialog(_("Saving changes.."),
self.window, gtk.DIALOG_MODAL,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_OK, gtk.RESPONSE_OK)
)
+
+ label = gtk.Label(SAVE_SETTINGS_TEXT)
+ dialog.vbox.pack_start(label, False, False)
+
+ dialog.set_resizable(False)
+
+ # hide all information in an expander
+ expander = gtk.Expander(_("Details.."))
+ exp_vbox = gtk.VBox()
+ expander.add(exp_vbox)
+ dialog.vbox.pack_start(expander, False, False)
+
+
+ # scrolledwindow
sw = gtk.ScrolledWindow()
sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- dialog.vbox.add(sw)
+ exp_vbox.pack_start(sw)
+
vbox = gtk.VBox()
- dialog.vbox.set_size_request(640, 300)
+ exp_vbox.set_size_request(640, 300)
sw.add_with_viewport(vbox)
- label = gtk.Label(_("Click OK to commit changes, or CANCEL to leave current configuration unmodified."))
- vbox.pack_start(label, False, False)
-
- # informative label
- label = gtk.Label(_('<b>MSEC configuration:</b>'))
- label.set_use_markup(True)
- vbox.pack_start(label, False, False)
# check for changed options
for name, type, oldconf, curconf in [ (_("MSEC option changes"), _("option"), self.oldconfig, curconfig),