Example #1
0
 def setup_tree(self):
     item_renderer = gtk.CellRendererText()
     item_renderer.set_property('editable', True)
     item_col = gtk.TreeViewColumn(_('Item'), item_renderer, text=1)
     item_col.set_expand(True)
     key_renderer = gtk.CellRendererCombo()
     key_renderer.set_property('editable', True)
     key_renderer.connect('editing-started', self.start_keyedit_cb)
     key_renderer.connect('edited', self.key_edited_cb)
     key_renderer.set_property('mode', gtk.CELL_RENDERER_MODE_EDITABLE)
     key_renderer.set_property('sensitive', True)
     key_col = gtk.TreeViewColumn(_('Key'), key_renderer, text=2)
     key_col.set_expand(True)
     self.renderers = [key_renderer, item_renderer]
     self.tv.append_column(item_col)
     self.tv.append_column(key_col)
     for r in key_renderer, item_renderer:
         r.set_property('wrap-mode', pango.WRAP_WORD)
         r.set_property('wrap-width', 200)
     self.tv.connect('check-resize', self.resize_event_cb)
     self.tv.connect('size-allocate', self.tv_size_allocate_cb)
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for tvc in plugin_manager.get_treeview_columns(self,
                                                    key_col=2,
                                                    instant_apply=False):
         self.tv.append_column(tvc)
 def setup_tree (self):
     item_renderer = gtk.CellRendererText();
     item_renderer.set_property('editable',True)
     item_col = gtk.TreeViewColumn(_('Item'),item_renderer,text=1)
     item_col.set_expand(True)
     key_renderer = gtk.CellRendererCombo()
     key_renderer.set_property('editable',True)
     key_renderer.connect('editing-started',self.start_keyedit_cb)
     key_renderer.connect('edited',self.key_edited_cb)
     key_renderer.set_property('mode',gtk.CELL_RENDERER_MODE_EDITABLE)
     key_renderer.set_property('sensitive',True)
     key_col = gtk.TreeViewColumn(_('Key'),key_renderer,text=2)
     key_col.set_expand(True)
     self.renderers = [key_renderer,item_renderer]
     self.tv.append_column(item_col)
     self.tv.append_column(key_col)
     for r in  key_renderer,item_renderer:
         r.set_property('wrap-mode',pango.WRAP_WORD)
         r.set_property('wrap-width',200)
     self.tv.connect('check-resize',self.resize_event_cb)
     self.tv.connect('size-allocate',self.tv_size_allocate_cb)
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for tvc in plugin_manager.get_treeview_columns(self,
                                                    key_col=2,
                                                    instant_apply=False):
         self.tv.append_column(tvc)
 def treeselection_changed_cb (self, ts):
     keys = []
     def do_foreach (tm, p, i):
         keys.append(tm[p][2])
     ts.selected_foreach(do_foreach)
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for p in plugin_manager.plugins:
         p.selection_changed(keys)
Example #4
0
    def treeselection_changed_cb(self, ts):
        keys = []

        def do_foreach(tm, p, i):
            keys.append(tm[p][2])

        ts.selected_foreach(do_foreach)
        plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
        for p in plugin_manager.plugins:
            p.selection_changed(keys)
Example #5
0
 def setup_main_interface(self):
     self.main = gtk.VBox()
     l = gtk.Label()
     l.set_markup('''<b>%s</b>\n<i>%s</i>''' % (
         _('Ingredient Keys'),
         _('Ingredient Keys are normalized ingredient names used for shopping lists and for calculations.'
           )))
     self.main.pack_start(l, expand=False, fill=False)
     sw = gtk.ScrolledWindow()
     sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
     self.main.pack_start(sw)
     self.extra_widget_table = gtk.Table()
     ew_index = 1
     self.main.pack_start(self.extra_widget_table, expand=False, fill=False)
     self.tv = gtk.TreeView()
     self.tv.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
     self.tv.get_selection().connect('changed',
                                     self.treeselection_changed_cb)
     self.setup_model()
     self.setup_tree()
     self.tv.set_model(self.model)
     sw.add(self.tv)
     self.main.show_all()
     self.update_from_database()
     ingredientEditorModule = filter(
         lambda m: isinstance(m, IngredientEditorModule),
         self.re.modules)[0]
     ingredientEditorModule.connect(
         'saved', lambda *args: self.update_from_database())
     ingredientEditorModule.connect('toggle-edited',
                                    self.update_from_ingredient_editor_cb)
     self.setup_action_groups()
     # Set up extra widgets
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     apply_button = gtk.Button(stock=gtk.STOCK_APPLY)
     for plugin in plugin_manager.plugins:
         if plugin.offers_edit_widget():
             title_label = gtk.Label(plugin.title)
             widget = plugin.setup_edit_widget()
             self.extra_widget_table.attach(title_label, 0, 1, ew_index,
                                            ew_index + 1)
             self.extra_widget_table.attach(widget, 1, 2, ew_index,
                                            ew_index + 1)
             title_label.show()
             widget.show()
             apply_button.connect('clicked',
                                  lambda *args: plugin.apply_widget_val())
             ew_index += 1
     if ew_index > 1:
         self.extra_widget_table.attach(apply_button, 1, 2, ew_index,
                                        ew_index + 1)
         apply_button.show()
         self.extra_widget_table.hide()
         self.edit_associations_action.set_visible(True)
         apply_button.connect('clicked', lambda *args: self.tv.queue_draw())
 def setup_main_interface (self):
     self.main = gtk.VBox()
     l = gtk.Label()
     l.set_markup('''<b>%s</b>\n<i>%s</i>'''%(
         _('Ingredient Keys'),
         _('Ingredient Keys are normalized ingredient names used for shopping lists and for calculations.')
         )
                  )
     self.main.pack_start(l,expand=False,fill=False)
     sw = gtk.ScrolledWindow(); sw.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
     self.main.pack_start(sw)
     self.extra_widget_table = gtk.Table()
     ew_index = 1
     self.main.pack_start(self.extra_widget_table,expand=False,fill=False)
     self.tv = gtk.TreeView()
     self.tv.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
     self.tv.get_selection().connect('changed',
                                     self.treeselection_changed_cb)
     self.setup_model()
     self.setup_tree()
     self.tv.set_model(self.model)
     sw.add(self.tv)
     self.main.show_all()
     self.update_from_database()
     ingredientEditorModule = filter(lambda m: isinstance(m,IngredientEditorModule), self.re.modules)[0]
     ingredientEditorModule.connect('saved',lambda *args: self.update_from_database())
     ingredientEditorModule.connect('toggle-edited', self.update_from_ingredient_editor_cb)
     self.setup_action_groups()
     # Set up extra widgets
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     apply_button = gtk.Button(stock=gtk.STOCK_APPLY)
     for plugin in plugin_manager.plugins:
         if plugin.offers_edit_widget():
             title_label = gtk.Label(plugin.title)
             widget = plugin.setup_edit_widget()
             self.extra_widget_table.attach(title_label,0,1,ew_index,ew_index+1)
             self.extra_widget_table.attach(widget,1,2,ew_index,ew_index+1)
             title_label.show(); widget.show()
             apply_button.connect('clicked',lambda *args: plugin.apply_widget_val())
             ew_index += 1
     if ew_index > 1:
         self.extra_widget_table.attach(apply_button,1,2,ew_index,ew_index+1)
         apply_button.show()
         self.extra_widget_table.hide()
         self.edit_associations_action.set_visible(True)
         apply_button.connect('clicked',
                              lambda *args: self.tv.queue_draw())
