Skip to content

Commit 1fd1ab9

Browse files
hebastoknst
authored andcommitted
Merge bitcoin-core/gui#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
1 parent 4449567 commit 1fd1ab9

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/qt/bitcoingui.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -520,10 +520,9 @@ void BitcoinGUI::createActions()
520520
for (const std::pair<const std::string, bool>& i : m_wallet_controller->listWalletDir()) {
521521
const std::string& path = i.first;
522522
QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
523-
// Menu items remove single &. Single & are shown when && is in
524-
// the string, but only the first occurrence. So replace only
525-
// the first & with &&.
526-
name.replace(name.indexOf(QChar('&')), 1, QString("&&"));
523+
// An single ampersand in the menu item's text sets a shortcut for this item.
524+
// Single & are shown when && is in the string. So replace & with &&.
525+
name.replace(QChar('&'), QString("&&"));
527526
QAction* action = m_open_wallet_menu->addAction(name);
528527

529528
if (i.second) {

0 commit comments

Comments
 (0)