diff --git a/src/ctrls/c_config.py b/src/ctrls/c_config.py index c302a0a..b6efd4b 100644 --- a/src/ctrls/c_config.py +++ b/src/ctrls/c_config.py @@ -35,14 +35,14 @@ class ConfigController(Controller): } category_order = ['General', 'Disk options', 'Scan options', 'Files extensions',] - + def __init__(self, model): Controller.__init__(self, model) return - + def register_view(self, view): Controller.register_view(self, view) - + # get data from Config object and put it into view self.view['mnt_entry'].set_text(self.model.confd['cd']) self.view['ejt_entry'].set_text(self.model.confd['ejectapp']) @@ -61,20 +61,20 @@ class ConfigController(Controller): self.view['ch_retrive'].set_active(self.model.confd['retrive']) self.view['ch_imageviewer'].set_active(self.model.confd['imgview']) self.view['entry_imv'].set_text(self.model.confd['imgprog']) - + self.__toggle_scan_group() - + # initialize tree view self.__setup_category_tree() - + # initialize models for files extensions - self.view['extension_tree'].get_selection().set_mode(gtk.SELECTION_MULTIPLE) + vi = self.view['extension_tree'] + vi.get_selection().set_mode(gtk.SELECTION_MULTIPLE) #self.view['extension_tree'].set_model(self.model.ext_tree) self.__setup_extension_tree() - - self.view['config'].show(); + + self.view['config'].show() return - # Podłącz sygnały: ################# # connect signals @@ -84,7 +84,7 @@ class ConfigController(Controller): ext = self.model.confd['extensions'] self.view['ext_entry'].set_text(selected) self.view['com_entry'].set_text(ext[selected]) - + def on_category_tree_cursor_changed(self, tree): """change view to selected row corresponding to group of properties""" model = tree.get_model() @@ -92,17 +92,19 @@ class ConfigController(Controller): iterator = tree.get_model().get_iter_first(); while iterator != None: if model.get_value(iterator, 0) == selected: - self.view[self.category_dict[model.get_value(iterator, 0)]].show() + self.view[self.category_dict[model.get_value(iterator, + 0)]].show() self.view['desc'].set_markup("%s" % selected) else: - self.view[self.category_dict[model.get_value(iterator, 0)]].hide() + self.view[self.category_dict[model.get_value(iterator, + 0)]].hide() iterator = tree.get_model().iter_next(iterator); return - + def on_cancelbutton_clicked(self, button): self.view['config'].destroy() return - + def on_okbutton_clicked(self, button): # get data from view and put it into Config object self.model.confd['cd'] = self.view['mnt_entry'].get_text() @@ -114,7 +116,8 @@ class ConfigController(Controller): self.model.confd['confirmquit'] = self.view['ch_quit'].get_active() self.model.confd['mntwarn'] = self.view['ch_wrnmount'].get_active() self.model.confd['delwarn'] = self.view['ch_wrndel'].get_active() - self.model.confd['confirmabandon'] = self.view['ch_warnnew'].get_active() + v = self.view['ch_warnnew'] + self.model.confd['confirmabandon'] = v.get_active() self.model.confd['thumbs'] = self.view['ch_thumb'].get_active() self.model.confd['exif'] = self.view['ch_exif'].get_active() self.model.confd['gthumb'] = self.view['ch_gthumb'].get_active() @@ -124,42 +127,43 @@ class ConfigController(Controller): self.model.confd['imgprog'] = self.view['entry_imv'].get_text() self.model.save() self.view['config'].destroy() - + def on_button_ejt_clicked(self, button): fn = self.__show_filechooser("Choose eject program") self.view['ejt_entryentry_imv'].set_text(fn) - + def on_button_mnt_clicked(self, button): fn = self.__show_filechooser("Choose mount point") self.view['mnt_entry'].set_text(fn) - + def on_ch_retrive_toggled(self, widget): self.__toggle_scan_group() - + def on_ch_imageviewer_toggled(self, checkbox): state = self.view['ch_imageviewer'].get_active() for i in ['label_imv', 'entry_imv', 'button_imv']: self.view[i].set_sensitive(state) - + def on_button_imv_clicked(self, widget): fn = self.__show_filechooser("Choose image viewer") self.view['entry_imv'].set_text(fn) - + def on_ext_add_clicked(self, widget): ext = self.view['ext_entry'].get_text().lower() com = self.view['com_entry'].get_text() if len(ext) == 0 and len(com) == 0: - Dialogs.Err("Config - pyGTKtalog", "Error", "Extension and command required") + Dialogs.Err("Config - pyGTKtalog", "Error", + "Extension and command required") return - + if len(com) == 0: Dialogs.Err("Config - pyGTKtalog", "Error", "Command is empty") return - + if len(ext) == 0: Dialogs.Err("Config - pyGTKtalog", "Error", "Extension is empty") return - + if ext in self.model.confd['extensions'].keys(): obj = Dialogs.Qst('Alter extension', 'Alter extension?', @@ -167,12 +171,13 @@ class ConfigController(Controller): if not obj.run(): return self.model.confd['extensions'][ext] = com - + self.__setup_extension_tree() return - + def on_ext_del_clicked(self, widget): - model, selection = self.view['extension_tree'].get_selection().get_selected_rows() + v = self.view['extension_tree'] + model, selection = v.get_selection().get_selected_rows() if len(selection) == 0: Dialogs.Err("Config - pyGTKtalog", "Error", "No item selected") return @@ -180,102 +185,98 @@ class ConfigController(Controller): sufix = '' else: sufix = "s" - + if self.model.confd['delwarn']: obj = Dialogs.Qst('Delete extension%s' % sufix, 'Delete extension%s?' % sufix, 'Object%s will be permanently removed.' % sufix) if not obj.run(): return - + for i in selection: - self.model.confd['extensions'].pop(model.get_value(model.get_iter(i), 0)) - + m = self.model.confd['extensions'] + m.pop(model.get_value(model.get_iter(i), 0)) + self.__setup_extension_tree() return - + ############################ # private controller methods def __setup_extension_tree(self): self.model.refresh_ext() - + self.view['extension_tree'].set_model(self.model.ext_tree) - + for i in self.view['extension_tree'].get_columns(): self.view['extension_tree'].remove_column(i) cell = gtk.CellRendererText() column = gtk.TreeViewColumn("Extension", cell, text=0) column.set_resizable(True) self.view['extension_tree'].append_column(column) - + column = gtk.TreeViewColumn("Command", cell, text=1) column.set_resizable(True) self.view['extension_tree'].append_column(column) - + def __toggle_scan_group(self): for i in ('ch_thumb','ch_exif','ch_gthumb'): self.view[i].set_sensitive(self.view['ch_retrive'].get_active()) return - + def __setup_category_tree(self): category_tree = self.view['category_tree'] category_tree.set_model(self.model.category_tree) - + self.model.category_tree.clear() for i in self.category_order: myiter = self.model.category_tree.insert_before(None,None) self.model.category_tree.set_value(myiter,0,i) - + cell = gtk.CellRendererText() column = gtk.TreeViewColumn("Name",cell,text=0) column.set_resizable(True) category_tree.append_column(column) - + def __show_filechooser(self, title): """dialog for choose eject""" fn = None dialog = gtk.FileChooserDialog( title=title, action=gtk.FILE_CHOOSER_ACTION_OPEN, - buttons=( - gtk.STOCK_CANCEL, - gtk.RESPONSE_CANCEL, - gtk.STOCK_OPEN, - gtk.RESPONSE_OK - ) - ) - + buttons=(gtk.STOCK_CANCEL, + gtk.RESPONSE_CANCEL, + gtk.STOCK_OPEN, + gtk.RESPONSE_OK)) + dialog.set_default_response(gtk.RESPONSE_OK) - + response = dialog.run() if response == gtk.RESPONSE_OK: if __debug__: - print "c_config.py: __show_filechooser()", dialog.get_filename() + print "c_config.py: __show_filechooser()", + print dialog.get_filename() fn = dialog.get_filename() dialog.destroy() return fn - + def __show_dirchooser(self): """dialog for point the mountpoint""" dialog = gtk.FileChooserDialog( title="Choose mount point", action=gtk.FILE_CHOOSER_ACTION_OPEN, - buttons=( - gtk.STOCK_CANCEL, - gtk.RESPONSE_CANCEL, - gtk.STOCK_OPEN, - gtk.RESPONSE_OK - ) - ) - + buttons=(gtk.STOCK_CANCEL, + gtk.RESPONSE_CANCEL, + gtk.STOCK_OPEN, + gtk.RESPONSE_OK)) + dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) dialog.set_filename(self.view['mnt_entry'].get_text()) dialog.set_default_response(gtk.RESPONSE_OK) - + response = dialog.run() if response == gtk.RESPONSE_OK: self.view['mnt_entry'].set_text(dialog.get_filename()) dialog.destroy() - + pass # end of class - +