def setup_widgets (self): self.srchentry=self.ui.get_object('rlistSearchbox') self.limitButton = self.ui.get_object('rlAddButton') # Don't # allow for special keybindings #self.srchentry.connect('key_press_event',self.srchentry_keypressCB) self.SEARCH_MENU_KEY = "b" self.srchLimitBar = self.ui.get_object('srchLimitBar') assert(self.srchLimitBar) self.srchLimitBar.hide() self.srchLimitLabel=self.ui.get_object('srchLimitLabel') self.srchLimitClearButton = self.ui.get_object('srchLimitClear') self.srchLimitText=self.srchLimitLabel.get_text() self.srchLimitDefaultText=self.srchLimitText self.searchButton = self.ui.get_object('searchButton') self.rSearchByMenu = self.ui.get_object('rlistSearchByMenu') cb.set_model_from_list(self.rSearchByMenu, self.searchByList, expand=False) cb.setup_typeahead(self.rSearchByMenu) self.rSearchByMenu.set_active(0) self.rSearchByMenu.connect('changed',self.search_as_you_type) self.sautTog = self.ui.get_object('searchAsYouTypeToggle') self.search_actions.get_action('toggleSearchAsYouType').connect_proxy(self.sautTog) self.regexpTog = self.ui.get_object('regexpTog') self.searchOptionsBox = self.ui.get_object('searchOptionsBox') self.search_actions.get_action('toggleShowSearchOptions').connect_proxy( self.ui.get_object('searchOptionsToggle') ) self.search_actions.get_action('toggleRegexp').connect_proxy(self.regexpTog) self.rectree = self.ui.get_object('recTree') self.sw = self.ui.get_object('scrolledwindow') self.rectree.connect('start-interactive-search',lambda *args: self.srchentry.grab_focus()) self.prev_button = self.ui.get_object('prevButton') self.next_button = self.ui.get_object('nextButton') self.first_button = self.ui.get_object('firstButton') self.last_button = self.ui.get_object('lastButton') self.showing_label = self.ui.get_object('showingLabel') self.stat = self.ui.get_object('statusbar') self.contid = self.stat.get_context_id('main') self.setup_search_views() self.setup_rectree() self.prev_button.connect('clicked',lambda *args: self.rmodel.prev_page()) self.next_button.connect('clicked',lambda *args: self.rmodel.next_page()) self.first_button.connect('clicked',lambda *args: self.rmodel.goto_first_page()) self.last_button.connect('clicked',lambda *args: self.rmodel.goto_last_page()) self.ui.connect_signals({ 'rlistSearch': self.search_as_you_type, 'ingredientSearch' : lambda *args: self.set_search_by('ingredient'), 'titleSearch' : lambda *args: self.set_search_by('title'), 'ratingSearch' : lambda *args: self.set_search_by('rating'), 'categorySearch' : lambda *args: self.set_search_by('category'), 'cuisineSearch' : lambda *args: self.set_search_by('cuisine'), 'search' : self.search, 'searchBoxActivatedCB':self.search_entry_activate_cb, 'rlistReset' : self.reset_search, 'rlistLimit' : self.limit_search, 'search_as_you_type_toggle' : self.toggleTypeSearchCB,}) self.toggleTypeSearchCB(self.sautTog) # this has to come after the type toggle is connected! self.rg.conf.append(WidgetSaver.WidgetSaver( self.sautTog, self.prefs.get('sautTog', {'active':self.sautTog.get_active()}), ['toggled'])) self.rg.conf.append(WidgetSaver.WidgetSaver( self.regexpTog, self.prefs.get('regexpTog', {'active':self.regexpTog.get_active()}), ['toggled'])) # and we update our count with each deletion. self.rd.delete_hooks.append(self.set_reccount) # setup a history self.uim=self.ui.get_object('undo_menu_item') self.rim=self.ui.get_object('redo_menu_item') self.raim=self.ui.get_object('reapply_menu_item') self.history = Undo.UndoHistoryList(self.uim,self.rim,self.raim) # Fix up our mnemonics with some heavenly magic self.mm = mnemonic_manager.MnemonicManager() self.mm.sacred_cows.append("search for") # Don't touch _Search for: self.mm.add_builder(self.ui) self.mm.add_treeview(self.rectree) self.mm.fix_conflicts_peacefully()
def setup_widgets(self): self.srchentry = self.ui.get_object('rlistSearchbox') self.limitButton = self.ui.get_object('rlAddButton') # Don't # allow for special keybindings #self.srchentry.connect('key_press_event',self.srchentry_keypressCB) self.SEARCH_MENU_KEY = "b" self.srchLimitBar = self.ui.get_object('srchLimitBar') assert (self.srchLimitBar) self.srchLimitBar.hide() self.srchLimitLabel = self.ui.get_object('srchLimitLabel') self.srchLimitClearButton = self.ui.get_object('srchLimitClear') self.srchLimitText = self.srchLimitLabel.get_text() self.srchLimitDefaultText = self.srchLimitText self.searchButton = self.ui.get_object('searchButton') self.rSearchByMenu = self.ui.get_object('rlistSearchByMenu') cb.set_model_from_list(self.rSearchByMenu, self.searchByList, expand=False) cb.setup_typeahead(self.rSearchByMenu) self.rSearchByMenu.set_active(0) self.rSearchByMenu.connect('changed', self.search_as_you_type) self.sautTog = self.ui.get_object('searchAsYouTypeToggle') self.search_actions.get_action('toggleSearchAsYouType').connect_proxy( self.sautTog) self.regexpTog = self.ui.get_object('regexpTog') self.searchOptionsBox = self.ui.get_object('searchOptionsBox') self.search_actions.get_action( 'toggleShowSearchOptions').connect_proxy( self.ui.get_object('searchOptionsToggle')) self.search_actions.get_action('toggleRegexp').connect_proxy( self.regexpTog) self.rectree = self.ui.get_object('recTree') self.sw = self.ui.get_object('scrolledwindow') self.rectree.connect('start-interactive-search', lambda *args: self.srchentry.grab_focus()) self.prev_button = self.ui.get_object('prevButton') self.next_button = self.ui.get_object('nextButton') self.first_button = self.ui.get_object('firstButton') self.last_button = self.ui.get_object('lastButton') self.showing_label = self.ui.get_object('showingLabel') self.stat = self.ui.get_object('statusbar') self.contid = self.stat.get_context_id('main') self.setup_search_views() self.setup_rectree() self.prev_button.connect('clicked', lambda *args: self.rmodel.prev_page()) self.next_button.connect('clicked', lambda *args: self.rmodel.next_page()) self.first_button.connect('clicked', lambda *args: self.rmodel.goto_first_page()) self.last_button.connect('clicked', lambda *args: self.rmodel.goto_last_page()) self.ui.connect_signals({ 'rlistSearch': self.search_as_you_type, 'ingredientSearch': lambda *args: self.set_search_by('ingredient'), 'titleSearch': lambda *args: self.set_search_by('title'), 'ratingSearch': lambda *args: self.set_search_by('rating'), 'categorySearch': lambda *args: self.set_search_by('category'), 'cuisineSearch': lambda *args: self.set_search_by('cuisine'), 'search': self.search, 'searchBoxActivatedCB': self.search_entry_activate_cb, 'rlistReset': self.reset_search, 'rlistLimit': self.limit_search, 'search_as_you_type_toggle': self.toggleTypeSearchCB, }) self.toggleTypeSearchCB(self.sautTog) # this has to come after the type toggle is connected! self.rg.conf.append( WidgetSaver.WidgetSaver( self.sautTog, self.prefs.get('sautTog', {'active': self.sautTog.get_active()}), ['toggled'])) self.rg.conf.append( WidgetSaver.WidgetSaver( self.regexpTog, self.prefs.get('regexpTog', {'active': self.regexpTog.get_active()}), ['toggled'])) # and we update our count with each deletion. self.rd.delete_hooks.append(self.set_reccount) # setup a history self.uim = self.ui.get_object('undo_menu_item') self.rim = self.ui.get_object('redo_menu_item') self.raim = self.ui.get_object('reapply_menu_item') self.history = Undo.UndoHistoryList(self.uim, self.rim, self.raim) # Fix up our mnemonics with some heavenly magic self.mm = mnemonic_manager.MnemonicManager() self.mm.sacred_cows.append("search for") # Don't touch _Search for: self.mm.add_builder(self.ui) self.mm.add_treeview(self.rectree) self.mm.fix_conflicts_peacefully()
def __init__ (self, converter=None, unitModel=None, amt1=None, unit1=None, item=None, okcb=None ): self.possible_conversions = None self.ui = gtk.Builder() self.ui.add_from_file(os.path.join(uibase,'converter.ui')) self.conv = convert.get_converter() self.changing_item = False self.okcb = okcb self.widget_names = ['window','amt1Entry', 'amt2Label', 'unit1ComboBox', 'unit2ComboBox', 'itemComboBox', 'densitySpinButton', 'useDensityCheckButton', 'statusbar','expander1','messageLabel'] # grab all our widgets for w in self.widget_names: setattr(self,w,self.ui.get_object(w)) # HACK FOR READABILITY w/o glade change self.resultLabel = self.amt2Label self.resultLabel.set_use_markup(True) self.resultLabel.set_line_wrap(True) if unitModel: self.unitModel=unitModel else: self.unitModel=UnitModel(self.conv) #self.unit2Model = self.unitModel.filter_new() self.unit1ComboBox.set_model(self.unitModel) self.unit1ComboBox.set_wrap_width(3) self.unit2ComboBox.set_wrap_width(3) #self.unit2Model.set_visible_func(self.unit_filter) #self.unit2ComboBox.set_model(self.unit2Model) self.unit2ComboBox.set_model(self.unitModel) for combobox in [self.unit1ComboBox, self.unit2ComboBox]: cell = gtk.CellRendererText() combobox.pack_start(cell, True) combobox.add_attribute(cell, 'text', 1) setup_typeahead(combobox) #self.itemComboBox.append_text('None') ikeys = self.conv.density_table.keys() ikeys.sort() for itm in ikeys: self.itemComboBox.append_text(itm) if len(self.conv.density_table.keys()) > 8: self.itemComboBox.set_wrap_width(3) setup_typeahead(self.itemComboBox) if amt1: self.amt1Entry=self.conv.float_to_frac(amt1) self.ui.connect_signals({ 'amt1changed':self.changed, 'unit1changed':self.changed, 'unit2changed':self.changed, 'itemChanged':self.density_itm_changed, 'densitySpinChanged':self.density_spin_changed, 'densityChecked':self.density_toggled, 'close':self.close, }) self.last_amt1 = None self.last_amt2 = None self.last_unit1 = None self.last_unit2 = None if unit1 and self.conv.unit_dict.has_key[unit1]: u = self.conv.unit_dict[unit1] cb_set_active_text(self.unit1ComboBox,u) if amt1: self.amt1Entry.set_text("%s"%amt1) if item: cb_set_active_text(self.itemComboBox,item)