From c9fb8ab89f4580893545399a2619096fd59941f4 Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 27 Nov 2016 01:34:35 +0000 Subject: [PATCH] Allow for ampersand characters in configuration names Ampersand characters have special significance in action names, they indicate the following character is an accelerator. This change allows single ampersand characters but filters them out from the MultiSettings::configuration_name_changed signal. Double ampersands may be used to escape a single ampersand. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7338 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- MultiSettings.cpp | 2 +- MultiSettings.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MultiSettings.cpp b/MultiSettings.cpp index e791f25bd..8c00164ea 100644 --- a/MultiSettings.cpp +++ b/MultiSettings.cpp @@ -408,7 +408,7 @@ void MultiSettings::impl::create_menu_actions (QMainWindow * main_window, QMenu if (name_change_emit_pending_) { - Q_EMIT parent_->configurationNameChanged (current_); + Q_EMIT parent_->configurationNameChanged (current_.replace (QRegularExpression {R"(&([^&]))"}, R"(\1)").replace ("&&", "&")); name_change_emit_pending_ = false; } } diff --git a/MultiSettings.hpp b/MultiSettings.hpp index ba132ef67..0f2cef2ca 100644 --- a/MultiSettings.hpp +++ b/MultiSettings.hpp @@ -91,7 +91,7 @@ public: bool exit (); // emitted when the name of the current configuration changes - Q_SIGNAL void configurationNameChanged (QString const& name) const; + Q_SIGNAL void configurationNameChanged (QString name) const; private: class impl;