File 0002-popups-update-comboboxes-on-channel-selection.patch of Package pulseview

From 09cc8c4ceceb92fe5aa8568b3429f8fcd568847a Mon Sep 17 00:00:00 2001
From: Mikhail Paulyshka <me@mixaill.net>
Date: Sun, 14 Dec 2025 23:19:20 +0300
Subject: [PATCH 2/3] popups: update comboboxes on channel selection

needed for devices which have different set of samplerates depending of enabled channels
---
 pv/popups/channels.cpp  | 4 ++++
 pv/popups/channels.hpp  | 3 +++
 pv/toolbars/mainbar.cpp | 1 +
 3 files changed, 8 insertions(+)

diff --git a/pv/popups/channels.cpp b/pv/popups/channels.cpp
index ce2e8e98..5ee769c0 100644
--- a/pv/popups/channels.cpp
+++ b/pv/popups/channels.cpp
@@ -181,6 +181,7 @@ void Channels::set_all_channels(bool set)
 	}
 
 	updating_channels_ = false;
+	config_changed();
 }
 
 void Channels::enable_channels_conditionally(
@@ -200,6 +201,7 @@ void Channels::enable_channels_conditionally(
 	}
 
 	updating_channels_ = false;
+	config_changed();
 }
 
 void Channels::disable_channels_conditionally(
@@ -219,6 +221,7 @@ void Channels::disable_channels_conditionally(
 	}
 
 	updating_channels_ = false;
+	config_changed();
 }
 
 void Channels::populate_group(shared_ptr<ChannelGroup> group,
@@ -380,6 +383,7 @@ void Channels::on_channel_checked(QWidget *widget)
 	assert(s);
 
 	s->set_enabled(check_box->isChecked());
+	config_changed();
 }
 
 void Channels::enable_all_channels()
diff --git a/pv/popups/channels.hpp b/pv/popups/channels.hpp
index 66d284b0..1280677d 100644
--- a/pv/popups/channels.hpp
+++ b/pv/popups/channels.hpp
@@ -81,6 +81,9 @@ private:
 
 	void showEvent(QShowEvent *event);
 
+Q_SIGNALS:
+	void config_changed();
+
 private Q_SLOTS:
 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
 	void on_channel_checked(QObject *widget);
diff --git a/pv/toolbars/mainbar.cpp b/pv/toolbars/mainbar.cpp
index cd46c063..57307173 100644
--- a/pv/toolbars/mainbar.cpp
+++ b/pv/toolbars/mainbar.cpp
@@ -552,6 +552,7 @@ void MainBar::update_device_config_widgets()
 	// Update the channels popup
 	Channels *const channels = new Channels(session_, this);
 	channels_button_.set_popup(channels);
+	QObject::connect(channels, &Channels::config_changed, this, &MainBar::on_config_changed);
 
 	// Update supported options.
 	sample_count_supported_ = false;
-- 
2.52.0

openSUSE Build Service is sponsored by