]> sigrok.org Git - sigrok-gtk.git/blobdiff - devselect.c
gtk: Select timeunit based on device's hw cap.
[sigrok-gtk.git] / devselect.c
index acdad5ce7abbe4c462c08d9af74a84635760de37..3b842eaf76642277767a634b11d5add4529e0d44 100644 (file)
@@ -24,6 +24,7 @@
 static void dev_selected(GtkComboBox *devbox, GObject *parent)
 {
        GtkTreeModel *devlist = gtk_combo_box_get_model(devbox);
+       GtkComboBox *timeunit = g_object_get_data(parent, "timeunit");
        GtkTreeIter iter;
        const gchar *name;
        GtkCheckMenuItem *menuitem;
@@ -38,13 +39,19 @@ static void dev_selected(GtkComboBox *devbox, GObject *parent)
 
        gtk_check_menu_item_set_active(menuitem, TRUE);
 
-       sr_session_dev_clear();
+       sr_session_dev_remove_all();
        if (sr_session_dev_add(dev) != SR_OK) {
                g_critical("Failed to use device.");
                sr_session_destroy();
                dev = NULL;
        }
        g_object_set_data(parent, "dev", dev);
+
+       /* Update timeunit depending on device capabilities. */
+       if (sr_driver_hwcap_exists(dev->driver, SR_HWCAP_LIMIT_SAMPLES))
+               gtk_combo_box_set_active(timeunit, 0);
+       else
+               gtk_combo_box_set_active(timeunit, 1);
 }
 
 static void dev_menuitem_toggled(GtkMenuItem *item, GtkComboBox *combo)