mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-03-12 00:56:38 -04: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
8d6d937b1b
commit
b12b67be60
@ -5561,10 +5561,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>
|
||||
@ -6230,6 +6226,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>
|
||||
</context>
|
||||
<context>
|
||||
<name>ManageDatabase</name>
|
||||
|
@ -373,7 +373,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>
|
||||
@ -4680,7 +4681,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…
x
Reference in New Issue
Block a user