Add further theme hints to QPlatformTheme.
- Add hints for QDialog/QDialogButtonBox. - Add hint for available popup-menu area. - Add keyboard scheme hint replacing QGuiApplicationPrivate::currentKeyPlatform() Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Task-number: QTBUG-24204 Task-number: QTBUG-24315 Change-Id: I6653786b0dcb49a6fc264d3b9891dbfee502bd3e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
parent
53bb87d1d2
commit
541949aed2
@ -833,7 +833,7 @@ Qt::KeyboardModifiers QKeyEvent::modifiers() const
|
||||
bool QKeyEvent::matches(QKeySequence::StandardKey matchKey) const
|
||||
{
|
||||
uint searchkey = (modifiers() | key()) & ~(Qt::KeypadModifier); //The keypad modifier should not make a difference
|
||||
uint platform = QGuiApplicationPrivate::currentKeyPlatform();
|
||||
const uint platform = QKeySequencePrivate::currentKeyPlatforms();
|
||||
|
||||
|
||||
uint N = QKeySequencePrivate::numberOfKeyBindings;
|
||||
|
@ -1911,27 +1911,6 @@ QInputPanel *QGuiApplication::inputPanel() const
|
||||
return inputMethod();
|
||||
}
|
||||
|
||||
|
||||
// Returns the current platform used by keyBindings
|
||||
uint QGuiApplicationPrivate::currentKeyPlatform()
|
||||
{
|
||||
uint platform = KB_Win;
|
||||
#ifdef Q_OS_MAC
|
||||
platform = KB_Mac;
|
||||
#elif defined Q_WS_X11 // ## TODO: detect these
|
||||
platform = KB_X11;
|
||||
#if 0
|
||||
if (X11->desktopEnvironment == DE_KDE)
|
||||
platform |= KB_KDE;
|
||||
if (X11->desktopEnvironment == DE_GNOME)
|
||||
platform |= KB_Gnome;
|
||||
if (X11->desktopEnvironment == DE_CDE)
|
||||
platform |= KB_CDE;
|
||||
#endif
|
||||
#endif
|
||||
return platform;
|
||||
}
|
||||
|
||||
/*!
|
||||
\since 4.5
|
||||
\fn void QGuiApplication::fontDatabaseChanged()
|
||||
|
@ -89,19 +89,6 @@ public:
|
||||
static QPlatformTheme *platformTheme()
|
||||
{ return platform_theme; }
|
||||
|
||||
|
||||
enum KeyPlatform {
|
||||
KB_Win = 1,
|
||||
KB_Mac = 2,
|
||||
KB_X11 = 4,
|
||||
KB_KDE = 8,
|
||||
KB_Gnome = 16,
|
||||
KB_CDE = 32,
|
||||
KB_All = 0xffff
|
||||
};
|
||||
|
||||
static uint currentKeyPlatform();
|
||||
|
||||
static QAbstractEventDispatcher *qt_qpa_core_dispatcher()
|
||||
{ return QCoreApplication::instance()->d_func()->threadData->eventDispatcher; }
|
||||
|
||||
|
@ -41,6 +41,7 @@
|
||||
|
||||
#include "qkeysequence.h"
|
||||
#include "qkeysequence_p.h"
|
||||
#include "qplatformtheme_qpa.h"
|
||||
#include "private/qguiapplication_p.h"
|
||||
|
||||
#ifndef QT_NO_SHORTCUT
|
||||
@ -640,153 +641,163 @@ static const struct {
|
||||
//Table of key bindings. It must be sorted on key sequence.
|
||||
//A priority of 1 indicates that this is the primary key binding when multiple are defined.
|
||||
|
||||
enum KeyPlatform {
|
||||
KB_Win = (1 << QPlatformTheme::WindowsKeyboardScheme),
|
||||
KB_Mac = (1 << QPlatformTheme::MacKeyboardScheme),
|
||||
KB_X11 = (1 << QPlatformTheme::X11KeyboardScheme),
|
||||
KB_KDE = (1 << QPlatformTheme::KdeKeyboardScheme),
|
||||
KB_Gnome = (1 << QPlatformTheme::GnomeKeyboardScheme),
|
||||
KB_CDE = (1 << QPlatformTheme::CdeKeyboardScheme),
|
||||
KB_All = 0xffff
|
||||
};
|
||||
|
||||
const QKeyBinding QKeySequencePrivate::keyBindings[] = {
|
||||
// StandardKey Priority Key Sequence Platforms
|
||||
{QKeySequence::Back, 0, Qt::Key_Backspace, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::InsertParagraphSeparator,0, Qt::Key_Return, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::InsertParagraphSeparator,0, Qt::Key_Enter, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Delete, 1, Qt::Key_Delete, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::Key_Home, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToStartOfDocument, 0, Qt::Key_Home, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::Key_End, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 0, Qt::Key_End, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToPreviousChar, 0, Qt::Key_Left, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToPreviousLine, 0, Qt::Key_Up, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToNextChar, 0, Qt::Key_Right, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToNextLine, 0, Qt::Key_Down, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToPreviousPage, 1, Qt::Key_PageUp, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::MoveToNextPage, 1, Qt::Key_PageDown, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::HelpContents, 0, Qt::Key_F1, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::FindNext, 0, Qt::Key_F3, QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::FindNext, 1, Qt::Key_F3, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Refresh, 0, Qt::Key_F5, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::Undo, 0, Qt::Key_F14, QGuiApplicationPrivate::KB_X11}, //Undo on sun keyboards
|
||||
{QKeySequence::Copy, 0, Qt::Key_F16, QGuiApplicationPrivate::KB_X11}, //Copy on sun keyboards
|
||||
{QKeySequence::Paste, 0, Qt::Key_F18, QGuiApplicationPrivate::KB_X11}, //Paste on sun keyboards
|
||||
{QKeySequence::Cut, 0, Qt::Key_F20, QGuiApplicationPrivate::KB_X11}, //Cut on sun keyboards
|
||||
{QKeySequence::PreviousChild, 0, Qt::Key_Back, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::NextChild, 0, Qt::Key_Forward, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Forward, 0, Qt::SHIFT | Qt::Key_Backspace, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::SHIFT | Qt::Key_Return, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::SHIFT | Qt::Key_Enter, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Paste, 0, Qt::SHIFT | Qt::Key_Insert, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::Cut, 0, Qt::SHIFT | Qt::Key_Delete, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11}, //## Check if this should work on mac
|
||||
{QKeySequence::SelectStartOfLine, 0, Qt::SHIFT | Qt::Key_Home, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectStartOfDocument, 0, Qt::SHIFT | Qt::Key_Home, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectEndOfLine, 0, Qt::SHIFT | Qt::Key_End, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectEndOfDocument, 0, Qt::SHIFT | Qt::Key_End, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectPreviousChar, 0, Qt::SHIFT | Qt::Key_Left, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::SelectPreviousLine, 0, Qt::SHIFT | Qt::Key_Up, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::SelectNextChar, 0, Qt::SHIFT | Qt::Key_Right, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::SelectNextLine, 0, Qt::SHIFT | Qt::Key_Down, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::SelectPreviousPage, 0, Qt::SHIFT | Qt::Key_PageUp, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::SelectNextPage, 0, Qt::SHIFT | Qt::Key_PageDown, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::WhatsThis, 1, Qt::SHIFT | Qt::Key_F1, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::FindPrevious, 0, Qt::SHIFT | Qt::Key_F3, QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::FindPrevious, 1, Qt::SHIFT | Qt::Key_F3, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::ZoomIn, 1, Qt::CTRL | Qt::Key_Plus, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_Comma, QGuiApplicationPrivate::KB_KDE},
|
||||
{QKeySequence::Preferences, 0, Qt::CTRL | Qt::Key_Comma, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::ZoomOut, 1, Qt::CTRL | Qt::Key_Minus, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::Key_Period, QGuiApplicationPrivate::KB_KDE},
|
||||
{QKeySequence::HelpContents, 1, Qt::CTRL | Qt::Key_Question, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectAll, 1, Qt::CTRL | Qt::Key_A, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Bold, 1, Qt::CTRL | Qt::Key_B, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Copy, 1, Qt::CTRL | Qt::Key_C, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Delete, 0, Qt::CTRL | Qt::Key_D, QGuiApplicationPrivate::KB_X11}, //emacs (line edit only)
|
||||
{QKeySequence::Find, 0, Qt::CTRL | Qt::Key_F, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::FindNext, 1, Qt::CTRL | Qt::Key_G, QGuiApplicationPrivate::KB_Gnome | QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::FindNext, 0, Qt::CTRL | Qt::Key_G, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_H, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_H, QGuiApplicationPrivate::KB_Gnome},
|
||||
{QKeySequence::Italic, 0, Qt::CTRL | Qt::Key_I, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::DeleteEndOfLine, 0, Qt::CTRL | Qt::Key_K, QGuiApplicationPrivate::KB_X11}, //emacs (line edit only)
|
||||
{QKeySequence::New, 1, Qt::CTRL | Qt::Key_N, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Open, 1, Qt::CTRL | Qt::Key_O, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Print, 1, Qt::CTRL | Qt::Key_P, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Quit, 0, Qt::CTRL | Qt::Key_Q, QGuiApplicationPrivate::KB_Gnome | QGuiApplicationPrivate::KB_KDE | QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Refresh, 1, Qt::CTRL | Qt::Key_R, QGuiApplicationPrivate::KB_Gnome | QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_R, QGuiApplicationPrivate::KB_KDE},
|
||||
{QKeySequence::Save, 1, Qt::CTRL | Qt::Key_S, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::AddTab, 0, Qt::CTRL | Qt::Key_T, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Underline, 1, Qt::CTRL | Qt::Key_U, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Paste, 1, Qt::CTRL | Qt::Key_V, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Close, 0, Qt::CTRL | Qt::Key_W, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::Close, 1, Qt::CTRL | Qt::Key_W, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Cut, 1, Qt::CTRL | Qt::Key_X, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Redo, 1, Qt::CTRL | Qt::Key_Y, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Undo, 1, Qt::CTRL | Qt::Key_Z, QGuiApplicationPrivate::KB_All},
|
||||
{QKeySequence::Back, 1, Qt::CTRL | Qt::Key_BracketLeft, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Forward, 1, Qt::CTRL | Qt::Key_BracketRight, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::PreviousChild, 1, Qt::CTRL | Qt::Key_BraceLeft, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::NextChild, 1, Qt::CTRL | Qt::Key_BraceRight, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::NextChild, 1, Qt::CTRL | Qt::Key_Tab, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_Tab, QGuiApplicationPrivate::KB_Mac}, //different priority from above
|
||||
{QKeySequence::DeleteStartOfWord, 0, Qt::CTRL | Qt::Key_Backspace, QGuiApplicationPrivate::KB_X11 | QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Copy, 0, Qt::CTRL | Qt::Key_Insert, QGuiApplicationPrivate::KB_X11 | QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::DeleteEndOfWord, 0, Qt::CTRL | Qt::Key_Delete, QGuiApplicationPrivate::KB_X11 | QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::MoveToStartOfDocument, 0, Qt::CTRL | Qt::Key_Home, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 0, Qt::CTRL | Qt::Key_End, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::Back, 0, Qt::CTRL | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToPreviousWord, 0, Qt::CTRL | Qt::Key_Left, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::CTRL | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::MoveToStartOfDocument, 1, Qt::CTRL | Qt::Key_Up, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Forward, 0, Qt::CTRL | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::CTRL | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::MoveToNextWord, 0, Qt::CTRL | Qt::Key_Right, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 1, Qt::CTRL | Qt::Key_Down, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Close, 1, Qt::CTRL | Qt::Key_F4, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Close, 0, Qt::CTRL | Qt::Key_F4, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_F6, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::FindPrevious, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_G, QGuiApplicationPrivate::KB_Gnome | QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::FindPrevious, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_G, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::AddTab, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_N, QGuiApplicationPrivate::KB_KDE},
|
||||
{QKeySequence::SaveAs, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_S, QGuiApplicationPrivate::KB_Gnome | QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::PreviousChild, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, QGuiApplicationPrivate::KB_Mac },//different priority from above
|
||||
{QKeySequence::Paste, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Insert, QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectStartOfDocument, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Home, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectEndOfDocument, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_End, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectPreviousWord, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Left, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectStartOfLine, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::SelectStartOfDocument, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Up, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectNextWord, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Right, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::SelectEndOfLine, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::SelectEndOfDocument, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Down, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_F6, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::Undo, 0, Qt::ALT | Qt::Key_Backspace, QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::DeleteStartOfWord, 0, Qt::ALT | Qt::Key_Backspace, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::DeleteEndOfWord, 0, Qt::ALT | Qt::Key_Delete, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Back, 1, Qt::ALT | Qt::Key_Left, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToPreviousWord, 0, Qt::ALT | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToStartOfBlock, 0, Qt::ALT | Qt::Key_Up, QGuiApplicationPrivate::KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToNextWord, 0, Qt::ALT | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Forward, 1, Qt::ALT | Qt::Key_Right, QGuiApplicationPrivate::KB_Win | QGuiApplicationPrivate::KB_X11},
|
||||
{QKeySequence::MoveToEndOfBlock, 0, Qt::ALT | Qt::Key_Down, QGuiApplicationPrivate::KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::ALT | Qt::Key_PageUp, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::ALT | Qt::Key_PageDown, QGuiApplicationPrivate::KB_Mac },
|
||||
{QKeySequence::Redo, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Backspace,QGuiApplicationPrivate::KB_Win},
|
||||
{QKeySequence::SelectPreviousWord, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectStartOfBlock, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Up, QGuiApplicationPrivate::KB_Mac}, //mac only
|
||||
{QKeySequence::SelectNextWord, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectEndOfBlock, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Down, QGuiApplicationPrivate::KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToStartOfBlock, 0, Qt::META | Qt::Key_A, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::Delete, 0, Qt::META | Qt::Key_D, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToEndOfBlock, 0, Qt::META | Qt::Key_E, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::META | Qt::Key_Return, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::META | Qt::Key_Enter, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::META | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::META | Qt::Key_Up, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::META | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::META | Qt::Key_Down, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::META | Qt::Key_PageUp, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::META | Qt::Key_PageDown, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectStartOfBlock, 0, Qt::META | Qt::SHIFT | Qt::Key_A, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectEndOfBlock, 0, Qt::META | Qt::SHIFT | Qt::Key_E, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectStartOfLine, 0, Qt::META | Qt::SHIFT | Qt::Key_Left, QGuiApplicationPrivate::KB_Mac},
|
||||
{QKeySequence::SelectEndOfLine, 0, Qt::META | Qt::SHIFT | Qt::Key_Right, QGuiApplicationPrivate::KB_Mac}
|
||||
{QKeySequence::Back, 0, Qt::Key_Backspace, KB_Win},
|
||||
{QKeySequence::InsertParagraphSeparator,0, Qt::Key_Return, KB_All},
|
||||
{QKeySequence::InsertParagraphSeparator,0, Qt::Key_Enter, KB_All},
|
||||
{QKeySequence::Delete, 1, Qt::Key_Delete, KB_All},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::Key_Home, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToStartOfDocument, 0, Qt::Key_Home, KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::Key_End, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 0, Qt::Key_End, KB_Mac},
|
||||
{QKeySequence::MoveToPreviousChar, 0, Qt::Key_Left, KB_All},
|
||||
{QKeySequence::MoveToPreviousLine, 0, Qt::Key_Up, KB_All},
|
||||
{QKeySequence::MoveToNextChar, 0, Qt::Key_Right, KB_All},
|
||||
{QKeySequence::MoveToNextLine, 0, Qt::Key_Down, KB_All},
|
||||
{QKeySequence::MoveToPreviousPage, 1, Qt::Key_PageUp, KB_All},
|
||||
{QKeySequence::MoveToNextPage, 1, Qt::Key_PageDown, KB_All},
|
||||
{QKeySequence::HelpContents, 0, Qt::Key_F1, KB_Win | KB_X11},
|
||||
{QKeySequence::FindNext, 0, Qt::Key_F3, KB_X11},
|
||||
{QKeySequence::FindNext, 1, Qt::Key_F3, KB_Win},
|
||||
{QKeySequence::Refresh, 0, Qt::Key_F5, KB_Win | KB_X11},
|
||||
{QKeySequence::Undo, 0, Qt::Key_F14, KB_X11}, //Undo on sun keyboards
|
||||
{QKeySequence::Copy, 0, Qt::Key_F16, KB_X11}, //Copy on sun keyboards
|
||||
{QKeySequence::Paste, 0, Qt::Key_F18, KB_X11}, //Paste on sun keyboards
|
||||
{QKeySequence::Cut, 0, Qt::Key_F20, KB_X11}, //Cut on sun keyboards
|
||||
{QKeySequence::PreviousChild, 0, Qt::Key_Back, KB_All},
|
||||
{QKeySequence::NextChild, 0, Qt::Key_Forward, KB_All},
|
||||
{QKeySequence::Forward, 0, Qt::SHIFT | Qt::Key_Backspace, KB_Win},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::SHIFT | Qt::Key_Return, KB_All},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::SHIFT | Qt::Key_Enter, KB_All},
|
||||
{QKeySequence::Paste, 0, Qt::SHIFT | Qt::Key_Insert, KB_Win | KB_X11},
|
||||
{QKeySequence::Cut, 0, Qt::SHIFT | Qt::Key_Delete, KB_Win | KB_X11}, //## Check if this should work on mac
|
||||
{QKeySequence::SelectStartOfLine, 0, Qt::SHIFT | Qt::Key_Home, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectStartOfDocument, 0, Qt::SHIFT | Qt::Key_Home, KB_Mac},
|
||||
{QKeySequence::SelectEndOfLine, 0, Qt::SHIFT | Qt::Key_End, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectEndOfDocument, 0, Qt::SHIFT | Qt::Key_End, KB_Mac},
|
||||
{QKeySequence::SelectPreviousChar, 0, Qt::SHIFT | Qt::Key_Left, KB_All},
|
||||
{QKeySequence::SelectPreviousLine, 0, Qt::SHIFT | Qt::Key_Up, KB_All},
|
||||
{QKeySequence::SelectNextChar, 0, Qt::SHIFT | Qt::Key_Right, KB_All},
|
||||
{QKeySequence::SelectNextLine, 0, Qt::SHIFT | Qt::Key_Down, KB_All},
|
||||
{QKeySequence::SelectPreviousPage, 0, Qt::SHIFT | Qt::Key_PageUp, KB_All},
|
||||
{QKeySequence::SelectNextPage, 0, Qt::SHIFT | Qt::Key_PageDown, KB_All},
|
||||
{QKeySequence::WhatsThis, 1, Qt::SHIFT | Qt::Key_F1, KB_All},
|
||||
{QKeySequence::FindPrevious, 0, Qt::SHIFT | Qt::Key_F3, KB_X11},
|
||||
{QKeySequence::FindPrevious, 1, Qt::SHIFT | Qt::Key_F3, KB_Win},
|
||||
{QKeySequence::ZoomIn, 1, Qt::CTRL | Qt::Key_Plus, KB_All},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_Comma, KB_KDE},
|
||||
{QKeySequence::Preferences, 0, Qt::CTRL | Qt::Key_Comma, KB_Mac},
|
||||
{QKeySequence::ZoomOut, 1, Qt::CTRL | Qt::Key_Minus, KB_All},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::Key_Period, KB_KDE},
|
||||
{QKeySequence::HelpContents, 1, Qt::CTRL | Qt::Key_Question, KB_Mac},
|
||||
{QKeySequence::SelectAll, 1, Qt::CTRL | Qt::Key_A, KB_All},
|
||||
{QKeySequence::Bold, 1, Qt::CTRL | Qt::Key_B, KB_All},
|
||||
{QKeySequence::Copy, 1, Qt::CTRL | Qt::Key_C, KB_All},
|
||||
{QKeySequence::Delete, 0, Qt::CTRL | Qt::Key_D, KB_X11}, //emacs (line edit only)
|
||||
{QKeySequence::Find, 0, Qt::CTRL | Qt::Key_F, KB_All},
|
||||
{QKeySequence::FindNext, 1, Qt::CTRL | Qt::Key_G, KB_Gnome | KB_Mac},
|
||||
{QKeySequence::FindNext, 0, Qt::CTRL | Qt::Key_G, KB_Win},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_H, KB_Win},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_H, KB_Gnome},
|
||||
{QKeySequence::Italic, 0, Qt::CTRL | Qt::Key_I, KB_All},
|
||||
{QKeySequence::DeleteEndOfLine, 0, Qt::CTRL | Qt::Key_K, KB_X11}, //emacs (line edit only)
|
||||
{QKeySequence::New, 1, Qt::CTRL | Qt::Key_N, KB_All},
|
||||
{QKeySequence::Open, 1, Qt::CTRL | Qt::Key_O, KB_All},
|
||||
{QKeySequence::Print, 1, Qt::CTRL | Qt::Key_P, KB_All},
|
||||
{QKeySequence::Quit, 0, Qt::CTRL | Qt::Key_Q, KB_Gnome | KB_KDE | KB_Mac},
|
||||
{QKeySequence::Refresh, 1, Qt::CTRL | Qt::Key_R, KB_Gnome | KB_Mac},
|
||||
{QKeySequence::Replace, 0, Qt::CTRL | Qt::Key_R, KB_KDE},
|
||||
{QKeySequence::Save, 1, Qt::CTRL | Qt::Key_S, KB_All},
|
||||
{QKeySequence::AddTab, 0, Qt::CTRL | Qt::Key_T, KB_All},
|
||||
{QKeySequence::Underline, 1, Qt::CTRL | Qt::Key_U, KB_All},
|
||||
{QKeySequence::Paste, 1, Qt::CTRL | Qt::Key_V, KB_All},
|
||||
{QKeySequence::Close, 0, Qt::CTRL | Qt::Key_W, KB_Win | KB_X11},
|
||||
{QKeySequence::Close, 1, Qt::CTRL | Qt::Key_W, KB_Mac},
|
||||
{QKeySequence::Cut, 1, Qt::CTRL | Qt::Key_X, KB_All},
|
||||
{QKeySequence::Redo, 1, Qt::CTRL | Qt::Key_Y, KB_Win},
|
||||
{QKeySequence::Undo, 1, Qt::CTRL | Qt::Key_Z, KB_All},
|
||||
{QKeySequence::Back, 1, Qt::CTRL | Qt::Key_BracketLeft, KB_Mac},
|
||||
{QKeySequence::Forward, 1, Qt::CTRL | Qt::Key_BracketRight, KB_Mac},
|
||||
{QKeySequence::PreviousChild, 1, Qt::CTRL | Qt::Key_BraceLeft, KB_Mac},
|
||||
{QKeySequence::NextChild, 1, Qt::CTRL | Qt::Key_BraceRight, KB_Mac},
|
||||
{QKeySequence::NextChild, 1, Qt::CTRL | Qt::Key_Tab, KB_Win | KB_X11},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_Tab, KB_Mac}, //different priority from above
|
||||
{QKeySequence::DeleteStartOfWord, 0, Qt::CTRL | Qt::Key_Backspace, KB_X11 | KB_Win},
|
||||
{QKeySequence::Copy, 0, Qt::CTRL | Qt::Key_Insert, KB_X11 | KB_Win},
|
||||
{QKeySequence::DeleteEndOfWord, 0, Qt::CTRL | Qt::Key_Delete, KB_X11 | KB_Win},
|
||||
{QKeySequence::MoveToStartOfDocument, 0, Qt::CTRL | Qt::Key_Home, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 0, Qt::CTRL | Qt::Key_End, KB_Win | KB_X11},
|
||||
{QKeySequence::Back, 0, Qt::CTRL | Qt::Key_Left, KB_Mac},
|
||||
{QKeySequence::MoveToPreviousWord, 0, Qt::CTRL | Qt::Key_Left, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::CTRL | Qt::Key_Left, KB_Mac },
|
||||
{QKeySequence::MoveToStartOfDocument, 1, Qt::CTRL | Qt::Key_Up, KB_Mac},
|
||||
{QKeySequence::Forward, 0, Qt::CTRL | Qt::Key_Right, KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::CTRL | Qt::Key_Right, KB_Mac },
|
||||
{QKeySequence::MoveToNextWord, 0, Qt::CTRL | Qt::Key_Right, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToEndOfDocument, 1, Qt::CTRL | Qt::Key_Down, KB_Mac},
|
||||
{QKeySequence::Close, 1, Qt::CTRL | Qt::Key_F4, KB_Win},
|
||||
{QKeySequence::Close, 0, Qt::CTRL | Qt::Key_F4, KB_Mac},
|
||||
{QKeySequence::NextChild, 0, Qt::CTRL | Qt::Key_F6, KB_Win},
|
||||
{QKeySequence::FindPrevious, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_G, KB_Gnome | KB_Mac},
|
||||
{QKeySequence::FindPrevious, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_G, KB_Win},
|
||||
{QKeySequence::AddTab, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_N, KB_KDE},
|
||||
{QKeySequence::SaveAs, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_S, KB_Gnome | KB_Mac},
|
||||
{QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, KB_Win | KB_X11},
|
||||
{QKeySequence::Redo, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Z, KB_Mac},
|
||||
{QKeySequence::PreviousChild, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, KB_Win | KB_X11},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Backtab, KB_Mac },//different priority from above
|
||||
{QKeySequence::Paste, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Insert, KB_X11},
|
||||
{QKeySequence::SelectStartOfDocument, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Home, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectEndOfDocument, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_End, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectPreviousWord, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Left, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectStartOfLine, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Left, KB_Mac },
|
||||
{QKeySequence::SelectStartOfDocument, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Up, KB_Mac},
|
||||
{QKeySequence::SelectNextWord, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_Right, KB_Win | KB_X11},
|
||||
{QKeySequence::SelectEndOfLine, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Right, KB_Mac },
|
||||
{QKeySequence::SelectEndOfDocument, 1, Qt::CTRL | Qt::SHIFT | Qt::Key_Down, KB_Mac},
|
||||
{QKeySequence::PreviousChild, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_F6, KB_Win},
|
||||
{QKeySequence::Undo, 0, Qt::ALT | Qt::Key_Backspace, KB_Win},
|
||||
{QKeySequence::DeleteStartOfWord, 0, Qt::ALT | Qt::Key_Backspace, KB_Mac},
|
||||
{QKeySequence::DeleteEndOfWord, 0, Qt::ALT | Qt::Key_Delete, KB_Mac},
|
||||
{QKeySequence::Back, 1, Qt::ALT | Qt::Key_Left, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToPreviousWord, 0, Qt::ALT | Qt::Key_Left, KB_Mac},
|
||||
{QKeySequence::MoveToStartOfBlock, 0, Qt::ALT | Qt::Key_Up, KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToNextWord, 0, Qt::ALT | Qt::Key_Right, KB_Mac},
|
||||
{QKeySequence::Forward, 1, Qt::ALT | Qt::Key_Right, KB_Win | KB_X11},
|
||||
{QKeySequence::MoveToEndOfBlock, 0, Qt::ALT | Qt::Key_Down, KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::ALT | Qt::Key_PageUp, KB_Mac },
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::ALT | Qt::Key_PageDown, KB_Mac },
|
||||
{QKeySequence::Redo, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Backspace,KB_Win},
|
||||
{QKeySequence::SelectPreviousWord, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Left, KB_Mac},
|
||||
{QKeySequence::SelectStartOfBlock, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Up, KB_Mac}, //mac only
|
||||
{QKeySequence::SelectNextWord, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Right, KB_Mac},
|
||||
{QKeySequence::SelectEndOfBlock, 0, Qt::ALT | Qt::SHIFT | Qt::Key_Down, KB_Mac}, //mac only
|
||||
{QKeySequence::MoveToStartOfBlock, 0, Qt::META | Qt::Key_A, KB_Mac},
|
||||
{QKeySequence::Delete, 0, Qt::META | Qt::Key_D, KB_Mac},
|
||||
{QKeySequence::MoveToEndOfBlock, 0, Qt::META | Qt::Key_E, KB_Mac},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::META | Qt::Key_Return, KB_Mac},
|
||||
{QKeySequence::InsertLineSeparator, 0, Qt::META | Qt::Key_Enter, KB_Mac},
|
||||
{QKeySequence::MoveToStartOfLine, 0, Qt::META | Qt::Key_Left, KB_Mac},
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::META | Qt::Key_Up, KB_Mac},
|
||||
{QKeySequence::MoveToEndOfLine, 0, Qt::META | Qt::Key_Right, KB_Mac},
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::META | Qt::Key_Down, KB_Mac},
|
||||
{QKeySequence::MoveToPreviousPage, 0, Qt::META | Qt::Key_PageUp, KB_Mac},
|
||||
{QKeySequence::MoveToNextPage, 0, Qt::META | Qt::Key_PageDown, KB_Mac},
|
||||
{QKeySequence::SelectStartOfBlock, 0, Qt::META | Qt::SHIFT | Qt::Key_A, KB_Mac},
|
||||
{QKeySequence::SelectEndOfBlock, 0, Qt::META | Qt::SHIFT | Qt::Key_E, KB_Mac},
|
||||
{QKeySequence::SelectStartOfLine, 0, Qt::META | Qt::SHIFT | Qt::Key_Left, KB_Mac},
|
||||
{QKeySequence::SelectEndOfLine, 0, Qt::META | Qt::SHIFT | Qt::Key_Right, KB_Mac}
|
||||
};
|
||||
|
||||
const uint QKeySequencePrivate::numberOfKeyBindings = sizeof(QKeySequencePrivate::keyBindings)/(sizeof(QKeyBinding));
|
||||
@ -991,7 +1002,7 @@ static inline int maybeSwapShortcut(int shortcut)
|
||||
*/
|
||||
QList<QKeySequence> QKeySequence::keyBindings(StandardKey key)
|
||||
{
|
||||
uint platform = QGuiApplicationPrivate::currentKeyPlatform();
|
||||
const uint platform = QKeySequencePrivate::currentKeyPlatforms();
|
||||
QList <QKeySequence> list;
|
||||
for (uint i = 0; i < QKeySequencePrivate::numberOfKeyBindings ; ++i) {
|
||||
QKeyBinding keyBinding = QKeySequencePrivate::keyBindings[i];
|
||||
@ -1330,6 +1341,19 @@ int QKeySequencePrivate::decodeString(const QString &str, QKeySequence::Sequence
|
||||
return ret;
|
||||
}
|
||||
|
||||
unsigned QKeySequencePrivate::currentKeyPlatforms()
|
||||
{
|
||||
int keyboardScheme = QPlatformTheme::WindowsKeyboardScheme;
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
keyboardScheme = theme->themeHint(QPlatformTheme::KeyboardScheme).toInt();
|
||||
unsigned result = 1u << keyboardScheme;
|
||||
if (keyboardScheme == QPlatformTheme::KdeKeyboardScheme
|
||||
|| keyboardScheme == QPlatformTheme::GnomeKeyboardScheme
|
||||
|| keyboardScheme == QPlatformTheme::CdeKeyboardScheme)
|
||||
result |= KB_X11;
|
||||
return result;
|
||||
}
|
||||
|
||||
/*!
|
||||
Creates a shortcut string for \a key. For example,
|
||||
Qt::CTRL+Qt::Key_O gives "Ctrl+O". The strings, "Ctrl", "Shift", etc. are
|
||||
|
@ -88,6 +88,7 @@ public:
|
||||
static const QKeyBinding keyBindings[];
|
||||
static const uint numberOfKeyBindings;
|
||||
|
||||
static unsigned currentKeyPlatforms();
|
||||
};
|
||||
#endif // QT_NO_SHORTCUT
|
||||
|
||||
|
@ -84,6 +84,20 @@ QT_BEGIN_NAMESPACE
|
||||
|
||||
\value StyleNames (QStringList) A list of preferred style names.
|
||||
|
||||
\value WindowAutoPlacement (bool) A boolean value indicating whether Windows
|
||||
(particularly dialogs) are placed by the system
|
||||
(see _NET_WM_FULL_PLACEMENT in X11).
|
||||
|
||||
\value DialogButtonBoxLayout (int) An integer representing a
|
||||
QDialogButtonBox::ButtonLayout value.
|
||||
|
||||
\value DialogButtonBoxButtonsHaveIcons (bool) A boolean value indicating whether
|
||||
the buttons of a QDialogButtonBox should have icons.
|
||||
|
||||
\value UseFullScreenForPopupMenu (bool) Pop menus can cover the full screen including task bar.
|
||||
|
||||
\value KeyboardScheme (int) An integer value (enum KeyboardSchemes) specifying the
|
||||
keyboard scheme.
|
||||
|
||||
\sa themeHint(), QStyle::pixelMetric()
|
||||
*/
|
||||
@ -121,6 +135,14 @@ const QPalette *QPlatformTheme::palette(Palette type) const
|
||||
QVariant QPlatformTheme::themeHint(ThemeHint hint) const
|
||||
{
|
||||
switch (hint) {
|
||||
case QPlatformTheme::UseFullScreenForPopupMenu:
|
||||
return QVariant(false);
|
||||
case QPlatformTheme::WindowAutoPlacement:
|
||||
return QVariant(false);
|
||||
case QPlatformTheme::DialogButtonBoxLayout:
|
||||
return QVariant(int(0));
|
||||
case QPlatformTheme::DialogButtonBoxButtonsHaveIcons:
|
||||
return QVariant(false);
|
||||
case QPlatformTheme::ItemViewActivateItemOnSingleClick:
|
||||
return QVariant(false);
|
||||
case QPlatformTheme::ToolButtonStyle:
|
||||
@ -140,6 +162,8 @@ QVariant QPlatformTheme::themeHint(ThemeHint hint) const
|
||||
return QVariant(false);
|
||||
case MaximumScrollBarDragDistance:
|
||||
return QVariant(-1);
|
||||
case KeyboardScheme:
|
||||
return QVariant(int(WindowsKeyboardScheme));
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
@ -69,7 +69,12 @@ public:
|
||||
SystemIconThemeName,
|
||||
SystemIconFallbackThemeName,
|
||||
IconThemeSearchPaths,
|
||||
StyleNames
|
||||
StyleNames,
|
||||
WindowAutoPlacement,
|
||||
DialogButtonBoxLayout,
|
||||
DialogButtonBoxButtonsHaveIcons,
|
||||
UseFullScreenForPopupMenu,
|
||||
KeyboardScheme
|
||||
};
|
||||
|
||||
enum DialogType {
|
||||
@ -84,6 +89,16 @@ public:
|
||||
NPalettes
|
||||
};
|
||||
|
||||
enum KeyboardSchemes
|
||||
{
|
||||
WindowsKeyboardScheme,
|
||||
MacKeyboardScheme,
|
||||
X11KeyboardScheme,
|
||||
KdeKeyboardScheme,
|
||||
GnomeKeyboardScheme,
|
||||
CdeKeyboardScheme
|
||||
};
|
||||
|
||||
virtual QPlatformMenu *createPlatformMenu(QMenu *menu = 0) const;
|
||||
virtual QPlatformMenuBar *createPlatformMenuBar(QMenuBar *menuBar = 0) const;
|
||||
|
||||
|
@ -89,12 +89,15 @@ QVariant QGenericUnixTheme::themeHint(ThemeHint hint) const
|
||||
return QVariant(QString(QStringLiteral("hicolor")));
|
||||
case QPlatformTheme::IconThemeSearchPaths:
|
||||
return xdgIconThemePaths();
|
||||
case QPlatformTheme::DialogButtonBoxButtonsHaveIcons:
|
||||
return QVariant(true);
|
||||
case QPlatformTheme::StyleNames: {
|
||||
QStringList styleNames;
|
||||
styleNames << QStringLiteral("Plastique") << QStringLiteral("Windows");
|
||||
return QVariant(styleNames);
|
||||
}
|
||||
break;
|
||||
case QPlatformTheme::KeyboardScheme:
|
||||
return QVariant(int(X11KeyboardScheme));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -229,6 +232,12 @@ static QStringList kdeIconThemeSearchPaths(const QString &kdeHome)
|
||||
QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
|
||||
{
|
||||
switch (hint) {
|
||||
case QPlatformTheme::UseFullScreenForPopupMenu:
|
||||
return QVariant(true);
|
||||
case QPlatformTheme::DialogButtonBoxButtonsHaveIcons:
|
||||
return QVariant(true);
|
||||
case QPlatformTheme::DialogButtonBoxLayout:
|
||||
return QVariant(2); // QDialogButtonBox::KdeLayout
|
||||
case QPlatformTheme::ToolButtonStyle:
|
||||
return QVariant(m_toolButtonStyle);
|
||||
case QPlatformTheme::ToolBarIconSize:
|
||||
@ -241,6 +250,8 @@ QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
|
||||
return QVariant(kdeIconThemeSearchPaths(m_kdeHome));
|
||||
case QPlatformTheme::StyleNames:
|
||||
return QVariant(m_styleNames);
|
||||
case QPlatformTheme::KeyboardScheme:
|
||||
return QVariant(int(KdeKeyboardScheme));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -282,6 +293,10 @@ QPlatformTheme *QKdeTheme::createKdeTheme()
|
||||
QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
|
||||
{
|
||||
switch (hint) {
|
||||
case QPlatformTheme::DialogButtonBoxButtonsHaveIcons:
|
||||
return QVariant(true);
|
||||
case QPlatformTheme::DialogButtonBoxLayout:
|
||||
return QVariant(3); // QDialogButtonBox::GnomeLayout
|
||||
case QPlatformTheme::SystemIconThemeName:
|
||||
case QPlatformTheme::SystemIconFallbackThemeName:
|
||||
return QVariant(QString(QStringLiteral("gnome")));
|
||||
@ -292,6 +307,8 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
|
||||
styleNames << QStringLiteral("GTK+") << QStringLiteral("cleanlooks") << QStringLiteral("windows");
|
||||
return QVariant(styleNames);
|
||||
}
|
||||
case QPlatformTheme::KeyboardScheme:
|
||||
return QVariant(int(GnomeKeyboardScheme));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -105,13 +105,16 @@ QPlatformDialogHelper * QCocoaTheme::createPlatformDialogHelper(DialogType dialo
|
||||
QVariant QCocoaTheme::themeHint(ThemeHint hint) const
|
||||
{
|
||||
switch (hint) {
|
||||
case QPlatformTheme::StyleNames:
|
||||
return QStringList() << QLatin1Literal("macintosh");
|
||||
break;
|
||||
default:
|
||||
return QPlatformTheme::themeHint(hint);
|
||||
case QPlatformTheme::StyleNames:
|
||||
return QStringList(QStringLiteral("macintosh"));
|
||||
case QPlatformTheme::DialogButtonBoxLayout:
|
||||
return QVariant(1); // QDialogButtonBox::MacLayout
|
||||
case KeyboardScheme:
|
||||
return QVariant(int(MacKeyboardScheme));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QPlatformTheme::themeHint(hint);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -220,11 +220,12 @@ static inline QStringList styleNames()
|
||||
QVariant QWindowsTheme::themeHint(ThemeHint hint) const
|
||||
{
|
||||
switch (hint) {
|
||||
case SystemIconThemeName:
|
||||
break;
|
||||
case UseFullScreenForPopupMenu:
|
||||
return QVariant(true);
|
||||
case DialogButtonBoxLayout:
|
||||
return QVariant(int(0)); // QDialogButtonBox::WinLayout
|
||||
case IconThemeSearchPaths:
|
||||
return QVariant(iconThemeSearchPaths());
|
||||
break;
|
||||
case StyleNames:
|
||||
return QVariant(styleNames());
|
||||
case TextCursorWidth:
|
||||
@ -233,8 +234,12 @@ QVariant QWindowsTheme::themeHint(ThemeHint hint) const
|
||||
return QVariant(booleanSystemParametersInfo(SPI_GETDROPSHADOW, false));
|
||||
case MaximumScrollBarDragDistance:
|
||||
return QVariant(qRound(qreal(QWindowsContext::instance()->defaultDPI()) * 1.375));
|
||||
case KeyboardScheme:
|
||||
return QVariant(int(WindowsKeyboardScheme));
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QVariant();
|
||||
return QPlatformTheme::themeHint(hint);
|
||||
}
|
||||
|
||||
void QWindowsTheme::refresh()
|
||||
|
@ -55,6 +55,7 @@
|
||||
#include "qplatformtheme_qpa.h"
|
||||
#include "private/qdialog_p.h"
|
||||
#include "private/qguiapplication_p.h"
|
||||
#include "qplatformtheme_qpa.h"
|
||||
#ifndef QT_NO_ACCESSIBILITY
|
||||
#include "qaccessible.h"
|
||||
#endif
|
||||
@ -790,11 +791,10 @@ void QDialog::showEvent(QShowEvent *event)
|
||||
/*! \internal */
|
||||
void QDialog::adjustPosition(QWidget* w)
|
||||
{
|
||||
#ifdef Q_WS_X11
|
||||
// if the WM advertises that it will place the windows properly for us, let it do it :)
|
||||
if (X11->isSupportedByWM(ATOM(_NET_WM_FULL_PLACEMENT)))
|
||||
return;
|
||||
#endif
|
||||
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
if (theme->themeHint(QPlatformTheme::WindowAutoPlacement).toBool())
|
||||
return;
|
||||
QPoint p(0, 0);
|
||||
int extraw = 0, extrah = 0, scrn = 0;
|
||||
if (w)
|
||||
|
@ -60,11 +60,6 @@
|
||||
#include <private/qt_cocoa_helpers_mac_p.h>
|
||||
#endif
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
#include "private/qt_x11_p.h"
|
||||
#include "private/qkde_p.h"
|
||||
#endif
|
||||
|
||||
#include "private/qhexstring_p.h"
|
||||
|
||||
#ifndef QT_NO_ICON
|
||||
|
@ -83,12 +83,6 @@
|
||||
# include "private/qtextengine_p.h"
|
||||
#endif
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
# include <private/qt_x11_p.h>
|
||||
#elif defined(Q_WS_MAC)
|
||||
# include <private/qt_cocoa_helpers_mac_p.h>
|
||||
#endif
|
||||
|
||||
#include <private/qstylehelper_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@ -4920,12 +4914,8 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
|
||||
break;
|
||||
case SH_DialogButtonLayout:
|
||||
ret = QDialogButtonBox::WinLayout;
|
||||
#ifdef Q_WS_X11
|
||||
if (X11->desktopEnvironment == DE_KDE)
|
||||
ret = QDialogButtonBox::KdeLayout;
|
||||
else if (X11->desktopEnvironment == DE_GNOME)
|
||||
ret = QDialogButtonBox::GnomeLayout;
|
||||
#endif
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
ret = theme->themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
|
||||
break;
|
||||
case SH_ComboBox_PopupFrameStyle:
|
||||
ret = QFrame::StyledPanel | QFrame::Plain;
|
||||
@ -4934,10 +4924,9 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
|
||||
ret = Qt::LinksAccessibleByMouse;
|
||||
break;
|
||||
case SH_DialogButtonBox_ButtonsHaveIcons:
|
||||
#ifdef Q_WS_X11
|
||||
return true;
|
||||
#endif
|
||||
ret = 0;
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
ret = theme->themeHint(QPlatformTheme::DialogButtonBoxButtonsHaveIcons).toBool() ? 1 : 0;
|
||||
break;
|
||||
case SH_SpellCheckUnderlineStyle:
|
||||
ret = QTextCharFormat::WaveUnderline;
|
||||
|
@ -1,7 +1,7 @@
|
||||
CONFIG += testcase
|
||||
TARGET = tst_qkeysequence
|
||||
|
||||
QT += widgets widgets-private testlib
|
||||
QT += widgets testlib
|
||||
QT += core-private gui-private
|
||||
|
||||
SOURCES += tst_qkeysequence.cpp
|
||||
|
@ -41,9 +41,10 @@
|
||||
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
#include <private/qapplication_p.h>
|
||||
#include <qkeysequence.h>
|
||||
#include <qplatformtheme_qpa.h>
|
||||
#include <private/qkeysequence_p.h>
|
||||
#include <private/qguiapplication_p.h>
|
||||
#include <QTranslator>
|
||||
#include <QLibraryInfo>
|
||||
|
||||
@ -142,6 +143,7 @@ private slots:
|
||||
|
||||
void initTestCase();
|
||||
private:
|
||||
int m_keyboardScheme;
|
||||
QTranslator *ourTranslator;
|
||||
QTranslator *qtTranslator;
|
||||
#ifdef Q_OS_MAC
|
||||
@ -161,8 +163,10 @@ const QString tst_QKeySequence::MacAlt = QString(QChar(0x2325));
|
||||
const QString tst_QKeySequence::MacShift = QString(QChar(0x21E7));
|
||||
#endif
|
||||
|
||||
tst_QKeySequence::tst_QKeySequence()
|
||||
tst_QKeySequence::tst_QKeySequence() : m_keyboardScheme(QPlatformTheme::WindowsKeyboardScheme)
|
||||
{
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
m_keyboardScheme = theme->themeHint(QPlatformTheme::KeyboardScheme).toInt();
|
||||
}
|
||||
|
||||
tst_QKeySequence::~tst_QKeySequence()
|
||||
@ -297,8 +301,7 @@ void tst_QKeySequence::checkMultipleCodes()
|
||||
*/
|
||||
void tst_QKeySequence::ensureSorted()
|
||||
{
|
||||
//### accessing static members from private classes does not work on msvc at the moment
|
||||
#if defined(QT_BUILD_INTERNAL) && !defined(Q_WS_WIN)
|
||||
#if defined(QT_BUILD_INTERNAL)
|
||||
uint N = QKeySequencePrivate::numberOfKeyBindings;
|
||||
uint val = QKeySequencePrivate::keyBindings[0].shortcut;
|
||||
for ( uint i = 1 ; i < N ; ++i) {
|
||||
@ -322,13 +325,13 @@ void tst_QKeySequence::standardKeys_data()
|
||||
QTest::newRow("delete") << (int)QKeySequence::Delete<< QString("DEL");
|
||||
QTest::newRow("open") << (int)QKeySequence::Open << QString("CTRL+O");
|
||||
QTest::newRow("find") << (int)QKeySequence::Find<< QString("CTRL+F");
|
||||
#ifdef Q_WS_WIN
|
||||
QTest::newRow("addTab") << (int)QKeySequence::AddTab<< QString("CTRL+T");
|
||||
QTest::newRow("findNext") << (int)QKeySequence::FindNext<< QString("F3");
|
||||
QTest::newRow("findPrevious") << (int)QKeySequence::FindPrevious << QString("SHIFT+F3");
|
||||
QTest::newRow("close") << (int)QKeySequence::Close<< QString("CTRL+F4");
|
||||
QTest::newRow("replace") << (int)QKeySequence::Replace<< QString("CTRL+H");
|
||||
#endif
|
||||
if (m_keyboardScheme == QPlatformTheme::WindowsKeyboardScheme) {
|
||||
QTest::newRow("addTab") << (int)QKeySequence::AddTab<< QString("CTRL+T");
|
||||
QTest::newRow("findNext") << (int)QKeySequence::FindNext<< QString("F3");
|
||||
QTest::newRow("findPrevious") << (int)QKeySequence::FindPrevious << QString("SHIFT+F3");
|
||||
QTest::newRow("close") << (int)QKeySequence::Close<< QString("CTRL+F4");
|
||||
QTest::newRow("replace") << (int)QKeySequence::Replace<< QString("CTRL+H");
|
||||
}
|
||||
QTest::newRow("bold") << (int)QKeySequence::Bold << QString("CTRL+B");
|
||||
QTest::newRow("italic") << (int)QKeySequence::Italic << QString("CTRL+I");
|
||||
QTest::newRow("underline") << (int)QKeySequence::Underline << QString("CTRL+U");
|
||||
@ -362,23 +365,33 @@ void tst_QKeySequence::standardKeys()
|
||||
{
|
||||
QFETCH(int, standardKey);
|
||||
QFETCH(QString, expected);
|
||||
QKeySequence ks((QKeySequence::StandardKey)standardKey);
|
||||
QKeySequence ks2(expected);
|
||||
QVERIFY(ks == ks2);
|
||||
QKeySequence actualKeySequence((QKeySequence::StandardKey)standardKey);
|
||||
QKeySequence expectedKeySequence(expected);
|
||||
QVERIFY2(actualKeySequence == expectedKeySequence,
|
||||
qPrintable(QString::fromLatin1("Key mismatch, expected '%1', got '%2' for standard key %3").
|
||||
arg(expected, actualKeySequence.toString()).arg(standardKey)));
|
||||
}
|
||||
|
||||
void tst_QKeySequence::keyBindings()
|
||||
{
|
||||
QList<QKeySequence> bindings = QKeySequence::keyBindings(QKeySequence::Copy);
|
||||
const QList<QKeySequence> bindings =
|
||||
QKeySequence::keyBindings(QKeySequence::Copy);
|
||||
|
||||
QList<QKeySequence> expected;
|
||||
#if defined(Q_OS_MAC)
|
||||
expected << QKeySequence("CTRL+C");
|
||||
#elif defined Q_WS_X11
|
||||
expected << QKeySequence("CTRL+C") << QKeySequence("F16") << QKeySequence("CTRL+INSERT");
|
||||
#else
|
||||
expected << QKeySequence("CTRL+C") << QKeySequence("CTRL+INSERT");
|
||||
#endif
|
||||
QVERIFY(bindings == expected);
|
||||
const QKeySequence ctrlC = QKeySequence(QStringLiteral("CTRL+C"));
|
||||
const QKeySequence ctrlInsert = QKeySequence(QStringLiteral("CTRL+INSERT"));
|
||||
switch (m_keyboardScheme) {
|
||||
case QPlatformTheme::MacKeyboardScheme:
|
||||
expected << ctrlC;
|
||||
break;
|
||||
case QPlatformTheme::WindowsKeyboardScheme:
|
||||
expected << ctrlC << ctrlInsert;
|
||||
break;
|
||||
default: // X11
|
||||
expected << ctrlC << QKeySequence(QStringLiteral("F16")) << ctrlInsert;
|
||||
break;
|
||||
}
|
||||
QCOMPARE(bindings, expected);
|
||||
}
|
||||
|
||||
void tst_QKeySequence::mnemonic_data()
|
||||
|
@ -1,4 +1,4 @@
|
||||
CONFIG += testcase
|
||||
TARGET = tst_languagechange
|
||||
QT += widgets core-private testlib
|
||||
QT += widgets core-private gui-private testlib
|
||||
SOURCES += tst_languagechange.cpp
|
||||
|
@ -43,13 +43,16 @@
|
||||
#include <QtTest/QtTest>
|
||||
|
||||
#include <qapplication.h>
|
||||
#include <private/qguiapplication_p.h>
|
||||
#include <QtCore/QSet>
|
||||
#include <QtCore/QFile>
|
||||
#include <QtCore/QTranslator>
|
||||
#include <QtCore/QTemporaryDir>
|
||||
#include <private/qthread_p.h>
|
||||
#include <QtGui/QPlatformTheme>
|
||||
#include <QtWidgets/QInputDialog>
|
||||
#include <QtWidgets/QColorDialog>
|
||||
#include <QtWidgets/QDialogButtonBox>
|
||||
#include <QtWidgets/QFileDialog>
|
||||
#include <QtWidgets/QDesktopWidget>
|
||||
|
||||
@ -66,12 +69,16 @@ private slots:
|
||||
void retranslatability_data();
|
||||
void retranslatability();
|
||||
|
||||
private:
|
||||
QDialogButtonBox::ButtonLayout m_layout;
|
||||
};
|
||||
|
||||
|
||||
tst_languageChange::tst_languageChange()
|
||||
|
||||
tst_languageChange::tst_languageChange() :
|
||||
m_layout(QDialogButtonBox::WinLayout)
|
||||
{
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
m_layout = static_cast<QDialogButtonBox::ButtonLayout>(theme->themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt());
|
||||
}
|
||||
|
||||
void tst_languageChange::initTestCase()
|
||||
@ -240,6 +247,9 @@ void tst_languageChange::retranslatability()
|
||||
QFETCH( int, dialogType);
|
||||
QFETCH( TranslationSet, expected);
|
||||
|
||||
if (m_layout == QDialogButtonBox::GnomeLayout)
|
||||
QSKIP("The input data are not suitable for this layout (QDialogButtonBox::GnomeLayout)");
|
||||
|
||||
// This will always be queried for when a language changes
|
||||
expected.insert("QCoreApplication::QT_LAYOUT_DIRECTION::Translate this string to the string 'LTR' in left-to-right "
|
||||
"languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to "
|
||||
|
@ -1,7 +1,7 @@
|
||||
CONFIG += testcase
|
||||
TEMPLATE = app
|
||||
TARGET = tst_qmessagebox
|
||||
QT += widgets testlib
|
||||
QT += gui-private core-private widgets testlib
|
||||
DEPENDPATH += .
|
||||
INCLUDEPATH += .
|
||||
|
||||
|
@ -48,6 +48,8 @@
|
||||
#include <QApplication>
|
||||
#include <QPushButton>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QPlatformTheme>
|
||||
#include <private/qguiapplication_p.h>
|
||||
#if defined(Q_OS_MAC) && !defined(QT_NO_STYLE_MAC)
|
||||
#include <QMacStyle>
|
||||
#endif
|
||||
@ -407,15 +409,12 @@ void tst_QMessageBox::staticSourceCompat()
|
||||
sendKeySoon();
|
||||
ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes, QMessageBox::No);
|
||||
int expectedButton = int(QMessageBox::Yes);
|
||||
#if defined(Q_OS_MAC) && !defined(QT_NO_STYLE_MAC)
|
||||
if (qobject_cast<QMacStyle *>(qApp->style()))
|
||||
expectedButton = int(QMessageBox::No);
|
||||
#elif !defined(QT_NO_STYLE_CLEANLOOKS)
|
||||
if (qobject_cast<QCleanlooksStyle *>(qApp->style())) {
|
||||
QEXPECT_FAIL("", "Special handling of QMessageBox::information buttons for Cleanlooks not implemented yet, QTBUG-24315", Continue);
|
||||
expectedButton = int(QMessageBox::No);
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
|
||||
const int dialogButtonBoxLayout = theme->themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
|
||||
if (dialogButtonBoxLayout == QDialogButtonBox::MacLayout
|
||||
|| dialogButtonBoxLayout == QDialogButtonBox::GnomeLayout)
|
||||
expectedButton = int(QMessageBox::No);
|
||||
}
|
||||
#endif
|
||||
QCOMPARE(ret, expectedButton);
|
||||
QCOMPARE(keyToSend, -1);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
CONFIG += testcase
|
||||
TARGET = tst_qaction
|
||||
QT += widgets testlib
|
||||
QT += gui-private core-private widgets testlib
|
||||
SOURCES += tst_qaction.cpp
|
||||
|
||||
|
||||
|
@ -46,6 +46,8 @@
|
||||
#include <qevent.h>
|
||||
#include <qaction.h>
|
||||
#include <qmenu.h>
|
||||
#include <qplatformtheme_qpa.h>
|
||||
#include <private/qguiapplication_p.h>
|
||||
|
||||
class tst_QAction : public QObject
|
||||
{
|
||||
@ -77,6 +79,7 @@ private slots:
|
||||
|
||||
private:
|
||||
int m_lastEventType;
|
||||
int m_keyboardScheme;
|
||||
QAction *m_lastAction;
|
||||
QWidget *m_tstWidget;
|
||||
};
|
||||
@ -121,8 +124,10 @@ private:
|
||||
tst_QAction *tst;
|
||||
};
|
||||
|
||||
tst_QAction::tst_QAction()
|
||||
tst_QAction::tst_QAction() : m_keyboardScheme(QPlatformTheme::WindowsKeyboardScheme)
|
||||
{
|
||||
if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
|
||||
m_keyboardScheme = theme->themeHint(QPlatformTheme::KeyboardScheme).toInt();
|
||||
}
|
||||
|
||||
tst_QAction::~tst_QAction()
|
||||
@ -237,13 +242,21 @@ void tst_QAction::setStandardKeys()
|
||||
QVERIFY(act.shortcut() == act.shortcuts().first());
|
||||
|
||||
QList<QKeySequence> expected;
|
||||
#if defined(Q_OS_MAC)
|
||||
expected << QKeySequence("CTRL+C");
|
||||
#else
|
||||
expected << QKeySequence("CTRL+C") << QKeySequence("CTRL+INSERT");
|
||||
#endif
|
||||
// Qt/Embedded on Windows: expected << QKeySequence("CTRL+C") << QKeySequence("F16") << QKeySequence("CTRL+INSERT");
|
||||
QVERIFY(act.shortcuts() == expected);
|
||||
const QKeySequence ctrlC = QKeySequence(QStringLiteral("CTRL+C"));
|
||||
const QKeySequence ctrlInsert = QKeySequence(QStringLiteral("CTRL+INSERT"));
|
||||
switch (m_keyboardScheme) {
|
||||
case QPlatformTheme::MacKeyboardScheme:
|
||||
expected << ctrlC;
|
||||
break;
|
||||
case QPlatformTheme::WindowsKeyboardScheme:
|
||||
expected << ctrlC << ctrlInsert;
|
||||
break;
|
||||
default: // X11
|
||||
expected << ctrlC << QKeySequence(QStringLiteral("F16")) << ctrlInsert;
|
||||
break;
|
||||
}
|
||||
|
||||
QCOMPARE(act.shortcuts(), expected);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user