Beispiel #1
0
 def test_gnutr_combobox_empty(self):
     cb = gnutr_widgets.GnutrComboBox()
     assert isinstance(
         cb, gtk.ComboBox), 'constructor did not create a gtk.ComboBox'
     model = cb.get_model()
     assert isinstance(
         model, gtk.TreeModel), 'combobox model is not a gtk.TreeModel'
     assert model.get_iter_first() == None, 'combobox model is not empty'
Beispiel #2
0
    def test_gnutr_combobox_set_active_text(self):
        cb = gnutr_widgets.GnutrComboBox(self.fruits)
        testfruit = 'banana'
        res = cb.set_active_text(testfruit)
        assert res, 'failed to set active text'
        assert cb.get_active_text(
        ) == testfruit, 'failed to set the active text'

        res = cb.set_active_text('steak')
        assert not res, 'set_active_text successful on invalid input'
Beispiel #3
0
    def create_pane(self):
        self.pane = gtk.Table(3, 5, False)
        self.pane.set_border_width(5)
        self.pane.set_row_spacings(5)
        self.pane.set_col_spacings(5)

        label1 = gtk.Label('Selected food')
        label1.set_alignment(1, 0.5)
        self.pane.attach(label1, 0, 1, 0, 1, gtk.FILL,0, 0, 0)

        self.food_entry = gtk.Entry()
        self.food_entry.set_property('editable', False)
        self.food_entry.set_property('can-focus', False)
        self.pane.attach(self.food_entry, 1, 5, 0, 1, 
            gtk.EXPAND | gtk.FILL, 0, 0, 0)

        label2 = gtk.Label('')
        label2.set_text_with_mnemonic('_Amount')
        label2.set_alignment(1, 0.5)
        self.pane.attach(label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)

        self.amount_entry = gtk.Entry()
        self.pane.attach(self.amount_entry, 1, 2, 1, 2, 
            gtk.EXPAND | gtk.FILL, 0, 0, 0)

        label3 = gtk.Label('   ')
        label3.set_alignment(1, 0.5)
        self.pane.attach(label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0)

        label4 = gtk.Label('')
        label4.set_text_with_mnemonic('_Measure')
        label4.set_alignment(1, 0.5)
        self.pane.attach(label4, 3, 4, 1, 2, gtk.FILL, 0, 0, 0)

        self.msre_combo = gnutr_widgets.GnutrComboBox()
        self.pane.attach(self.msre_combo, 4, 5, 1, 2, 
            gtk.EXPAND | gtk.FILL, 0, 0, 0)

        scrolledwindow1 = gtk.ScrolledWindow()
        scrolledwindow1.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
        self.pane.attach(scrolledwindow1, 0, 5, 2, 3, gtk.EXPAND | gtk.FILL, 
            gtk.EXPAND | gtk.FILL, 0, 0)

        viewport1 = gtk.Viewport()
        viewport1.set_shadow_type(gtk.SHADOW_IN)
        scrolledwindow1.add(viewport1)

        self.notebook_container = gtk.HBox(False, 0)
        viewport1.add(self.notebook_container)

        self.pane.show_all()
Beispiel #4
0
 def test_gnutr_combobox_rows(self):
     cb = gnutr_widgets.GnutrComboBox(self.fruits)
     model = cb.get_model()
     it = model.get_iter_first()
     assert it != None, 'combobox model is empty'
     assert model.get_value(
         it, 0) == 'apple', 'combobox first item is not correct'
     it = model.iter_next(it)
     assert it != None, 'combobox model has too few rows'
     assert model.get_value(
         it, 0) == 'banana', 'combobox second item is not correct'
     it = model.iter_next(it)
     it = model.iter_next(it)
     assert it == None, 'combobox model has too many rows'
Beispiel #5
0
 def test_gnutr_comboboxentry_set_rows(self):
     cb = gnutr_widgets.GnutrComboBox()
     cb.set_rows(self.fruits)
     assert cb.get_active() == -1, 'no row must be selected'
     model = cb.get_model()
     it = model.get_iter_first()
     assert it != None, 'combobox model is empty'
     assert model.get_value(
         it, 0) == 'apple', 'combobox first item is not correct'
     it = model.iter_next(it)
     assert it != None, 'combobox model has too few rows'
     assert model.get_value(
         it, 0) == 'banana', 'combobox second item is not correct'
     it = model.iter_next(it)
     it = model.iter_next(it)
     it = model.iter_next(it)
     assert it == None, 'combobox model has too many rows'
