X-Git-Url: http://git.code-monkey.de/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fwidgets%2Fdevicetoolbutton.cpp;h=6a12aa25c446904651b60bfe6de58e13d27eaa12;hp=a0fc10e6f5a36de217cc2008cb1201e2f6bf0a02;hb=f4ab4b5c657e5613caba82feaa81a8a400e4f331;hpb=2a53532cca7d8ac0b6e61413a9f69580f9f8c941 diff --git a/pv/widgets/devicetoolbutton.cpp b/pv/widgets/devicetoolbutton.cpp index a0fc10e..6a12aa2 100644 --- a/pv/widgets/devicetoolbutton.cpp +++ b/pv/widgets/devicetoolbutton.cpp @@ -14,8 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * along with this program; if not, see . */ #include @@ -73,11 +72,18 @@ void DeviceToolButton::set_device_list( { selected_device_ = selected; setText(selected ? QString::fromStdString( - selected->display_name(device_manager_)) : ""); + selected->display_name(device_manager_)) : tr("")); devices_ = vector< weak_ptr >(devices.begin(), devices.end()); update_device_list(); } +void DeviceToolButton::reset() +{ + setText(tr("")); + selected_device_.reset(); + update_device_list(); +} + void DeviceToolButton::update_device_list() { menu_.clear(); @@ -85,7 +91,7 @@ void DeviceToolButton::update_device_list() menu_.setDefaultAction(connect_action_); menu_.addSeparator(); - for (weak_ptr dev_weak_ptr : devices_) { + for (weak_ptr& dev_weak_ptr : devices_) { shared_ptr dev(dev_weak_ptr.lock()); if (!dev) continue; @@ -108,8 +114,10 @@ void DeviceToolButton::on_action(QObject *action) { assert(action); + selected_device_.reset(); + Device *const dev = (Device*)((QAction*)action)->data().value(); - for (weak_ptr dev_weak_ptr : devices_) { + for (weak_ptr& dev_weak_ptr : devices_) { shared_ptr dev_ptr(dev_weak_ptr); if (dev_ptr.get() == dev) { selected_device_ = shared_ptr(dev_ptr); @@ -149,5 +157,5 @@ void DeviceToolButton::on_menu_hover_timeout() QToolTip::showText(QCursor::pos(), device_tooltip_); } -} // widgets -} // pv +} // namespace widgets +} // namespace pv