gyrus r341 - in branches/gyrus-python: . src
- From: gpoo svn gnome org
- To: svn-commits-list gnome org
- Subject: gyrus r341 - in branches/gyrus-python: . src
- Date: Tue, 25 Mar 2008 03:15:08 +0000 (GMT)
Author: gpoo
Date: Tue Mar 25 03:15:07 2008
New Revision: 341
URL: http://svn.gnome.org/viewvc/gyrus?rev=341&view=rev
Log:
2008-03-24 German Poo-Caaman~o <gpoo ubiobio cl>
* src/*.py: Fixed the tabs/spaces to be PEP-8 compliant.
Modified:
branches/gyrus-python/ChangeLog
branches/gyrus-python/src/gyrus.py
branches/gyrus-python/src/gyrus_acl.py
branches/gyrus-python/src/gyrus_admin_mailbox.py
branches/gyrus-python/src/gyrus_constant.py
branches/gyrus-python/src/gyrus_find.py
branches/gyrus-python/src/gyrus_print.py
branches/gyrus-python/src/gyrus_session.py
Modified: branches/gyrus-python/src/gyrus.py
==============================================================================
--- branches/gyrus-python/src/gyrus.py (original)
+++ branches/gyrus-python/src/gyrus.py Tue Mar 25 03:15:07 2008
@@ -80,157 +80,157 @@
LOGO = os.path.join (config.ARTDIR, "gyrus.png")
perm = [None,
- _("lookup"),
- _("read"),
- _("seen"),
- _("write"),
- _("insert"),
- _("post"),
- _("create"),
- _("delete"),
- _("admin")]
+ _("lookup"),
+ _("read"),
+ _("seen"),
+ _("write"),
+ _("insert"),
+ _("post"),
+ _("create"),
+ _("delete"),
+ _("admin")]
class GyrusAdmin:
- def __init__ (self):
- table_page = None
- label_host = None
- label_port = None
- label_user = None
- entry_assigned = None
- entry_free = None
- entry_mailbox = None
- button_connect = None
- entry_quota_new = None
- button_quota_apply = None
- treeview_users = None
- treeview_acl = None
- image_cnx = None
- label_cnx = None
- cnx = None
- newname = None # temporal for validate name of new entry on acl
- newnameok = None # temporal for validate name of new entry on acl
- session_name = None
- session_host = None
- session_port = None
- session_user = None
- session_tls = None
+ def __init__ (self):
+ table_page = None
+ label_host = None
+ label_port = None
+ label_user = None
+ entry_assigned = None
+ entry_free = None
+ entry_mailbox = None
+ button_connect = None
+ entry_quota_new = None
+ button_quota_apply = None
+ treeview_users = None
+ treeview_acl = None
+ image_cnx = None
+ label_cnx = None
+ cnx = None
+ newname = None # temporal for validate name of new entry on acl
+ newnameok = None # temporal for validate name of new entry on acl
+ session_name = None
+ session_host = None
+ session_port = None
+ session_user = None
+ session_tls = None
class Gyrus:
- def __init__ (self):
- # window dialog about
- self.about = self.create_about_dialog()
-
- # lists of server imaps connected
- self.imap_server = {"page":"admin"}
-
- # get preferences
- self.model_session = gyrus_session.get_model_treeview_sessions ()
- gyrus_session.load_preferences(self)
-
- # create man container
- vbox = gtk.VBox(False,0)
-
- # create main window
- window = gtk.Window()
- window.set_position(1)
- window.set_default_size(DEFAULT_WIDTH,DEFAULT_HIGH)
- window.set_title (config.PACKAGE)
- window.set_icon (gtk.gdk.pixbuf_new_from_file(LOGO))
- window.connect ("delete_event",self.quit_program)
-
- window.add (vbox)
-
- # create a UIManager instance
- uimanager = gtk.UIManager()
-
- # add the accelerator group to the toplevel window
- accelgroup = uimanager.get_accel_group()
- window.add_accel_group (accelgroup)
-
- # create an ActionGroup
- self.actiongroup_window = gtk.ActionGroup ('Window Actions')
- self.actiongroup_server = gtk.ActionGroup ('Server Actions')
- self.actiongroup_mailbox = gtk.ActionGroup ('Mailbox Actions')
- self.actiongroup_acl = gtk.ActionGroup ('ACL Actions')
-
- # change sensitive status
- self.actiongroup_window.set_sensitive (True)
- self.actiongroup_server.set_sensitive (False)
- self.actiongroup_mailbox.set_sensitive (False)
- self.actiongroup_acl.set_sensitive (False)
-
- # creat actions
- self.actiongroup_window.add_actions([
- ('FileMenu', None, _('_File')),
- ('OpenSession', gtk.STOCK_DISCONNECT, _('Go to server...'),'<control>O',
- _('Show the list of servers'), gyrus_session.load_interface),
- ('Quit', gtk.STOCK_QUIT, _('_Quit'), None, _('Quit the Program'), self.quit_program),
- ('EditMenu', None, _('_Edit')),
- ('AclMenu', None, _('_ACL')),
- ('ViewMenu', None, _('_View')),
- ('HelpMenu', None, _('_Help')),
- ('About', gtk.STOCK_ABOUT, None, None, None, self.show_about),
- ], user_data=self)
-
- self.actiongroup_server.add_actions([
- ('AddMailbox', gtk.STOCK_ADD, _('Add mailbox'),None, _('Add a mailbox under the one selected'), self.on_addmailbox_action),
- ('Find', gtk.STOCK_FIND, _('Find mailbox'),None, _('Search for a mailbox in current server'), self.on_find_action),
- ('Refresh', gtk.STOCK_REFRESH, None,'<control>R', _('Refresh the mailbox list'), self.on_refresh_action),
- ('Report', gtk.STOCK_INDEX, _('Create report'),None, _('Create report of users with quota problems'), self.on_report_action),
- ])
-
- self.actiongroup_mailbox.add_actions([
- ('RemoveMailbox', gtk.STOCK_REMOVE, _('Remove mailbox'), None,
- _('Remove current mailbox from the server'), self.on_removemailbox_action),
- ('EntryNew', gtk.STOCK_ADD, _('New ACL'), '<control><shift>N',
- _('Create a new ACL entry in current mailbox'), self.on_entryaclnew_action),
- ])
-
- self.actiongroup_acl.add_actions([
- ('EntryRename', gtk.STOCK_EDIT, _('Rename ACL'), '<control><shift>R',
- _('Rename selected ACL entry'), self.on_entryaclrename_action),
- ('EntryDelete', gtk.STOCK_REMOVE, _('Delete ACL'), '<control><shift>D',
- _('Delete selected ACL entry'), self.on_entryacldelete_action),
- ])
-
-
- # add the actiongroup to the uimanager
- uimanager.insert_action_group (self.actiongroup_window,0)
- uimanager.insert_action_group (self.actiongroup_server,0)
- uimanager.insert_action_group (self.actiongroup_mailbox,0)
- uimanager.insert_action_group (self.actiongroup_acl,0)
-
- # ad a UI description
- uimanager.add_ui_from_string (UI)
-
- # create a MenuBar
- menubar = uimanager.get_widget ('/MainMenu')
- vbox.pack_start (menubar, False)
-
- # create a Toolbar
- toolbar = uimanager.get_widget ('/MainToolbar')
- ###toolbar.set_style(gtk.TOOLBAR_ICONS)
-
- vbox.pack_start (toolbar, False)
-
- # create notebook
- self.notebook = gtk.Notebook()
- self.notebook.connect('switch-page',self.on_notebook_switch_page)
-
- vbox.pack_start (self.notebook, False)
- vbox.set_child_packing (self.notebook,True,True,0,gtk.PACK_START)
-
- window.show_all()
- return
-
- def main(self):
- "Begin cicle main"
- gtk.main()
-
- def quit_program(self,data1=None,data2=None):
- "Quit of program"
- gtk.main_quit()
-
+ def __init__ (self):
+ # window dialog about
+ self.about = self.create_about_dialog()
+
+ # lists of server imaps connected
+ self.imap_server = {"page":"admin"}
+
+ # get preferences
+ self.model_session = gyrus_session.get_model_treeview_sessions ()
+ gyrus_session.load_preferences(self)
+
+ # create man container
+ vbox = gtk.VBox(False,0)
+
+ # create main window
+ window = gtk.Window()
+ window.set_position(1)
+ window.set_default_size(DEFAULT_WIDTH,DEFAULT_HIGH)
+ window.set_title (config.PACKAGE)
+ window.set_icon (gtk.gdk.pixbuf_new_from_file(LOGO))
+ window.connect ("delete_event",self.quit_program)
+
+ window.add (vbox)
+
+ # create a UIManager instance
+ uimanager = gtk.UIManager()
+
+ # add the accelerator group to the toplevel window
+ accelgroup = uimanager.get_accel_group()
+ window.add_accel_group (accelgroup)
+
+ # create an ActionGroup
+ self.actiongroup_window = gtk.ActionGroup ('Window Actions')
+ self.actiongroup_server = gtk.ActionGroup ('Server Actions')
+ self.actiongroup_mailbox = gtk.ActionGroup ('Mailbox Actions')
+ self.actiongroup_acl = gtk.ActionGroup ('ACL Actions')
+
+ # change sensitive status
+ self.actiongroup_window.set_sensitive (True)
+ self.actiongroup_server.set_sensitive (False)
+ self.actiongroup_mailbox.set_sensitive (False)
+ self.actiongroup_acl.set_sensitive (False)
+
+ # creat actions
+ self.actiongroup_window.add_actions([
+ ('FileMenu', None, _('_File')),
+ ('OpenSession', gtk.STOCK_DISCONNECT, _('Go to server...'),'<control>O',
+ _('Show the list of servers'), gyrus_session.load_interface),
+ ('Quit', gtk.STOCK_QUIT, _('_Quit'), None, _('Quit the Program'), self.quit_program),
+ ('EditMenu', None, _('_Edit')),
+ ('AclMenu', None, _('_ACL')),
+ ('ViewMenu', None, _('_View')),
+ ('HelpMenu', None, _('_Help')),
+ ('About', gtk.STOCK_ABOUT, None, None, None, self.show_about),
+ ], user_data=self)
+
+ self.actiongroup_server.add_actions([
+ ('AddMailbox', gtk.STOCK_ADD, _('Add mailbox'),None, _('Add a mailbox under the one selected'), self.on_addmailbox_action),
+ ('Find', gtk.STOCK_FIND, _('Find mailbox'),None, _('Search for a mailbox in current server'), self.on_find_action),
+ ('Refresh', gtk.STOCK_REFRESH, None,'<control>R', _('Refresh the mailbox list'), self.on_refresh_action),
+ ('Report', gtk.STOCK_INDEX, _('Create report'),None, _('Create report of users with quota problems'), self.on_report_action),
+ ])
+
+ self.actiongroup_mailbox.add_actions([
+ ('RemoveMailbox', gtk.STOCK_REMOVE, _('Remove mailbox'), None,
+ _('Remove current mailbox from the server'), self.on_removemailbox_action),
+ ('EntryNew', gtk.STOCK_ADD, _('New ACL'), '<control><shift>N',
+ _('Create a new ACL entry in current mailbox'), self.on_entryaclnew_action),
+ ])
+
+ self.actiongroup_acl.add_actions([
+ ('EntryRename', gtk.STOCK_EDIT, _('Rename ACL'), '<control><shift>R',
+ _('Rename selected ACL entry'), self.on_entryaclrename_action),
+ ('EntryDelete', gtk.STOCK_REMOVE, _('Delete ACL'), '<control><shift>D',
+ _('Delete selected ACL entry'), self.on_entryacldelete_action),
+ ])
+
+
+ # add the actiongroup to the uimanager
+ uimanager.insert_action_group (self.actiongroup_window,0)
+ uimanager.insert_action_group (self.actiongroup_server,0)
+ uimanager.insert_action_group (self.actiongroup_mailbox,0)
+ uimanager.insert_action_group (self.actiongroup_acl,0)
+
+ # ad a UI description
+ uimanager.add_ui_from_string (UI)
+
+ # create a MenuBar
+ menubar = uimanager.get_widget ('/MainMenu')
+ vbox.pack_start (menubar, False)
+
+ # create a Toolbar
+ toolbar = uimanager.get_widget ('/MainToolbar')
+ ###toolbar.set_style(gtk.TOOLBAR_ICONS)
+
+ vbox.pack_start (toolbar, False)
+
+ # create notebook
+ self.notebook = gtk.Notebook()
+ self.notebook.connect('switch-page',self.on_notebook_switch_page)
+
+ vbox.pack_start (self.notebook, False)
+ vbox.set_child_packing (self.notebook,True,True,0,gtk.PACK_START)
+
+ window.show_all()
+ return
+
+ def main(self):
+ "Begin cicle main"
+ gtk.main()
+
+ def quit_program(self,data1=None,data2=None):
+ "Quit of program"
+ gtk.main_quit()
+
def show_about (widget,data,self):
self.about.show()
@@ -251,20 +251,20 @@
return ad
- def about_delete (self,about,event):
- about.hide ()
- return True
+ def about_delete (self,about,event):
+ about.hide ()
+ return True
- def append_page_to_notebook(self,session):
- # load a new instance of table_page
- admin = self.load_table_page()
+ def append_page_to_notebook(self,session):
+ # load a new instance of table_page
+ admin = self.load_table_page()
- admin.entry_quota_new.set_properties(editable=False)
+ admin.entry_quota_new.set_properties(editable=False)
- admin.label_cnx.set_text(_("Connect"))
- admin.image_cnx.set_from_stock (gtk.STOCK_DISCONNECT,gtk.ICON_SIZE_BUTTON)
+ admin.label_cnx.set_text(_("Connect"))
+ admin.image_cnx.set_from_stock (gtk.STOCK_DISCONNECT,gtk.ICON_SIZE_BUTTON)
- # create a new page on notebook
+ # create a new page on notebook
hbox_image = gtk.HBox(False,0)
image = gtk.Image()
image.set_from_stock('gtk-close','GTK_ICON_SIZE_MENU')
@@ -273,168 +273,168 @@
button = gtk.Button()
button.set_relief('GTK_RELIEF_NONE')
button.add(hbox_image)
- button.connect('clicked',self.on_button_page_clicked,admin)
+ button.connect('clicked',self.on_button_page_clicked,admin)
- hbox_b = gtk.HBox(False,0)
+ hbox_b = gtk.HBox(False,0)
label = gtk.Label(session.name)
hbox_b.pack_start(label,True,False,False)
- hbox_b.pack_start(button,True,False,False)
+ hbox_b.pack_start(button,True,False,False)
hbox_image.show()
image.show()
button.show()
- label.show()
+ label.show()
+
+ # create treeview/treemodel for users
+ model = gtk.TreeStore(gtk.gdk.Pixbuf,
+ gobject.TYPE_STRING)
+
+ col = gtk.TreeViewColumn (_("Mailboxs"))
+ col.set_resizable (True)
+ admin.treeview_users.append_column (col)
+ cell = gtk.CellRendererPixbuf()
+ col.pack_start (cell,False)
+ col.add_attribute (cell,"pixbuf",COLUMN_MAILBOX_ICON)
+ cell = gtk.CellRendererText()
+ col.pack_start (cell,True)
+ col.add_attribute (cell,"text",COLUMN_MAILBOX)
+
+ admin.treeview_users.set_rules_hint (True)
+ admin.treeview_users.set_model (model)
+ admin.treeview_users.set_reorderable(False)
+
+ # create treeview/treemodel for acls
+ model_acl = gtk.ListStore(gobject.TYPE_STRING,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_BOOLEAN)
+
+
+ cell = gtk.CellRendererText()
+ cell.set_property('editable',True)
+ cell.connect ('edited',gyrus_acl.on_identifier_edited,admin,self)
+
+ col = gtk.TreeViewColumn (_("identifier"),cell,text=0)
+ col.set_resizable (True)
+ admin.treeview_acl.append_column (col)
+
+ for ncol in range(1,10):
+
+ cell = gtk.CellRendererToggle()
+ cell.set_property('activatable',True)
+ cell.connect ('toggled',gyrus_acl.on_toggled_acl,admin,ncol)
+
+ colp = gtk.TreeViewColumn (perm[ncol],cell)
+ colp.set_resizable (True)
+ colp.add_attribute(cell,"active",ncol)
+ admin.treeview_acl.append_column (colp)
+
+ admin.treeview_acl.set_model (model_acl)
+ admin.treeview_acl.set_reorderable(False)
+
+ admin.label_host.set_label(session.host)
+ admin.label_port.set_label(str(session.port))
+ admin.label_user.set_label(session.user)
+
+ admin.session_name = session.name
+ admin.session_host = session.host
+ admin.session_port = session.port
+ admin.session_user = session.user
+ admin.session_tls = session.tls
+ admin.cnx = None
+
+ admin.button_connect.connect ("clicked", self.on_button_connect_clicked,admin)
+ admin.button_quota_apply.connect ("clicked", self.on_button_quota_apply_clicked,admin)
+
+ selection = admin.treeview_users.get_selection()
+ selection.connect("changed",self.on_users_selection_changed,admin)
+
+ selection = admin.treeview_acl.get_selection()
+ selection.connect("changed",self.on_acl_selection_changed,admin)
+
+ admin.treeview_users.show()
+ admin.treeview_acl.show()
+ admin.table_page.show()
+
+ if admin.session_tls:
+ admin.image_secure.set_from_stock (gtk.STOCK_DIALOG_AUTHENTICATION,gtk.ICON_SIZE_BUTTON)
+ admin.image_secure.show()
+ else:
+ admin.image_secure.hide()
+
+ # add new table at main array
+ table = admin.table_page
+ self.imap_server[table] = admin
+
+ #add new page to notebook
+ page = self.notebook.append_page(admin.table_page,hbox_b)
+ self.notebook.set_current_page(page)
+
+
+ def get_current_gyrus_admin (self):
+ # return the current CyrusAdmin
+ page = self.notebook.get_current_page()
+ table = self.notebook.get_nth_page(page)
+
+ admin = self.imap_server[table]
+ return admin
+
+ def on_report_action (self,action):
+ admin = self.get_current_gyrus_admin()
+ report = gyrus_print.GyrusReport(admin)
+
+
+ def on_find_action (self,action):
+ gyrus_find.load_page_find(self)
+
+
+ def on_refresh_action (self,action):
+ admin = self.get_current_gyrus_admin()
+ lstore,num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
+ self.refresh_treeview_user (lstore,num_usr)
+
+ def on_entryacldelete_action (self,action):
+ admin = self.get_current_gyrus_admin()
+
+ selection = admin.treeview_acl.get_selection()
+ model,iter = selection.get_selected()
+
+ dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
+ gtk.BUTTONS_YES_NO, _("Really delete this ACL entry?"))
- # create treeview/treemodel for users
- model = gtk.TreeStore(gtk.gdk.Pixbuf,
- gobject.TYPE_STRING)
-
- col = gtk.TreeViewColumn (_("Mailboxs"))
- col.set_resizable (True)
- admin.treeview_users.append_column (col)
- cell = gtk.CellRendererPixbuf()
- col.pack_start (cell,False)
- col.add_attribute (cell,"pixbuf",COLUMN_MAILBOX_ICON)
- cell = gtk.CellRendererText()
- col.pack_start (cell,True)
- col.add_attribute (cell,"text",COLUMN_MAILBOX)
-
- admin.treeview_users.set_rules_hint (True)
- admin.treeview_users.set_model (model)
- admin.treeview_users.set_reorderable(False)
-
- # create treeview/treemodel for acls
- model_acl = gtk.ListStore(gobject.TYPE_STRING,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_BOOLEAN)
-
-
- cell = gtk.CellRendererText()
- cell.set_property('editable',True)
- cell.connect ('edited',gyrus_acl.on_identifier_edited,admin,self)
-
- col = gtk.TreeViewColumn (_("identifier"),cell,text=0)
- col.set_resizable (True)
- admin.treeview_acl.append_column (col)
-
- for ncol in range(1,10):
-
- cell = gtk.CellRendererToggle()
- cell.set_property('activatable',True)
- cell.connect ('toggled',gyrus_acl.on_toggled_acl,admin,ncol)
-
- colp = gtk.TreeViewColumn (perm[ncol],cell)
- colp.set_resizable (True)
- colp.add_attribute(cell,"active",ncol)
- admin.treeview_acl.append_column (colp)
-
- admin.treeview_acl.set_model (model_acl)
- admin.treeview_acl.set_reorderable(False)
-
- admin.label_host.set_label(session.host)
- admin.label_port.set_label(str(session.port))
- admin.label_user.set_label(session.user)
-
- admin.session_name = session.name
- admin.session_host = session.host
- admin.session_port = session.port
- admin.session_user = session.user
- admin.session_tls = session.tls
- admin.cnx = None
-
- admin.button_connect.connect ("clicked", self.on_button_connect_clicked,admin)
- admin.button_quota_apply.connect ("clicked", self.on_button_quota_apply_clicked,admin)
-
- selection = admin.treeview_users.get_selection()
- selection.connect("changed",self.on_users_selection_changed,admin)
-
- selection = admin.treeview_acl.get_selection()
- selection.connect("changed",self.on_acl_selection_changed,admin)
-
- admin.treeview_users.show()
- admin.treeview_acl.show()
- admin.table_page.show()
-
- if admin.session_tls:
- admin.image_secure.set_from_stock (gtk.STOCK_DIALOG_AUTHENTICATION,gtk.ICON_SIZE_BUTTON)
- admin.image_secure.show()
- else:
- admin.image_secure.hide()
-
- # add new table at main array
- table = admin.table_page
- self.imap_server[table] = admin
-
- #add new page to notebook
- page = self.notebook.append_page(admin.table_page,hbox_b)
- self.notebook.set_current_page(page)
-
-
- def get_current_gyrus_admin (self):
- # return the current CyrusAdmin
- page = self.notebook.get_current_page()
- table = self.notebook.get_nth_page(page)
-
- admin = self.imap_server[table]
- return admin
-
- def on_report_action (self,action):
- admin = self.get_current_gyrus_admin()
- report = gyrus_print.GyrusReport(admin)
-
-
- def on_find_action (self,action):
- gyrus_find.load_page_find(self)
-
-
- def on_refresh_action (self,action):
- admin = self.get_current_gyrus_admin()
- lstore,num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
- self.refresh_treeview_user (lstore,num_usr)
-
- def on_entryacldelete_action (self,action):
- admin = self.get_current_gyrus_admin()
-
- selection = admin.treeview_acl.get_selection()
- model,iter = selection.get_selected()
-
- dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
- gtk.BUTTONS_YES_NO, _("Really delete this ACL entry?"))
-
- result = dialog.run()
-
- if result == gtk.RESPONSE_YES:
- mailbox = admin.entry_mailbox.get_text()
- ident = model.get(iter,COLUMN_IDENTIFIER)
- gyrus_acl.delete_acl(mailbox,ident[0],admin)
- gyrus_acl.get_acl_of_mailbox (admin,mailbox)
-
- dialog.destroy()
-
- def on_entryaclrename_action (self,action):
- admin = self.get_current_gyrus_admin()
- selection = admin.treeview_acl.get_selection()
- model,iter = selection.get_selected()
-
- path = model.get_path(iter)
- col = admin.treeview_acl.get_column(COLUMN_IDENTIFIER)
- admin.treeview_acl.set_cursor(path,col,True)
-
-
- def on_entryaclnew_action (self,action):
- admin = self.get_current_gyrus_admin()
-
- # add new iter to model acl
- model_acl = admin.treeview_acl.get_model()
- iter = model_acl.append(None)
- model_acl.set(iter,COLUMN_IDENTIFIER,_("identifier"),
+ result = dialog.run()
+
+ if result == gtk.RESPONSE_YES:
+ mailbox = admin.entry_mailbox.get_text()
+ ident = model.get(iter,COLUMN_IDENTIFIER)
+ gyrus_acl.delete_acl(mailbox,ident[0],admin)
+ gyrus_acl.get_acl_of_mailbox (admin,mailbox)
+
+ dialog.destroy()
+
+ def on_entryaclrename_action (self,action):
+ admin = self.get_current_gyrus_admin()
+ selection = admin.treeview_acl.get_selection()
+ model,iter = selection.get_selected()
+
+ path = model.get_path(iter)
+ col = admin.treeview_acl.get_column(COLUMN_IDENTIFIER)
+ admin.treeview_acl.set_cursor(path,col,True)
+
+
+ def on_entryaclnew_action (self,action):
+ admin = self.get_current_gyrus_admin()
+
+ # add new iter to model acl
+ model_acl = admin.treeview_acl.get_model()
+ iter = model_acl.append(None)
+ model_acl.set(iter,COLUMN_IDENTIFIER,_("identifier"),
COLUMN_L,True,
COLUMN_R,True,
COLUMN_S,True,
@@ -444,354 +444,353 @@
COLUMN_C,True,
COLUMN_D,True,
COLUMN_A,True)
-
- # select the iter
- selection = admin.treeview_acl.get_selection()
- selection.select_iter(iter)
-
- path = model_acl.get_path(iter)
- col = admin.treeview_acl.get_column(COLUMN_IDENTIFIER)
- admin.treeview_acl.set_cursor(path,col,True)
-
-
- def on_removemailbox_action(self,action):
- admin = self.get_current_gyrus_admin()
-
- dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
- gtk.BUTTONS_YES_NO, _("Really delete mailbox and all of its submailboxes?"))
-
- result = dialog.run()
- if result == gtk.RESPONSE_YES:
- # get mailbox name
- mailbox = admin.entry_mailbox.get_text().strip()
-
- # remove mailbox
- res,msg = gyrus_admin_mailbox.remove_mailbox (admin,mailbox)
-
- if res == True:
- # refresh list of mailbox
- lstore , num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
- self.refresh_treeview_user (lstore,num_usr)
- else:
- self.show_message (msg,gtk.MESSAGE_ERROR)
-
- dialog.destroy()
-
-
- def on_button_page_clicked (self,button,admin):
- page = self.notebook.page_num(admin.table_page)
- self.notebook.remove_page(page)
-
- page = self.notebook.get_current_page()
-
- if page < 0:
- self.actiongroup_window.set_sensitive (True)
- self.actiongroup_server.set_sensitive (False)
- self.actiongroup_mailbox.set_sensitive (False)
- self.actiongroup_acl.set_sensitive (False)
- else:
- admin = self.get_current_gyrus_admin()
- self.verify_sensitive_actiongroup(admin)
-
-
- def on_notebook_switch_page(self,notebook,page,page_num):
- table = notebook.get_nth_page (page_num)
- admin = self.imap_server[table]
- self.verify_sensitive_actiongroup (admin)
-
-
- def verify_sensitive_actiongroup (self,admin):
- #self.actiongroup_window.set_sensitive (True)
- #self.actiongroup_server.set_sensitive (True)
-
- selection = admin.treeview_users.get_selection()
- model,iter = selection.get_selected()
-
- if iter:
- self.actiongroup_mailbox.set_sensitive (True)
- else:
- self.actiongroup_mailbox.set_sensitive (False)
-
- selection = admin.treeview_acl.get_selection()
- model,iter = selection.get_selected()
- if iter:
- self.actiongroup_acl.set_sensitive (True)
- else:
- self.actiongroup_acl.set_sensitive (False)
-
-
-
- def load_table_page (self):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "page.glade"),"table_page",None)
-
- admin = GyrusAdmin()
-
- admin.table_page = glade_file.get_widget ("table_page")
- admin.label_host = glade_file.get_widget ("label_host")
- admin.label_port = glade_file.get_widget ("label_port")
- admin.label_user = glade_file.get_widget ("label_user")
- admin.label_cnx = glade_file.get_widget ("label_cnx")
- admin.image_cnx = glade_file.get_widget ("image_cnx")
- admin.image_secure = glade_file.get_widget ("image_secure")
- admin.button_connect = glade_file.get_widget ("button_connect")
- admin.entry_quota_new = glade_file.get_widget ("entry_quota_new")
- admin.button_quota_apply = glade_file.get_widget ("button_quota_apply")
- admin.treeview_users = glade_file.get_widget ("treeview_users")
- admin.treeview_acl = glade_file.get_widget ("treeview_acl")
-
- admin.entry_mailbox = glade_file.get_widget ("entry_mailbox")
- admin.entry_assigned = glade_file.get_widget ("entry_assigned")
- admin.entry_free = glade_file.get_widget ("entry_free")
-
- return admin
-
-
- def on_button_connect_clicked (self,button,admin):
-
- if admin.cnx == None:
- connected = False
- if (admin.session_tls):
- # TLS
- try:
- cnx = IMAP4_SSL(admin.session_host,int(admin.session_port))
- connected = True
- except:
- msgerr = _("Could not connect to secure server")
- connected = False
- else:
- # Not TLS
- try:
- cnx = IMAP4(admin.session_host,int(admin.session_port))
- connected = True
- except:
- msgerr = _("Could not connect to server")
- connected = False
-
- if (connected):
- admin.cnx = cnx
-
- # authenticate user
- auth = self.autenthicate_user (admin)
-
- if (auth == True):
- lstore , num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
- self.refresh_treeview_user(lstore,num_usr)
-
- self.actiongroup_window.set_sensitive (True)
- self.actiongroup_server.set_sensitive (True)
-
- admin.label_cnx.set_text(_("Disconnect"))
- admin.image_cnx.set_from_stock (gtk.STOCK_CONNECT,gtk.ICON_SIZE_BUTTON)
-
- elif (auth == False):
- self.show_message (_("Could not logging"),gtk.MESSAGE_ERROR)
- admin.cnx = None
- else:
- admin.cnx = None
- else:
- self.show_message (msgerr,gtk.MESSAGE_ERROR)
- else:
- admin.label_cnx.set_text(_("Connect"))
- admin.image_cnx.set_from_stock (gtk.STOCK_DISCONNECT,gtk.ICON_SIZE_BUTTON)
- self.actiongroup_window.set_sensitive (True)
- self.actiongroup_server.set_sensitive (False)
- self.actiongroup_mailbox.set_sensitive (False)
- self.actiongroup_acl.set_sensitive (False)
- self.clear_all_widget_of_admin(admin)
-
- def refresh_treeview_user(self,lstore,num_users):
- admin = self.get_current_gyrus_admin()
- admin.treeview_users.set_model(lstore)
- col = admin.treeview_users.get_column(0)
- if ( col != 0 ):
- col.set_title(_("Mailboxs" + " (" + str(num_users) + ")"))
- else:
- col.set_title(_("Mailboxs") + " (0)")
-
-
- def clear_all_widget_of_admin (self,admin):
- admin.cnx = None
- admin.treeview_acl.get_model().clear()
- admin.treeview_users.get_model().clear()
- col = admin.treeview_users.get_column(0)
- col.set_title(_("Mailboxs"))
-
-
- def is_only_numbers (self,value):
- if (re.match("[0-9]+$",value)):
- return True
- else:
- return False
-
-
- def on_button_quota_apply_clicked (self,button,admin):
- mb = admin.entry_mailbox.get_text()
-
- newquota = (admin.entry_quota_new.get_text()).strip()
-
- if (newquota):
- # filter only numbers
- if (self.is_only_numbers(newquota)):
- setok,msgset = gyrus_admin_mailbox.set_quota_of_mailbox (admin,mb,newquota)
-
- if (setok == True):
- admin.entry_quota_new.set_text("")
-
- res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,mb)
- if res == True:
- self.show_quota (admin,mb,quota,free)
-
- else:
- self.show_quota (admin,mb,0,0)
- self.show_message (msg,gtk.MESSAGE_ERROR)
-
- self.actiongroup_mailbox.set_sensitive (True)
- admin.entry_quota_new.set_properties(editable=True)
- gyrus_acl.get_acl_of_mailbox (admin,mb)
- else:
- self.show_message (msgset,gtk.MESSAGE_ERROR)
-
- else:
- self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
- else:
- self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
-
-
- def autenthicate_user (self,admin):
- auth = False
-
- dialog_password,entry_password = self.load_dialog_password()
-
- result = dialog_password.run()
- if result == gtk.RESPONSE_OK:
- pwd = entry_password.get_text()
-
- try:
- admin.cnx.login (admin.session_user,pwd)
- auth = True
- except:
- auth = False
- else:
- auth = None
-
- dialog_password.destroy()
- return auth
-
-
- def load_dialog_password (self):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "page.glade"),"dialog_password",None)
-
- dialog_password = glade_file.get_widget ("dialog_password")
- entry_password = glade_file.get_widget ("entry_password")
-
- return dialog_password,entry_password
-
-
- def show_message (self,msg,type):
- dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, type,gtk.BUTTONS_OK, msg)
- dialog.run()
- dialog.destroy()
-
-
- def on_acl_selection_changed(self,selection,admin):
- model,iter = selection.get_selected()
-
- if (iter):
- self.actiongroup_acl.set_sensitive (True)
- else:
- self.actiongroup_acl.set_sensitive (False)
-
- def show_quota (self,admin,mb,quota,free):
- admin.entry_mailbox.set_text(mb)
- admin.entry_assigned.set_text(str(quota))
- admin.entry_free.set_text(str(free))
-
-
- def on_users_selection_changed(self,selection,admin):
- model,iter = selection.get_selected()
-
- if (iter):
- mb = model.get(iter,COLUMN_MAILBOX)
- res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,mb[0])
-
- if res == True:
- self.show_quota (admin,mb[0],quota,free)
- else:
- self.show_quota (admin,mb[0],0,0)
- self.show_message (msg,gtk.MESSAGE_ERROR)
-
- self.actiongroup_mailbox.set_sensitive (True)
- admin.entry_quota_new.set_properties(editable=True)
- gyrus_acl.get_acl_of_mailbox (admin,mb[0])
-
- else:
- self.actiongroup_mailbox.set_sensitive (False)
- admin.entry_assigned.set_text ("")
- admin.entry_free.set_text ("")
- admin.entry_mailbox.set_text ("")
- model_acl = admin.treeview_acl.get_model()
- model_acl.clear()
- admin.entry_quota_new.set_properties(editable=False)
- admin.entry_quota_new.set_text("")
-
-
- def on_addmailbox_action (self,action):
- page = self.notebook.get_current_page()
- table_page = self.notebook.get_nth_page(page)
-
- admin = self.imap_server[table_page]
- self.load_dialog_edit_mailbox(admin)
-
-
- def load_dialog_edit_mailbox (self,admin):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "create_mailbox.glade"),None,None)
-
- dialog = glade_file.get_widget ("dialog_create_mailbox")
- checkbutton_quota = glade_file.get_widget ("checkbutton_quota")
- entry_mailbox = glade_file.get_widget ("entry_mailbox")
- entry_quota = glade_file.get_widget ("entry_quota")
-
- result = dialog.run()
-
- if result == gtk.RESPONSE_OK:
- mb = entry_mailbox.get_text().strip()
- quota = entry_quota.get_text()
-
- if (self.is_only_numbers(quota)):
- # create mailbox
- result,msg = gyrus_admin_mailbox.create_mailbox(admin,mb)
-
- if result == True:
- model = admin.treeview_users.get_model()
-
- # add new mailbox
- iter = model.append(None)
- model.set (iter,COLUMN_MAILBOX,mb)
-
- # set quota to maiolbox
- setok,setmsg = gyrus_admin_mailbox.set_quota_of_mailbox(admin,mb,quota)
-
- if setok == False:
- self.show_message (setmsg,gtk.MESSAGE_ERROR)
-
- # refresh list of mailbox
- lstore , num_usr =gyrus_admin_mailbox.get_list_of_mailbox(admin)
- self.refresh_treeview_user(lstore,num_usr)
- else:
- self.show_message (msg,gtk.MESSAGE_ERROR)
- else:
- self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
-
- dialog.destroy()
-
- def tmp(widget,data,self):
- print widget, data, self
+ # select the iter
+ selection = admin.treeview_acl.get_selection()
+ selection.select_iter(iter)
+
+ path = model_acl.get_path(iter)
+ col = admin.treeview_acl.get_column(COLUMN_IDENTIFIER)
+ admin.treeview_acl.set_cursor(path,col,True)
+
+
+ def on_removemailbox_action(self,action):
+ admin = self.get_current_gyrus_admin()
+
+ dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION,
+ gtk.BUTTONS_YES_NO, _("Really delete mailbox and all of its submailboxes?"))
+
+ result = dialog.run()
+ if result == gtk.RESPONSE_YES:
+ # get mailbox name
+ mailbox = admin.entry_mailbox.get_text().strip()
+
+ # remove mailbox
+ res,msg = gyrus_admin_mailbox.remove_mailbox (admin,mailbox)
+
+ if res == True:
+ # refresh list of mailbox
+ lstore , num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
+ self.refresh_treeview_user (lstore,num_usr)
+ else:
+ self.show_message (msg,gtk.MESSAGE_ERROR)
+
+ dialog.destroy()
+
+
+ def on_button_page_clicked (self,button,admin):
+ page = self.notebook.page_num(admin.table_page)
+ self.notebook.remove_page(page)
+
+ page = self.notebook.get_current_page()
+
+ if page < 0:
+ self.actiongroup_window.set_sensitive (True)
+ self.actiongroup_server.set_sensitive (False)
+ self.actiongroup_mailbox.set_sensitive (False)
+ self.actiongroup_acl.set_sensitive (False)
+ else:
+ admin = self.get_current_gyrus_admin()
+ self.verify_sensitive_actiongroup(admin)
+
+
+ def on_notebook_switch_page(self,notebook,page,page_num):
+ table = notebook.get_nth_page (page_num)
+ admin = self.imap_server[table]
+ self.verify_sensitive_actiongroup (admin)
+
+
+ def verify_sensitive_actiongroup (self,admin):
+ #self.actiongroup_window.set_sensitive (True)
+ #self.actiongroup_server.set_sensitive (True)
+
+ selection = admin.treeview_users.get_selection()
+ model,iter = selection.get_selected()
+
+ if iter:
+ self.actiongroup_mailbox.set_sensitive (True)
+ else:
+ self.actiongroup_mailbox.set_sensitive (False)
+
+ selection = admin.treeview_acl.get_selection()
+ model,iter = selection.get_selected()
+ if iter:
+ self.actiongroup_acl.set_sensitive (True)
+ else:
+ self.actiongroup_acl.set_sensitive (False)
+
+
+
+ def load_table_page (self):
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "page.glade"),"table_page",None)
+
+ admin = GyrusAdmin()
+
+ admin.table_page = glade_file.get_widget ("table_page")
+ admin.label_host = glade_file.get_widget ("label_host")
+ admin.label_port = glade_file.get_widget ("label_port")
+ admin.label_user = glade_file.get_widget ("label_user")
+ admin.label_cnx = glade_file.get_widget ("label_cnx")
+ admin.image_cnx = glade_file.get_widget ("image_cnx")
+ admin.image_secure = glade_file.get_widget ("image_secure")
+ admin.button_connect = glade_file.get_widget ("button_connect")
+ admin.entry_quota_new = glade_file.get_widget ("entry_quota_new")
+ admin.button_quota_apply = glade_file.get_widget ("button_quota_apply")
+ admin.treeview_users = glade_file.get_widget ("treeview_users")
+ admin.treeview_acl = glade_file.get_widget ("treeview_acl")
+
+ admin.entry_mailbox = glade_file.get_widget ("entry_mailbox")
+ admin.entry_assigned = glade_file.get_widget ("entry_assigned")
+ admin.entry_free = glade_file.get_widget ("entry_free")
+
+ return admin
+
+
+ def on_button_connect_clicked (self,button,admin):
+
+ if admin.cnx == None:
+ connected = False
+ if (admin.session_tls):
+ # TLS
+ try:
+ cnx = IMAP4_SSL(admin.session_host,int(admin.session_port))
+ connected = True
+ except:
+ msgerr = _("Could not connect to secure server")
+ connected = False
+ else:
+ # Not TLS
+ try:
+ cnx = IMAP4(admin.session_host,int(admin.session_port))
+ connected = True
+ except:
+ msgerr = _("Could not connect to server")
+ connected = False
+
+ if (connected):
+ admin.cnx = cnx
+
+ # authenticate user
+ auth = self.autenthicate_user (admin)
+
+ if (auth == True):
+ lstore , num_usr = gyrus_admin_mailbox.get_list_of_mailbox(admin)
+ self.refresh_treeview_user(lstore,num_usr)
+
+ self.actiongroup_window.set_sensitive (True)
+ self.actiongroup_server.set_sensitive (True)
+
+ admin.label_cnx.set_text(_("Disconnect"))
+ admin.image_cnx.set_from_stock (gtk.STOCK_CONNECT,gtk.ICON_SIZE_BUTTON)
+
+ elif (auth == False):
+ self.show_message (_("Could not logging"),gtk.MESSAGE_ERROR)
+ admin.cnx = None
+ else:
+ admin.cnx = None
+ else:
+ self.show_message (msgerr,gtk.MESSAGE_ERROR)
+ else:
+ admin.label_cnx.set_text(_("Connect"))
+ admin.image_cnx.set_from_stock (gtk.STOCK_DISCONNECT,gtk.ICON_SIZE_BUTTON)
+ self.actiongroup_window.set_sensitive (True)
+ self.actiongroup_server.set_sensitive (False)
+ self.actiongroup_mailbox.set_sensitive (False)
+ self.actiongroup_acl.set_sensitive (False)
+ self.clear_all_widget_of_admin(admin)
+
+ def refresh_treeview_user(self,lstore,num_users):
+ admin = self.get_current_gyrus_admin()
+ admin.treeview_users.set_model(lstore)
+ col = admin.treeview_users.get_column(0)
+ if ( col != 0 ):
+ col.set_title(_("Mailboxs" + " (" + str(num_users) + ")"))
+ else:
+ col.set_title(_("Mailboxs") + " (0)")
+
+
+ def clear_all_widget_of_admin (self,admin):
+ admin.cnx = None
+ admin.treeview_acl.get_model().clear()
+ admin.treeview_users.get_model().clear()
+ col = admin.treeview_users.get_column(0)
+ col.set_title(_("Mailboxs"))
+
+
+ def is_only_numbers (self,value):
+ if (re.match("[0-9]+$",value)):
+ return True
+ else:
+ return False
+
+
+ def on_button_quota_apply_clicked (self,button,admin):
+ mb = admin.entry_mailbox.get_text()
+
+ newquota = (admin.entry_quota_new.get_text()).strip()
+
+ if (newquota):
+ # filter only numbers
+ if (self.is_only_numbers(newquota)):
+ setok,msgset = gyrus_admin_mailbox.set_quota_of_mailbox (admin,mb,newquota)
+
+ if (setok == True):
+ admin.entry_quota_new.set_text("")
+
+ res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,mb)
+ if res == True:
+ self.show_quota (admin,mb,quota,free)
+ else:
+ self.show_quota (admin,mb,0,0)
+ self.show_message (msg,gtk.MESSAGE_ERROR)
+
+ self.actiongroup_mailbox.set_sensitive (True)
+ admin.entry_quota_new.set_properties(editable=True)
+ gyrus_acl.get_acl_of_mailbox (admin,mb)
+ else:
+ self.show_message (msgset,gtk.MESSAGE_ERROR)
+
+ else:
+ self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
+ else:
+ self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
+
+
+ def autenthicate_user (self,admin):
+ auth = False
+
+ dialog_password,entry_password = self.load_dialog_password()
+
+ result = dialog_password.run()
+ if result == gtk.RESPONSE_OK:
+ pwd = entry_password.get_text()
+
+ try:
+ admin.cnx.login (admin.session_user,pwd)
+ auth = True
+ except:
+ auth = False
+ else:
+ auth = None
+
+ dialog_password.destroy()
+ return auth
+
+
+ def load_dialog_password (self):
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "page.glade"),"dialog_password",None)
+
+ dialog_password = glade_file.get_widget ("dialog_password")
+ entry_password = glade_file.get_widget ("entry_password")
+
+ return dialog_password,entry_password
+
+
+ def show_message (self,msg,type):
+ dialog = gtk.MessageDialog(None,gtk.DIALOG_MODAL, type,gtk.BUTTONS_OK, msg)
+ dialog.run()
+ dialog.destroy()
+
+
+ def on_acl_selection_changed(self,selection,admin):
+ model,iter = selection.get_selected()
+
+ if (iter):
+ self.actiongroup_acl.set_sensitive (True)
+ else:
+ self.actiongroup_acl.set_sensitive (False)
+
+ def show_quota (self,admin,mb,quota,free):
+ admin.entry_mailbox.set_text(mb)
+ admin.entry_assigned.set_text(str(quota))
+ admin.entry_free.set_text(str(free))
+
+
+ def on_users_selection_changed(self,selection,admin):
+ model,iter = selection.get_selected()
+
+ if (iter):
+ mb = model.get(iter,COLUMN_MAILBOX)
+ res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,mb[0])
+
+ if res == True:
+ self.show_quota (admin,mb[0],quota,free)
+ else:
+ self.show_quota (admin,mb[0],0,0)
+ self.show_message (msg,gtk.MESSAGE_ERROR)
+
+ self.actiongroup_mailbox.set_sensitive (True)
+ admin.entry_quota_new.set_properties(editable=True)
+ gyrus_acl.get_acl_of_mailbox (admin,mb[0])
+
+ else:
+ self.actiongroup_mailbox.set_sensitive (False)
+ admin.entry_assigned.set_text ("")
+ admin.entry_free.set_text ("")
+ admin.entry_mailbox.set_text ("")
+ model_acl = admin.treeview_acl.get_model()
+ model_acl.clear()
+ admin.entry_quota_new.set_properties(editable=False)
+ admin.entry_quota_new.set_text("")
+
+
+ def on_addmailbox_action (self,action):
+ page = self.notebook.get_current_page()
+ table_page = self.notebook.get_nth_page(page)
+
+ admin = self.imap_server[table_page]
+ self.load_dialog_edit_mailbox(admin)
+
+
+ def load_dialog_edit_mailbox (self,admin):
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "create_mailbox.glade"),None,None)
+
+ dialog = glade_file.get_widget ("dialog_create_mailbox")
+ checkbutton_quota = glade_file.get_widget ("checkbutton_quota")
+ entry_mailbox = glade_file.get_widget ("entry_mailbox")
+ entry_quota = glade_file.get_widget ("entry_quota")
+
+ result = dialog.run()
+
+ if result == gtk.RESPONSE_OK:
+ mb = entry_mailbox.get_text().strip()
+ quota = entry_quota.get_text()
+
+ if (self.is_only_numbers(quota)):
+ # create mailbox
+ result,msg = gyrus_admin_mailbox.create_mailbox(admin,mb)
+
+ if result == True:
+ model = admin.treeview_users.get_model()
+
+ # add new mailbox
+ iter = model.append(None)
+ model.set (iter,COLUMN_MAILBOX,mb)
+
+ # set quota to maiolbox
+ setok,setmsg = gyrus_admin_mailbox.set_quota_of_mailbox(admin,mb,quota)
+
+ if setok == False:
+ self.show_message (setmsg,gtk.MESSAGE_ERROR)
+
+ # refresh list of mailbox
+ lstore , num_usr =gyrus_admin_mailbox.get_list_of_mailbox(admin)
+ self.refresh_treeview_user(lstore,num_usr)
+ else:
+ self.show_message (msg,gtk.MESSAGE_ERROR)
+ else:
+ self.show_message (_("This not a valid quota"),gtk.MESSAGE_ERROR)
+
+ dialog.destroy()
+
+
+ def tmp(widget,data,self):
+ print widget, data, self
+
-
if __name__ == "__main__":
- gnome.init(config.PACKAGE,config.VERSION)
- gyrus = Gyrus()
- gyrus.main()
+ gnome.init(config.PACKAGE,config.VERSION)
+ gyrus = Gyrus()
+ gyrus.main()
Modified: branches/gyrus-python/src/gyrus_acl.py
==============================================================================
--- branches/gyrus-python/src/gyrus_acl.py (original)
+++ branches/gyrus-python/src/gyrus_acl.py Tue Mar 25 03:15:07 2008
@@ -15,131 +15,131 @@
def get_acl_of_mailbox (admin,mailbox):
- # get ACLs
- t = admin.cnx.getacl(NAMESPACE + mailbox)
- tm = t[1]
- tmp = tm[0].split(" ")
-
- lin = 1
- j = lin
- l = len(tmp)/2
-
- model_acl = admin.treeview_acl.get_model()
- model_acl.clear()
-
- while lin <= l:
- useracl = tmp[j]
- acls = tmp[j+1]
-
- iter = model_acl.append (None)
- model_acl.set(iter,COLUMN_IDENTIFIER,useracl,
- COLUMN_L,have_acl(acls,"l"),
- COLUMN_R,have_acl(acls,"r"),
- COLUMN_S,have_acl(acls,"s"),
- COLUMN_W,have_acl(acls,"w"),
- COLUMN_I,have_acl(acls,"i"),
- COLUMN_P,have_acl(acls,"p"),
- COLUMN_C,have_acl(acls,"c"),
- COLUMN_D,have_acl(acls,"d"),
- COLUMN_A,have_acl(acls,"a"))
-
- j = j + 2
- lin = lin + 1
+ # get ACLs
+ t = admin.cnx.getacl(NAMESPACE + mailbox)
+ tm = t[1]
+ tmp = tm[0].split(" ")
+
+ lin = 1
+ j = lin
+ l = len(tmp)/2
+
+ model_acl = admin.treeview_acl.get_model()
+ model_acl.clear()
+
+ while lin <= l:
+ useracl = tmp[j]
+ acls = tmp[j+1]
+
+ iter = model_acl.append (None)
+ model_acl.set(iter,COLUMN_IDENTIFIER,useracl,
+ COLUMN_L,have_acl(acls,"l"),
+ COLUMN_R,have_acl(acls,"r"),
+ COLUMN_S,have_acl(acls,"s"),
+ COLUMN_W,have_acl(acls,"w"),
+ COLUMN_I,have_acl(acls,"i"),
+ COLUMN_P,have_acl(acls,"p"),
+ COLUMN_C,have_acl(acls,"c"),
+ COLUMN_D,have_acl(acls,"d"),
+ COLUMN_A,have_acl(acls,"a"))
+
+ j = j + 2
+ lin = lin + 1
def have_acl (string,acl):
- r = string.find(acl)
+ r = string.find(acl)
+
+ if (r>=0):
+ return True
+ else:
+ return False
- if (r>=0):
- return True
- else:
- return False
-
def on_toggled_acl(cell,path,admin,ncol):
- model = admin.treeview_acl.get_model()
- iter = model.get_iter_from_string(path)
+ model = admin.treeview_acl.get_model()
+ iter = model.get_iter_from_string(path)
- user,has_permission = model.get(iter,COLUMN_IDENTIFIER,ncol)
+ user,has_permission = model.get(iter,COLUMN_IDENTIFIER,ncol)
- model.set(iter,ncol,not has_permission)
+ model.set(iter,ncol,not has_permission)
- mailbox = admin.entry_mailbox.get_text()
- model = admin.treeview_acl.get_model()
- set_acls (mailbox,model,iter,admin)
+ mailbox = admin.entry_mailbox.get_text()
+ model = admin.treeview_acl.get_model()
+ set_acls (mailbox,model,iter,admin)
def on_identifier_edited(cell,path,newname,admin,self):
- newname = newname.strip()
+ newname = newname.strip()
- model = admin.treeview_acl.get_model()
- iter = model.get_iter_from_string(path)
+ model = admin.treeview_acl.get_model()
+ iter = model.get_iter_from_string(path)
- oldname = model.get(iter,COLUMN_IDENTIFIER)
+ oldname = model.get(iter,COLUMN_IDENTIFIER)
- if oldname[0] == newname:
- # is the same iter
- pass
- else:
- # check, newname exists in acl list
- admin.newname = newname
- admin.newnameok = True
- model.foreach(check_newname_in_list,admin)
-
- if admin.newnameok:
- mailbox = admin.entry_mailbox.get_text()
- model.set(iter,COLUMN_IDENTIFIER,newname)
- set_acls (mailbox,model,iter,admin)
- delete_acl (mailbox,oldname[0],admin)
- else:
- self.show_message (_("Identifier exist: " + newname),gtk.MESSAGE_ERROR)
- model.remove(iter)
+ if oldname[0] == newname:
+ # is the same iter
+ pass
+ else:
+ # check, newname exists in acl list
+ admin.newname = newname
+ admin.newnameok = True
+ model.foreach(check_newname_in_list,admin)
+
+ if admin.newnameok:
+ mailbox = admin.entry_mailbox.get_text()
+ model.set(iter,COLUMN_IDENTIFIER,newname)
+ set_acls (mailbox,model,iter,admin)
+ delete_acl (mailbox,oldname[0],admin)
+ else:
+ self.show_message (_("Identifier exist: " + newname),gtk.MESSAGE_ERROR)
+ model.remove(iter)
def check_newname_in_list(model,path,iter,admin):
- oldname = model.get(iter,COLUMN_IDENTIFIER)
+ oldname = model.get(iter,COLUMN_IDENTIFIER)
- if oldname[0] == admin.newname:
- admin.newnameok = False
- return True
+ if oldname[0] == admin.newname:
+ admin.newnameok = False
+ return True
def delete_acl (mailbox,ident,admin):
- perm = ""
+ perm = ""
- type,data = admin.cnx.setacl(NAMESPACE + mailbox,ident,perm)
+ type,data = admin.cnx.setacl(NAMESPACE + mailbox,ident,perm)
def set_acls (mailbox,model,iter,admin):
- ident,l,r,s,w,i,p,c,d,a = model.get(iter,
- COLUMN_IDENTIFIER,
- COLUMN_L,
- COLUMN_R,
- COLUMN_S,
- COLUMN_W,
- COLUMN_I,
- COLUMN_P,
- COLUMN_C,
- COLUMN_D,
- COLUMN_A)
- perm = ""
- if l:
- perm = perm + "l"
- if r:
- perm = perm + "r"
- if s:
- perm = perm + "s"
- if w:
- perm = perm + "w"
- if i:
- perm = perm + "i"
- if p:
- perm = perm + "p"
- if c:
- perm = perm + "c"
- if d:
- perm = perm + "d"
- if a:
- perm = perm + "a"
-
- type,data = admin.cnx.setacl(NAMESPACE + mailbox,ident,perm)
+ ident,l,r,s,w,i,p,c,d,a = model.get(iter,
+ COLUMN_IDENTIFIER,
+ COLUMN_L,
+ COLUMN_R,
+ COLUMN_S,
+ COLUMN_W,
+ COLUMN_I,
+ COLUMN_P,
+ COLUMN_C,
+ COLUMN_D,
+ COLUMN_A)
+ perm = ""
+ if l:
+ perm = perm + "l"
+ if r:
+ perm = perm + "r"
+ if s:
+ perm = perm + "s"
+ if w:
+ perm = perm + "w"
+ if i:
+ perm = perm + "i"
+ if p:
+ perm = perm + "p"
+ if c:
+ perm = perm + "c"
+ if d:
+ perm = perm + "d"
+ if a:
+ perm = perm + "a"
+
+ type,data = admin.cnx.setacl(NAMESPACE + mailbox,ident,perm)
Modified: branches/gyrus-python/src/gyrus_admin_mailbox.py
==============================================================================
--- branches/gyrus-python/src/gyrus_admin_mailbox.py (original)
+++ branches/gyrus-python/src/gyrus_admin_mailbox.py Tue Mar 25 03:15:07 2008
@@ -10,101 +10,101 @@
import config
def remove_mailbox (admin,mailbox):
- response = admin.cnx.delete(NAMESPACE + mailbox)
+ response = admin.cnx.delete(NAMESPACE + mailbox)
- if response[0] == 'OK':
- return True,None
- else:
- return False,response[1][0]
+ if response[0] == 'OK':
+ return True,None
+ else:
+ return False,response[1][0]
def create_mailbox (admin,mailbox):
- response = admin.cnx.create(NAMESPACE + mailbox)
+ response = admin.cnx.create(NAMESPACE + mailbox)
- if response[0] == 'OK':
- return True,None
- else:
- return False,response[1][0]
+ if response[0] == 'OK':
+ return True,None
+ else:
+ return False,response[1][0]
def set_quota_of_mailbox (admin,mailbox,quota):
- new = int(quota) * 1024
- new = "(STORAGE " + str(new) + ")"
+ new = int(quota) * 1024
+ new = "(STORAGE " + str(new) + ")"
- type,data = admin.cnx.setquota(NAMESPACE + mailbox,new)
+ type,data = admin.cnx.setquota(NAMESPACE + mailbox,new)
+
+ if type == 'OK':
+ return True,None
+ else:
+ return False,type
- if type == 'OK':
- return True,None
- else:
- return False,type
-
def get_list_of_mailbox(admin):
-
- lstore = gtk.ListStore(
- gtk.gdk.Pixbuf,
- gobject.TYPE_STRING,
+
+ lstore = gtk.ListStore(
+ gtk.gdk.Pixbuf,
+ gobject.TYPE_STRING,
gobject.TYPE_INT,
- gobject.TYPE_INT)
-
- model = admin.treeview_users.get_model()
- model.clear()
-
- # get all mailbox (only top-level)
- type, data = admin.cnx.list(NAMESPACE,"%")
-
-
-
- if not data[0] == None:
- icon = os.path.join (config.ARTDIR, "gyrus.png")
- token = None
- num_users = 0
- for mailbox in data:
- info_mailbox = mailbox.split("\"")
- domain_name_mailbox = info_mailbox[3].split(".")
- try:
-
- name_mailbox = domain_name_mailbox[1]
-
- #Checks name_mailbox will not repeat
- if not (name_mailbox == token):
- token = name_mailbox
- iter = lstore.append(None)
-
- #get other data we want save
- res,msg,free,quota = get_quota_of_mailbox (admin,name_mailbox)
-
- lstore.set (iter,COLUMN_MAILBOX_ICON,
- gtk.gdk.pixbuf_new_from_file_at_size (icon,15,15),
- COLUMN_MAILBOX,name_mailbox,
- COLUMN_FREE,free,
- COLUMN_QUOTA_ASSIGNED,quota)
-
- num_users = num_users + 1
- except:
- print "error"
- pass
-
-
-
- return lstore,num_users
+ gobject.TYPE_INT)
+
+ model = admin.treeview_users.get_model()
+ model.clear()
+
+ # get all mailbox (only top-level)
+ type, data = admin.cnx.list(NAMESPACE,"%")
+
+
+
+ if not data[0] == None:
+ icon = os.path.join (config.ARTDIR, "gyrus.png")
+ token = None
+ num_users = 0
+ for mailbox in data:
+ info_mailbox = mailbox.split("\"")
+ domain_name_mailbox = info_mailbox[3].split(".")
+ try:
+
+ name_mailbox = domain_name_mailbox[1]
+
+ #Checks name_mailbox will not repeat
+ if not (name_mailbox == token):
+ token = name_mailbox
+ iter = lstore.append(None)
+
+ #get other data we want save
+ res,msg,free,quota = get_quota_of_mailbox (admin,name_mailbox)
+
+ lstore.set (iter,COLUMN_MAILBOX_ICON,
+ gtk.gdk.pixbuf_new_from_file_at_size (icon,15,15),
+ COLUMN_MAILBOX,name_mailbox,
+ COLUMN_FREE,free,
+ COLUMN_QUOTA_ASSIGNED,quota)
+
+ num_users = num_users + 1
+ except:
+ print "error"
+ pass
+
+
+
+ return lstore,num_users
def get_quota_of_mailbox (admin,mailbox):
- response = admin.cnx.getquota(NAMESPACE + mailbox)
+ response = admin.cnx.getquota(NAMESPACE + mailbox)
+
+ if response[0] == 'OK':
+ data_quota_mailbox = response[1]
+ tmp = data_quota_mailbox[0].split(" ")
+
+ used = tmp[2]
+ quota = tmp[3].split(")")[0]
+
+ free = (int(quota) - int(used)) / 1024
+ quota = int(quota) / 1024
+
+ return True,None,free,quota
+ else:
+ free = 0
+ quota = 0
- if response[0] == 'OK':
- data_quota_mailbox = response[1]
- tmp = data_quota_mailbox[0].split(" ")
-
- used = tmp[2]
- quota = tmp[3].split(")")[0]
-
- free = (int(quota) - int(used)) / 1024
- quota = int(quota) / 1024
-
- return True,None,free,quota
- else:
- free = 0
- quota = 0
-
- return False,response[1][0],free,quota
+ return False,response[1][0],free,quota
Modified: branches/gyrus-python/src/gyrus_constant.py
==============================================================================
--- branches/gyrus-python/src/gyrus_constant.py (original)
+++ branches/gyrus-python/src/gyrus_constant.py Tue Mar 25 03:15:07 2008
@@ -8,8 +8,8 @@
DIRLOCALE = join (PREFIX, "share", "locale")
if not os.path.exists(DIRSHARE):
- DIRGYRUS = os.path.abspath(os.curdir)
- DIRLOCALE = join(os.path.abspath(os.curdir),'locale')
+ DIRGYRUS = os.path.abspath(os.curdir)
+ DIRLOCALE = join(os.path.abspath(os.curdir),'locale')
APPNAME ="gyrus"
VERSION = "0.4.1"
@@ -24,10 +24,10 @@
# for model of mailbox
(
- COLUMN_MAILBOX_ICON,
- COLUMN_MAILBOX,
- COLUMN_QUOTA_ASSIGNED,
- COLUMN_FREE
+ COLUMN_MAILBOX_ICON,
+ COLUMN_MAILBOX,
+ COLUMN_QUOTA_ASSIGNED,
+ COLUMN_FREE
) = range (4)
# for model of ACLs
@@ -42,11 +42,11 @@
COLUMN_D = 8
COLUMN_A = 9
-
+
# for model of mailbox
(
- COLUMN_MAILBOX_ICON,
- COLUMN_MAILBOX,
- COLUMN_QUOTA_ASSIGNED,
- COLUMN_FREE
+ COLUMN_MAILBOX_ICON,
+ COLUMN_MAILBOX,
+ COLUMN_QUOTA_ASSIGNED,
+ COLUMN_FREE
) = range (4)
Modified: branches/gyrus-python/src/gyrus_find.py
==============================================================================
--- branches/gyrus-python/src/gyrus_find.py (original)
+++ branches/gyrus-python/src/gyrus_find.py Tue Mar 25 03:15:07 2008
@@ -12,92 +12,92 @@
from gyrus_constant import *
def load_page_find (self):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR,"find.glade"),None,None)
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR,"find.glade"),None,None)
- self.dialog_find = glade_file.get_widget ("dialog_find")
- self.comboboxentry_mailbox = glade_file.get_widget ("comboboxentry_mailbox")
- self.checkbutton_entire_word = glade_file.get_widget ("checkbutton_entire_word")
- self.checkbutton_wrap_around = glade_file.get_widget ("checkbutton_wrap_around")
- self.button_find_close = glade_file.get_widget ("button_find_close")
- self.button_find_find = glade_file.get_widget ("button_find_find")
+ self.dialog_find = glade_file.get_widget ("dialog_find")
+ self.comboboxentry_mailbox = glade_file.get_widget ("comboboxentry_mailbox")
+ self.checkbutton_entire_word = glade_file.get_widget ("checkbutton_entire_word")
+ self.checkbutton_wrap_around = glade_file.get_widget ("checkbutton_wrap_around")
+ self.button_find_close = glade_file.get_widget ("button_find_close")
+ self.button_find_find = glade_file.get_widget ("button_find_find")
- self.button_find_close.connect ("clicked",on_button_find_close_clicked,self)
- self.button_find_find.connect ("clicked",on_button_find_find_clicked,self)
+ self.button_find_close.connect ("clicked",on_button_find_close_clicked,self)
+ self.button_find_find.connect ("clicked",on_button_find_find_clicked,self)
- self.dialog_find.show_all()
+ self.dialog_find.show_all()
def on_button_find_close_clicked (button,self):
- self.dialog_find.destroy()
+ self.dialog_find.destroy()
def on_button_find_find_clicked (button,self):
- admin = self.get_current_gyrus_admin()
- key = self.comboboxentry_mailbox.get_active_text().strip()
+ admin = self.get_current_gyrus_admin()
+ key = self.comboboxentry_mailbox.get_active_text().strip()
- more_mailboxes = None
- wrap_around = None
- search_from_beginning = None
-
- if self.checkbutton_entire_word.get_active():
- mode = "MODE_ENTIRE_WORD"
- else:
- mode = "MODE_ANY"
-
- wrap_around = self.checkbutton_wrap_around.get_active()
-
- selection = admin.treeview_users.get_selection()
- model,iter = selection.get_selected()
-
- # If no item is selected, start the search from the begin
- if not iter:
- iter = model.get_iter_first()
- search_from_beginning = True
- else:
- iter = model.iter_next(iter)
-
- # end of items
- if not iter:
- iter = model.get_iter_first()
-
- search_from_beginning = False
-
- while True:
- value = model.get(iter,COLUMN_MAILBOX)
-
- if mode == "MODE_ANY":
- res = value[0].find(key)
- if res >= 0:
- found = True
- else:
- found = False
- else:
- if value[0] == key:
- found = True
- else:
- found = False
-
- if found:
- selection = admin.treeview_users.get_selection()
- selection.select_iter(iter)
- path = model.get_path(iter)
- admin.treeview_users.set_cursor(path,None,False)
-
-
- # if 'wrap around' mode is selected allows starting over again
- iter = model.iter_next(iter)
- if iter:
- more_mailboxes = True
- else:
- more_mailboxes = False
-
- if not more_mailboxes and wrap_around and not search_from_beginning:
- iter = model.get_iter_first()
- more_mailboxes = True
- search_from_beginning = True
-
- if not found and more_mailboxes:
- pass
- else:
- break
-
- if not found:
- self.show_message (_("The text was not found in the mailbox list."),gtk.MESSAGE_INFO)
+ more_mailboxes = None
+ wrap_around = None
+ search_from_beginning = None
+
+ if self.checkbutton_entire_word.get_active():
+ mode = "MODE_ENTIRE_WORD"
+ else:
+ mode = "MODE_ANY"
+
+ wrap_around = self.checkbutton_wrap_around.get_active()
+
+ selection = admin.treeview_users.get_selection()
+ model,iter = selection.get_selected()
+
+ # If no item is selected, start the search from the begin
+ if not iter:
+ iter = model.get_iter_first()
+ search_from_beginning = True
+ else:
+ iter = model.iter_next(iter)
+
+ # end of items
+ if not iter:
+ iter = model.get_iter_first()
+
+ search_from_beginning = False
+
+ while True:
+ value = model.get(iter,COLUMN_MAILBOX)
+
+ if mode == "MODE_ANY":
+ res = value[0].find(key)
+ if res >= 0:
+ found = True
+ else:
+ found = False
+ else:
+ if value[0] == key:
+ found = True
+ else:
+ found = False
+
+ if found:
+ selection = admin.treeview_users.get_selection()
+ selection.select_iter(iter)
+ path = model.get_path(iter)
+ admin.treeview_users.set_cursor(path,None,False)
+
+
+ # if 'wrap around' mode is selected allows starting over again
+ iter = model.iter_next(iter)
+ if iter:
+ more_mailboxes = True
+ else:
+ more_mailboxes = False
+
+ if not more_mailboxes and wrap_around and not search_from_beginning:
+ iter = model.get_iter_first()
+ more_mailboxes = True
+ search_from_beginning = True
+
+ if not found and more_mailboxes:
+ pass
+ else:
+ break
+
+ if not found:
+ self.show_message (_("The text was not found in the mailbox list."),gtk.MESSAGE_INFO)
Modified: branches/gyrus-python/src/gyrus_print.py
==============================================================================
--- branches/gyrus-python/src/gyrus_print.py (original)
+++ branches/gyrus-python/src/gyrus_print.py Tue Mar 25 03:15:07 2008
@@ -20,138 +20,134 @@
gtk.glade.textdomain(APPNAME)
MAX_USER_PAGE = 60
-SPACE_PER_LINE = 4
+SPACE_PER_LINE = 4
PAGE_POS_COLUMN_2 = 40
PAGE_POS_COLUMN_3 = 80
PAGE_POS_COLUMN_4 = 120
PAGE_POS_COLUMN_5 = 150
-
-class GyrusReport:
- def __init__(self, admin):
- self.admin = admin
- self.settings = gtk.PrintSettings()
- self.op = gtk.PrintOperation()
- self.n_page = 0
-
- # signals
-
- self.op.connect('begin_print', self.begin_print, self.admin)
- self.op.connect('draw_page', self.draw_page, self.admin)
-
- self.do_print()
-
- def do_print(self):
- # set some values
- self.op.set_print_settings(self.settings)
- self.op.set_unit(gtk.UNIT_MM)
-
- try:
- response = self.op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG)
- except gobject.GError, ex:
- error_dialog = gtk.MessageDialog(None,
- gtk.DIALOG_DESTROY_WITH_PARENT,
- gtk._MESSAGE_ERROR,
- gtk.BUTTONS_CLOSE,
- ("Error printing file:\n%s" % str(ex)))
- error_dialog.connect("response", gtk.Widget.destroy)
- error_dialog.show()
-
- if response == gtk.PRINT_OPERATION_RESULT_APPLY:
- settings = self.op.get_print_settings()
-
-
- def begin_print(self,operation,context,admin):
- model = admin.treeview_users.get_model()
- n = float(len(model))
- self.n_pages =int (ceil (n/MAX_USER_PAGE))
- operation.set_n_pages(self.n_pages)
-
- def draw_page(self,operation,context,page,admin):
-
- cairo_context = context.get_cairo_context()
- width = context.get_width()
- page_setup = context.get_page_setup()
- left_margin = page_setup.get_left_margin(gtk.UNIT_MM)
- right_margin = page_setup.get_right_margin(gtk.UNIT_MM)
- top_margin = page_setup.get_top_margin(gtk.UNIT_MM)
- bottom_margin = page_setup.get_bottom_margin(gtk.UNIT_MM)
- page_width = page_setup.get_page_width(gtk.UNIT_MM)
- page_height = page_setup.get_page_height(gtk.UNIT_MM)
- x = left_margin
-
- layout = context.create_pango_layout()
- desc = pango.FontDescription("Sans 10")
- layout.set_font_description(desc)
-
- # print header
- self.print_header(cairo_context,layout,left_margin,page_width,right_margin,top_margin)
-
- model = admin.treeview_users.get_model()
- if(len(model)==0):
- return
-
- y = top_margin + (SPACE_PER_LINE * 2)
-
- index = ( page * MAX_USER_PAGE )
- end = index + MAX_USER_PAGE
-
- if end >= len(model):
- end = len(model)-1
-
- iter = model.get_iter(index)
- count = index
-
- while (iter and count < end):
- usr = model.get(iter,COLUMN_MAILBOX)[0]
- res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,usr)
-
- self.print_string(cairo_context,layout,x,y,usr)
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_2,y,str(quota))
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_3,y,str(quota-free))
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_4,y,str(free))
- if (quota == 0):
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5,y, str('% 0'))
- else:
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5,y, str('%% %3.0f' % ((free*1.0/quota)*100) ))
- y = y + SPACE_PER_LINE
-
- iter = model.iter_next(iter)
- count = count + 1
- # print footer
- self.print_footer(cairo_context,layout,x,page_width,right_margin,page_height,page+1)
-
-
-
- def print_line(self,cairo_context,width_line,x,width,y):
- cairo_context.move_to(x,y)
- cairo_context.line_to(width,y)
- cairo_context.set_line_join(cairo.LINE_JOIN_ROUND)
- cairo_context.set_line_width(width_line)
- cairo_context.stroke()
-
- def print_string(self,cairo_context,layout,x,y,string):
- cairo_context.move_to(x,y)
- layout.set_text(string)
- cairo_context.show_layout(layout)
-
- def print_header(self,cairo_context,layout,left_margin,page_width,right_margin,top_margin):
- self.print_line(cairo_context,WIDTH_LINE,left_margin,page_width - right_margin,top_margin)
- self.print_string(cairo_context,layout,left_margin,top_margin + WIDTH_LINE,_("Mailbox"))
- self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_2,top_margin + WIDTH_LINE,_("Quota assigned"))
- self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_3,top_margin + WIDTH_LINE,_("Quota used"))
- self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_4,top_margin + WIDTH_LINE,_("Quota free"))
- self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_5,top_margin + WIDTH_LINE,_("Percentage"))
- self.print_line(cairo_context,WIDTH_LINE,left_margin,page_width - right_margin,top_margin + (WIDTH_LINE *2)+ SPACE_PER_LINE)
-
- def print_footer(self,cairo_context,layout,x,page_width,right_margin,page_height,page):
- now= datetime.datetime.now()
- date = now.strftime(_('%H:%M:%S %m-%d-%Y'))
- self.print_line(cairo_context,WIDTH_LINE,x,page_width - right_margin,page_height-10)
- self.print_string(cairo_context,layout,x,page_height - (SPACE_PER_LINE * 2),date)
- self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5, page_height - (SPACE_PER_LINE * 2),_("Page %d" %page))
-
-
-
+class GyrusReport:
+ def __init__(self, admin):
+ self.admin = admin
+ self.settings = gtk.PrintSettings()
+ self.op = gtk.PrintOperation()
+ self.n_page = 0
+
+ # signals
+
+ self.op.connect('begin_print', self.begin_print, self.admin)
+ self.op.connect('draw_page', self.draw_page, self.admin)
+
+ self.do_print()
+
+ def do_print(self):
+ # set some values
+ self.op.set_print_settings(self.settings)
+ self.op.set_unit(gtk.UNIT_MM)
+
+ try:
+ response = self.op.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG)
+ except gobject.GError, ex:
+ error_dialog = gtk.MessageDialog(None,
+ gtk.DIALOG_DESTROY_WITH_PARENT,
+ gtk._MESSAGE_ERROR,
+ gtk.BUTTONS_CLOSE,
+ ("Error printing file:\n%s" % str(ex)))
+ error_dialog.connect("response", gtk.Widget.destroy)
+ error_dialog.show()
+
+ if response == gtk.PRINT_OPERATION_RESULT_APPLY:
+ settings = self.op.get_print_settings()
+
+
+ def begin_print(self,operation,context,admin):
+ model = admin.treeview_users.get_model()
+ n = float(len(model))
+ self.n_pages =int (ceil (n/MAX_USER_PAGE))
+ operation.set_n_pages(self.n_pages)
+
+ def draw_page(self,operation,context,page,admin):
+
+ cairo_context = context.get_cairo_context()
+ width = context.get_width()
+ page_setup = context.get_page_setup()
+ left_margin = page_setup.get_left_margin(gtk.UNIT_MM)
+ right_margin = page_setup.get_right_margin(gtk.UNIT_MM)
+ top_margin = page_setup.get_top_margin(gtk.UNIT_MM)
+ bottom_margin = page_setup.get_bottom_margin(gtk.UNIT_MM)
+ page_width = page_setup.get_page_width(gtk.UNIT_MM)
+ page_height = page_setup.get_page_height(gtk.UNIT_MM)
+ x = left_margin
+
+ layout = context.create_pango_layout()
+ desc = pango.FontDescription("Sans 10")
+ layout.set_font_description(desc)
+
+ # print header
+ self.print_header(cairo_context,layout,left_margin,page_width,right_margin,top_margin)
+
+ model = admin.treeview_users.get_model()
+ if(len(model)==0):
+ return
+
+ y = top_margin + (SPACE_PER_LINE * 2)
+
+ index = ( page * MAX_USER_PAGE )
+ end = index + MAX_USER_PAGE
+
+ if end >= len(model):
+ end = len(model)-1
+
+ iter = model.get_iter(index)
+ count = index
+
+ while (iter and count < end):
+ usr = model.get(iter,COLUMN_MAILBOX)[0]
+ res,msg,free,quota = gyrus_admin_mailbox.get_quota_of_mailbox (admin,usr)
+
+ self.print_string(cairo_context,layout,x,y,usr)
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_2,y,str(quota))
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_3,y,str(quota-free))
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_4,y,str(free))
+ if (quota == 0):
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5,y, str('% 0'))
+ else:
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5,y, str('%% %3.0f' % ((free*1.0/quota)*100) ))
+ y = y + SPACE_PER_LINE
+
+ iter = model.iter_next(iter)
+ count = count + 1
+ # print footer
+ self.print_footer(cairo_context,layout,x,page_width,right_margin,page_height,page+1)
+
+
+
+ def print_line(self,cairo_context,width_line,x,width,y):
+ cairo_context.move_to(x,y)
+ cairo_context.line_to(width,y)
+ cairo_context.set_line_join(cairo.LINE_JOIN_ROUND)
+ cairo_context.set_line_width(width_line)
+ cairo_context.stroke()
+
+ def print_string(self,cairo_context,layout,x,y,string):
+ cairo_context.move_to(x,y)
+ layout.set_text(string)
+ cairo_context.show_layout(layout)
+
+ def print_header(self,cairo_context,layout,left_margin,page_width,right_margin,top_margin):
+ self.print_line(cairo_context,WIDTH_LINE,left_margin,page_width - right_margin,top_margin)
+ self.print_string(cairo_context,layout,left_margin,top_margin + WIDTH_LINE,_("Mailbox"))
+ self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_2,top_margin + WIDTH_LINE,_("Quota assigned"))
+ self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_3,top_margin + WIDTH_LINE,_("Quota used"))
+ self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_4,top_margin + WIDTH_LINE,_("Quota free"))
+ self.print_string(cairo_context,layout,left_margin + PAGE_POS_COLUMN_5,top_margin + WIDTH_LINE,_("Percentage"))
+ self.print_line(cairo_context,WIDTH_LINE,left_margin,page_width - right_margin,top_margin + (WIDTH_LINE *2)+ SPACE_PER_LINE)
+
+ def print_footer(self,cairo_context,layout,x,page_width,right_margin,page_height,page):
+ now= datetime.datetime.now()
+ date = now.strftime(_('%H:%M:%S %m-%d-%Y'))
+ self.print_line(cairo_context,WIDTH_LINE,x,page_width - right_margin,page_height-10)
+ self.print_string(cairo_context,layout,x,page_height - (SPACE_PER_LINE * 2),date)
+ self.print_string(cairo_context,layout,x + PAGE_POS_COLUMN_5, page_height - (SPACE_PER_LINE * 2),_("Page %d" %page))
Modified: branches/gyrus-python/src/gyrus_session.py
==============================================================================
--- branches/gyrus-python/src/gyrus_session.py (original)
+++ branches/gyrus-python/src/gyrus_session.py Tue Mar 25 03:15:07 2008
@@ -17,249 +17,249 @@
PATH_SESSIONS = "/apps/gyrus/sessions/"
# for model of sessions
-COLUMN_NAME = 0
+COLUMN_NAME = 0
COLUMN_IP = 1
COLUMN_PORT = 2
COLUMN_USER = 3
COLUMN_TLS = 4
class Session:
- def __init__ (self):
- name = None
- host = None
- port = None
- user = None
- tls = None
-
+ def __init__ (self):
+ name = None
+ host = None
+ port = None
+ user = None
+ tls = None
+
def load_interface (widget,self):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "sessions.glade"),"dialog_sessions",None)
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR, "sessions.glade"),"dialog_sessions",None)
- self.window_dialog = glade_file.get_widget ("dialog_sessions")
- self.treeview_sessions = glade_file.get_widget ("treeview_sessions")
- button_new = glade_file.get_widget ("button_new")
- button_open = glade_file.get_widget ("button_open")
- button_delete = glade_file.get_widget ("button_delete")
- button_cancel = glade_file.get_widget ("button_cancel")
- button_properties = glade_file.get_widget ("button_properties")
-
- button_open.connect ("clicked", on_button_open_clicked,self)
- button_cancel.connect ("clicked", on_button_cancel_clicked,self)
- button_properties.connect ("clicked", on_button_properties_clicked,self)
- button_delete.connect ("clicked", on_button_delete_clicked,self)
- button_new.connect ("clicked", on_button_new_clicked,self)
-
- self.treeview_sessions.set_model (self.model_session)
-
- self.treeview_sessions.set_rules_hint (True)
- self.treeview_sessions.set_reorderable (True)
-
- col = gtk.TreeViewColumn (_("Name"))
- self.treeview_sessions.append_column (col)
- cell = gtk.CellRendererText()
- col.pack_start (cell,True)
- col.add_attribute (cell,"text",COLUMN_NAME)
+ self.window_dialog = glade_file.get_widget ("dialog_sessions")
+ self.treeview_sessions = glade_file.get_widget ("treeview_sessions")
+ button_new = glade_file.get_widget ("button_new")
+ button_open = glade_file.get_widget ("button_open")
+ button_delete = glade_file.get_widget ("button_delete")
+ button_cancel = glade_file.get_widget ("button_cancel")
+ button_properties = glade_file.get_widget ("button_properties")
+
+ button_open.connect ("clicked", on_button_open_clicked,self)
+ button_cancel.connect ("clicked", on_button_cancel_clicked,self)
+ button_properties.connect ("clicked", on_button_properties_clicked,self)
+ button_delete.connect ("clicked", on_button_delete_clicked,self)
+ button_new.connect ("clicked", on_button_new_clicked,self)
+
+ self.treeview_sessions.set_model (self.model_session)
+
+ self.treeview_sessions.set_rules_hint (True)
+ self.treeview_sessions.set_reorderable (True)
+
+ col = gtk.TreeViewColumn (_("Name"))
+ self.treeview_sessions.append_column (col)
+ cell = gtk.CellRendererText()
+ col.pack_start (cell,True)
+ col.add_attribute (cell,"text",COLUMN_NAME)
def load_interface_edit_session(self):
- glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR,"sessions.glade"),"dialog_session_edit",None)
+ glade_file = gtk.glade.XML (os.path.join (config.GLADEDIR,"sessions.glade"),"dialog_session_edit",None)
- self.window_dialog_session_edit = glade_file.get_widget ("dialog_session_edit")
- self.checkbutton_secure = glade_file.get_widget ("checkbutton_secure")
- self.entry_host = glade_file.get_widget ("entry_host")
- self.entry_user = glade_file.get_widget ("entry_user")
- self.entry_passwd = glade_file.get_widget ("entry_passwd")
- self.spinbutton_port = glade_file.get_widget ("spinbutton_port")
- self.button_session_edit_ok = glade_file.get_widget ("button_session_edit_ok")
- self.button_session_edit_cancel = glade_file.get_widget ("button_session_edit_cancel")
- self.entry_name = glade_file.get_widget ("entry_name")
- self.checkbutton_secure = glade_file.get_widget ("checkbutton_secure")
-
- self.button_session_edit_cancel.connect ("clicked", on_button_session_edit_cancel_clicked, self)
-
- self.window_dialog_session_edit.set_modal(True)
-
- treeselection = self.treeview_sessions.get_selection()
- model,iter = treeselection.get_selected()
-
- if (iter):
- session = get_data_of_session_selected (iter,model,self)
- self.entry_host.set_text (session.host)
- self.spinbutton_port.set_value(session.port)
- self.entry_user.set_text (session.user)
- self.entry_name.set_text (session.name)
- self.checkbutton_secure.set_active (session.tls)
+ self.window_dialog_session_edit = glade_file.get_widget ("dialog_session_edit")
+ self.checkbutton_secure = glade_file.get_widget ("checkbutton_secure")
+ self.entry_host = glade_file.get_widget ("entry_host")
+ self.entry_user = glade_file.get_widget ("entry_user")
+ self.entry_passwd = glade_file.get_widget ("entry_passwd")
+ self.spinbutton_port = glade_file.get_widget ("spinbutton_port")
+ self.button_session_edit_ok = glade_file.get_widget ("button_session_edit_ok")
+ self.button_session_edit_cancel = glade_file.get_widget ("button_session_edit_cancel")
+ self.entry_name = glade_file.get_widget ("entry_name")
+ self.checkbutton_secure = glade_file.get_widget ("checkbutton_secure")
+
+ self.button_session_edit_cancel.connect ("clicked", on_button_session_edit_cancel_clicked, self)
+
+ self.window_dialog_session_edit.set_modal(True)
+
+ treeselection = self.treeview_sessions.get_selection()
+ model,iter = treeselection.get_selected()
+
+ if (iter):
+ session = get_data_of_session_selected (iter,model,self)
+ self.entry_host.set_text (session.host)
+ self.spinbutton_port.set_value(session.port)
+ self.entry_user.set_text (session.user)
+ self.entry_name.set_text (session.name)
+ self.checkbutton_secure.set_active (session.tls)
def on_button_new_clicked (button,self):
- load_interface_edit_session(self)
- self.window_dialog_session_edit.set_title (_("New session"))
- self.entry_name.set_sensitive(True)
-
- self.entry_host.set_text("")
- self.entry_user.set_text("")
- self.entry_name.set_text("")
- self.spinbutton_port.set_value(143)
- self.button_session_edit_ok.connect ("clicked", on_button_session_edit_ok_new_clicked,self)
+ load_interface_edit_session(self)
+ self.window_dialog_session_edit.set_title (_("New session"))
+ self.entry_name.set_sensitive(True)
+
+ self.entry_host.set_text("")
+ self.entry_user.set_text("")
+ self.entry_name.set_text("")
+ self.spinbutton_port.set_value(143)
+ self.button_session_edit_ok.connect ("clicked", on_button_session_edit_ok_new_clicked,self)
+
+ self.window_dialog_session_edit.show()
- self.window_dialog_session_edit.show()
-
def on_button_delete_clicked (button,self):
- treeselection = self.treeview_sessions.get_selection()
- model,iter = treeselection.get_selected()
-
- if (iter):
- selected = get_data_of_session_selected (iter,model,self)
-
- client = gconf.client_get_default()
-
- session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
- index = session.index(selected.name)
- del session[index]
-
- client.set_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING,session)
-
- client.unset (PATH_SESSIONS + selected.name + "/" + "Host")
- client.unset (PATH_SESSIONS + selected.name + "/" + "Port")
- client.unset (PATH_SESSIONS + selected.name + "/" + "User")
- client.unset (PATH_SESSIONS + selected.name + "/" + "UseTLS")
- client.unset (PATH_SESSIONS + selected.name)
+ treeselection = self.treeview_sessions.get_selection()
+ model,iter = treeselection.get_selected()
+
+ if (iter):
+ selected = get_data_of_session_selected (iter,model,self)
+
+ client = gconf.client_get_default()
+
+ session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
+ index = session.index(selected.name)
+ del session[index]
+
+ client.set_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING,session)
+
+ client.unset (PATH_SESSIONS + selected.name + "/" + "Host")
+ client.unset (PATH_SESSIONS + selected.name + "/" + "Port")
+ client.unset (PATH_SESSIONS + selected.name + "/" + "User")
+ client.unset (PATH_SESSIONS + selected.name + "/" + "UseTLS")
+ client.unset (PATH_SESSIONS + selected.name)
+
+ load_preferences(self)
- load_preferences(self)
-
def on_button_session_edit_cancel_clicked (button,self):
- self.window_dialog_session_edit.destroy()
+ self.window_dialog_session_edit.destroy()
def on_button_properties_clicked (button,self):
- treeselection = self.treeview_sessions.get_selection()
- model,iter = treeselection.get_selected()
-
- if (iter):
- load_interface_edit_session(self)
- self.window_dialog_session_edit.set_title (_("Edit session"))
- self.entry_name.set_sensitive(False)
- self.button_session_edit_ok.connect ("clicked", on_button_session_edit_ok_clicked,self)
- self.window_dialog_session_edit.show()
+ treeselection = self.treeview_sessions.get_selection()
+ model,iter = treeselection.get_selected()
+
+ if (iter):
+ load_interface_edit_session(self)
+ self.window_dialog_session_edit.set_title (_("Edit session"))
+ self.entry_name.set_sensitive(False)
+ self.button_session_edit_ok.connect ("clicked", on_button_session_edit_ok_clicked,self)
+ self.window_dialog_session_edit.show()
def on_button_session_edit_ok_new_clicked (button,self):
- name = self.entry_name.get_text().strip()
+ name = self.entry_name.get_text().strip()
- if (len(name) == 0):
- self.show_message (_("A session name is required."),gtk.MESSAGE_ERROR)
- return
-
- client = gconf.client_get_default()
- session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
-
- try:
- index = session.index(name)
- self.show_message (_("Session already exists."))
- return
- except:
- session.append(name)
- client.set_list (PATH_KEY + "StoredSessions",gconf.VALUE_STRING,session)
-
-
- host = self.entry_host.get_text()
- port = self.spinbutton_port.get_value_as_int()
- user = self.entry_user.get_text()
- passwd = self.entry_passwd.get_text()
- usetls = self.checkbutton_secure.get_active()
-
- client.set_string (PATH_SESSIONS + name + "/" + "Host",host)
- client.set_int (PATH_SESSIONS + name + "/" + "Port",port)
- client.set_string (PATH_SESSIONS + name + "/" + "User", user)
- client.set_bool (PATH_SESSIONS + name + "/" + "UseTLS",usetls)
+ if (len(name) == 0):
+ self.show_message (_("A session name is required."),gtk.MESSAGE_ERROR)
+ return
+
+ client = gconf.client_get_default()
+ session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
+
+ try:
+ index = session.index(name)
+ self.show_message (_("Session already exists."))
+ return
+ except:
+ session.append(name)
+ client.set_list (PATH_KEY + "StoredSessions",gconf.VALUE_STRING,session)
+
+
+ host = self.entry_host.get_text()
+ port = self.spinbutton_port.get_value_as_int()
+ user = self.entry_user.get_text()
+ passwd = self.entry_passwd.get_text()
+ usetls = self.checkbutton_secure.get_active()
+
+ client.set_string (PATH_SESSIONS + name + "/" + "Host",host)
+ client.set_int (PATH_SESSIONS + name + "/" + "Port",port)
+ client.set_string (PATH_SESSIONS + name + "/" + "User", user)
+ client.set_bool (PATH_SESSIONS + name + "/" + "UseTLS",usetls)
- self.window_dialog_session_edit.destroy()
- load_preferences(self)
+ self.window_dialog_session_edit.destroy()
+ load_preferences(self)
def on_button_session_edit_ok_clicked (button,self):
- host = self.entry_host.get_text()
- port = self.spinbutton_port.get_value_as_int()
- user = self.entry_user.get_text()
- name = self.entry_name.get_text()
- passwd = self.entry_passwd.get_text()
- usetls = self.checkbutton_secure.get_active()
-
- client = gconf.client_get_default()
- client.set_string (PATH_SESSIONS + name + "/" + "Host",host)
- client.set_int (PATH_SESSIONS + name + "/" + "Port",port)
- client.set_string (PATH_SESSIONS + name + "/" + "User", user)
- client.set_bool (PATH_SESSIONS + name + "/" + "UseTLS",usetls)
+ host = self.entry_host.get_text()
+ port = self.spinbutton_port.get_value_as_int()
+ user = self.entry_user.get_text()
+ name = self.entry_name.get_text()
+ passwd = self.entry_passwd.get_text()
+ usetls = self.checkbutton_secure.get_active()
+
+ client = gconf.client_get_default()
+ client.set_string (PATH_SESSIONS + name + "/" + "Host",host)
+ client.set_int (PATH_SESSIONS + name + "/" + "Port",port)
+ client.set_string (PATH_SESSIONS + name + "/" + "User", user)
+ client.set_bool (PATH_SESSIONS + name + "/" + "UseTLS",usetls)
- self.window_dialog_session_edit.destroy()
- load_preferences (self)
+ self.window_dialog_session_edit.destroy()
+ load_preferences (self)
def get_data_of_session_selected (iter,model,self):
- if (iter):
- name,host,port,user,tls = model.get(iter,COLUMN_NAME,COLUMN_IP,COLUMN_PORT,COLUMN_USER,COLUMN_TLS)
+ if (iter):
+ name,host,port,user,tls = model.get(iter,COLUMN_NAME,COLUMN_IP,COLUMN_PORT,COLUMN_USER,COLUMN_TLS)
- s = Session()
- s.name = name
- s.host = host
- s.port = port
- s.user = user
- s.tls = tls
-
- return s
- else:
- return None
+ s = Session()
+ s.name = name
+ s.host = host
+ s.port = port
+ s.user = user
+ s.tls = tls
+
+ return s
+ else:
+ return None
def on_button_open_clicked (button,self):
- treeselection = self.treeview_sessions.get_selection()
- model,iter = treeselection.get_selected()
-
- if (iter):
- session = get_data_of_session_selected (iter,model,self)
- self.append_page_to_notebook(session)
+ treeselection = self.treeview_sessions.get_selection()
+ model,iter = treeselection.get_selected()
- # close dialog session
- on_button_cancel_clicked(None,self)
+ if (iter):
+ session = get_data_of_session_selected (iter,model,self)
+ self.append_page_to_notebook(session)
+
+ # close dialog session
+ on_button_cancel_clicked(None,self)
def on_button_cancel_clicked (button,self):
- self.window_dialog.destroy()
+ self.window_dialog.destroy()
+
-
def get_model_treeview_sessions ():
- model = gtk.TreeStore(gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_INT,
- gobject.TYPE_STRING,
- gobject.TYPE_BOOLEAN,
- gobject.TYPE_STRING)
+ model = gtk.TreeStore(gobject.TYPE_STRING,
+ gobject.TYPE_STRING,
+ gobject.TYPE_INT,
+ gobject.TYPE_STRING,
+ gobject.TYPE_BOOLEAN,
+ gobject.TYPE_STRING)
- return model
+ return model
def load_preferences (self):
- client = gconf.client_get_default()
+ client = gconf.client_get_default()
- session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
+ session = client.get_list(PATH_KEY + "StoredSessions",gconf.VALUE_STRING)
- if (not session == None):
- self.model_session.clear()
- for name in session:
-
- key = PATH_SESSIONS + name + "/"
-
- host = client.get_string(key + "Host")
- port = client.get_int(key + "Port")
- user = client.get_string(key + "User")
- tls = client.get_bool(key + "UseTLS")
-
- iter = self.model_session.append (None)
- self.model_session.set (iter,
- COLUMN_NAME,name,
- COLUMN_IP,host,
- COLUMN_PORT,port,
- COLUMN_USER ,user,
- COLUMN_TLS,tls)
+ if (not session == None):
+ self.model_session.clear()
+ for name in session:
+
+ key = PATH_SESSIONS + name + "/"
+
+ host = client.get_string(key + "Host")
+ port = client.get_int(key + "Port")
+ user = client.get_string(key + "User")
+ tls = client.get_bool(key + "UseTLS")
+
+ iter = self.model_session.append (None)
+ self.model_session.set (iter,
+ COLUMN_NAME,name,
+ COLUMN_IP,host,
+ COLUMN_PORT,port,
+ COLUMN_USER ,user,
+ COLUMN_TLS,tls)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]