Beispiel #6
0
    def __init__(self):
        self.dialog = gtk.Dialog(
            title='Food Edit',
            flags=gtk.DIALOG_MODAL,
            buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK,
                     gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
        self.dialog.set_resizable(False)
        self.dialog.set_default_response(gtk.RESPONSE_OK)

        table = gtk.Table(4, 2, False)
        table.set_border_width(5)
        table.set_row_spacings(5)
        table.set_col_spacings(5)
        self.dialog.vbox.pack_start(table, True, True, 0)

        label1 = gtk.Label('Selected food')
        label1.set_alignment(1, 0.5)
        table.attach(label1, 0, 1, 0, 1, gtk.FILL, 0, 0, 0)

        self.food_entry = gtk.Entry()
        self.food_entry.set_property('editable', False)
        self.food_entry.set_property('can-focus', False)
        table.attach(self.food_entry, 1, 4, 0, 1, gtk.FILL | gtk.EXPAND, 0, 0,
                     0)

        label2 = gtk.Label('')
        label2.set_text_with_mnemonic('_Amount')

        label2.set_alignment(1, 0.5)
        table.attach(label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)

        self.amount_entry = gtk.Entry()
        self.amount_entry.set_activates_default(True)
        label2.set_mnemonic_widget(self.amount_entry)
        table.attach(self.amount_entry, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, 0,
                     0, 0)

        label3 = gtk.Label('')
        label3.set_text_with_mnemonic('_Measure')
        label3.set_alignment(1, 0.5)
        table.attach(label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0)

        self.combo = gnutr_widgets.GnutrComboBox()
        label3.set_mnemonic_widget(self.combo)
        table.attach(self.combo, 3, 4, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0, 0)
Beispiel #7
0
    def __init__(self):
        self.dialog = gtk.Dialog(
            title='Recipe Search',
            flags=gtk.DIALOG_MODAL,
            buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK,
                     gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
        self.dialog.set_resizable(False)
        self.dialog.set_default_response(gtk.RESPONSE_OK)

        self.container = gtk.HBox(False, 0)
        self.dialog.vbox.pack_start(self.container, True, True, 0)

        vbox1 = gtk.VBox(False, 0)
        self.container.pack_start(vbox1, True, True, 0)

        hbox2 = gtk.HBox(True, 0)
        hbox2.set_border_width(5)
        vbox1.pack_start(hbox2, True, False, 0)

        label1 = gtk.Label('Recipe Category')
        label1.set_alignment(1.0, 0.5)
        label1.set_padding(10, 0)
        hbox2.pack_start(label1, False, True, 0)

        self.category_combo = gnutr_widgets.GnutrComboBox()
        hbox2.pack_start(self.category_combo, True, True, 0)

        frame1 = gtk.Frame('Text in Recipe Name to Match')
        frame1.set_border_width(5)
        vbox1.pack_start(frame1, True, True, 0)

        hbox3 = gtk.HBox(True, 0)
        hbox3.set_border_width(5)
        frame1.add(hbox3)

        label2 = gtk.Label('Regular Expression (.* to list all)')
        label2.set_alignment(1.0, 0.5)
        label2.set_padding(10, 0)
        hbox3.pack_start(label2, False, True, 0)

        self.reg_expr_entry = gtk.Entry()
        self.reg_expr_entry.set_activates_default(True)
        hbox3.pack_start(self.reg_expr_entry, True, True, 0)
Beispiel #8
0
    def create_pane( self):
        self.pane = gtk.Table(2, 5, False)
        self.pane.set_border_width( 5)
        self.pane.set_row_spacings( 5)
        self.pane.set_col_spacings( 5)

        label1 = gtk.Label( '')
        label1.set_text_with_mnemonic( '_Recipe name')
        label1.set_alignment( 1.0, 0.5)
        self.pane.attach( label1, 0, 1, 0, 1, gtk.FILL, 0, 0, 0)

        self.recipe_entry = gtk.Entry()
        label1.set_mnemonic_widget( self.recipe_entry)
        self.pane.attach( self.recipe_entry, 1, 5, 0, 1, gtk.FILL | gtk.EXPAND, 
            0, 0, 0)

        label2 = gtk.Label( '')
        label2.set_text_with_mnemonic( '_Category')
        label2.set_alignment( 1.0, 0.5)
        self.pane.attach( label2, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)

        self.category_combo = gnutr_widgets.GnutrComboBox()
        label2.set_mnemonic_widget( self.category_combo)
        self.pane.attach( self.category_combo, 1, 2, 1, 2,
            gtk.FILL | gtk.EXPAND, 0, 0, 0)

        label3 = gtk.Label("   ")
        self.pane.attach( label3, 2, 3, 1, 2, gtk.FILL, 0, 0, 0)

        label4 = gtk.Label( '')
        label4.set_text_with_mnemonic( '_Num. servings')
        label4.set_alignment( 1, 0.5)
        self.pane.attach( label4, 3, 4, 1, 2, gtk.FILL, 0, 0, 0)

        self.num_serv_entry = gtk.Entry()
        label4.set_mnemonic_widget( self.num_serv_entry)
        self.pane.attach( self.num_serv_entry, 4, 5, 1, 2, 
            gtk.FILL | gtk.EXPAND, 0, 0, 0)

        self.vpaned = gtk.VPaned()
        self.pane.attach( self.vpaned, 0, 5, 2, 3, gtk.FILL | gtk.EXPAND,
            gtk.FILL | gtk.EXPAND, 0, 0)

        vbox1 = gtk.VBox( False, 0)
        self.vpaned.pack1( vbox1, True, True)

        self.vbox2 = gtk.VBox( False, 0)
        self.vpaned.pack2( self.vbox2, True, True)

        frame1 = gtk.Frame()
        frame1.set_shadow_type( gtk.SHADOW_IN)
        vbox1.pack_start( frame1, False, False, 0)

        button1 = gtk.Button( label="Ingredients")
        frame1.add( button1)

        frame2 = gtk.Frame()
        frame2.set_shadow_type( gtk.SHADOW_IN)
        self.vbox2.pack_start( frame2, False, False, 0)

        button2 = gtk.Button(label='Recipe Instructions')
        frame2.add( button2)

        scrolledwindow1 = gtk.ScrolledWindow()
        scrolledwindow1.set_policy( gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
        vbox1.pack_start( scrolledwindow1, True, True, 0)

        self.treemodel = gtk.ListStore( gobject.TYPE_STRING,
            gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_OBJECT)

        self.treeview = gtk.TreeView( self.treemodel)
        self.treeview.set_rules_hint( True)
        self.selection = self.treeview.get_selection()

        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn( 'Amount', renderer, text=0)
        self.treeview.append_column( column)
        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn( 'Measure', renderer, text=1)
        self.treeview.append_column( column)
        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn( 'Food', renderer, text=2)
        self.treeview.append_column( column)

        scrolledwindow1.add( self.treeview)

        self.scrolledwindow2 = gtk.ScrolledWindow()
        self.scrolledwindow2.set_policy( gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
        self.vbox2.pack_start( self.scrolledwindow2, True, True, 0)

        self.text_box = gtk.TextView()
        self.text_buffer = gtk.TextBuffer( None)
        self.text_box.set_buffer( self.text_buffer)
        self.text_box.set_editable( True)
        self.text_box.set_cursor_visible( True)

        self.scrolledwindow2.add( self.text_box)

        self.pane.show_all()
Beispiel #9
0
    def __init__(self):
        self.dialog = gtk.Dialog(
            title='Food Search',
            flags=gtk.DIALOG_MODAL,
            buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK,
                     gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
        self.dialog.set_default_response(gtk.RESPONSE_OK)

        self.notebook = gtk.Notebook()
        self.dialog.vbox.pack_start(self.notebook, True, True, 0)
        self.notebook.set_border_width(5)

        self.container_txt = gtk.VBox(False, 0)
        self.notebook.append_page(self.container_txt, gtk.Label('Name Search'))

        self.box_txt = gtk.VBox(False, 5)
        self.container_txt.pack_start(self.box_txt, False, False, 0)
        self.box_txt.set_border_width(5)

        hbox13 = gtk.HBox(True, 0)
        self.box_txt.pack_start(hbox13, True, True, 0)

        label37 = gtk.Label('')
        label37.set_text_with_mnemonic('Food _group')
        hbox13.pack_start(label37, True, True, 5)
        label37.set_alignment(1, 0.5)

        self.txt_fg_combo = gnutr_widgets.GnutrComboBox()
        label37.set_mnemonic_widget(self.txt_fg_combo)
        hbox13.pack_start(self.txt_fg_combo, True, True, 0)

        hbox14 = gtk.HBox(True, 0)
        self.box_txt.pack_start(hbox14, True, True, 0)
        hbox14.set_border_width(5)

        label38 = gtk.Label('')
        label38.set_text_with_mnemonic('_Search for')
        hbox14.pack_start(label38, True, True, 5)
        label38.set_alignment(1, 0.5)

        self.food_name_entry = gtk.Entry()
        label38.set_mnemonic_widget(self.food_name_entry)
        hbox14.pack_start(self.food_name_entry, True, True, 0)
        self.food_name_entry.set_activates_default(True)

        hbox15 = gtk.HBox(True, 0)
        self.box_txt.pack_start(hbox15, True, True, 0)
        hbox15.set_border_width(5)

        hbox15.pack_start(gtk.Label(''), True, True, 0)

        self.use_regex_check = gtk.CheckButton('Use _regular expressions')
        hbox15.pack_start(self.use_regex_check, True, True, 0)

        self.container_table = gtk.VBox(False, 0)
        self.notebook.append_page(self.container_table,
                                  gtk.Label('Nutritient Search'))

        self.table_nutr = gtk.Table(7, 4, False)
        self.container_table.pack_start(self.table_nutr, True, True, 0)
        self.table_nutr.set_border_width(5)
        self.table_nutr.set_row_spacings(5)
        self.table_nutr.set_col_spacings(5)

        label40 = gtk.Label('')
        label40.set_text_with_mnemonic('Food _group')
        self.table_nutr.attach(label40, 0, 1, 0, 1, gtk.FILL, 0, 0, 0)
        label40.set_alignment(1, 0.5)

        label41 = gtk.Label('')
        label41.set_text_with_mnemonic('Nor_malize per')
        self.table_nutr.attach(label41, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)
        label41.set_alignment(0, 1)

        self.nutr_fg_combo = gnutr_widgets.GnutrComboBox()
        label40.set_mnemonic_widget(self.nutr_fg_combo)
        self.table_nutr.attach(self.nutr_fg_combo, 1, 4, 0, 1,
                               gtk.EXPAND | gtk.FILL, 0, 0, 0)

        label42 = gtk.Label('')
        label42.set_markup('<b>Nutrients to search for</b>')
        self.table_nutr.attach(label42, 0, 4, 3, 4, gtk.FILL, 0, 0, 0)
        label42.set_alignment(0, 0.5)

        label43 = gtk.Label('')
        label43.set_text_with_mnemonic('_Nutrient')
        self.table_nutr.attach(label43, 0, 1, 4, 5, gtk.FILL, 0, 0, 0)
        label43.set_alignment(1, 0.5)

        self.nutr_combo = gnutr_widgets.GnutrComboBox()
        label43.set_mnemonic_widget(self.nutr_combo)
        self.table_nutr.attach(self.nutr_combo, 1, 2, 4, 5,
                               gtk.EXPAND | gtk.FILL, 0, 0, 0)

        label45 = gtk.Label('')
        label45.set_text_with_mnemonic('_Constraint')
        self.table_nutr.attach(label45, 2, 3, 4, 5, gtk.EXPAND | gtk.FILL, 0,
                               0, 0)
        label45.set_alignment(1, 0.5)

        constraint_spin_adj = gtk.Adjustment(1, -5, 5, 1, 1, 1)
        self.constraint_spin = gtk.SpinButton(constraint_spin_adj, 1, 0)
        label45.set_mnemonic_widget(self.constraint_spin)
        self.table_nutr.attach(self.constraint_spin, 3, 4, 4, 5, gtk.FILL, 0,
                               0, 0)
        self.constraint_spin.set_activates_default(True)

        label44 = gtk.Label('')
        label44.set_text_with_mnemonic('Number of _foods')
        self.table_nutr.attach(label44, 2, 3, 1, 2, gtk.EXPAND | gtk.FILL, 0,
                               0, 0)
        label44.set_alignment(1, 0.5)

        table2 = gtk.Table(3, 1, False)
        self.table_nutr.attach(table2, 3, 4, 6, 7, gtk.FILL,
                               gtk.EXPAND | gtk.FILL, 0, 0)
        table2.set_row_spacings(5)

        self.delete_button = gtk.Button(label='_Delete')
        table2.attach(self.delete_button, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)

        self.add_button = gtk.Button(label='_Add')
        table2.attach(self.add_button, 0, 1, 0, 1, gtk.EXPAND | gtk.FILL, 0, 0,
                      0)

        self.num_foods_entry = gtk.Entry()
        label44.set_mnemonic_widget(self.num_foods_entry)
        self.table_nutr.attach(self.num_foods_entry, 3, 4, 1, 2, gtk.FILL, 0,
                               0, 0)
        self.num_foods_entry.set_size_request(80, -1)
        self.num_foods_entry.set_activates_default(True)

        scrolledwindow1 = gtk.ScrolledWindow()
        scrolledwindow1.set_size_request(-1, 120)
        self.table_nutr.attach(scrolledwindow1, 0, 3, 6, 7,
                               gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL, 0,
                               0)

        self.treemodel = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT)
        self.treeview = gtk.TreeView(self.treemodel)
        self.treeview.set_rules_hint(True)

        self.selection = self.treeview.get_selection()
        self.selection.set_mode(gtk.SELECTION_SINGLE)

        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn('Nutrient', renderer, text=0)
        self.treeview.append_column(column)
        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn('Constraint', renderer, text=1)
        self.treeview.append_column(column)
        scrolledwindow1.add(self.treeview)

        self.norm_combo = gnutr_widgets.GnutrComboBox(
            (('calorie', ), ('gram', )), 0)
        label41.set_mnemonic_widget(self.norm_combo)
        self.table_nutr.attach(self.norm_combo, 1, 2, 1, 2, gtk.FILL, 0, 0, 0)
Beispiel #10
0
 def test_gnutr_combobox_get_active_text(self):
     cb = gnutr_widgets.GnutrComboBox(self.fruits)
     cb.set_active(1)
     assert cb.get_active_text(
     ) == 'banana', 'GnutrComboBox.get_active_text did not return the corret value'
Beispiel #11
0
 def test_gnutr_combobox_clear(self):
     cb = gnutr_widgets.GnutrComboBox(self.fruits)
     cb.clear_rows()
     model = cb.get_model()
     assert model.get_iter_first(
     ) == None, 'GnutrComboBox.clear_row did not remove data from the model'
Beispiel #12
0
 def test_gnutr_combobox_set_rows_active(self):
     cb = gnutr_widgets.GnutrComboBox()
     cb.set_rows(self.fruits, 1)
     assert cb.get_active() == 1, 'first row is not selected'
    def __init__(self):
        self.dialog = gtk.Dialog(
            title='Food Search Result',
            flags=gtk.DIALOG_MODAL,
            buttons=(gtk.STOCK_HELP, gtk.RESPONSE_HELP, gtk.STOCK_OK,
                     gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
        self.dialog.set_default_response(gtk.RESPONSE_OK)

        table = gtk.Table(4, 3, False)
        table.set_border_width(5)
        table.set_row_spacings(5)
        table.set_col_spacings(5)
        self.dialog.vbox.pack_start(table, True, True, 0)

        self.tree = gtk.TreeStore(
            gobject.TYPE_STRING,
            gobject.TYPE_STRING)  #Second column was set to TYPE_INT
        #I don't see a reason for that
        self.treeview = gtk.TreeView(self.tree)

        self.selection = self.treeview.get_selection()
        self.selection.set_mode(gtk.SELECTION_SINGLE)

        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_ALWAYS, gtk.POLICY_ALWAYS)
        scrolled_window.set_shadow_type(gtk.SHADOW_IN)
        scrolled_window.add(self.treeview)
        scrolled_window.set_size_request(400, 200)

        renderer = gtk.CellRendererText()
        column = gtk.TreeViewColumn('Food', renderer, text=0)
        self.treeview.append_column(column)

        table.attach(scrolled_window, 0, 4, 0, 1, gtk.FILL | gtk.EXPAND,
                     gtk.FILL | gtk.EXPAND, 0, 0)

        label1 = gtk.Label('Selected food')
        label1.set_alignment(1, 0.5)
        table.attach(label1, 0, 1, 1, 2, gtk.FILL, 0, 0, 0)

        self.food_entry = gtk.Entry()
        self.food_entry.set_property('editable', False)
        self.food_entry.set_property('can-focus', False)
        self.food_entry.set_activates_default(True)
        table.attach(self.food_entry, 1, 4, 1, 2, gtk.FILL | gtk.EXPAND, 0, 0,
                     0)

        self.amount_label = gtk.Label('')
        self.amount_label.set_text_with_mnemonic('_Amount')
        self.amount_label.set_alignment(1, 0.5)
        table.attach(self.amount_label, 0, 1, 2, 3, gtk.FILL, 0, 0, 0)

        self.amount_entry = gtk.Entry()
        self.amount_label.set_mnemonic_widget(self.amount_entry)
        self.amount_entry.set_activates_default(True)
        table.attach(self.amount_entry, 1, 2, 2, 3, gtk.FILL | gtk.EXPAND, 0,
                     0, 0)

        self.msre_label = gtk.Label('')
        self.msre_label.set_text_with_mnemonic('_Measure')
        self.msre_label.set_alignment(1, 0.5)
        table.attach(self.msre_label, 2, 3, 2, 3, gtk.FILL, 0, 0, 0)

        self.combo = gnutr_widgets.GnutrComboBox()
        self.msre_label.set_mnemonic_widget(self.combo)
        table.attach(self.combo, 3, 4, 2, 3, gtk.FILL | gtk.EXPAND, 0, 0, 0)