Example #7
0
 def setupTreeView(self):
     self.FIELD_COL = 1
     self.VALUE_COL = 2
     self.COUNT_COL = 3
     self.REC_COL = 4
     self.NUT_COL = 5
     for n, head in [
         [self.FIELD_COL, _('Field')],
         [self.VALUE_COL, _('Value')],
         [self.COUNT_COL, _('Count')],
         [self.REC_COL, _('Recipes')],
             #[self.NUT_COL, _('Nutritional Info')],
     ]:
         if n == self.NUT_COL:
             renderer = gtk.CellRendererToggle()
         else:
             renderer = gtk.CellRendererText()
         # If we have gtk > 2.8, set up text-wrapping
         try:
             renderer.get_property('wrap-width')
         except TypeError:
             pass
         else:
             renderer.set_property('wrap-mode', gtk.WRAP_WORD)
             if n == self.FIELD_COL:
                 renderer.set_property('wrap-width', 60)
             elif n in [self.VALUE_COL, self.REC_COL]:
                 renderer.set_property('wrap-width', 250)
             else:
                 renderer.set_property('wrap-width', 100)
         if n == self.VALUE_COL:
             renderer.set_property('editable', True)
             renderer.connect('edited', self.tree_edited, n, head)
         if n == self.NUT_COL:
             col = gtk.TreeViewColumn(head, renderer, active=n, visible=n)
         else:
             col = gtk.TreeViewColumn(head, renderer, text=n)
         if n == self.VALUE_COL:
             col.set_property('expand', True)
         col.set_resizable(True)
         self.treeview.append_column(col)
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for tvc in plugin_manager.get_treeview_columns(None,
                                                    key_col=2,
                                                    instant_apply=True):
         self.treeview.append_column(tvc)
Example #8
0
 def setupTreeView (self):
     self.FIELD_COL = 1
     self.VALUE_COL = 2
     self.COUNT_COL = 3
     self.REC_COL = 4
     self.NUT_COL = 5
     for n,head in [[self.FIELD_COL,_('Field')],
                    [self.VALUE_COL,_('Value')],
                    [self.COUNT_COL,_('Count')],
                    [self.REC_COL, _('Recipes')],
                    #[self.NUT_COL, _('Nutritional Info')],
                    ]:
         if n == self.NUT_COL:
             renderer = gtk.CellRendererToggle()
         else:
             renderer = gtk.CellRendererText()
         # If we have gtk > 2.8, set up text-wrapping
         try:
             renderer.get_property('wrap-width')
         except TypeError:
             pass
         else:
             renderer.set_property('wrap-mode',gtk.WRAP_WORD)
             if n == self.FIELD_COL:
                 renderer.set_property('wrap-width',60)
             elif n in [self.VALUE_COL,self.REC_COL]: renderer.set_property('wrap-width',250)
             else: renderer.set_property('wrap-width',100)
         if n==self.VALUE_COL:
             renderer.set_property('editable',True)
             renderer.connect('edited',self.tree_edited,n,head)
         if n == self.NUT_COL:
             col = gtk.TreeViewColumn(head, renderer, active=n, visible=n)
         else:
             col = gtk.TreeViewColumn(head, renderer, text=n)
         if n == self.VALUE_COL:
             col.set_property('expand',True)
         col.set_resizable(True)
         self.treeview.append_column(col)
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for tvc in plugin_manager.get_treeview_columns(None,
                                                    key_col=2,
                                                    instant_apply=True):
         self.treeview.append_column(tvc)
Example #9
0
 def save(self, recdic):
     # save...
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for p in plugin_manager.plugins:
         p.save()
     return recdic
 def save (self, recdic):
     # save...
     plugin_manager = keyEditorPluggable.get_key_editor_plugin_manager()
     for p in plugin_manager.plugins:
         p.save()
     return recdic