Skip to content

Commit c9b7a79

Browse files
committed
Merge #828: Rendering an amp characters in the wallet name for QMenu
8233ee4 gui: correct replacement of amp character in the wallet name for QMenu (Konstantin Akimov) Pull request description: In the current implementation Qt uses '&' as a signal to underscore letter and use it as a hot-key, which is not expected for case of wallet name. The [comment in the code](https://github.com/bitcoin/bitcoin/pull/30446/files#diff-2ecf8cbf369cf3d2f3d2b1cf5cfe4c1a647d63e11e2885d2fd0ac11fb5f7a804L402-L404) regarding the use of an "&" on a menu item is misleading. If a wallet name has an "&" in it, it is not supposed to be interpreted as a hot-key, but it should be shown as it is without replacing it to an underscore. See screenshots before & after: ![Screenshot_20240713_122454](https://github.com/user-attachments/assets/e36d6e4c-d872-4b4c-b55e-bcfde9881281) ![Screenshot_20240713_131304](https://github.com/user-attachments/assets/9484687d-0aea-4061-a461-5d187762a4b4) ACKs for top commit: hebasto: re-ACK 8233ee4. pablomartin4btc: tACK 8233ee4 BrandonOdiwuor: ACK 8233ee4. Tested on Ubuntu 22.04 using Qt version 5.15.3 Tree-SHA512: 918c2c05555d203a8b203794c138651d4a1691a05a858631d5a4664b78e150402d1ae4a02ee5181f63a5b22a09badca0a4ea14a626f45f8cbe557226c308b8c5
2 parents ec7ba7a + 8233ee4 commit c9b7a79

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/qt/bitcoingui.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -399,10 +399,9 @@ void BitcoinGUI::createActions()
399399
for (const std::pair<const std::string, bool>& i : m_wallet_controller->listWalletDir()) {
400400
const std::string& path = i.first;
401401
QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
402-
// Menu items remove single &. Single & are shown when && is in
403-
// the string, but only the first occurrence. So replace only
404-
// the first & with &&.
405-
name.replace(name.indexOf(QChar('&')), 1, QString("&&"));
402+
// An single ampersand in the menu item's text sets a shortcut for this item.
403+
// Single & are shown when && is in the string. So replace & with &&.
404+
name.replace(QChar('&'), QString("&&"));
406405
QAction* action = m_open_wallet_menu->addAction(name);
407406

408407
if (i.second) {

0 commit comments

Comments
 (0)