mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-04-02 03:57:38 +03:00
Enable access key underline of menu bar items when focused
* Fixes #7325 Qt 5.x defaults to always show mnemonic underlines in menus. Qt 6.x fixes this, but we can't port the fix since it relies on private theme namespaces. Anyway, to get around this, simply check if the widget is a menubar and focused. If so, we draw the underlines. Only applies when the user actually presses ALT so this is desired behavior. NOTE: Underlines in menus will disappear once you focus on the menu, still working on this
This commit is contained in:
parent
37ddbb3cd2
commit
858f8150ad
3 changed files with 24 additions and 6 deletions
|
@ -5631,10 +5631,6 @@ Are you sure you want to continue with this file?</source>
|
|||
<source>&Tools</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Theme</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -6300,6 +6296,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes.</
|
|||
<source>E&xpire Entry…</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear SSH Agent</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
|
@ -377,7 +377,7 @@
|
|||
</widget>
|
||||
<widget class="QMenu" name="menuView">
|
||||
<property name="title">
|
||||
<string>View</string>
|
||||
<string>&View</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuTheme">
|
||||
<property name="title">
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <QFile>
|
||||
#include <QHeaderView>
|
||||
#include <QListView>
|
||||
#include <QMenuBar>
|
||||
#include <QPainter>
|
||||
#include <QPainterPath>
|
||||
#include <QPoint>
|
||||
|
@ -4694,7 +4695,24 @@ int BaseStyle::styleHint(StyleHint hint,
|
|||
case SH_WindowFrame_Mask:
|
||||
return 0;
|
||||
case SH_UnderlineShortcut: {
|
||||
return false;
|
||||
#if defined(Q_OS_WIN) or defined(Q_OS_LINUX)
|
||||
// Only show underline shortcuts if the user focused with ALT (Win/Linux only)
|
||||
auto menu = qobject_cast<const QMenu*>(widget);
|
||||
if (menu) {
|
||||
auto p = menu->parentWidget();
|
||||
while (p) {
|
||||
auto mb = qobject_cast<QMenuBar*>(p);
|
||||
if (mb && mb->hasFocus()) {
|
||||
return 1;
|
||||
}
|
||||
p = p->parentWidget();
|
||||
}
|
||||
}
|
||||
auto mb = qobject_cast<const QMenuBar*>(widget);
|
||||
return (mb && mb->hasFocus()) ? 1 : 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
case SH_Widget_Animate:
|
||||
return 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue