2043 lines
88 KiB
Diff
2043 lines
88 KiB
Diff
|
commit b48e2091871516496cf0b133249fbf5326a55831
|
||
|
Author: Lubos Lunak <l.lunak@kde.org>
|
||
|
Date: Sat Feb 23 16:44:52 2008 +0100
|
||
|
|
||
|
This patch uses object name as a fallback for window role if no window
|
||
|
role is set explicitly using setWindowRole(). Since Qt3 always used
|
||
|
the object name as the window role and most Qt3/KDE3 code is ported to
|
||
|
call setObjectName(),
|
||
|
|
||
|
this makes the window role set in many cases (which KWin uses for window identifying).
|
||
|
|
||
|
NOTE: It is suggested to apply patch #0209 as well when this patch is used.
|
||
|
|
||
|
qt-bugs@ issue : 167704
|
||
|
Trolltech task ID : 168283 (status: "fixed" for Qt 4.4.0, but effectively refused)
|
||
|
|
||
|
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
|
||
|
index 6487194..ef0369e 100644
|
||
|
--- a/src/corelib/kernel/qobject.cpp
|
||
|
+++ b/src/corelib/kernel/qobject.cpp
|
||
|
@@ -993,8 +993,16 @@ void QObject::setObjectName(const QString &name)
|
||
|
{
|
||
|
Q_D(QObject);
|
||
|
d->objectName = name;
|
||
|
+#if defined(Q_WS_X11)
|
||
|
+ d->checkWindowRole();
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
+#if defined(Q_WS_X11)
|
||
|
+void QObjectPrivate::checkWindowRole()
|
||
|
+{
|
||
|
+}
|
||
|
+#endif
|
||
|
|
||
|
#ifdef QT3_SUPPORT
|
||
|
/*! \internal
|
||
|
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
|
||
|
index 0bcccba..6ab9e10 100644
|
||
|
--- a/src/corelib/kernel/qobject_p.h
|
||
|
+++ b/src/corelib/kernel/qobject_p.h
|
||
|
@@ -144,6 +144,9 @@ public:
|
||
|
mutable quint32 connectedSignals;
|
||
|
|
||
|
QString objectName;
|
||
|
+#if defined(Q_WS_X11)
|
||
|
+ virtual void checkWindowRole();
|
||
|
+#endif
|
||
|
|
||
|
// Note: you must hold the signalSlotLock() before accessing the lists below or calling the functions
|
||
|
struct Connection
|
||
|
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
|
||
|
index 774e390..176d6fa 100644
|
||
|
--- a/src/gui/kernel/qwidget_p.h
|
||
|
+++ b/src/gui/kernel/qwidget_p.h
|
||
|
@@ -358,6 +358,7 @@ public:
|
||
|
|
||
|
#if defined(Q_WS_X11)
|
||
|
void setWindowRole();
|
||
|
+ virtual void checkWindowRole();
|
||
|
void sendStartupMessage(const char *message) const;
|
||
|
void setNetWmWindowTypes();
|
||
|
void x11UpdateIsOpaque();
|
||
|
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
|
||
|
index 79ee8c9..b56849c 100644
|
||
|
--- a/src/gui/kernel/qwidget_x11.cpp
|
||
|
+++ b/src/gui/kernel/qwidget_x11.cpp
|
||
|
@@ -778,13 +778,17 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
||
|
data.fstrut_dirty = 1;
|
||
|
|
||
|
// declare the widget's window role
|
||
|
+ QByteArray windowRole;
|
||
|
if (QTLWExtra *topData = maybeTopData()) {
|
||
|
- if (!topData->role.isEmpty()) {
|
||
|
- QByteArray windowRole = topData->role.toUtf8();
|
||
|
- XChangeProperty(dpy, id,
|
||
|
- ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace,
|
||
|
- (unsigned char *)windowRole.constData(), windowRole.length());
|
||
|
- }
|
||
|
+ if (!topData->role.isEmpty())
|
||
|
+ windowRole = topData->role.toUtf8();
|
||
|
+ }
|
||
|
+ if (windowRole.isEmpty()) // use object name as a fallback
|
||
|
+ windowRole = objectName.toUtf8();
|
||
|
+ if (!windowRole.isEmpty()) {
|
||
|
+ XChangeProperty(dpy, id,
|
||
|
+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace,
|
||
|
+ (unsigned char *)windowRole.constData(), windowRole.length());
|
||
|
}
|
||
|
|
||
|
// set client leader property
|
||
|
@@ -2768,6 +2772,17 @@ void QWidgetPrivate::setWindowRole()
|
||
|
(unsigned char *)windowRole.constData(), windowRole.length());
|
||
|
}
|
||
|
|
||
|
+void QWidgetPrivate::checkWindowRole()
|
||
|
+{
|
||
|
+ Q_Q(QWidget);
|
||
|
+ if( !q->windowRole().isEmpty() || !q->internalWinId())
|
||
|
+ return;
|
||
|
+ QByteArray windowRole = objectName.toUtf8(); // use as a fallback
|
||
|
+ XChangeProperty(X11->display, q->internalWinId(),
|
||
|
+ ATOM(WM_WINDOW_ROLE), XA_STRING, 8, PropModeReplace,
|
||
|
+ (unsigned char *)windowRole.constData(), windowRole.length());
|
||
|
+}
|
||
|
+
|
||
|
Q_GLOBAL_STATIC(QX11PaintEngine, qt_widget_paintengine)
|
||
|
QPaintEngine *QWidget::paintEngine() const
|
||
|
{
|
||
|
|
||
|
commit 339e220e29ff39b86705438b4be6f90e5618d27b
|
||
|
Author: Lubos Lunak <l.lunak@kde.org>
|
||
|
Date: Tue Oct 2 16:08:32 2007 +0200
|
||
|
|
||
|
This patch makes override-redirect windows (popup menu, dropdown menu,
|
||
|
tooltip, combobox, etc.) also have more window properties like WM_CLASS,
|
||
|
so they can be used when compositing.
|
||
|
|
||
|
qt-bugs@ issue : none
|
||
|
bugs.kde.org number : none
|
||
|
|
||
|
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
|
||
|
index 79ee8c9..a74a849 100644
|
||
|
--- a/src/gui/kernel/qwidget_x11.cpp
|
||
|
+++ b/src/gui/kernel/qwidget_x11.cpp
|
||
|
@@ -719,6 +719,11 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
||
|
Q_ASSERT(id);
|
||
|
XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder,
|
||
|
&wsa);
|
||
|
+ XClassHint class_hint;
|
||
|
+ QByteArray appName = qAppName().toLatin1();
|
||
|
+ class_hint.res_name = appName.data(); // application name
|
||
|
+ class_hint.res_class = const_cast<char *>(QX11Info::appClass()); // application class
|
||
|
+ XSetWMProperties(dpy, id, 0, 0, 0, 0, 0, 0, &class_hint);
|
||
|
} else if (topLevel && !desktop) { // top-level widget
|
||
|
if (!X11->wm_client_leader)
|
||
|
create_wm_client_leader();
|
||
|
@@ -769,13 +774,21 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
||
|
// set EWMH window types
|
||
|
setNetWmWindowTypes();
|
||
|
|
||
|
+ // when we create a toplevel widget, the frame strut should be dirty
|
||
|
+ data.fstrut_dirty = 1;
|
||
|
+
|
||
|
+ } else {
|
||
|
+ // non-toplevel widgets don't have a frame, so no need to
|
||
|
+ // update the strut
|
||
|
+ data.fstrut_dirty = 0;
|
||
|
+ }
|
||
|
+
|
||
|
+ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows
|
||
|
// set _NET_WM_PID
|
||
|
long curr_pid = getpid();
|
||
|
XChangeProperty(dpy, id, ATOM(_NET_WM_PID), XA_CARDINAL, 32, PropModeReplace,
|
||
|
(unsigned char *) &curr_pid, 1);
|
||
|
|
||
|
- // when we create a toplevel widget, the frame strut should be dirty
|
||
|
- data.fstrut_dirty = 1;
|
||
|
|
||
|
// declare the widget's window role
|
||
|
if (QTLWExtra *topData = maybeTopData()) {
|
||
|
@@ -791,10 +804,6 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
||
|
XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER),
|
||
|
XA_WINDOW, 32, PropModeReplace,
|
||
|
(unsigned char *)&X11->wm_client_leader, 1);
|
||
|
- } else {
|
||
|
- // non-toplevel widgets don't have a frame, so no need to
|
||
|
- // update the strut
|
||
|
- data.fstrut_dirty = 0;
|
||
|
}
|
||
|
|
||
|
if (initializeWindow && q->internalWinId()) {
|
||
|
|
||
|
commit 68eaa07de69e873b89d4aba341c6ed1ca81f6819
|
||
|
Author: Lubos Lunak <l.lunak@kde.org>
|
||
|
Date: Wed Jan 30 14:24:01 2008 +0100
|
||
|
|
||
|
This patch changes QObjectPrivateVersion, thus preventing mixing
|
||
|
parts of upstream Qt and qt-copy. In general it is a bad idea to mix
|
||
|
e.g. libQtCore from one build and libQtGui from another one, and other
|
||
|
qt-copy patches could make changes in Qt internal structures that could
|
||
|
cause problems when mixed with upstream Qt.
|
||
|
|
||
|
This patch does not make qt-copy binary incompatible with upstream Qt.
|
||
|
It only further enforces using the same sources for the whole Qt build.
|
||
|
|
||
|
qt-bugs@ issue : none
|
||
|
Trolltech task ID : none
|
||
|
bugs.kde.org number : none
|
||
|
|
||
|
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
|
||
|
index 0bcccba..88192fd 100644
|
||
|
--- a/src/corelib/kernel/qobject_p.h
|
||
|
+++ b/src/corelib/kernel/qobject_p.h
|
||
|
@@ -83,7 +83,9 @@ extern QSignalSpyCallbackSet Q_CORE_EXPORT qt_signal_spy_callback_set;
|
||
|
|
||
|
inline QObjectData::~QObjectData() {}
|
||
|
|
||
|
-enum { QObjectPrivateVersion = QT_VERSION };
|
||
|
+// add 0x1000000 to mark it as qt-copy version, with possible modifications
|
||
|
+// in some Q*Private class
|
||
|
+enum { QObjectPrivateVersion = QT_VERSION + 0x1000000 };
|
||
|
|
||
|
class Q_CORE_EXPORT QObjectPrivate : public QObjectData
|
||
|
{
|
||
|
|
||
|
commit 86fc0d43cdcf3232ae0e4e6f4f28cf8f1a45ede5
|
||
|
Author: Benjamin Reed <rangerrick@befunk.com>
|
||
|
Date: Tue Feb 19 17:37:37 2008 +0100
|
||
|
|
||
|
This patch adds support for using -isystem to allow putting an include
|
||
|
directory at the end of the compiler's header search path.
|
||
|
|
||
|
I don't have the exact output anymore (I've since patched Qt's configure) but
|
||
|
essentially, since I have pcre.h in /opt/kde4-deps/include, it was
|
||
|
conflicting with Qt's (modified) pcre.h in the WebKit bits, since
|
||
|
-I /opt/kde4-deps/include ends up in CXXFLAGS in the generated makefiles, it
|
||
|
comes *before* the specific locations in INCPATH on the compile line, and you
|
||
|
end up with a conflict with the system-installed pcre.h.
|
||
|
|
||
|
Presumably, if your pcre.h is in /usr/include as on most Linux systems, you
|
||
|
wouldn't notice this issue since /usr/include's already in your include path
|
||
|
and people likely don't pass -I /usr/include to configure. I suspect that on
|
||
|
any platform with a regular, system-installed pcre.h (or clucene headers),
|
||
|
adding -I /usr/include would exhibit this bug, just as a custom-installed
|
||
|
pcre/clucene in another root would.
|
||
|
|
||
|
qt-bugs@ issue : 199610
|
||
|
Trolltech task ID :
|
||
|
bugs.kde.org number :
|
||
|
|
||
|
diff --git a/configure b/configure
|
||
|
index 2c108ad..610a201 100755
|
||
|
--- a/configure
|
||
|
+++ b/configure
|
||
|
@@ -927,6 +927,11 @@ while [ "$#" -gt 0 ]; do
|
||
|
VAL=`echo $1 | sed 's,-D,,'`
|
||
|
fi
|
||
|
;;
|
||
|
+ -isystem)
|
||
|
+ VAR="add_isystempath"
|
||
|
+ shift
|
||
|
+ VAL="$1"
|
||
|
+ ;;
|
||
|
-I?*|-I)
|
||
|
VAR="add_ipath"
|
||
|
if [ "$1" = "-I" ]; then
|
||
|
@@ -1890,6 +1895,9 @@ while [ "$#" -gt 0 ]; do
|
||
|
add_ipath)
|
||
|
I_FLAGS="$I_FLAGS -I\"${VAL}\""
|
||
|
;;
|
||
|
+ add_isystempath)
|
||
|
+ I_FLAGS="$I_FLAGS -isystem \"${VAL}\""
|
||
|
+ ;;
|
||
|
add_lpath)
|
||
|
L_FLAGS="$L_FLAGS -L\"${VAL}\""
|
||
|
;;
|
||
|
|
||
|
commit 733d1afd03908d695aa8a6518f453b9ff0e5b8a2
|
||
|
Author: Robert Knight <robertknight@gmail.com>
|
||
|
Date: Sun Apr 20 16:28:31 2008 +0200
|
||
|
|
||
|
When tabs are inserted or removed in a QTabBar,
|
||
|
QTabBarPrivate::refresh() is called to update the layout. If the
|
||
|
tabbar widget is hidden, this just sets a boolean variable
|
||
|
(layoutDirty) and returns, so the parent widget's layout is not
|
||
|
notified about the possible geometry change.
|
||
|
|
||
|
Prior to Qt 4.4 this was not a problem because the geometry was
|
||
|
recalculated in QTabBar::sizeHint() if the layoutDirty variable was
|
||
|
set. In Qt 4.4 however the layout caches size hint information in
|
||
|
QWidgetItemV2. Since the cache information is not invalidated, the
|
||
|
layout may end up using out-of-date size hint information to compute
|
||
|
the widget size.
|
||
|
|
||
|
If the QTabBar is empty when QTabBar::sizeHint() is called, it will
|
||
|
return a size with a height of 0, which will be kept in the cache and
|
||
|
so the tab bar will never be shown.
|
||
|
|
||
|
This patch fixes the problem by calling updateGeometry() whenever the
|
||
|
tab bar's layout is refreshed.
|
||
|
|
||
|
qt-bugs@ issue : 208185
|
||
|
Trolltech task ID : 208349
|
||
|
bugs.kde.org number : 159014
|
||
|
|
||
|
diff --git a/src/gui/widgets/qtabbar.cpp b/src/gui/widgets/qtabbar.cpp
|
||
|
index 419d456..41107a0 100644
|
||
|
--- a/src/gui/widgets/qtabbar.cpp
|
||
|
+++ b/src/gui/widgets/qtabbar.cpp
|
||
|
@@ -678,8 +678,8 @@ void QTabBarPrivate::refresh()
|
||
|
layoutTabs();
|
||
|
makeVisible(currentIndex);
|
||
|
q->update();
|
||
|
- q->updateGeometry();
|
||
|
}
|
||
|
+ q->updateGeometry();
|
||
|
}
|
||
|
|
||
|
/*!
|
||
|
|
||
|
commit 8e28e0603a900e1b18ebfd14c4f87b16dabf4cf6
|
||
|
Author: Christian Ehrlicher <ch.ehrlicher@gmx.de>
|
||
|
Date: Fri Sep 19 17:41:26 2008 +0200
|
||
|
|
||
|
Fix configure.exe to do an out-of-source build on windows
|
||
|
|
||
|
qt-bugs@ issue : N227213
|
||
|
Trolltech task ID : none yet
|
||
|
|
||
|
diff --git a/bin/syncqt b/bin/syncqt
|
||
|
index 7a9f1d3..b5a8e1c 100755
|
||
|
--- a/bin/syncqt
|
||
|
+++ b/bin/syncqt
|
||
|
@@ -365,9 +365,13 @@ sub fixPaths {
|
||
|
$match_dir = $tmp;
|
||
|
$i = $slash;
|
||
|
}
|
||
|
+ my $cnt_ofs = 0;
|
||
|
+ if($match_dir =~ /^[a-zA-Z]:$/) {
|
||
|
+ $cnt_ofs = 1;
|
||
|
+ }
|
||
|
if($match_dir) {
|
||
|
my $after = substr($dir, length($match_dir));
|
||
|
- my $count = ($after =~ tr,/,,);
|
||
|
+ my $count = ($after =~ tr,/,,) - $cnt_ofs;
|
||
|
my $dots = "";
|
||
|
for(my $i = 0; $i < $count; $i++) {
|
||
|
$dots .= "../";
|
||
|
diff --git a/projects.pro b/projects.pro
|
||
|
index 2596c0a..3ba0688 100644
|
||
|
--- a/projects.pro
|
||
|
+++ b/projects.pro
|
||
|
@@ -127,6 +127,9 @@ unix {
|
||
|
DEFAULT_QMAKESPEC ~= s,^.*mkspecs/,,g
|
||
|
mkspecs.commands += $(DEL_FILE) $(INSTALL_ROOT)$$mkspecs.path/default; $(SYMLINK) $$DEFAULT_QMAKESPEC $(INSTALL_ROOT)$$mkspecs.path/default
|
||
|
}
|
||
|
+win32 {
|
||
|
+ mkspecs.files += $$QT_BUILD_TREE/mkspecs/default
|
||
|
+}
|
||
|
INSTALLS += mkspecs
|
||
|
|
||
|
false:macx { #mac install location
|
||
|
diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
|
||
|
index d519b09..7979836 100644
|
||
|
--- a/src/tools/moc/main.cpp
|
||
|
+++ b/src/tools/moc/main.cpp
|
||
|
@@ -94,7 +94,13 @@ static QByteArray combinePath(const char *infile, const char *outfile)
|
||
|
inSplitted.prepend(QLatin1String(".."));
|
||
|
}
|
||
|
inSplitted.append(inFileInfo.fileName());
|
||
|
+#ifdef Q_WS_WIN
|
||
|
+ const QString rel = inSplitted.join(QLatin1String("/"));
|
||
|
+ const QString abs = inFileInfo.absoluteFilePath();
|
||
|
+ return QFile::encodeName(rel.length() < abs.length() ? rel : abs);
|
||
|
+#else
|
||
|
return QFile::encodeName(inSplitted.join(QLatin1String("/")));
|
||
|
+#endif
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
commit 0afcf33127c6ccbe5dfaae4f4c5e02f28dc10ae1
|
||
|
Author: Christian Ehrlicher <ch.ehrlicher@gmx.de>
|
||
|
Date: Thu May 8 21:25:49 2008 +0200
|
||
|
|
||
|
When using qmake outside qt src tree, it sometimes generates wrong
|
||
|
paths (wrong path separator)
|
||
|
|
||
|
qt-bugs@ issue : none
|
||
|
Trolltech task ID : 214661
|
||
|
|
||
|
diff --git a/qmake/property.cpp b/qmake/property.cpp
|
||
|
index 8ba89f9..dd78349 100644
|
||
|
--- a/qmake/property.cpp
|
||
|
+++ b/qmake/property.cpp
|
||
|
@@ -81,29 +81,32 @@ QMakeProperty::keyBase(bool version) const
|
||
|
QString
|
||
|
QMakeProperty::value(QString v, bool just_check)
|
||
|
{
|
||
|
+ QString ret;
|
||
|
if(v == "QT_INSTALL_PREFIX")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::PrefixPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::PrefixPath);
|
||
|
else if(v == "QT_INSTALL_DATA")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::DataPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::DataPath);
|
||
|
else if(v == "QT_INSTALL_DOCS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::DocumentationPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::DocumentationPath);
|
||
|
else if(v == "QT_INSTALL_HEADERS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::HeadersPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::HeadersPath);
|
||
|
else if(v == "QT_INSTALL_LIBS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::LibrariesPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::LibrariesPath);
|
||
|
else if(v == "QT_INSTALL_BINS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::BinariesPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::BinariesPath);
|
||
|
else if(v == "QT_INSTALL_PLUGINS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::PluginsPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::PluginsPath);
|
||
|
else if(v == "QT_INSTALL_TRANSLATIONS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::TranslationsPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
|
||
|
else if(v == "QT_INSTALL_CONFIGURATION")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::SettingsPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::SettingsPath);
|
||
|
else if(v == "QT_INSTALL_EXAMPLES")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::ExamplesPath);
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::ExamplesPath);
|
||
|
else if(v == "QT_INSTALL_DEMOS")
|
||
|
- return QLibraryInfo::location(QLibraryInfo::DemosPath);
|
||
|
- else if(v == "QMAKE_MKSPECS")
|
||
|
+ ret = QLibraryInfo::location(QLibraryInfo::DemosPath);
|
||
|
+ if(!ret.isEmpty())
|
||
|
+ return QDir::toNativeSeparators(ret);
|
||
|
+ if(v == "QMAKE_MKSPECS")
|
||
|
return qmake_mkspec_paths().join(Option::target_mode == Option::TARG_WIN_MODE ? ";" : ":");
|
||
|
else if(v == "QMAKE_VERSION")
|
||
|
return qmake_version();
|
||
|
@@ -116,7 +119,7 @@ QMakeProperty::value(QString v, bool just_check)
|
||
|
int slash = v.lastIndexOf('/');
|
||
|
QVariant var = settings->value(keyBase(slash == -1) + v);
|
||
|
bool ok = var.isValid();
|
||
|
- QString ret = var.toString();
|
||
|
+ ret = var.toString();
|
||
|
if(!ok) {
|
||
|
QString version = qmake_version();
|
||
|
if(slash != -1) {
|
||
|
|
||
|
commit 1ec9dd029abaa0f00798535fdb1722154b1c63f6
|
||
|
Author: Rafael Fernández López <ereslibre@kde.org>
|
||
|
Date: Sun Oct 26 10:40:51 2008 +0100
|
||
|
|
||
|
In a treeview with columns like this:
|
||
|
|
||
|
Column 1 | Column 2 | ... | Column k | ... | Column n
|
||
|
|
||
|
When selecting with rubberband (by clicking on the blank part of the viewport) while Column k is
|
||
|
hidden, you get double items on the selection model, when asking for selection(). This is becase
|
||
|
ranges are incorrectly calculated when there are hidden columns. A way to reproduce:
|
||
|
|
||
|
Column 1 | Column 2 | Column 4 (Column 3 is hidden)
|
||
|
item
|
||
|
item
|
||
|
item
|
||
|
x <- press button here and move it up to select items (on this same column)
|
||
|
|
||
|
If you do like this:
|
||
|
|
||
|
Column 1 | Column 2 | Column 4 (Column 3 is hidden)
|
||
|
item
|
||
|
item
|
||
|
item
|
||
|
x <- press button here and move it up
|
||
|
|
||
|
you won't be able to reproduce, since you need the hidden column to be between the one you click and
|
||
|
the last one. The reason is that columnRanges returns two ranges when there is supposed to return 1
|
||
|
range (even when there are hidden columns).
|
||
|
|
||
|
qt-bugs@ issue : N232819
|
||
|
Trolltech task ID : 232831
|
||
|
bugs.kde.org number : 171436
|
||
|
|
||
|
diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
|
||
|
index ed6ad03..dc147f2 100644
|
||
|
--- a/src/gui/itemviews/qtreeview.cpp
|
||
|
+++ b/src/gui/itemviews/qtreeview.cpp
|
||
|
@@ -3575,7 +3575,7 @@ QList<QPair<int, int> > QTreeViewPrivate::columnRanges(const QModelIndex &topInd
|
||
|
current.first = -2; // -1 is not enough because -1+1 = 0
|
||
|
current.second = -2;
|
||
|
foreach (int logicalColumn, logicalIndexes) {
|
||
|
- if (current.second + 1 != logicalColumn) {
|
||
|
+ if (current.second + 1 != logicalColumn && !header->isSectionHidden(current.second + 1)) {
|
||
|
if (current.first != -2) {
|
||
|
//let's save the current one
|
||
|
ret += current;
|
||
|
|
||
|
commit b274bbaf4768dcfdfcf95ceda08b6402ffedb80d
|
||
|
Author: George Goldberg <grundleborg@googlemail.com>
|
||
|
Date: Tue Apr 28 17:08:07 2009 +0200
|
||
|
|
||
|
This patch fixes deserialization of values with custom types when setting
|
||
|
properties on dbus adaptors. It is needed, in particular by telepathy/Qt
|
||
|
programs and libraries. The bug was reported to Nokia on 2009-01-07 along
|
||
|
with the patch supplied here. The summary of the issue from the Qt
|
||
|
Software task tracker follows:
|
||
|
|
||
|
When calling the setter for a DBus property, if that property has a custom type
|
||
|
(e.g. a struct with dbus type (uss)), QtDBus fails to demarshall the
|
||
|
QDBusArgument before attempting to set the property on the adaptor. The result
|
||
|
is that it attempts to call adaptor->setProperty() with a QDBusArgument of type
|
||
|
"uss" instead of with the type of the custom struct.
|
||
|
|
||
|
qt-bugs@ issue : N240326
|
||
|
Qt Software task ID : 240608
|
||
|
bugs.kde.org number : none
|
||
|
|
||
|
diff --git a/src/dbus/qdbusinternalfilters.cpp b/src/dbus/qdbusinternalfilters.cpp
|
||
|
index c71f2f4..d261d01 100644
|
||
|
--- a/src/dbus/qdbusinternalfilters.cpp
|
||
|
+++ b/src/dbus/qdbusinternalfilters.cpp
|
||
|
@@ -274,9 +274,23 @@ QDBusMessage qDBusPropertySet(const QDBusConnectionPrivate::ObjectTreeNode &node
|
||
|
QDBusAdaptorConnector::AdaptorMap::ConstIterator it;
|
||
|
it = qLowerBound(connector->adaptors.constBegin(), connector->adaptors.constEnd(),
|
||
|
interface_name);
|
||
|
- if (it != connector->adaptors.end() && interface_name == QLatin1String(it->interface))
|
||
|
+ if (it != connector->adaptors.end() && interface_name == QLatin1String(it->interface)) {
|
||
|
+ if (value.userType() == qMetaTypeId<QDBusArgument>()) {
|
||
|
+ QDBusArgument valueArg = qvariant_cast<QDBusArgument>(value);
|
||
|
+ if (valueArg.currentType() != -1) {
|
||
|
+ int mid = it->adaptor->metaObject()->property(it->adaptor->metaObject()->indexOfProperty(property_name)).userType();
|
||
|
+ void *null = 0;
|
||
|
+ QVariant valueStore(mid, null);
|
||
|
+ QDBusMetaType::demarshall(valueArg, mid, valueStore.data());
|
||
|
+
|
||
|
+ if (it->adaptor->setProperty(property_name, valueStore))
|
||
|
+ return msg.createReply();
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
if (it->adaptor->setProperty(property_name, value))
|
||
|
return msg.createReply();
|
||
|
+ }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
commit 9a3fe8fc4912bf82b791c4131f553c18140ca838
|
||
|
Author: Thiago Macieira <thiago@doriath.(none)>
|
||
|
Date: Sun Jun 21 13:17:13 2009 -0300
|
||
|
|
||
|
Import README.qt-copy from the original qt-copy
|
||
|
|
||
|
diff --git a/README.kde-qt b/README.kde-qt
|
||
|
new file mode 100644
|
||
|
index 0000000..f605a0b
|
||
|
--- /dev/null
|
||
|
+++ b/README.kde-qt
|
||
|
@@ -0,0 +1,188 @@
|
||
|
+This is a copy of Qt version 4.5.1. It may include
|
||
|
+modifications which are necessary for KDE; these are listed in the
|
||
|
+patches directory.
|
||
|
+
|
||
|
+1. Qt-copy patches
|
||
|
+==================
|
||
|
+
|
||
|
+You may also consider running the apply_patches script before configuring qt-copy,
|
||
|
+which will apply all not yet applied patches from the patches/ directory that
|
||
|
+are considered safe (they mostly include optimizations and features that don't
|
||
|
+add new API). Note that most of those patches haven't been accepted
|
||
|
+by Qt Software yet. and therefore they'll make your qt-copy differ from official
|
||
|
+Qt version.
|
||
|
+
|
||
|
+2. Configuring Qt
|
||
|
+=================
|
||
|
+
|
||
|
+The recommended compile line is:
|
||
|
+
|
||
|
+--default-config-begin--
|
||
|
+./configure -qt-gif -debug -fast -no-exceptions -no-separate-debug-info \
|
||
|
+ -system-libpng -system-libjpeg -system-zlib \
|
||
|
+ -dbus -webkit -no-phonon -plugin-sql-mysql \
|
||
|
+ -nomake examples -nomake demos -prefix <installdir>
|
||
|
+--default-config-end--
|
||
|
+
|
||
|
+It contains "-debug", which greatly improves the use for backtraces (but
|
||
|
+also needs a lot more disk space and makes things slower). To build in
|
||
|
+release mode, replace it with "-release".
|
||
|
+
|
||
|
+It also contains "-no-separate-debug-info", which disables separate .debug
|
||
|
+files. Instead, the debug information will be built into the libraries.
|
||
|
+This option is needed when you install Qt.
|
||
|
+If you don't install Qt, it can be useful to disable this option,
|
||
|
+thus having separate debug symbol files. With separate debug files, you can
|
||
|
+just move those debug files to another directory to remove Qt debug symbols.
|
||
|
+Moving the files back will enable Qt debug symbols again.
|
||
|
+This is useful if you rarely need to step into Qt functions during debugging,
|
||
|
+because GDB loads much faster and uses less memory without Qt debug symbols.
|
||
|
+In the rare case you need to step into Qt code, you can temporarily enable
|
||
|
+debug symbols again by moving the debug files back. You can even load the Qt
|
||
|
+debug symbols from within GDB on demand, using the "symbol-file" command.
|
||
|
+
|
||
|
+It also contains the "-no-exceptions" argument, which disables C++
|
||
|
+exception support. Disabling exception support may improve memory
|
||
|
+consumption if GCC is being used. However, that also disables the
|
||
|
+QtXmlPatterns module since that requires exception support. If you
|
||
|
+plan on using that module, remove the option.
|
||
|
+
|
||
|
+If you are planning to compile Qt using an Icecream cluster you have to
|
||
|
+pass the option -no-pch (no precompiled headers) to configure to make
|
||
|
+distributed compilation work.
|
||
|
+
|
||
|
+3. Compiling Qt
|
||
|
+===============
|
||
|
+
|
||
|
+To compile Qt on a Unix platform, run:
|
||
|
+
|
||
|
+ export MAKEFLAGS=-j2
|
||
|
+ make
|
||
|
+ make install
|
||
|
+
|
||
|
+If your computer has more than one core or processor, you may consider
|
||
|
+increasing the "2" above. If you've got a compile farm available, you
|
||
|
+should adjust the -j argument to match the number of slots in that
|
||
|
+farm.
|
||
|
+
|
||
|
+4. Modifying & rebuilding Qt
|
||
|
+============================
|
||
|
+
|
||
|
+If you make modifications to the Qt source code, you don't need to
|
||
|
+build everything again. Simply go to the directory containing the
|
||
|
+Makefile closest to the files you changed and run "make" again.
|
||
|
+
|
||
|
+For example, if you modified src/corelib/io/qiodevice.cpp, do:
|
||
|
+
|
||
|
+ cd src/corelib
|
||
|
+ make
|
||
|
+
|
||
|
+Do not commit your modifications to qt-copy as such. If you have a fix
|
||
|
+that benefit others, see the "Creating Qt-copy patches" section below.
|
||
|
+
|
||
|
+5. Building Qt examples and demos
|
||
|
+=================================
|
||
|
+
|
||
|
+The "-nomake examples -nomake demos" arguments to the configure script
|
||
|
+mean that those two sections will not be configured for
|
||
|
+building. Which is unneeded for usage of the library. If you want to
|
||
|
+compile the examples or demos later; just enter either directory and
|
||
|
+type:
|
||
|
+
|
||
|
+ qmake
|
||
|
+ make
|
||
|
+
|
||
|
+6. Building Qt documentation (only applies to Snapshot versions of Qt)
|
||
|
+============================
|
||
|
+
|
||
|
+To build and install the documentation, run:
|
||
|
+
|
||
|
+ make docs
|
||
|
+ ./config.status
|
||
|
+ make install
|
||
|
+
|
||
|
+It is necessary to do this once only, even if you rebuild Qt later.
|
||
|
+
|
||
|
+7. Using Qt uninstalled
|
||
|
+=======================
|
||
|
+
|
||
|
+To use without having to install it, configure it as follows:
|
||
|
+
|
||
|
+ ./configure <other configure options> -prefix $PWD
|
||
|
+ make sub-src
|
||
|
+ make sub-tools
|
||
|
+
|
||
|
+Attention: DO NOT run
|
||
|
+
|
||
|
+ make install
|
||
|
+
|
||
|
+If you do, Qt will overwrite your include/ directory with its
|
||
|
+installation.
|
||
|
+
|
||
|
+8. Creating Qt-copy patches
|
||
|
+===========================
|
||
|
+
|
||
|
+If you have fixed a bug in Qt or modified it in any way that may
|
||
|
+benefit others, please share your change in the form of a patch. Do
|
||
|
+not commit your changes directly to the qt-copy module because they
|
||
|
+may be lost in a future update if they have not been added to the
|
||
|
+official Qt release.
|
||
|
+
|
||
|
+The exception to the above rule is that if the fix has been accepted
|
||
|
+by Qt Software (and so will appear in the next release of Qt), then
|
||
|
+it can be applied directly to qt-copy. In this case, the patch
|
||
|
+should still be placed in patches/ as usual, but it should have a
|
||
|
+header line
|
||
|
+ Applied: yes
|
||
|
+
|
||
|
+Before creating a patch, it is recommended to contact Qt Software
|
||
|
+support via qt-bugs@trolltech.com and explain the situation. There may
|
||
|
+be a solution for the problem already or a new direction that should
|
||
|
+be accounted for.
|
||
|
+
|
||
|
+To create a patch, do the following:
|
||
|
+ a) make sure your Qt sources are clean of other changes. Run:
|
||
|
+ svn revert -R .
|
||
|
+ b) make your changes to the Qt source code and verify that it
|
||
|
+ compiles, links and works.
|
||
|
+ c) open the patches/README file and get the next patch number
|
||
|
+ (you must read and understand the README file; if you don't, ask for
|
||
|
+ help from other KDE developers)
|
||
|
+ d) create the patch with:
|
||
|
+ svn diff > patches/NNNN-short-description-of-your-patch.diff
|
||
|
+ where NNNN is the next available number.
|
||
|
+ e) open the file you've just created and add the header to it. The
|
||
|
+ header should be the template in patches/README followed by a longer
|
||
|
+ description of your patch.
|
||
|
+
|
||
|
+Don't forget to submit your patch to qt-bugs@trolltech.com along with
|
||
|
+the long description of the issue found, if you haven't already.
|
||
|
+Qt Software does not monitor the patches/ directory, so qt-copy
|
||
|
+patches do not get automatically applied to Qt official releases.
|
||
|
+
|
||
|
+When you receive the issue number and task tracker numbers, update the
|
||
|
+patch file.
|
||
|
+
|
||
|
+9. Known issues with current Qt code
|
||
|
+====================================
|
||
|
+
|
||
|
+In case you have strange issues with non-resizing windows and similar, use
|
||
|
+ export QT_USE_NATIVE_WINDOWS=1
|
||
|
+before starting KDE.
|
||
|
+
|
||
|
+10. Troubleshooting: Re-configuring and re-compiling
|
||
|
+===================================================
|
||
|
+
|
||
|
+For those updating the source in a directory where Qt has already
|
||
|
+been compiled, you may need to run the following commands from the
|
||
|
+top directory of your Qt sources:
|
||
|
+
|
||
|
+ find . -name '*.moc' | xargs rm
|
||
|
+
|
||
|
+Sometimes ./configure will refuse to run. You may need to:
|
||
|
+ rm .qmake.cache
|
||
|
+
|
||
|
+If you think you may have run "make install" on an install-less Qt
|
||
|
+(srcdir == $QTDIR), run:
|
||
|
+
|
||
|
+ svn revert -R include
|
||
|
|
||
|
commit 39b24a10e4dee27357b9760b735c2ab98b132963
|
||
|
Author: Thiago Macieira <thiago@doriath.(none)>
|
||
|
Date: Sun Jun 21 13:46:54 2009 -0300
|
||
|
|
||
|
Update this file to reflect the workflow with Git, as well as use Git commands
|
||
|
|
||
|
diff --git a/README.kde-qt b/README.kde-qt
|
||
|
index f605a0b..db3feb6 100644
|
||
|
--- a/README.kde-qt
|
||
|
+++ b/README.kde-qt
|
||
|
@@ -1,27 +1,20 @@
|
||
|
-This is a copy of Qt version 4.5.1. It may include
|
||
|
-modifications which are necessary for KDE; these are listed in the
|
||
|
-patches directory.
|
||
|
+This is a patched version of Qt. It may include changes made by KDE
|
||
|
+and Qt developers that have either not been accepted for inclusion
|
||
|
+into Qt, or have been accepted for a later version of Qt than this
|
||
|
+one.
|
||
|
|
||
|
-1. Qt-copy patches
|
||
|
-==================
|
||
|
-
|
||
|
-You may also consider running the apply_patches script before configuring qt-copy,
|
||
|
-which will apply all not yet applied patches from the patches/ directory that
|
||
|
-are considered safe (they mostly include optimizations and features that don't
|
||
|
-add new API). Note that most of those patches haven't been accepted
|
||
|
-by Qt Software yet. and therefore they'll make your qt-copy differ from official
|
||
|
-Qt version.
|
||
|
-
|
||
|
-2. Configuring Qt
|
||
|
+1. Configuring Qt
|
||
|
=================
|
||
|
|
||
|
The recommended compile line is:
|
||
|
|
||
|
--default-config-begin--
|
||
|
-./configure -qt-gif -debug -fast -no-exceptions -no-separate-debug-info \
|
||
|
- -system-libpng -system-libjpeg -system-zlib \
|
||
|
- -dbus -webkit -no-phonon -plugin-sql-mysql \
|
||
|
- -nomake examples -nomake demos -prefix <installdir>
|
||
|
+
|
||
|
+ ./configure -qt-gif -debug -fast -no-separate-debug-info \
|
||
|
+ -system-libpng -system-libjpeg -system-zlib \
|
||
|
+ -dbus -webkit -plugin-sql-mysql \
|
||
|
+ -nomake examples -nomake demos -prefix <installdir>
|
||
|
+
|
||
|
--default-config-end--
|
||
|
|
||
|
It contains "-debug", which greatly improves the use for backtraces (but
|
||
|
@@ -31,6 +24,7 @@ release mode, replace it with "-release".
|
||
|
It also contains "-no-separate-debug-info", which disables separate .debug
|
||
|
files. Instead, the debug information will be built into the libraries.
|
||
|
This option is needed when you install Qt.
|
||
|
+
|
||
|
If you don't install Qt, it can be useful to disable this option,
|
||
|
thus having separate debug symbol files. With separate debug files, you can
|
||
|
just move those debug files to another directory to remove Qt debug symbols.
|
||
|
@@ -41,17 +35,11 @@ In the rare case you need to step into Qt code, you can temporarily enable
|
||
|
debug symbols again by moving the debug files back. You can even load the Qt
|
||
|
debug symbols from within GDB on demand, using the "symbol-file" command.
|
||
|
|
||
|
-It also contains the "-no-exceptions" argument, which disables C++
|
||
|
-exception support. Disabling exception support may improve memory
|
||
|
-consumption if GCC is being used. However, that also disables the
|
||
|
-QtXmlPatterns module since that requires exception support. If you
|
||
|
-plan on using that module, remove the option.
|
||
|
-
|
||
|
If you are planning to compile Qt using an Icecream cluster you have to
|
||
|
pass the option -no-pch (no precompiled headers) to configure to make
|
||
|
distributed compilation work.
|
||
|
|
||
|
-3. Compiling Qt
|
||
|
+2. Compiling Qt
|
||
|
===============
|
||
|
|
||
|
To compile Qt on a Unix platform, run:
|
||
|
@@ -65,34 +53,49 @@ increasing the "2" above. If you've got a compile farm available, you
|
||
|
should adjust the -j argument to match the number of slots in that
|
||
|
farm.
|
||
|
|
||
|
-4. Modifying & rebuilding Qt
|
||
|
+3. Modifying & rebuilding Qt
|
||
|
============================
|
||
|
|
||
|
If you make modifications to the Qt source code, you don't need to
|
||
|
build everything again. Simply go to the directory containing the
|
||
|
Makefile closest to the files you changed and run "make" again.
|
||
|
|
||
|
-For example, if you modified src/corelib/io/qiodevice.cpp, do:
|
||
|
+For example, if you've modified src/corelib/io/qiodevice.cpp, do:
|
||
|
|
||
|
cd src/corelib
|
||
|
make
|
||
|
|
||
|
-Do not commit your modifications to qt-copy as such. If you have a fix
|
||
|
-that benefit others, see the "Creating Qt-copy patches" section below.
|
||
|
+If you make a change that is not temporary, you should create a Git
|
||
|
+commit out of it. However, you shouldn't push those changes to
|
||
|
+kde-qt.git. If you have a fix that benefit others, see the "Creating
|
||
|
+kde-qt.git modifications" section below.
|
||
|
|
||
|
-5. Building Qt examples and demos
|
||
|
+4. Building Qt examples and demos
|
||
|
=================================
|
||
|
|
||
|
The "-nomake examples -nomake demos" arguments to the configure script
|
||
|
-mean that those two sections will not be configured for
|
||
|
-building. Which is unneeded for usage of the library. If you want to
|
||
|
-compile the examples or demos later; just enter either directory and
|
||
|
-type:
|
||
|
+mean that those two sections will not be configured for building,
|
||
|
+which is unneeded for usage of the library. If you want to compile
|
||
|
+the examples or demos later, just enter either directory and type:
|
||
|
|
||
|
qmake
|
||
|
make
|
||
|
|
||
|
-6. Building Qt documentation (only applies to Snapshot versions of Qt)
|
||
|
+5. Build Qt tests
|
||
|
+=================
|
||
|
+
|
||
|
+(Official information: http://qt.gitorious.org/qt/pages/QtAutotestsEnvironment)
|
||
|
+
|
||
|
+In order to run Qt tests, you must have a "developer build" of Qt. For
|
||
|
+that, you need to reconfigure Qt and add the "-developer-build"
|
||
|
+option. That option is technically equivalent to the options:
|
||
|
+
|
||
|
+ -debug -prefix $PWD -DQT_BUILD_INTERNAL
|
||
|
+
|
||
|
+To run a test, go to its source dir in tests/auto/testname. Type
|
||
|
+"make" to build it, then run it (either ./tst_testname, or "make install").
|
||
|
+
|
||
|
+6. Building Qt documentation
|
||
|
============================
|
||
|
|
||
|
To build and install the documentation, run:
|
||
|
@@ -119,21 +122,25 @@ Attention: DO NOT run
|
||
|
If you do, Qt will overwrite your include/ directory with its
|
||
|
installation.
|
||
|
|
||
|
-8. Creating Qt-copy patches
|
||
|
-===========================
|
||
|
+8. Creating kde-qt.git modifications
|
||
|
+====================================
|
||
|
|
||
|
If you have fixed a bug in Qt or modified it in any way that may
|
||
|
benefit others, please share your change in the form of a patch. Do
|
||
|
-not commit your changes directly to the qt-copy module because they
|
||
|
+not commit your changes directly to the main branch because they
|
||
|
may be lost in a future update if they have not been added to the
|
||
|
official Qt release.
|
||
|
|
||
|
The exception to the above rule is that if the fix has been accepted
|
||
|
-by Qt Software (and so will appear in the next release of Qt), then
|
||
|
-it can be applied directly to qt-copy. In this case, the patch
|
||
|
-should still be placed in patches/ as usual, but it should have a
|
||
|
-header line
|
||
|
- Applied: yes
|
||
|
+by Qt Software (and so will appear in the very next release of Qt),
|
||
|
+then it should be simply cherry-picked from the Qt development
|
||
|
+branch. Note that you shouldn't do this for changes that have been
|
||
|
+accepted into a release which is not the very next.
|
||
|
+In this case, you should use the following command:
|
||
|
+
|
||
|
+ git cherry-pick -x SHA1_OF_THE_FIX
|
||
|
+where SHA1_OF_THE_FIX is the SHA-1 of the commit that you want to
|
||
|
+introduce. Then push the change to the server.
|
||
|
|
||
|
Before creating a patch, it is recommended to contact Qt Software
|
||
|
support via qt-bugs@trolltech.com and explain the situation. There may
|
||
|
@@ -141,37 +148,42 @@ be a solution for the problem already or a new direction that should
|
||
|
be accounted for.
|
||
|
|
||
|
To create a patch, do the following:
|
||
|
- a) make sure your Qt sources are clean of other changes. Run:
|
||
|
- svn revert -R .
|
||
|
- b) make your changes to the Qt source code and verify that it
|
||
|
- compiles, links and works.
|
||
|
- c) open the patches/README file and get the next patch number
|
||
|
- (you must read and understand the README file; if you don't, ask for
|
||
|
- help from other KDE developers)
|
||
|
- d) create the patch with:
|
||
|
- svn diff > patches/NNNN-short-description-of-your-patch.diff
|
||
|
- where NNNN is the next available number.
|
||
|
- e) open the file you've just created and add the header to it. The
|
||
|
- header should be the template in patches/README followed by a longer
|
||
|
- description of your patch.
|
||
|
-
|
||
|
-Don't forget to submit your patch to qt-bugs@trolltech.com along with
|
||
|
-the long description of the issue found, if you haven't already.
|
||
|
-Qt Software does not monitor the patches/ directory, so qt-copy
|
||
|
-patches do not get automatically applied to Qt official releases.
|
||
|
-
|
||
|
-When you receive the issue number and task tracker numbers, update the
|
||
|
-patch file.
|
||
|
-
|
||
|
-9. Known issues with current Qt code
|
||
|
-====================================
|
||
|
-
|
||
|
-In case you have strange issues with non-resizing windows and similar, use
|
||
|
- export QT_USE_NATIVE_WINDOWS=1
|
||
|
-before starting KDE.
|
||
|
-
|
||
|
-10. Troubleshooting: Re-configuring and re-compiling
|
||
|
-===================================================
|
||
|
+ a) look at the listing of branches in
|
||
|
+ http://qt.gitorious.org/+kde-developers/qt/kde-qt/commits/HEAD and
|
||
|
+ select the next number.
|
||
|
+
|
||
|
+ b) create a new branch out of a clean, released version of Qt, (for
|
||
|
+ example, 4.5.1), using the number above and a brief description of
|
||
|
+ your fix. For example:
|
||
|
+ git checkout -b patches/0180-window-role v4.5.1
|
||
|
+ You can see the available released versions of Qt with:
|
||
|
+ git tag
|
||
|
+
|
||
|
+ c) make your changes to the Qt source code and verify that it
|
||
|
+ compiles, links and works (please run the respective unit tests).
|
||
|
+
|
||
|
+ c) commit your changes to Git, using the "git commit" command. Please
|
||
|
+ see http://qt.gitorious.org/qt/pages/GitIntroductionWithQt and
|
||
|
+ http://qt.gitorious.org/qt/pages/QtCodingStyle for information on
|
||
|
+ how to create commits
|
||
|
+ Note that you can create multiple commits.
|
||
|
+
|
||
|
+ e) merge the change to the main branch, for example, 4.5.1-patched:
|
||
|
+ git checkout 4.5.1-patched
|
||
|
+ git merge patches/0180-window-role
|
||
|
+
|
||
|
+ f) push the changes you made to your branch and to the main server:
|
||
|
+ git push git@gitorious.org:qt/kde-qt.git 4.5.1-patched patches/0180-window-role
|
||
|
+ (Don't forget to list both branch names)
|
||
|
+
|
||
|
+Don't forget to submit your patch to using the Qt Contribution Model,
|
||
|
+along with the long description of the issue found. See
|
||
|
+http://qt.gitorious.org/qt/pages/QtContributionGuidelines for
|
||
|
+information how. You can submit the branch you've just sent to the
|
||
|
+server.
|
||
|
+
|
||
|
+9. Troubleshooting: Re-configuring and re-compiling
|
||
|
+==================================================
|
||
|
|
||
|
For those updating the source in a directory where Qt has already
|
||
|
been compiled, you may need to run the following commands from the
|
||
|
@@ -185,4 +197,5 @@ Sometimes ./configure will refuse to run. You may need to:
|
||
|
If you think you may have run "make install" on an install-less Qt
|
||
|
(srcdir == $QTDIR), run:
|
||
|
|
||
|
- svn revert -R include
|
||
|
+ rm -rf include
|
||
|
+ bin/syncqt
|
||
|
|
||
|
commit 8731ab999b849dac4716e3d29f5f55ed8e56438e
|
||
|
Author: Thiago Macieira <thiago.macieira@nokia.com>
|
||
|
Date: Thu Jun 25 13:50:29 2009 +0200
|
||
|
|
||
|
This patch makes the raster graphics system use shared images instead
|
||
|
of shared pixmaps.
|
||
|
|
||
|
Shared memory pixmaps are deprecated since they are slower than shared
|
||
|
images with modern graphics hardware. They are also not supported by EXA
|
||
|
drivers and can be disabled in the latest version of the NVidia driver.
|
||
|
|
||
|
qt-bugs@ issue : none
|
||
|
Qt Software task ID : none
|
||
|
bugs.kde.org number : none
|
||
|
|
||
|
diff --git a/src/gui/image/qnativeimage.cpp b/src/gui/image/qnativeimage.cpp
|
||
|
index 3745708..3c21fce 100644
|
||
|
--- a/src/gui/image/qnativeimage.cpp
|
||
|
+++ b/src/gui/image/qnativeimage.cpp
|
||
|
@@ -147,7 +147,6 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format,bool /*
|
||
|
{
|
||
|
if (!X11->use_mitshm) {
|
||
|
xshmimg = 0;
|
||
|
- xshmpm = 0;
|
||
|
image = QImage(width, height, format);
|
||
|
return;
|
||
|
}
|
||
|
@@ -191,11 +190,6 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format,bool /*
|
||
|
shmctl(xshminfo.shmid, IPC_RMID, 0);
|
||
|
return;
|
||
|
}
|
||
|
- xshmpm = XShmCreatePixmap(X11->display, DefaultRootWindow(X11->display), xshmimg->data,
|
||
|
- &xshminfo, width, height, dd);
|
||
|
- if (!xshmpm) {
|
||
|
- qWarning() << "QNativeImage: Unable to create shared Pixmap.";
|
||
|
- }
|
||
|
}
|
||
|
|
||
|
|
||
|
@@ -204,10 +198,6 @@ QNativeImage::~QNativeImage()
|
||
|
if (!xshmimg)
|
||
|
return;
|
||
|
|
||
|
- if (xshmpm) {
|
||
|
- XFreePixmap(X11->display, xshmpm);
|
||
|
- xshmpm = 0;
|
||
|
- }
|
||
|
XShmDetach(X11->display, &xshminfo);
|
||
|
xshmimg->data = 0;
|
||
|
XDestroyImage(xshmimg);
|
||
|
diff --git a/src/gui/image/qnativeimage_p.h b/src/gui/image/qnativeimage_p.h
|
||
|
index 07d5dfe..ba01854 100644
|
||
|
--- a/src/gui/image/qnativeimage_p.h
|
||
|
+++ b/src/gui/image/qnativeimage_p.h
|
||
|
@@ -90,7 +90,6 @@ public:
|
||
|
|
||
|
#elif defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
|
||
|
XImage *xshmimg;
|
||
|
- Pixmap xshmpm;
|
||
|
XShmSegmentInfo xshminfo;
|
||
|
|
||
|
#elif defined(Q_WS_MAC)
|
||
|
diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp
|
||
|
index d6fb03b..09963d9 100644
|
||
|
--- a/src/gui/painting/qwindowsurface_raster.cpp
|
||
|
+++ b/src/gui/painting/qwindowsurface_raster.cpp
|
||
|
@@ -220,9 +220,16 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi
|
||
|
|
||
|
QRect br = rgn.boundingRect().translated(offset);
|
||
|
#ifndef QT_NO_MITSHM
|
||
|
- if (d_ptr->image->xshmpm) {
|
||
|
- XCopyArea(X11->display, d_ptr->image->xshmpm, widget->handle(), d_ptr->gc,
|
||
|
- br.x(), br.y(), br.width(), br.height(), wbr.x(), wbr.y());
|
||
|
+ if (d_ptr->image->xshmimg && (br.width() * br.height() > 65536)) {
|
||
|
+ const QImage &src = d->image->image;
|
||
|
+ br = br.intersected(src.rect());
|
||
|
+ // Hack to make sure we satisify the PutImage() constraints in the X server,
|
||
|
+ // since the doShmPutImage() route currently forces a migration to system ram.
|
||
|
+ wbr.setX(wbr.x() - br.x());
|
||
|
+ br.setX(0);
|
||
|
+ br.setWidth(src.width());
|
||
|
+ XShmPutImage(X11->display, widget->handle(), d_ptr->gc, d_ptr->image->xshmimg,
|
||
|
+ br.x(), br.y(), wbr.x(), wbr.y(), br.width(), br.height(), False);
|
||
|
XSync(X11->display, False);
|
||
|
} else
|
||
|
#endif
|
||
|
|
||
|
commit bb8255da422470c5012b6b1c4c24eb2afb6804dc
|
||
|
Author: Thiago Macieira <thiago.macieira@nokia.com>
|
||
|
Date: Fri Jun 26 11:41:45 2009 +0200
|
||
|
|
||
|
Restore a section of the file that got removed due to conflict resolution.
|
||
|
|
||
|
Thanks to Kevin Kofler for pointing this out
|
||
|
|
||
|
diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp
|
||
|
index 33aec9e..53f020b 100644
|
||
|
--- a/src/gui/kernel/qapplication_x11.cpp
|
||
|
+++ b/src/gui/kernel/qapplication_x11.cpp
|
||
|
@@ -1955,9 +1955,9 @@ void qt_init(QApplicationPrivate *priv, int,
|
||
|
bool local = displayName.isEmpty() || displayName.lastIndexOf(QLatin1Char(':')) == 0;
|
||
|
if (local && (qgetenv("QT_X11_NO_MITSHM").toInt() == 0)) {
|
||
|
Visual *defaultVisual = DefaultVisual(X11->display, DefaultScreen(X11->display));
|
||
|
- X11->use_mitshm = mitshm_pixmaps && (defaultVisual->red_mask == 0xff0000
|
||
|
- && defaultVisual->green_mask == 0xff00
|
||
|
- && defaultVisual->blue_mask == 0xff);
|
||
|
+ X11->use_mitshm = defaultVisual->red_mask == 0xff0000
|
||
|
+ && defaultVisual->green_mask == 0xff00
|
||
|
+ && defaultVisual->blue_mask == 0xff;
|
||
|
}
|
||
|
}
|
||
|
#endif // QT_NO_MITSHM
|
||
|
|
||
|
commit 3860708da46685c135ac4faf074a4d7dd9952de8
|
||
|
Author: David Faure <dfaure@AsterixT.(none)>
|
||
|
Date: Fri Jun 26 13:38:02 2009 +0200
|
||
|
|
||
|
Add missing word in sentence
|
||
|
|
||
|
diff --git a/README.kde-qt b/README.kde-qt
|
||
|
index db3feb6..1e5f8c7 100644
|
||
|
--- a/README.kde-qt
|
||
|
+++ b/README.kde-qt
|
||
|
@@ -176,7 +176,7 @@ To create a patch, do the following:
|
||
|
git push git@gitorious.org:qt/kde-qt.git 4.5.1-patched patches/0180-window-role
|
||
|
(Don't forget to list both branch names)
|
||
|
|
||
|
-Don't forget to submit your patch to using the Qt Contribution Model,
|
||
|
+Don't forget to submit your patch to QtSoftware using the Qt Contribution Model,
|
||
|
along with the long description of the issue found. See
|
||
|
http://qt.gitorious.org/qt/pages/QtContributionGuidelines for
|
||
|
information how. You can submit the branch you've just sent to the
|
||
|
|
||
|
commit 46a247a2c9a8c0c4456a02f6a0922d859d88fe76
|
||
|
Author: David Faure <dfaure@AsterixT.(none)>
|
||
|
Date: Fri Jun 26 13:45:37 2009 +0200
|
||
|
|
||
|
"Building Qt documentation" said to run "make install", but obviously we
|
||
|
don't want that if using qt uninstalled -> swap both sections and add a
|
||
|
"if uninstalled" before the make install bit.
|
||
|
|
||
|
diff --git a/README.kde-qt b/README.kde-qt
|
||
|
index 1e5f8c7..9e272c9 100644
|
||
|
--- a/README.kde-qt
|
||
|
+++ b/README.kde-qt
|
||
|
@@ -95,18 +95,7 @@ option. That option is technically equivalent to the options:
|
||
|
To run a test, go to its source dir in tests/auto/testname. Type
|
||
|
"make" to build it, then run it (either ./tst_testname, or "make install").
|
||
|
|
||
|
-6. Building Qt documentation
|
||
|
-============================
|
||
|
-
|
||
|
-To build and install the documentation, run:
|
||
|
-
|
||
|
- make docs
|
||
|
- ./config.status
|
||
|
- make install
|
||
|
-
|
||
|
-It is necessary to do this once only, even if you rebuild Qt later.
|
||
|
-
|
||
|
-7. Using Qt uninstalled
|
||
|
+6. Using Qt uninstalled
|
||
|
=======================
|
||
|
|
||
|
To use without having to install it, configure it as follows:
|
||
|
@@ -122,6 +111,20 @@ Attention: DO NOT run
|
||
|
If you do, Qt will overwrite your include/ directory with its
|
||
|
installation.
|
||
|
|
||
|
+7. Building Qt documentation
|
||
|
+============================
|
||
|
+
|
||
|
+To build and install the documentation, run:
|
||
|
+
|
||
|
+ make docs
|
||
|
+
|
||
|
+And if you don't use Qt uninstalled:
|
||
|
+
|
||
|
+ ./config.status
|
||
|
+ make install
|
||
|
+
|
||
|
+It is necessary to do all this once only, even if you rebuild Qt later.
|
||
|
+
|
||
|
8. Creating kde-qt.git modifications
|
||
|
====================================
|
||
|
|
||
|
|
||
|
commit 4b5ae1db24fa1b96f00ef62bd2e1063a8a313e5c
|
||
|
Author: Albert Astals Cid <aacid@kde.org>
|
||
|
Date: Sat Jun 27 14:19:23 2009 +0200
|
||
|
|
||
|
Fix #error line not to have a ' as it's not correct
|
||
|
|
||
|
diff --git a/src/3rdparty/webkit/WebCore/DerivedSources.cpp b/src/3rdparty/webkit/WebCore/DerivedSources.cpp
|
||
|
index f698913..aaf8983 100644
|
||
|
--- a/src/3rdparty/webkit/WebCore/DerivedSources.cpp
|
||
|
+++ b/src/3rdparty/webkit/WebCore/DerivedSources.cpp
|
||
|
@@ -334,5 +334,5 @@
|
||
|
// want StaticConstructors.h to "pollute" all the source files we #include here
|
||
|
// accidentally, so we'll throw an error whenever any file includes it.
|
||
|
#ifdef StaticConstructors_h
|
||
|
-#error Don't include any file in DerivedSources.cpp that includes StaticConstructors.h
|
||
|
+#error Do not include any file in DerivedSources.cpp that includes StaticConstructors.h
|
||
|
#endif
|
||
|
|
||
|
commit 2d1727e396d5dca24ae0fb6a45d35ffc1abd0c12
|
||
|
Author: Thiago Macieira <thiago.macieira@nokia.com>
|
||
|
Date: Fri Jun 12 14:27:54 2009 +0200
|
||
|
|
||
|
Attempt to fix header installation for Phonon.
|
||
|
|
||
|
This is the long-standing issue of whether Phonon headers should be
|
||
|
written with a capital P or a lowercase one. KDE releases of Phonon
|
||
|
had <Phonon/CapitalClassName> whereas Qt 4.4 had <phonon/filename.h>.
|
||
|
|
||
|
I tried to solve this before by adding a Phonon subdir next to phonon
|
||
|
in include/, but that only compounded the error: the presence of two
|
||
|
dirs caused problems and the installation wasn't fixed.
|
||
|
|
||
|
So instead try to place Phonon/ClassName inside include/phonon. And
|
||
|
fix the installation to do it properly: just copy the include/$lib dir
|
||
|
into the target, then overwrite the .h files with the sources from
|
||
|
src/$lib.
|
||
|
|
||
|
Reviewed-by: Marius Storm-Olsen
|
||
|
(cherry picked from commit 4b43263b870c17fd813d1d34f97146f4c725083e)
|
||
|
|
||
|
diff --git a/bin/syncqt b/bin/syncqt
|
||
|
index 137b25f..71d4bff 100755
|
||
|
--- a/bin/syncqt
|
||
|
+++ b/bin/syncqt
|
||
|
@@ -308,8 +308,6 @@ sub syncHeader {
|
||
|
$header =~ s=\\=/=g;
|
||
|
return copyFile($iheader, $header) if($copy);
|
||
|
|
||
|
- my $iheader_no_basedir = $iheader;
|
||
|
- $iheader_no_basedir =~ s,^$basedir/?,,;
|
||
|
unless(-e "$header") {
|
||
|
my $header_dir = dirname($header);
|
||
|
mkpath $header_dir, 0777;
|
||
|
@@ -802,10 +800,9 @@ foreach (@modules_to_sync) {
|
||
|
my $class = $_;
|
||
|
if ($class =~ m/::/) {
|
||
|
$class =~ s,::,/,g;
|
||
|
- $class = "../" . $class;
|
||
|
}
|
||
|
$class_lib_map_contents .= "QT_CLASS_LIB($_, $lib, $header_base)\n";
|
||
|
- $header_copies++ if(syncHeader("$out_basedir/include/$lib/$class", $header, 0));
|
||
|
+ $header_copies++ if(syncHeader("$out_basedir/include/$lib/$class", "$out_basedir/include/$lib/$header", 0));
|
||
|
}
|
||
|
} else {
|
||
|
@headers = ( "$out_basedir/include/$lib/private/$header" );
|
||
|
@@ -827,7 +824,6 @@ foreach (@modules_to_sync) {
|
||
|
my $class = $_;
|
||
|
if ($class =~ m/::/) {
|
||
|
$class =~ s,::,/,g;
|
||
|
- $class = "../" . $class;
|
||
|
}
|
||
|
my $class_header = fixPaths("$out_basedir/include/$lib/$class",
|
||
|
$current_dir) . " ";
|
||
|
@@ -848,25 +844,27 @@ foreach (@modules_to_sync) {
|
||
|
$master_contents .= "#endif\n";
|
||
|
|
||
|
unless($showonly) {
|
||
|
- #generate the "master" include file
|
||
|
- my $master_include = "$out_basedir/include/$lib/$lib";
|
||
|
- $pri_install_files .= fixPaths($master_include, "$modules{$lib}") . " "; #get the master file installed too
|
||
|
- if(-e "$master_include") {
|
||
|
- open MASTERINCLUDE, "<$master_include";
|
||
|
- local $/;
|
||
|
- binmode MASTERINCLUDE;
|
||
|
- my $oldmaster = <MASTERINCLUDE>;
|
||
|
- close MASTERINCLUDE;
|
||
|
- $oldmaster =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
|
||
|
- $master_include = 0 if($oldmaster eq $master_contents);
|
||
|
- }
|
||
|
- if($master_include && $master_contents) {
|
||
|
- my $master_dir = dirname($master_include);
|
||
|
- mkpath $master_dir, 0777;
|
||
|
- print "header (master) created for $lib\n";
|
||
|
- open MASTERINCLUDE, ">$master_include";
|
||
|
- print MASTERINCLUDE "$master_contents";
|
||
|
- close MASTERINCLUDE;
|
||
|
+ unless ($lib eq "phonon") {
|
||
|
+ #generate the "master" include file
|
||
|
+ my $master_include = "$out_basedir/include/$lib/$lib";
|
||
|
+ $pri_install_files .= fixPaths($master_include, "$modules{$lib}") . " "; #get the master file installed too
|
||
|
+ if($master_include && -e "$master_include") {
|
||
|
+ open MASTERINCLUDE, "<$master_include";
|
||
|
+ local $/;
|
||
|
+ binmode MASTERINCLUDE;
|
||
|
+ my $oldmaster = <MASTERINCLUDE>;
|
||
|
+ close MASTERINCLUDE;
|
||
|
+ $oldmaster =~ s/\r//g; # remove \r's , so comparison is ok on all platforms
|
||
|
+ $master_include = 0 if($oldmaster eq $master_contents);
|
||
|
+ }
|
||
|
+ if($master_include && $master_contents) {
|
||
|
+ my $master_dir = dirname($master_include);
|
||
|
+ mkpath $master_dir, 0777;
|
||
|
+ print "header (master) created for $lib\n";
|
||
|
+ open MASTERINCLUDE, ">$master_include";
|
||
|
+ print MASTERINCLUDE "$master_contents";
|
||
|
+ close MASTERINCLUDE;
|
||
|
+ }
|
||
|
}
|
||
|
|
||
|
#handle the headers.pri for each module
|
||
|
diff --git a/src/qt_install.pri b/src/qt_install.pri
|
||
|
index 6dd2074..ebeac8d 100644
|
||
|
--- a/src/qt_install.pri
|
||
|
+++ b/src/qt_install.pri
|
||
|
@@ -15,11 +15,19 @@ qt_install_headers {
|
||
|
$$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH/arch
|
||
|
}
|
||
|
|
||
|
- flat_headers.files = $$INSTALL_HEADERS
|
||
|
- flat_headers.path = $$[QT_INSTALL_HEADERS]/Qt
|
||
|
- INSTALLS += flat_headers
|
||
|
+ equals(TARGET, phonon) {
|
||
|
+ class_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET/Phonon
|
||
|
+ } else {
|
||
|
+ flat_headers.files = $$INSTALL_HEADERS
|
||
|
+ flat_headers.path = $$[QT_INSTALL_HEADERS]/Qt
|
||
|
+ INSTALLS += flat_headers
|
||
|
|
||
|
- targ_headers.files = $$INSTALL_HEADERS $$SYNCQT.HEADER_CLASSES
|
||
|
+ class_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
|
||
|
+ }
|
||
|
+ class_headers.files = $$SYNCQT.HEADER_CLASSES
|
||
|
+ INSTALLS += class_headers
|
||
|
+
|
||
|
+ targ_headers.files = $$INSTALL_HEADERS
|
||
|
targ_headers.path = $$[QT_INSTALL_HEADERS]/$$TARGET
|
||
|
INSTALLS += targ_headers
|
||
|
}
|
||
|
|
||
|
commit f9802f2bbbd23137acb5f80d1f131fa6b1a85752
|
||
|
Author: Thiago Macieira <thiago.macieira@nokia.com>
|
||
|
Date: Fri Jun 12 15:06:29 2009 +0200
|
||
|
|
||
|
Fix compilation after the last change.
|
||
|
|
||
|
The #include <phonon> header no longer exists. And the <Phonon> or
|
||
|
<Phonon/Phonon> headers have never existed (neither for us nor for the
|
||
|
Phonon sources). You have to select each and every header that you do
|
||
|
want now.
|
||
|
|
||
|
Reviewed-By: Marius Storm-Olsen
|
||
|
(cherry picked from commit 71be46c61c582d2f4635a1e420e44d57ddb5857a)
|
||
|
|
||
|
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
|
||
|
index b1a48fb..2e01100 100644
|
||
|
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
|
||
|
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/MediaPlayerPrivatePhonon.cpp
|
||
|
@@ -35,7 +35,10 @@
|
||
|
#include <QMetaEnum>
|
||
|
#include <QUrl>
|
||
|
#include <QEvent>
|
||
|
-#include <phonon>
|
||
|
+
|
||
|
+#include <Phonon/AudioOutput>
|
||
|
+#include <Phonon/MediaObject>
|
||
|
+#include <Phonon/VideoWidget>
|
||
|
|
||
|
using namespace Phonon;
|
||
|
|
||
|
diff --git a/tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.h b/tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.h
|
||
|
index 2ca3b58..58255b2 100644
|
||
|
--- a/tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.h
|
||
|
+++ b/tools/designer/src/plugins/phononwidgets/videoplayertaskmenu.h
|
||
|
@@ -47,7 +47,8 @@
|
||
|
#include <QtDesigner/QDesignerTaskMenuExtension>
|
||
|
#include <QtDesigner/private/extensionfactory_p.h>
|
||
|
|
||
|
-#include <phonon>
|
||
|
+#include <Phonon/BackendCapabilities>
|
||
|
+#include <Phonon/VideoPlayer>
|
||
|
|
||
|
QT_BEGIN_NAMESPACE
|
||
|
|
||
|
|
||
|
commit 01f26d0756839fbe783c637ca7dec5b7987f7e14
|
||
|
Author: Aaron Seigo <aseigo@kde.org>
|
||
|
Date: Mon Jul 27 21:46:22 2009 -0600
|
||
|
|
||
|
Make QMenu respect the minimum width set
|
||
|
|
||
|
If one sets a minimum width on a QMenu and that size is larger than the
|
||
|
smallest size needed by the large menu item, it ignores the minimum
|
||
|
width and just uses the largest menu item size.
|
||
|
|
||
|
This results in ugly painting artifacts. This currently affects
|
||
|
(at least) the tasks widget in Plasma in KDE4.
|
||
|
|
||
|
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
|
||
|
index 9fbbb04..5d62ea6 100644
|
||
|
--- a/src/gui/widgets/qmenu.cpp
|
||
|
+++ b/src/gui/widgets/qmenu.cpp
|
||
|
@@ -280,7 +280,7 @@ void QMenuPrivate::calcActionRects(QMap<QAction*, QRect> &actionRects, QList<QAc
|
||
|
|
||
|
|
||
|
if (!sz.isEmpty()) {
|
||
|
- max_column_width = qMax(max_column_width, sz.width());
|
||
|
+ max_column_width = qMax(q->minimumWidth(), qMax(max_column_width, sz.width()));
|
||
|
//wrapping
|
||
|
if (!scroll &&
|
||
|
y+sz.height()+vmargin > dh - (q->style()->pixelMetric(QStyle::PM_MenuDesktopFrameWidth, 0, q) * 2)) {
|
||
|
|
||
|
commit 1a94cd7b132497f70a2b97ec2b58f6e2b1c5076a
|
||
|
Author: Helio Chissini de Castro <helio@kde.org>
|
||
|
Date: Fri Jul 10 16:00:13 2009 -0300
|
||
|
|
||
|
Fill gap of X.org/XFree multimedia/special/launcher keys
|
||
|
Qt up to 4.5.x is missing whole setup of multimedia keys already defined by X
|
||
|
|
||
|
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
|
||
|
index 3edbca7..ddf27a8 100644
|
||
|
--- a/src/corelib/global/qnamespace.h
|
||
|
+++ b/src/corelib/global/qnamespace.h
|
||
|
@@ -895,12 +895,10 @@ public:
|
||
|
Key_Dead_Horn = 0x01001262,
|
||
|
|
||
|
// multimedia/internet keys - ignored by default - see QKeyEvent c'tor
|
||
|
-
|
||
|
Key_Back = 0x01000061,
|
||
|
Key_Forward = 0x01000062,
|
||
|
Key_Stop = 0x01000063,
|
||
|
Key_Refresh = 0x01000064,
|
||
|
-
|
||
|
Key_VolumeDown = 0x01000070,
|
||
|
Key_VolumeMute = 0x01000071,
|
||
|
Key_VolumeUp = 0x01000072,
|
||
|
@@ -909,7 +907,6 @@ public:
|
||
|
Key_BassDown = 0x01000075,
|
||
|
Key_TrebleUp = 0x01000076,
|
||
|
Key_TrebleDown = 0x01000077,
|
||
|
-
|
||
|
Key_MediaPlay = 0x01000080,
|
||
|
Key_MediaStop = 0x01000081,
|
||
|
Key_MediaPrevious = 0x01000082,
|
||
|
@@ -918,13 +915,11 @@ public:
|
||
|
#endif
|
||
|
Key_MediaNext = 0x01000083,
|
||
|
Key_MediaRecord = 0x01000084,
|
||
|
-
|
||
|
Key_HomePage = 0x01000090,
|
||
|
Key_Favorites = 0x01000091,
|
||
|
Key_Search = 0x01000092,
|
||
|
Key_Standby = 0x01000093,
|
||
|
Key_OpenUrl = 0x01000094,
|
||
|
-
|
||
|
Key_LaunchMail = 0x010000a0,
|
||
|
Key_LaunchMedia = 0x010000a1,
|
||
|
Key_Launch0 = 0x010000a2,
|
||
|
@@ -943,6 +938,98 @@ public:
|
||
|
Key_LaunchD = 0x010000af,
|
||
|
Key_LaunchE = 0x010000b0,
|
||
|
Key_LaunchF = 0x010000b1,
|
||
|
+ Key_MonBrightnessUp = 0x010000b2,
|
||
|
+ Key_MonBrightnessDown = 0x010000b3,
|
||
|
+ Key_KeyboardLightOnOff = 0x010000b4,
|
||
|
+ Key_KeyboardBrightnessUp = 0x010000b5,
|
||
|
+ Key_KeyboardBrightnessDown = 0x010000b6,
|
||
|
+ Key_PowerOff = 0x010000b7,
|
||
|
+ Key_WakeUp = 0x010000b8,
|
||
|
+ Key_Eject = 0x010000b9,
|
||
|
+ Key_ScreenSaver = 0x010000ba,
|
||
|
+ Key_WWW = 0x010000bb,
|
||
|
+ Key_Memo = 0x010000bc,
|
||
|
+ Key_LightBulb = 0x010000bd,
|
||
|
+ Key_Shop = 0x010000be,
|
||
|
+ Key_History = 0x010000bf,
|
||
|
+ Key_AddFavorite = 0x010000c0,
|
||
|
+ Key_HotLinks = 0x010000c1,
|
||
|
+ Key_BrightnessAdjust = 0x010000c2,
|
||
|
+ Key_Finance = 0x010000c3,
|
||
|
+ Key_Community = 0x010000c4,
|
||
|
+ Key_AudioRewind = 0x010000c5,
|
||
|
+ Key_BackForward = 0x010000c6,
|
||
|
+ Key_ApplicationLeft = 0x010000c7,
|
||
|
+ Key_ApplicationRight = 0x010000c8,
|
||
|
+ Key_Book = 0x010000c9,
|
||
|
+ Key_CD = 0x010000ca,
|
||
|
+ Key_Calculator = 0x010000cb,
|
||
|
+ Key_ToDoList = 0x010000cc,
|
||
|
+ Key_ClearGrab = 0x010000cd,
|
||
|
+ Key_Close = 0x010000ce,
|
||
|
+ Key_Copy = 0x010000cf,
|
||
|
+ Key_Cut = 0x010000d0,
|
||
|
+ Key_Display = 0x010000d1,
|
||
|
+ Key_DOS = 0x010000d2,
|
||
|
+ Key_Documents = 0x010000d3,
|
||
|
+ Key_Excel = 0x010000d4,
|
||
|
+ Key_Explorer = 0x010000d5,
|
||
|
+ Key_Game = 0x010000d6,
|
||
|
+ Key_Go = 0x010000d7,
|
||
|
+ Key_iTouch = 0x010000d8,
|
||
|
+ Key_LogOff = 0x010000d9,
|
||
|
+ Key_Market = 0x010000da,
|
||
|
+ Key_Meeting = 0x010000db,
|
||
|
+ Key_MenuKB = 0x010000dc,
|
||
|
+ Key_MenuPB = 0x010000dd,
|
||
|
+ Key_MySites = 0x010000de,
|
||
|
+ Key_News = 0x010000df,
|
||
|
+ Key_OfficeHome = 0x010000e0,
|
||
|
+ Key_Option = 0x010000e1,
|
||
|
+ Key_Paste = 0x010000e2,
|
||
|
+ Key_Phone = 0x010000e3,
|
||
|
+ Key_Calendar = 0x010000e4,
|
||
|
+ Key_Reply = 0x010000e5,
|
||
|
+ Key_Reload = 0x010000e6,
|
||
|
+ Key_RotateWindows = 0x010000e7,
|
||
|
+ Key_RotationPB = 0x010000e8,
|
||
|
+ Key_RotationKB = 0x010000e9,
|
||
|
+ Key_Save = 0x010000ea,
|
||
|
+ Key_Send = 0x010000eb,
|
||
|
+ Key_Spell = 0x010000ec,
|
||
|
+ Key_SplitScreen = 0x010000ed,
|
||
|
+ Key_Support = 0x010000ee,
|
||
|
+ Key_TaskPane = 0x010000ef,
|
||
|
+ Key_Terminal = 0x010000f0,
|
||
|
+ Key_Tools = 0x010000f1,
|
||
|
+ Key_Travel = 0x010000f2,
|
||
|
+ Key_Video = 0x010000f3,
|
||
|
+ Key_Word = 0x010000f4,
|
||
|
+ Key_Xfer = 0x010000f5,
|
||
|
+ Key_ZoomIn = 0x010000f6,
|
||
|
+ Key_ZoomOut = 0x010000f7,
|
||
|
+ Key_Away = 0x010000f8,
|
||
|
+ Key_Messenger = 0x010000f9,
|
||
|
+ Key_WebCam = 0x010000fa,
|
||
|
+ Key_MailForward = 0x010000fb,
|
||
|
+ Key_Pictures = 0x010000fc,
|
||
|
+ Key_Music = 0x010000fd,
|
||
|
+ Key_Battery = 0x010000fe,
|
||
|
+ Key_Bluetooth = 0x010000ff,
|
||
|
+ Key_WLAN = 0x01000100,
|
||
|
+ Key_UWB = 0x01000101,
|
||
|
+ Key_AudioForward = 0x01000102,
|
||
|
+ Key_AudioRepeat = 0x01000103,
|
||
|
+ Key_AudioRandomPlay = 0x01000104,
|
||
|
+ Key_Subtitle = 0x01000105,
|
||
|
+ Key_AudioCycleTrack = 0x01000106,
|
||
|
+ Key_Time = 0x01000107,
|
||
|
+ Key_Hibernate = 0x01000108,
|
||
|
+ Key_View = 0x01000109,
|
||
|
+ Key_TopMenu = 0x0100010a,
|
||
|
+ Key_PowerDown = 0x0100010b,
|
||
|
+ Key_Suspend = 0x0100010c,
|
||
|
+ Key_ContrastAdjust = 0x0100010d,
|
||
|
|
||
|
Key_MediaLast = 0x0100ffff,
|
||
|
|
||
|
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
|
||
|
index 98ed61c..f55b491 100644
|
||
|
--- a/src/gui/kernel/qkeymapper_x11.cpp
|
||
|
+++ b/src/gui/kernel/qkeymapper_x11.cpp
|
||
|
@@ -714,47 +714,144 @@ extern bool qt_sm_blockUserInput;
|
||
|
#define XK_KP_Delete 0xFF9F
|
||
|
#endif
|
||
|
|
||
|
-// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
|
||
|
+// the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special
|
||
|
// multimedia keys. They are included here as not every system has them.
|
||
|
-#define XF86XK_Standby 0x1008FF10
|
||
|
-#define XF86XK_AudioLowerVolume 0x1008FF11
|
||
|
-#define XF86XK_AudioMute 0x1008FF12
|
||
|
-#define XF86XK_AudioRaiseVolume 0x1008FF13
|
||
|
-#define XF86XK_AudioPlay 0x1008FF14
|
||
|
-#define XF86XK_AudioStop 0x1008FF15
|
||
|
-#define XF86XK_AudioPrev 0x1008FF16
|
||
|
-#define XF86XK_AudioNext 0x1008FF17
|
||
|
-#define XF86XK_HomePage 0x1008FF18
|
||
|
-#define XF86XK_Calculator 0x1008FF1D
|
||
|
-#define XF86XK_Mail 0x1008FF19
|
||
|
-#define XF86XK_Start 0x1008FF1A
|
||
|
-#define XF86XK_Search 0x1008FF1B
|
||
|
-#define XF86XK_AudioRecord 0x1008FF1C
|
||
|
-#define XF86XK_Back 0x1008FF26
|
||
|
-#define XF86XK_Forward 0x1008FF27
|
||
|
-#define XF86XK_Stop 0x1008FF28
|
||
|
-#define XF86XK_Refresh 0x1008FF29
|
||
|
-#define XF86XK_Favorites 0x1008FF30
|
||
|
-#define XF86XK_AudioPause 0x1008FF31
|
||
|
-#define XF86XK_AudioMedia 0x1008FF32
|
||
|
-#define XF86XK_MyComputer 0x1008FF33
|
||
|
-#define XF86XK_OpenURL 0x1008FF38
|
||
|
-#define XF86XK_Launch0 0x1008FF40
|
||
|
-#define XF86XK_Launch1 0x1008FF41
|
||
|
-#define XF86XK_Launch2 0x1008FF42
|
||
|
-#define XF86XK_Launch3 0x1008FF43
|
||
|
-#define XF86XK_Launch4 0x1008FF44
|
||
|
-#define XF86XK_Launch5 0x1008FF45
|
||
|
-#define XF86XK_Launch6 0x1008FF46
|
||
|
-#define XF86XK_Launch7 0x1008FF47
|
||
|
-#define XF86XK_Launch8 0x1008FF48
|
||
|
-#define XF86XK_Launch9 0x1008FF49
|
||
|
-#define XF86XK_LaunchA 0x1008FF4A
|
||
|
-#define XF86XK_LaunchB 0x1008FF4B
|
||
|
-#define XF86XK_LaunchC 0x1008FF4C
|
||
|
-#define XF86XK_LaunchD 0x1008FF4D
|
||
|
-#define XF86XK_LaunchE 0x1008FF4E
|
||
|
-#define XF86XK_LaunchF 0x1008FF4F
|
||
|
+#define XF86XK_MonBrightnessUp 0x1008FF02
|
||
|
+#define XF86XK_MonBrightnessDown 0x1008FF03
|
||
|
+#define XF86XK_KbdLightOnOff 0x1008FF04
|
||
|
+#define XF86XK_KbdBrightnessUp 0x1008FF05
|
||
|
+#define XF86XK_KbdBrightnessDown 0x1008FF06
|
||
|
+#define XF86XK_Standby 0x1008FF10
|
||
|
+#define XF86XK_AudioLowerVolume 0x1008FF11
|
||
|
+#define XF86XK_AudioMute 0x1008FF12
|
||
|
+#define XF86XK_AudioRaiseVolume 0x1008FF13
|
||
|
+#define XF86XK_AudioPlay 0x1008FF14
|
||
|
+#define XF86XK_AudioStop 0x1008FF15
|
||
|
+#define XF86XK_AudioPrev 0x1008FF16
|
||
|
+#define XF86XK_AudioNext 0x1008FF17
|
||
|
+#define XF86XK_HomePage 0x1008FF18
|
||
|
+#define XF86XK_Mail 0x1008FF19
|
||
|
+#define XF86XK_Start 0x1008FF1A
|
||
|
+#define XF86XK_Search 0x1008FF1B
|
||
|
+#define XF86XK_AudioRecord 0x1008FF1C
|
||
|
+#define XF86XK_Calculator 0x1008FF1D
|
||
|
+#define XF86XK_Memo 0x1008FF1E
|
||
|
+#define XF86XK_ToDoList 0x1008FF1F
|
||
|
+#define XF86XK_Calendar 0x1008FF20
|
||
|
+#define XF86XK_PowerDown 0x1008FF21
|
||
|
+#define XF86XK_ContrastAdjust 0x1008FF22
|
||
|
+#define XF86XK_Back 0x1008FF26
|
||
|
+#define XF86XK_Forward 0x1008FF27
|
||
|
+#define XF86XK_Stop 0x1008FF28
|
||
|
+#define XF86XK_Refresh 0x1008FF29
|
||
|
+#define XF86XK_PowerOff 0x1008FF2A
|
||
|
+#define XF86XK_WakeUp 0x1008FF2B
|
||
|
+#define XF86XK_Eject 0x1008FF2C
|
||
|
+#define XF86XK_ScreenSaver 0x1008FF2D
|
||
|
+#define XF86XK_WWW 0x1008FF2E
|
||
|
+#define XF86XK_Sleep 0x1008FF2F
|
||
|
+#define XF86XK_Favorites 0x1008FF30
|
||
|
+#define XF86XK_AudioPause 0x1008FF31
|
||
|
+#define XF86XK_AudioMedia 0x1008FF32
|
||
|
+#define XF86XK_MyComputer 0x1008FF33
|
||
|
+#define XF86XK_LightBulb 0x1008FF35
|
||
|
+#define XF86XK_Shop 0x1008FF36
|
||
|
+#define XF86XK_History 0x1008FF37
|
||
|
+#define XF86XK_OpenURL 0x1008FF38
|
||
|
+#define XF86XK_AddFavorite 0x1008FF39
|
||
|
+#define XF86XK_HotLinks 0x1008FF3A
|
||
|
+#define XF86XK_BrightnessAdjust 0x1008FF3B
|
||
|
+#define XF86XK_Finance 0x1008FF3C
|
||
|
+#define XF86XK_Community 0x1008FF3D
|
||
|
+#define XF86XK_AudioRewind 0x1008FF3E
|
||
|
+#define XF86XK_BackForward 0x1008FF3F
|
||
|
+#define XF86XK_Launch0 0x1008FF40
|
||
|
+#define XF86XK_Launch1 0x1008FF41
|
||
|
+#define XF86XK_Launch2 0x1008FF42
|
||
|
+#define XF86XK_Launch3 0x1008FF43
|
||
|
+#define XF86XK_Launch4 0x1008FF44
|
||
|
+#define XF86XK_Launch5 0x1008FF45
|
||
|
+#define XF86XK_Launch6 0x1008FF46
|
||
|
+#define XF86XK_Launch7 0x1008FF47
|
||
|
+#define XF86XK_Launch8 0x1008FF48
|
||
|
+#define XF86XK_Launch9 0x1008FF49
|
||
|
+#define XF86XK_LaunchA 0x1008FF4A
|
||
|
+#define XF86XK_LaunchB 0x1008FF4B
|
||
|
+#define XF86XK_LaunchC 0x1008FF4C
|
||
|
+#define XF86XK_LaunchD 0x1008FF4D
|
||
|
+#define XF86XK_LaunchE 0x1008FF4E
|
||
|
+#define XF86XK_LaunchF 0x1008FF4F
|
||
|
+#define XF86XK_ApplicationLeft 0x1008FF50
|
||
|
+#define XF86XK_ApplicationRight 0x1008FF51
|
||
|
+#define XF86XK_Book 0x1008FF52
|
||
|
+#define XF86XK_CD 0x1008FF53
|
||
|
+#define XF86XK_Calculater 0x1008FF54
|
||
|
+#define XF86XK_Clear 0x1008FF55
|
||
|
+#define XF86XK_ClearGrab 0x1008FE21
|
||
|
+#define XF86XK_Close 0x1008FF56
|
||
|
+#define XF86XK_Copy 0x1008FF57
|
||
|
+#define XF86XK_Cut 0x1008FF58
|
||
|
+#define XF86XK_Display 0x1008FF59
|
||
|
+#define XF86XK_DOS 0x1008FF5A
|
||
|
+#define XF86XK_Documents 0x1008FF5B
|
||
|
+#define XF86XK_Excel 0x1008FF5C
|
||
|
+#define XF86XK_Explorer 0x1008FF5D
|
||
|
+#define XF86XK_Game 0x1008FF5E
|
||
|
+#define XF86XK_Go 0x1008FF5F
|
||
|
+#define XF86XK_iTouch 0x1008FF60
|
||
|
+#define XF86XK_LogOff 0x1008FF61
|
||
|
+#define XF86XK_Market 0x1008FF62
|
||
|
+#define XF86XK_Meeting 0x1008FF63
|
||
|
+#define XF86XK_MenuKB 0x1008FF65
|
||
|
+#define XF86XK_MenuPB 0x1008FF66
|
||
|
+#define XF86XK_MySites 0x1008FF67
|
||
|
+#define XF86XK_News 0x1008FF69
|
||
|
+#define XF86XK_OfficeHome 0x1008FF6A
|
||
|
+#define XF86XK_Option 0x1008FF6C
|
||
|
+#define XF86XK_Paste 0x1008FF6D
|
||
|
+#define XF86XK_Phone 0x1008FF6E
|
||
|
+#define XF86XK_Reply 0x1008FF72
|
||
|
+#define XF86XK_Reload 0x1008FF73
|
||
|
+#define XF86XK_RotateWindows 0x1008FF74
|
||
|
+#define XF86XK_RotationPB 0x1008FF75
|
||
|
+#define XF86XK_RotationKB 0x1008FF76
|
||
|
+#define XF86XK_Save 0x1008FF77
|
||
|
+#define XF86XK_Send 0x1008FF7B
|
||
|
+#define XF86XK_Spell 0x1008FF7C
|
||
|
+#define XF86XK_SplitScreen 0x1008FF7D
|
||
|
+#define XF86XK_Support 0x1008FF7E
|
||
|
+#define XF86XK_TaskPane 0x1008FF7F
|
||
|
+#define XF86XK_Terminal 0x1008FF80
|
||
|
+#define XF86XK_Tools 0x1008FF81
|
||
|
+#define XF86XK_Travel 0x1008FF82
|
||
|
+#define XF86XK_Video 0x1008FF87
|
||
|
+#define XF86XK_Word 0x1008FF89
|
||
|
+#define XF86XK_Xfer 0x1008FF8A
|
||
|
+#define XF86XK_ZoomIn 0x1008FF8B
|
||
|
+#define XF86XK_ZoomOut 0x1008FF8C
|
||
|
+#define XF86XK_Away 0x1008FF8D
|
||
|
+#define XF86XK_Messenger 0x1008FF8E
|
||
|
+#define XF86XK_WebCam 0x1008FF8F
|
||
|
+#define XF86XK_MailForward 0x1008FF90
|
||
|
+#define XF86XK_Pictures 0x1008FF91
|
||
|
+#define XF86XK_Music 0x1008FF92
|
||
|
+#define XF86XK_Battery 0x1008FF93
|
||
|
+#define XF86XK_Bluetooth 0x1008FF94
|
||
|
+#define XF86XK_WLAN 0x1008FF95
|
||
|
+#define XF86XK_UWB 0x1008FF96
|
||
|
+#define XF86XK_AudioForward 0x1008FF97
|
||
|
+#define XF86XK_AudioRepeat 0x1008FF98
|
||
|
+#define XF86XK_AudioRandomPlay 0x1008FF99
|
||
|
+#define XF86XK_Subtitle 0x1008FF9A
|
||
|
+#define XF86XK_AudioCycleTrack 0x1008FF9B
|
||
|
+#define XF86XK_Time 0x1008FF9F
|
||
|
+#define XF86XK_Select 0x1008FFA0
|
||
|
+#define XF86XK_View 0x1008FFA1
|
||
|
+#define XF86XK_TopMenu 0x1008FFA2
|
||
|
+#define XF86XK_Suspend 0x1008FFA7
|
||
|
+#define XF86XK_Hibernate 0x1008FFA8
|
||
|
+
|
||
|
+
|
||
|
// end of XF86keysyms.h
|
||
|
|
||
|
// Special keys used by Qtopia, mapped into the X11 private keypad range.
|
||
|
@@ -942,10 +1039,8 @@ static const unsigned int KeyTbl[] = {
|
||
|
XK_dead_hook, Qt::Key_Dead_Hook,
|
||
|
XK_dead_horn, Qt::Key_Dead_Horn,
|
||
|
|
||
|
- // Special multimedia keys
|
||
|
- // currently only tested with MS internet keyboard
|
||
|
-
|
||
|
- // browsing keys
|
||
|
+ // Special keys from X.org - This include multimedia keys,
|
||
|
+ // wireless/bluetooth/uwb keys, special launcher keys, etc.
|
||
|
XF86XK_Back, Qt::Key_Back,
|
||
|
XF86XK_Forward, Qt::Key_Forward,
|
||
|
XF86XK_Stop, Qt::Key_Stop,
|
||
|
@@ -955,8 +1050,6 @@ static const unsigned int KeyTbl[] = {
|
||
|
XF86XK_OpenURL, Qt::Key_OpenUrl,
|
||
|
XF86XK_HomePage, Qt::Key_HomePage,
|
||
|
XF86XK_Search, Qt::Key_Search,
|
||
|
-
|
||
|
- // media keys
|
||
|
XF86XK_AudioLowerVolume, Qt::Key_VolumeDown,
|
||
|
XF86XK_AudioMute, Qt::Key_VolumeMute,
|
||
|
XF86XK_AudioRaiseVolume, Qt::Key_VolumeUp,
|
||
|
@@ -965,13 +1058,106 @@ static const unsigned int KeyTbl[] = {
|
||
|
XF86XK_AudioPrev, Qt::Key_MediaPrevious,
|
||
|
XF86XK_AudioNext, Qt::Key_MediaNext,
|
||
|
XF86XK_AudioRecord, Qt::Key_MediaRecord,
|
||
|
-
|
||
|
- // launch keys
|
||
|
XF86XK_Mail, Qt::Key_LaunchMail,
|
||
|
XF86XK_MyComputer, Qt::Key_Launch0,
|
||
|
- XF86XK_Calculator, Qt::Key_Launch1,
|
||
|
+ XF86XK_Calculator, Qt::Key_Calculator,
|
||
|
+ XF86XK_Memo, Qt::Key_Memo,
|
||
|
+ XF86XK_ToDoList, Qt::Key_ToDoList,
|
||
|
+ XF86XK_Calendar, Qt::Key_Calendar,
|
||
|
+ XF86XK_PowerDown, Qt::Key_PowerDown,
|
||
|
+ XF86XK_ContrastAdjust, Qt::Key_ContrastAdjust,
|
||
|
XF86XK_Standby, Qt::Key_Standby,
|
||
|
-
|
||
|
+ XF86XK_MonBrightnessUp, Qt::Key_MonBrightnessUp,
|
||
|
+ XF86XK_MonBrightnessDown, Qt::Key_MonBrightnessDown,
|
||
|
+ XF86XK_KbdLightOnOff, Qt::Key_KeyboardLightOnOff,
|
||
|
+ XF86XK_KbdBrightnessUp, Qt::Key_KeyboardBrightnessUp,
|
||
|
+ XF86XK_KbdBrightnessDown, Qt::Key_KeyboardBrightnessDown,
|
||
|
+ XF86XK_PowerOff, Qt::Key_PowerOff,
|
||
|
+ XF86XK_WakeUp, Qt::Key_WakeUp,
|
||
|
+ XF86XK_Eject, Qt::Key_Eject,
|
||
|
+ XF86XK_ScreenSaver, Qt::Key_ScreenSaver,
|
||
|
+ XF86XK_WWW, Qt::Key_WWW,
|
||
|
+ XF86XK_Sleep, Qt::Key_Sleep,
|
||
|
+ XF86XK_LightBulb, Qt::Key_LightBulb,
|
||
|
+ XF86XK_Shop, Qt::Key_Shop,
|
||
|
+ XF86XK_History, Qt::Key_History,
|
||
|
+ XF86XK_AddFavorite, Qt::Key_AddFavorite,
|
||
|
+ XF86XK_HotLinks, Qt::Key_HotLinks,
|
||
|
+ XF86XK_BrightnessAdjust, Qt::Key_BrightnessAdjust,
|
||
|
+ XF86XK_Finance, Qt::Key_Finance,
|
||
|
+ XF86XK_Community, Qt::Key_Community,
|
||
|
+ XF86XK_AudioRewind, Qt::Key_AudioRewind,
|
||
|
+ XF86XK_BackForward, Qt::Key_BackForward,
|
||
|
+ XF86XK_ApplicationLeft, Qt::Key_ApplicationLeft,
|
||
|
+ XF86XK_ApplicationRight, Qt::Key_ApplicationRight,
|
||
|
+ XF86XK_Book, Qt::Key_Book,
|
||
|
+ XF86XK_CD, Qt::Key_CD,
|
||
|
+ XF86XK_Calculater, Qt::Key_Calculator,
|
||
|
+ XF86XK_Clear, Qt::Key_Clear,
|
||
|
+ XF86XK_ClearGrab, Qt::Key_ClearGrab,
|
||
|
+ XF86XK_Close, Qt::Key_Close,
|
||
|
+ XF86XK_Copy, Qt::Key_Copy,
|
||
|
+ XF86XK_Cut, Qt::Key_Cut,
|
||
|
+ XF86XK_Display, Qt::Key_Display,
|
||
|
+ XF86XK_DOS, Qt::Key_DOS,
|
||
|
+ XF86XK_Documents, Qt::Key_Documents,
|
||
|
+ XF86XK_Excel, Qt::Key_Excel,
|
||
|
+ XF86XK_Explorer, Qt::Key_Explorer,
|
||
|
+ XF86XK_Game, Qt::Key_Game,
|
||
|
+ XF86XK_Go, Qt::Key_Go,
|
||
|
+ XF86XK_iTouch, Qt::Key_iTouch,
|
||
|
+ XF86XK_LogOff, Qt::Key_LogOff,
|
||
|
+ XF86XK_Market, Qt::Key_Market,
|
||
|
+ XF86XK_Meeting, Qt::Key_Meeting,
|
||
|
+ XF86XK_MenuKB, Qt::Key_MenuKB,
|
||
|
+ XF86XK_MenuPB, Qt::Key_MenuPB,
|
||
|
+ XF86XK_MySites, Qt::Key_MySites,
|
||
|
+ XF86XK_News, Qt::Key_News,
|
||
|
+ XF86XK_OfficeHome, Qt::Key_OfficeHome,
|
||
|
+ XF86XK_Option, Qt::Key_Option,
|
||
|
+ XF86XK_Paste, Qt::Key_Paste,
|
||
|
+ XF86XK_Phone, Qt::Key_Phone,
|
||
|
+ XF86XK_Reply, Qt::Key_Reply,
|
||
|
+ XF86XK_Reload, Qt::Key_Reload,
|
||
|
+ XF86XK_RotateWindows, Qt::Key_RotateWindows,
|
||
|
+ XF86XK_RotationPB, Qt::Key_RotationPB,
|
||
|
+ XF86XK_RotationKB, Qt::Key_RotationKB,
|
||
|
+ XF86XK_Save, Qt::Key_Save,
|
||
|
+ XF86XK_Send, Qt::Key_Send,
|
||
|
+ XF86XK_Spell, Qt::Key_Spell,
|
||
|
+ XF86XK_SplitScreen, Qt::Key_SplitScreen,
|
||
|
+ XF86XK_Support, Qt::Key_Support,
|
||
|
+ XF86XK_TaskPane, Qt::Key_TaskPane,
|
||
|
+ XF86XK_Terminal, Qt::Key_Terminal,
|
||
|
+ XF86XK_Tools, Qt::Key_Tools,
|
||
|
+ XF86XK_Travel, Qt::Key_Travel,
|
||
|
+ XF86XK_Video, Qt::Key_Video,
|
||
|
+ XF86XK_Word, Qt::Key_Word,
|
||
|
+ XF86XK_Xfer, Qt::Key_Xfer,
|
||
|
+ XF86XK_ZoomIn, Qt::Key_ZoomIn,
|
||
|
+ XF86XK_ZoomOut, Qt::Key_ZoomOut,
|
||
|
+ XF86XK_Away, Qt::Key_Away,
|
||
|
+ XF86XK_Messenger, Qt::Key_Messenger,
|
||
|
+ XF86XK_WebCam, Qt::Key_WebCam,
|
||
|
+ XF86XK_MailForward, Qt::Key_MailForward,
|
||
|
+ XF86XK_Pictures, Qt::Key_Pictures,
|
||
|
+ XF86XK_Music, Qt::Key_Music,
|
||
|
+ XF86XK_Battery, Qt::Key_Battery,
|
||
|
+ XF86XK_Bluetooth, Qt::Key_Bluetooth,
|
||
|
+ XF86XK_WLAN, Qt::Key_WLAN,
|
||
|
+ XF86XK_UWB, Qt::Key_UWB,
|
||
|
+ XF86XK_AudioForward, Qt::Key_AudioForward,
|
||
|
+ XF86XK_AudioRepeat, Qt::Key_AudioRepeat,
|
||
|
+ XF86XK_AudioRandomPlay, Qt::Key_AudioRandomPlay,
|
||
|
+ XF86XK_Subtitle, Qt::Key_Subtitle,
|
||
|
+ XF86XK_AudioCycleTrack, Qt::Key_AudioCycleTrack,
|
||
|
+ XF86XK_Time, Qt::Key_Time,
|
||
|
+ XF86XK_Select, Qt::Key_Select,
|
||
|
+ XF86XK_View, Qt::Key_View,
|
||
|
+ XF86XK_TopMenu, Qt::Key_TopMenu,
|
||
|
+ XF86XK_Bluetooth, Qt::Key_Bluetooth,
|
||
|
+ XF86XK_Suspend, Qt::Key_Suspend,
|
||
|
+ XF86XK_Hibernate, Qt::Key_Hibernate,
|
||
|
XF86XK_Launch0, Qt::Key_Launch2,
|
||
|
XF86XK_Launch1, Qt::Key_Launch3,
|
||
|
XF86XK_Launch2, Qt::Key_Launch4,
|
||
|
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
|
||
|
index 894f663..665c058 100644
|
||
|
--- a/src/gui/kernel/qkeysequence.cpp
|
||
|
+++ b/src/gui/kernel/qkeysequence.cpp
|
||
|
@@ -396,47 +396,139 @@ static const struct {
|
||
|
{ Qt::Key_Menu, QT_TRANSLATE_NOOP("QShortcut", "Menu") },
|
||
|
{ Qt::Key_Help, QT_TRANSLATE_NOOP("QShortcut", "Help") },
|
||
|
|
||
|
- // Multimedia keys
|
||
|
- { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") },
|
||
|
- { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") },
|
||
|
- { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") },
|
||
|
- { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
|
||
|
- { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
|
||
|
- { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
|
||
|
- { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
|
||
|
- { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
|
||
|
- { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
|
||
|
- { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
|
||
|
- { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
|
||
|
- { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
|
||
|
- { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
|
||
|
- { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
|
||
|
- { Qt::Key_MediaPrevious,QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
|
||
|
- { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
|
||
|
- { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
|
||
|
- { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
|
||
|
- { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
|
||
|
- { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") },
|
||
|
- { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") },
|
||
|
- { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
|
||
|
- { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
|
||
|
- { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
|
||
|
- { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
|
||
|
- { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
|
||
|
- { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
|
||
|
- { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
|
||
|
- { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
|
||
|
- { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
|
||
|
- { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
|
||
|
- { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
|
||
|
- { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
|
||
|
- { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
|
||
|
- { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
|
||
|
- { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
|
||
|
- { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
|
||
|
- { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
|
||
|
- { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
|
||
|
- { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
|
||
|
+ // Special keys
|
||
|
+ // Includes multimedia, launcher, lan keys ( bluetooth, wireless )
|
||
|
+ // window navigation
|
||
|
+ { Qt::Key_Back, QT_TRANSLATE_NOOP("QShortcut", "Back") },
|
||
|
+ { Qt::Key_Forward, QT_TRANSLATE_NOOP("QShortcut", "Forward") },
|
||
|
+ { Qt::Key_Stop, QT_TRANSLATE_NOOP("QShortcut", "Stop") },
|
||
|
+ { Qt::Key_Refresh, QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
|
||
|
+ { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
|
||
|
+ { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
|
||
|
+ { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
|
||
|
+ { Qt::Key_BassBoost, QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
|
||
|
+ { Qt::Key_BassUp, QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
|
||
|
+ { Qt::Key_BassDown, QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
|
||
|
+ { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
|
||
|
+ { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
|
||
|
+ { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
|
||
|
+ { Qt::Key_MediaStop, QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
|
||
|
+ { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
|
||
|
+ { Qt::Key_MediaNext, QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
|
||
|
+ { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
|
||
|
+ { Qt::Key_HomePage, QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
|
||
|
+ { Qt::Key_Favorites, QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
|
||
|
+ { Qt::Key_Search, QT_TRANSLATE_NOOP("QShortcut", "Search") },
|
||
|
+ { Qt::Key_Standby, QT_TRANSLATE_NOOP("QShortcut", "Standby") },
|
||
|
+ { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
|
||
|
+ { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
|
||
|
+ { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
|
||
|
+ { Qt::Key_Launch0, QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
|
||
|
+ { Qt::Key_Launch1, QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
|
||
|
+ { Qt::Key_Launch2, QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
|
||
|
+ { Qt::Key_Launch3, QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
|
||
|
+ { Qt::Key_Launch4, QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
|
||
|
+ { Qt::Key_Launch5, QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
|
||
|
+ { Qt::Key_Launch6, QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
|
||
|
+ { Qt::Key_Launch7, QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
|
||
|
+ { Qt::Key_Launch8, QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
|
||
|
+ { Qt::Key_Launch9, QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
|
||
|
+ { Qt::Key_LaunchA, QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
|
||
|
+ { Qt::Key_LaunchB, QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
|
||
|
+ { Qt::Key_LaunchC, QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
|
||
|
+ { Qt::Key_LaunchD, QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
|
||
|
+ { Qt::Key_LaunchE, QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
|
||
|
+ { Qt::Key_LaunchF, QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
|
||
|
+ { Qt::Key_MonBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Up") },
|
||
|
+ { Qt::Key_MonBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Down") },
|
||
|
+ { Qt::Key_KeyboardLightOnOff, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Light On/Off") },
|
||
|
+ { Qt::Key_KeyboardBrightnessUp, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Up") },
|
||
|
+ { Qt::Key_KeyboardBrightnessDown, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Down") },
|
||
|
+ { Qt::Key_PowerOff, QT_TRANSLATE_NOOP("QShortcut", "Power Off") },
|
||
|
+ { Qt::Key_WakeUp, QT_TRANSLATE_NOOP("QShortcut", "Wake Up") },
|
||
|
+ { Qt::Key_Eject, QT_TRANSLATE_NOOP("QShortcut", "Eject") },
|
||
|
+ { Qt::Key_ScreenSaver, QT_TRANSLATE_NOOP("QShortcut", "Screensaver") },
|
||
|
+ { Qt::Key_WWW, QT_TRANSLATE_NOOP("QShortcut", "WWW") },
|
||
|
+ { Qt::Key_Sleep, QT_TRANSLATE_NOOP("QShortcut", "Sleep") },
|
||
|
+ { Qt::Key_LightBulb, QT_TRANSLATE_NOOP("QShortcut", "LightBulb") },
|
||
|
+ { Qt::Key_Shop, QT_TRANSLATE_NOOP("QShortcut", "Shop") },
|
||
|
+ { Qt::Key_History, QT_TRANSLATE_NOOP("QShortcut", "History") },
|
||
|
+ { Qt::Key_AddFavorite, QT_TRANSLATE_NOOP("QShortcut", "Add Favorite") },
|
||
|
+ { Qt::Key_HotLinks, QT_TRANSLATE_NOOP("QShortcut", "Hot Links") },
|
||
|
+ { Qt::Key_BrightnessAdjust, QT_TRANSLATE_NOOP("QShortcut", "Adjust Brightness") },
|
||
|
+ { Qt::Key_Finance, QT_TRANSLATE_NOOP("QShortcut", "Finance") },
|
||
|
+ { Qt::Key_Community, QT_TRANSLATE_NOOP("QShortcut", "Community") },
|
||
|
+ { Qt::Key_AudioRewind, QT_TRANSLATE_NOOP("QShortcut", "Audio Rewind") },
|
||
|
+ { Qt::Key_BackForward, QT_TRANSLATE_NOOP("QShortcut", "Back Forward") },
|
||
|
+ { Qt::Key_ApplicationLeft, QT_TRANSLATE_NOOP("QShortcut", "Application Left") },
|
||
|
+ { Qt::Key_ApplicationRight, QT_TRANSLATE_NOOP("QShortcut", "Application Right") },
|
||
|
+ { Qt::Key_Book, QT_TRANSLATE_NOOP("QShortcut", "Book") },
|
||
|
+ { Qt::Key_CD, QT_TRANSLATE_NOOP("QShortcut", "CD") },
|
||
|
+ { Qt::Key_Calculator, QT_TRANSLATE_NOOP("QShortcut", "Calculator") },
|
||
|
+ { Qt::Key_Clear, QT_TRANSLATE_NOOP("QShortcut", "Clear") },
|
||
|
+ { Qt::Key_ClearGrab, QT_TRANSLATE_NOOP("QShortcut", "Clear Grab") },
|
||
|
+ { Qt::Key_Close, QT_TRANSLATE_NOOP("QShortcut", "Close") },
|
||
|
+ { Qt::Key_Copy, QT_TRANSLATE_NOOP("QShortcut", "Copy") },
|
||
|
+ { Qt::Key_Cut, QT_TRANSLATE_NOOP("QShortcut", "Cut") },
|
||
|
+ { Qt::Key_Display, QT_TRANSLATE_NOOP("QShortcut", "Display") },
|
||
|
+ { Qt::Key_DOS, QT_TRANSLATE_NOOP("QShortcut", "DOS") },
|
||
|
+ { Qt::Key_Documents, QT_TRANSLATE_NOOP("QShortcut", "Documents") },
|
||
|
+ { Qt::Key_Excel, QT_TRANSLATE_NOOP("QShortcut", "Spreadsheet") },
|
||
|
+ { Qt::Key_Explorer, QT_TRANSLATE_NOOP("QShortcut", "Browser") },
|
||
|
+ { Qt::Key_Game, QT_TRANSLATE_NOOP("QShortcut", "Game") },
|
||
|
+ { Qt::Key_Go, QT_TRANSLATE_NOOP("QShortcut", "Go") },
|
||
|
+ { Qt::Key_iTouch, QT_TRANSLATE_NOOP("QShortcut", "iTouch") },
|
||
|
+ { Qt::Key_LogOff, QT_TRANSLATE_NOOP("QShortcut", "Logoff") },
|
||
|
+ { Qt::Key_Market, QT_TRANSLATE_NOOP("QShortcut", "Market") },
|
||
|
+ { Qt::Key_Meeting, QT_TRANSLATE_NOOP("QShortcut", "Meeting") },
|
||
|
+ { Qt::Key_MenuKB, QT_TRANSLATE_NOOP("QShortcut", "Keyboard Menu") },
|
||
|
+ { Qt::Key_MenuPB, QT_TRANSLATE_NOOP("QShortcut", "Menu PB") },
|
||
|
+ { Qt::Key_MySites, QT_TRANSLATE_NOOP("QShortcut", "My Sites") },
|
||
|
+ { Qt::Key_News, QT_TRANSLATE_NOOP("QShortcut", "News") },
|
||
|
+ { Qt::Key_OfficeHome, QT_TRANSLATE_NOOP("QShortcut", "Home Office") },
|
||
|
+ { Qt::Key_Option, QT_TRANSLATE_NOOP("QShortcut", "Option") },
|
||
|
+ { Qt::Key_Paste, QT_TRANSLATE_NOOP("QShortcut", "Paste") },
|
||
|
+ { Qt::Key_Phone, QT_TRANSLATE_NOOP("QShortcut", "Phone") },
|
||
|
+ { Qt::Key_Reply, QT_TRANSLATE_NOOP("QShortcut", "Reply") },
|
||
|
+ { Qt::Key_Reload, QT_TRANSLATE_NOOP("QShortcut", "Reload") },
|
||
|
+ { Qt::Key_RotateWindows, QT_TRANSLATE_NOOP("QShortcut", "Rotate Windows") },
|
||
|
+ { Qt::Key_RotationPB, QT_TRANSLATE_NOOP("QShortcut", "Rotation PB") },
|
||
|
+ { Qt::Key_RotationKB, QT_TRANSLATE_NOOP("QShortcut", "Rotation KB") },
|
||
|
+ { Qt::Key_Save, QT_TRANSLATE_NOOP("QShortcut", "Save") },
|
||
|
+ { Qt::Key_Send, QT_TRANSLATE_NOOP("QShortcut", "Send") },
|
||
|
+ { Qt::Key_Spell, QT_TRANSLATE_NOOP("QShortcut", "Spellchecker") },
|
||
|
+ { Qt::Key_SplitScreen, QT_TRANSLATE_NOOP("QShortcut", "Split Screen") },
|
||
|
+ { Qt::Key_Support, QT_TRANSLATE_NOOP("QShortcut", "Support") },
|
||
|
+ { Qt::Key_TaskPane, QT_TRANSLATE_NOOP("QShortcut", "Task Panel") },
|
||
|
+ { Qt::Key_Terminal, QT_TRANSLATE_NOOP("QShortcut", "Terminal") },
|
||
|
+ { Qt::Key_Tools, QT_TRANSLATE_NOOP("QShortcut", "Tools") },
|
||
|
+ { Qt::Key_Travel, QT_TRANSLATE_NOOP("QShortcut", "Travel") },
|
||
|
+ { Qt::Key_Video, QT_TRANSLATE_NOOP("QShortcut", "Video") },
|
||
|
+ { Qt::Key_Word, QT_TRANSLATE_NOOP("QShortcut", "Word Processor") },
|
||
|
+ { Qt::Key_Xfer, QT_TRANSLATE_NOOP("QShortcut", "XFer") },
|
||
|
+ { Qt::Key_ZoomIn, QT_TRANSLATE_NOOP("QShortcut", "Zoom In") },
|
||
|
+ { Qt::Key_ZoomOut, QT_TRANSLATE_NOOP("QShortcut", "Zoom Out") },
|
||
|
+ { Qt::Key_Away, QT_TRANSLATE_NOOP("QShortcut", "Away") },
|
||
|
+ { Qt::Key_Messenger, QT_TRANSLATE_NOOP("QShortcut", "Messenger") },
|
||
|
+ { Qt::Key_WebCam, QT_TRANSLATE_NOOP("QShortcut", "WebCam") },
|
||
|
+ { Qt::Key_MailForward, QT_TRANSLATE_NOOP("QShortcut", "Mail Forward") },
|
||
|
+ { Qt::Key_Pictures, QT_TRANSLATE_NOOP("QShortcut", "Pictures") },
|
||
|
+ { Qt::Key_Music, QT_TRANSLATE_NOOP("QShortcut", "Music") },
|
||
|
+ { Qt::Key_Battery, QT_TRANSLATE_NOOP("QShortcut", "Battery") },
|
||
|
+ { Qt::Key_Bluetooth, QT_TRANSLATE_NOOP("QShortcut", "Bluetooth") },
|
||
|
+ { Qt::Key_WLAN, QT_TRANSLATE_NOOP("QShortcut", "Wireless") },
|
||
|
+ { Qt::Key_UWB, QT_TRANSLATE_NOOP("QShortcut", "Ultra Wide Band") },
|
||
|
+ { Qt::Key_AudioForward, QT_TRANSLATE_NOOP("QShortcut", "Audio Forward") },
|
||
|
+ { Qt::Key_AudioRepeat, QT_TRANSLATE_NOOP("QShortcut", "Audio Repeat") },
|
||
|
+ { Qt::Key_AudioRandomPlay, QT_TRANSLATE_NOOP("QShortcut", "Audio Random Play") },
|
||
|
+ { Qt::Key_Subtitle, QT_TRANSLATE_NOOP("QShortcut", "Subtitle") },
|
||
|
+ { Qt::Key_AudioCycleTrack, QT_TRANSLATE_NOOP("QShortcut", "Audio Cycle Track") },
|
||
|
+ { Qt::Key_Time, QT_TRANSLATE_NOOP("QShortcut", "Time") },
|
||
|
+ { Qt::Key_Select, QT_TRANSLATE_NOOP("QShortcut", "Select") },
|
||
|
+ { Qt::Key_View, QT_TRANSLATE_NOOP("QShortcut", "View") },
|
||
|
+ { Qt::Key_TopMenu, QT_TRANSLATE_NOOP("QShortcut", "Top Menu") },
|
||
|
+ { Qt::Key_Suspend, QT_TRANSLATE_NOOP("QShortcut", "Suspend") },
|
||
|
+ { Qt::Key_Hibernate, QT_TRANSLATE_NOOP("QShortcut", "Hibernate") },
|
||
|
|
||
|
// --------------------------------------------------------------
|
||
|
// More consistent namings
|