Merge remote-tracking branch 'origin/stable' into dev
Conflicts: src/plugins/platforms/qnx/qqnxscreen.cpp src/plugins/platforms/windows/qwindowsdialoghelpers.cpp Change-Id: Ib64f21c077b54f2291d19187590bfe869b98477a
This commit is contained in:
commit
49a2ec05b4
@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||||
** Contact: http://www.qt-project.org/legal
|
** Contact: http://www.qt-project.org/legal
|
||||||
**
|
**
|
||||||
** This file is part of the documentation of the Qt Toolkit.
|
** This file is part of the documentation of the Qt Toolkit.
|
||||||
@ -26,9 +26,11 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example customcompleter
|
\example tools/customcompleter
|
||||||
\title Custom Completer Example
|
\title Custom Completer Example
|
||||||
|
|
||||||
|
\ingroup examples-widgets-tools
|
||||||
|
|
||||||
\brief The Custom Completer example shows how to provide string-completion
|
\brief The Custom Completer example shows how to provide string-completion
|
||||||
facilities for an input widget based on data provided by a model. The
|
facilities for an input widget based on data provided by a model. The
|
||||||
completer pops up suggestions for possible words based on the first three
|
completer pops up suggestions for possible words based on the first three
|
||||||
@ -43,7 +45,7 @@
|
|||||||
that has a list of words to help QCompleter complete words. This file
|
that has a list of words to help QCompleter complete words. This file
|
||||||
contains the following:
|
contains the following:
|
||||||
|
|
||||||
\quotefile customcompleter/customcompleter.qrc
|
\quotefile tools/customcompleter/customcompleter.qrc
|
||||||
|
|
||||||
\section1 TextEdit Class Definition
|
\section1 TextEdit Class Definition
|
||||||
|
|
||||||
@ -54,7 +56,7 @@
|
|||||||
contains a private function \c textUnderCursor() and a private instance
|
contains a private function \c textUnderCursor() and a private instance
|
||||||
of QCompleter, \c c.
|
of QCompleter, \c c.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.h 0
|
\snippet tools/customcompleter/textedit.h 0
|
||||||
|
|
||||||
\section1 TextEdit Class Implementation
|
\section1 TextEdit Class Implementation
|
||||||
|
|
||||||
@ -63,11 +65,11 @@
|
|||||||
the \c TextEdit object, using the
|
the \c TextEdit object, using the
|
||||||
\l{QTextEdit::setPlainText()}{setPlainText()} function.
|
\l{QTextEdit::setPlainText()}{setPlainText()} function.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 0
|
\snippet tools/customcompleter/textedit.cpp 0
|
||||||
|
|
||||||
In addition, \c TextEdit also includes a default destructor:
|
In addition, \c TextEdit also includes a default destructor:
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 1
|
\snippet tools/customcompleter/textedit.cpp 1
|
||||||
|
|
||||||
The \c setCompleter() function accepts a \a completer and sets it up.
|
The \c setCompleter() function accepts a \a completer and sets it up.
|
||||||
We use \c{if (c)} to check if \c c has been initialized. If it has been
|
We use \c{if (c)} to check if \c c has been initialized. If it has been
|
||||||
@ -75,7 +77,7 @@
|
|||||||
the signal from the slot. This is to ensure that no previous completer
|
the signal from the slot. This is to ensure that no previous completer
|
||||||
object is still connected to the slot.
|
object is still connected to the slot.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 2
|
\snippet tools/customcompleter/textedit.cpp 2
|
||||||
|
|
||||||
We then instantiate \c c with \a completer and set it as \c{TextEdit}'s
|
We then instantiate \c c with \a completer and set it as \c{TextEdit}'s
|
||||||
widget. The completion mode and case sensitivity are also set and then
|
widget. The completion mode and case sensitivity are also set and then
|
||||||
@ -84,7 +86,7 @@
|
|||||||
|
|
||||||
The \c completer() function is a getter function that returns \c c.
|
The \c completer() function is a getter function that returns \c c.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 3
|
\snippet tools/customcompleter/textedit.cpp 3
|
||||||
|
|
||||||
The completer pops up the options available, based on the contents of
|
The completer pops up the options available, based on the contents of
|
||||||
\e wordlist.txt, but the text cursor is responsible for filling in the
|
\e wordlist.txt, but the text cursor is responsible for filling in the
|
||||||
@ -99,7 +101,7 @@
|
|||||||
completer's widget is \c TextEdit before using \c tc to insert the extra
|
completer's widget is \c TextEdit before using \c tc to insert the extra
|
||||||
characters to complete the word.
|
characters to complete the word.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 4
|
\snippet tools/customcompleter/textedit.cpp 4
|
||||||
|
|
||||||
The figure below illustrates this process:
|
The figure below illustrates this process:
|
||||||
|
|
||||||
@ -116,13 +118,13 @@
|
|||||||
The \c textUnderCursor() function uses a QTextCursor, \c tc, to select a
|
The \c textUnderCursor() function uses a QTextCursor, \c tc, to select a
|
||||||
word under the cursor and return it.
|
word under the cursor and return it.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 5
|
\snippet tools/customcompleter/textedit.cpp 5
|
||||||
|
|
||||||
The \c TextEdit class reimplements \l{QWidget::focusInEvent()}
|
The \c TextEdit class reimplements \l{QWidget::focusInEvent()}
|
||||||
{focusInEvent()} function, which is an event handler used to receive
|
{focusInEvent()} function, which is an event handler used to receive
|
||||||
keyboard focus events for the widget.
|
keyboard focus events for the widget.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 6
|
\snippet tools/customcompleter/textedit.cpp 6
|
||||||
|
|
||||||
The \l{QAbstractScrollArea::keyPressEvent()}{keyPressEvent()} is
|
The \l{QAbstractScrollArea::keyPressEvent()}{keyPressEvent()} is
|
||||||
reimplemented to ignore key events like Qt::Key_Enter, Qt::Key_Return,
|
reimplemented to ignore key events like Qt::Key_Enter, Qt::Key_Return,
|
||||||
@ -131,12 +133,12 @@
|
|||||||
|
|
||||||
If there is an active completer, we cannot process the shortcut, Ctrl+E.
|
If there is an active completer, we cannot process the shortcut, Ctrl+E.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 7
|
\snippet tools/customcompleter/textedit.cpp 7
|
||||||
|
|
||||||
We also handle other modifiers and shortcuts for which we do not want the
|
We also handle other modifiers and shortcuts for which we do not want the
|
||||||
completer to respond to.
|
completer to respond to.
|
||||||
|
|
||||||
\snippet customcompleter/textedit.cpp 8
|
\snippet tools/customcompleter/textedit.cpp 8
|
||||||
|
|
||||||
Finally, we pop up the completer.
|
Finally, we pop up the completer.
|
||||||
|
|
||||||
@ -147,7 +149,7 @@
|
|||||||
\c createMenu() and \c modelFromFile() as well as private instances of
|
\c createMenu() and \c modelFromFile() as well as private instances of
|
||||||
QCompleter and \c TextEdit.
|
QCompleter and \c TextEdit.
|
||||||
|
|
||||||
\snippet customcompleter/mainwindow.h 0
|
\snippet tools/customcompleter/mainwindow.h 0
|
||||||
|
|
||||||
\section1 MainWindow Class Implementation
|
\section1 MainWindow Class Implementation
|
||||||
|
|
||||||
@ -157,31 +159,31 @@
|
|||||||
to populate the \c completer. The \c{MainWindow}'s central widget is set
|
to populate the \c completer. The \c{MainWindow}'s central widget is set
|
||||||
to \c TextEdit and its size is set to 500 x 300.
|
to \c TextEdit and its size is set to 500 x 300.
|
||||||
|
|
||||||
\snippet customcompleter/mainwindow.cpp 0
|
\snippet tools/customcompleter/mainwindow.cpp 0
|
||||||
|
|
||||||
The \c createMenu() function creates the necessary QAction objects needed
|
The \c createMenu() function creates the necessary QAction objects needed
|
||||||
for the "File" and "Help" menu and their \l{QAction::triggered()}
|
for the "File" and "Help" menu and their \l{QAction::triggered()}
|
||||||
{triggered()} signals are connected to the \c quit(), \c about(), and
|
{triggered()} signals are connected to the \c quit(), \c about(), and
|
||||||
\c aboutQt() slots respectively.
|
\c aboutQt() slots respectively.
|
||||||
|
|
||||||
\snippet customcompleter/mainwindow.cpp 1
|
\snippet tools/customcompleter/mainwindow.cpp 1
|
||||||
|
|
||||||
The \c modelFromFile() function accepts a \a fileName and attempts to
|
The \c modelFromFile() function accepts a \a fileName and attempts to
|
||||||
extract the contents of this file into a QStringListModel. We display the
|
extract the contents of this file into a QStringListModel. We display the
|
||||||
Qt::WaitCursor when we are populating the QStringList, \c words, and
|
Qt::WaitCursor when we are populating the QStringList, \c words, and
|
||||||
restore the mouse cursor when we are done.
|
restore the mouse cursor when we are done.
|
||||||
|
|
||||||
\snippet customcompleter/mainwindow.cpp 2
|
\snippet tools/customcompleter/mainwindow.cpp 2
|
||||||
|
|
||||||
The \c about() function provides a brief description about the Custom
|
The \c about() function provides a brief description about the Custom
|
||||||
Completer example.
|
Completer example.
|
||||||
|
|
||||||
\snippet customcompleter/mainwindow.cpp 3
|
\snippet tools/customcompleter/mainwindow.cpp 3
|
||||||
|
|
||||||
\section1 \c main() Function
|
\section1 \c main() Function
|
||||||
|
|
||||||
The \c main() function instantiates \c MainWindow and invokes the
|
The \c main() function instantiates \c MainWindow and invokes the
|
||||||
\l{QWidget::show()}{show()} function.
|
\l{QWidget::show()}{show()} function.
|
||||||
|
|
||||||
\snippet customcompleter/main.cpp 0
|
\snippet tools/customcompleter/main.cpp 0
|
||||||
*/
|
*/
|
@ -307,6 +307,11 @@ void NmakeMakefileGenerator::init()
|
|||||||
project->values("QMAKE_CLEAN").append(project->first("DESTDIR") + project->first("TARGET") + version + ".ilk");
|
project->values("QMAKE_CLEAN").append(project->first("DESTDIR") + project->first("TARGET") + version + ".ilk");
|
||||||
project->values("QMAKE_CLEAN").append("vc*.pdb");
|
project->values("QMAKE_CLEAN").append("vc*.pdb");
|
||||||
project->values("QMAKE_CLEAN").append("vc*.idb");
|
project->values("QMAKE_CLEAN").append("vc*.idb");
|
||||||
|
project->values("DEFINES").removeAll("NDEBUG");
|
||||||
|
} else {
|
||||||
|
ProStringList &defines = project->values("DEFINES");
|
||||||
|
if (!defines.contains("NDEBUG"))
|
||||||
|
defines.append("NDEBUG");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,6 @@ ProFileCache *Option::proFileCache;
|
|||||||
QMakeParser *Option::parser;
|
QMakeParser *Option::parser;
|
||||||
|
|
||||||
//convenience
|
//convenience
|
||||||
const char *Option::application_argv0 = 0;
|
|
||||||
QString Option::prf_ext;
|
QString Option::prf_ext;
|
||||||
QString Option::prl_ext;
|
QString Option::prl_ext;
|
||||||
QString Option::libtool_ext;
|
QString Option::libtool_ext;
|
||||||
@ -318,13 +317,11 @@ Option::parseCommandLine(QStringList &args, QMakeCmdLineParserState &state)
|
|||||||
int
|
int
|
||||||
Option::init(int argc, char **argv)
|
Option::init(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Option::application_argv0 = 0;
|
|
||||||
Option::prf_ext = ".prf";
|
Option::prf_ext = ".prf";
|
||||||
Option::pro_ext = ".pro";
|
Option::pro_ext = ".pro";
|
||||||
Option::field_sep = ' ';
|
Option::field_sep = ' ';
|
||||||
|
|
||||||
if(argc && argv) {
|
if(argc && argv) {
|
||||||
Option::application_argv0 = argv[0];
|
|
||||||
QString argv0 = argv[0];
|
QString argv0 = argv[0];
|
||||||
if(Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
|
if(Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING)
|
||||||
Option::qmake_mode = default_mode(argv0);
|
Option::qmake_mode = default_mode(argv0);
|
||||||
|
@ -109,7 +109,6 @@ struct Option
|
|||||||
static QString pro_ext;
|
static QString pro_ext;
|
||||||
static QString res_ext;
|
static QString res_ext;
|
||||||
static char field_sep;
|
static char field_sep;
|
||||||
static const char *application_argv0;
|
|
||||||
|
|
||||||
enum CmdLineFlags {
|
enum CmdLineFlags {
|
||||||
QMAKE_CMDLINE_SUCCESS = 0x00,
|
QMAKE_CMDLINE_SUCCESS = 0x00,
|
||||||
|
@ -66,11 +66,7 @@
|
|||||||
by Qt's own \l{moc}{Meta-Object Compiler (moc)}.
|
by Qt's own \l{moc}{Meta-Object Compiler (moc)}.
|
||||||
|
|
||||||
The meta-object system is a C++ extension that makes the language
|
The meta-object system is a C++ extension that makes the language
|
||||||
better suited to true component GUI programming. Although
|
better suited to true component GUI programming.
|
||||||
templates can be used to extend C++, the meta-object system
|
|
||||||
provides benefits using standard C++ that cannot be achieved with
|
|
||||||
templates; see \l{Why Doesn't Qt Use Templates for Signals and
|
|
||||||
Slots?}
|
|
||||||
|
|
||||||
\section1 Important Classes
|
\section1 Important Classes
|
||||||
|
|
||||||
|
@ -870,6 +870,7 @@
|
|||||||
const bool valueOfExpression = Expr;\
|
const bool valueOfExpression = Expr;\
|
||||||
Q_ASSERT_X(valueOfExpression, "Q_ASSUME()", "Assumption in Q_ASSUME(\"" #Expr "\") was not correct");\
|
Q_ASSERT_X(valueOfExpression, "Q_ASSUME()", "Assumption in Q_ASSUME(\"" #Expr "\") was not correct");\
|
||||||
Q_ASSUME_IMPL(valueOfExpression);\
|
Q_ASSUME_IMPL(valueOfExpression);\
|
||||||
|
Q_UNUSED(valueOfExpression); /* the value may not be used if Q_ASSERT_X and Q_ASSUME_IMPL are noop */\
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#endif // QCOMPILERDETECTION_H
|
#endif // QCOMPILERDETECTION_H
|
||||||
|
@ -4194,7 +4194,7 @@ void qDeleteInEventHandler(QObject *o)
|
|||||||
connecting to a static function or a functor
|
connecting to a static function or a functor
|
||||||
\a slot a pointer only used when using Qt::UniqueConnection
|
\a slot a pointer only used when using Qt::UniqueConnection
|
||||||
\a type the Qt::ConnctionType passed as argument to connect
|
\a type the Qt::ConnctionType passed as argument to connect
|
||||||
\a types an array of integer with the metatype id of the parametter of the signal
|
\a types an array of integer with the metatype id of the parameter of the signal
|
||||||
to be used with queued connection
|
to be used with queued connection
|
||||||
must stay valid at least for the whole time of the connection, this function
|
must stay valid at least for the whole time of the connection, this function
|
||||||
do not take ownership. typically static data.
|
do not take ownership. typically static data.
|
||||||
@ -4209,7 +4209,7 @@ QMetaObject::Connection QObject::connectImpl(const QObject *sender, void **signa
|
|||||||
const int *types, const QMetaObject *senderMetaObject)
|
const int *types, const QMetaObject *senderMetaObject)
|
||||||
{
|
{
|
||||||
if (!sender || !signal || !slotObj || !senderMetaObject) {
|
if (!sender || !signal || !slotObj || !senderMetaObject) {
|
||||||
qWarning("QObject::connect: invalid null parametter");
|
qWarning("QObject::connect: invalid null parameter");
|
||||||
if (slotObj)
|
if (slotObj)
|
||||||
slotObj->destroyIfLastRef();
|
slotObj->destroyIfLastRef();
|
||||||
return QMetaObject::Connection();
|
return QMetaObject::Connection();
|
||||||
|
@ -62,7 +62,7 @@ namespace QtPrivate {
|
|||||||
/*
|
/*
|
||||||
The following List classes are used to help to handle the list of arguments.
|
The following List classes are used to help to handle the list of arguments.
|
||||||
It follow the same principles as the lisp lists.
|
It follow the same principles as the lisp lists.
|
||||||
List_Left<L,N> take a list and a number as a parametter and returns (via the Value typedef,
|
List_Left<L,N> take a list and a number as a parameter and returns (via the Value typedef,
|
||||||
the list composed of the first N element of the list
|
the list composed of the first N element of the list
|
||||||
*/
|
*/
|
||||||
#ifndef Q_COMPILER_VARIADIC_TEMPLATES
|
#ifndef Q_COMPILER_VARIADIC_TEMPLATES
|
||||||
@ -116,7 +116,7 @@ namespace QtPrivate {
|
|||||||
- ArgumentCount is the number of argument, or -1 if it is unknown
|
- ArgumentCount is the number of argument, or -1 if it is unknown
|
||||||
- the Object typedef is the Object of a pointer to member function
|
- the Object typedef is the Object of a pointer to member function
|
||||||
- the Arguments typedef is the list of argument (in a QtPrivate::List)
|
- the Arguments typedef is the list of argument (in a QtPrivate::List)
|
||||||
- the Function typedef is an alias to the template parametter Func
|
- the Function typedef is an alias to the template parameter Func
|
||||||
- the call<Args, R>(f,o,args) method is used to call that slot
|
- the call<Args, R>(f,o,args) method is used to call that slot
|
||||||
Args is the list of argument of the signal
|
Args is the list of argument of the signal
|
||||||
R is the return type of the signal
|
R is the return type of the signal
|
||||||
|
@ -418,7 +418,7 @@ QMimeType QMimeDatabase::mimeTypeForFile(const QString &fileName, MatchMode mode
|
|||||||
} else {
|
} else {
|
||||||
// Implemented as a wrapper around mimeTypeForFile(QFileInfo), so no mutex.
|
// Implemented as a wrapper around mimeTypeForFile(QFileInfo), so no mutex.
|
||||||
QFileInfo fileInfo(fileName);
|
QFileInfo fileInfo(fileName);
|
||||||
return mimeTypeForFile(fileInfo);
|
return mimeTypeForFile(fileInfo, mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4045,6 +4045,16 @@ static void localToUtc(QDate &date, QTime &time, int isdst)
|
|||||||
_tzset();
|
_tzset();
|
||||||
#endif
|
#endif
|
||||||
time_t secsSince1Jan1970UTC = mktime(&localTM);
|
time_t secsSince1Jan1970UTC = mktime(&localTM);
|
||||||
|
#ifdef Q_OS_QNX
|
||||||
|
//mktime sometimes fails on QNX. Following workaround converts the date and time then manually
|
||||||
|
if (secsSince1Jan1970UTC == (time_t)-1) {
|
||||||
|
QDateTime tempTime = QDateTime(date, time, Qt::UTC);;
|
||||||
|
tempTime = tempTime.addMSecs(timezone * 1000);
|
||||||
|
date = tempTime.date();
|
||||||
|
time = tempTime.time();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
tm *brokenDown = 0;
|
tm *brokenDown = 0;
|
||||||
#if defined(Q_OS_WINCE)
|
#if defined(Q_OS_WINCE)
|
||||||
|
@ -784,6 +784,7 @@ QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack()
|
|||||||
NamespaceDeclaration &namespaceDeclaration = namespaceDeclarations.push();
|
NamespaceDeclaration &namespaceDeclaration = namespaceDeclarations.push();
|
||||||
namespaceDeclaration.prefix = addToStringStorage(QLatin1String("xml"));
|
namespaceDeclaration.prefix = addToStringStorage(QLatin1String("xml"));
|
||||||
namespaceDeclaration.namespaceUri = addToStringStorage(QLatin1String("http://www.w3.org/XML/1998/namespace"));
|
namespaceDeclaration.namespaceUri = addToStringStorage(QLatin1String("http://www.w3.org/XML/1998/namespace"));
|
||||||
|
initialTagStackStringStorageSize = tagStackStringStorageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QT_NO_XMLSTREAMREADER
|
#ifndef QT_NO_XMLSTREAMREADER
|
||||||
@ -854,6 +855,7 @@ void QXmlStreamReaderPrivate::init()
|
|||||||
rawReadBuffer.clear();
|
rawReadBuffer.clear();
|
||||||
dataBuffer.clear();
|
dataBuffer.clear();
|
||||||
readBuffer.clear();
|
readBuffer.clear();
|
||||||
|
tagStackStringStorageSize = initialTagStackStringStorageSize;
|
||||||
|
|
||||||
type = QXmlStreamReader::NoToken;
|
type = QXmlStreamReader::NoToken;
|
||||||
error = QXmlStreamReader::NoError;
|
error = QXmlStreamReader::NoError;
|
||||||
|
@ -697,6 +697,7 @@ public:
|
|||||||
QXmlStreamSimpleStack<NamespaceDeclaration> namespaceDeclarations;
|
QXmlStreamSimpleStack<NamespaceDeclaration> namespaceDeclarations;
|
||||||
QString tagStackStringStorage;
|
QString tagStackStringStorage;
|
||||||
int tagStackStringStorageSize;
|
int tagStackStringStorageSize;
|
||||||
|
int initialTagStackStringStorageSize;
|
||||||
bool tagsDone;
|
bool tagsDone;
|
||||||
|
|
||||||
inline QStringRef addToStringStorage(const QStringRef &s) {
|
inline QStringRef addToStringStorage(const QStringRef &s) {
|
||||||
|
@ -6,6 +6,8 @@ MODULE_CONFIG = dbusadaptors dbusinterfaces
|
|||||||
!isEmpty(DBUS_PATH) {
|
!isEmpty(DBUS_PATH) {
|
||||||
INCLUDEPATH += $$DBUS_PATH/include
|
INCLUDEPATH += $$DBUS_PATH/include
|
||||||
QMAKE_LIBDIR += $$DBUS_PATH/lib
|
QMAKE_LIBDIR += $$DBUS_PATH/lib
|
||||||
|
win32:CONFIG(debug, debug|release):QT_LIBS_DBUS += -ldbus-1d
|
||||||
|
else:QT_LIBS_DBUS += -ldbus-1
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINES += DBUS_API_SUBJECT_TO_CHANGE
|
DEFINES += DBUS_API_SUBJECT_TO_CHANGE
|
||||||
@ -21,8 +23,6 @@ win32 {
|
|||||||
-ladvapi32 \
|
-ladvapi32 \
|
||||||
-lnetapi32 \
|
-lnetapi32 \
|
||||||
-luser32
|
-luser32
|
||||||
CONFIG(debug, debug|release):LIBS_PRIVATE += -ldbus-1d
|
|
||||||
else:LIBS_PRIVATE += -ldbus-1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QMAKE_DOCS = $$PWD/doc/qtdbus.qdocconf
|
QMAKE_DOCS = $$PWD/doc/qtdbus.qdocconf
|
||||||
|
@ -623,8 +623,8 @@ int QNativeSocketEngine::accept()
|
|||||||
{
|
{
|
||||||
Q_D(QNativeSocketEngine);
|
Q_D(QNativeSocketEngine);
|
||||||
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::accept(), -1);
|
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::accept(), -1);
|
||||||
Q_CHECK_STATE(QNativeSocketEngine::accept(), QAbstractSocket::ListeningState, false);
|
Q_CHECK_STATE(QNativeSocketEngine::accept(), QAbstractSocket::ListeningState, -1);
|
||||||
Q_CHECK_TYPE(QNativeSocketEngine::accept(), QAbstractSocket::TcpSocket, false);
|
Q_CHECK_TYPE(QNativeSocketEngine::accept(), QAbstractSocket::TcpSocket, -1);
|
||||||
|
|
||||||
return d->nativeAccept();
|
return d->nativeAccept();
|
||||||
}
|
}
|
||||||
@ -702,7 +702,7 @@ qint64 QNativeSocketEngine::bytesAvailable() const
|
|||||||
{
|
{
|
||||||
Q_D(const QNativeSocketEngine);
|
Q_D(const QNativeSocketEngine);
|
||||||
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::bytesAvailable(), -1);
|
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::bytesAvailable(), -1);
|
||||||
Q_CHECK_NOT_STATE(QNativeSocketEngine::bytesAvailable(), QAbstractSocket::UnconnectedState, false);
|
Q_CHECK_NOT_STATE(QNativeSocketEngine::bytesAvailable(), QAbstractSocket::UnconnectedState, -1);
|
||||||
|
|
||||||
return d->nativeBytesAvailable();
|
return d->nativeBytesAvailable();
|
||||||
}
|
}
|
||||||
@ -732,7 +732,7 @@ qint64 QNativeSocketEngine::pendingDatagramSize() const
|
|||||||
{
|
{
|
||||||
Q_D(const QNativeSocketEngine);
|
Q_D(const QNativeSocketEngine);
|
||||||
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::pendingDatagramSize(), -1);
|
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::pendingDatagramSize(), -1);
|
||||||
Q_CHECK_TYPE(QNativeSocketEngine::pendingDatagramSize(), QAbstractSocket::UdpSocket, false);
|
Q_CHECK_TYPE(QNativeSocketEngine::pendingDatagramSize(), QAbstractSocket::UdpSocket, -1);
|
||||||
|
|
||||||
return d->nativePendingDatagramSize();
|
return d->nativePendingDatagramSize();
|
||||||
}
|
}
|
||||||
@ -757,7 +757,7 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxSize, QHostAddres
|
|||||||
{
|
{
|
||||||
Q_D(QNativeSocketEngine);
|
Q_D(QNativeSocketEngine);
|
||||||
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::readDatagram(), -1);
|
Q_CHECK_VALID_SOCKETLAYER(QNativeSocketEngine::readDatagram(), -1);
|
||||||
Q_CHECK_TYPE(QNativeSocketEngine::readDatagram(), QAbstractSocket::UdpSocket, false);
|
Q_CHECK_TYPE(QNativeSocketEngine::readDatagram(), QAbstractSocket::UdpSocket, -1);
|
||||||
|
|
||||||
return d->nativeReceiveDatagram(data, maxSize, address, port);
|
return d->nativeReceiveDatagram(data, maxSize, address, port);
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ bool QSpiApplicationAdaptor::eventFilter(QObject *target, QEvent *event)
|
|||||||
SLOT(notifyKeyboardListenerError(QDBusError, QDBusMessage)), timeout);
|
SLOT(notifyKeyboardListenerError(QDBusError, QDBusMessage)), timeout);
|
||||||
if (sent) {
|
if (sent) {
|
||||||
//queue the event and send it after callback
|
//queue the event and send it after callback
|
||||||
keyEvents.enqueue(QPair<QObject*, QKeyEvent*> (target, copyKeyEvent(keyEvent)));
|
keyEvents.enqueue(QPair<QPointer<QObject>, QKeyEvent*> (QPointer<QObject>(target), copyKeyEvent(keyEvent)));
|
||||||
#ifdef KEYBOARD_DEBUG
|
#ifdef KEYBOARD_DEBUG
|
||||||
qDebug() << QStringLiteral("Sent key: ") << de.text;
|
qDebug() << QStringLiteral("Sent key: ") << de.text;
|
||||||
#endif
|
#endif
|
||||||
@ -200,11 +200,12 @@ void QSpiApplicationAdaptor::notifyKeyboardListenerCallback(const QDBusMessage&
|
|||||||
}
|
}
|
||||||
Q_ASSERT(message.arguments().length() == 1);
|
Q_ASSERT(message.arguments().length() == 1);
|
||||||
if (message.arguments().at(0).toBool() == true) {
|
if (message.arguments().at(0).toBool() == true) {
|
||||||
QPair<QObject*, QKeyEvent*> event = keyEvents.dequeue();
|
QPair<QPointer<QObject>, QKeyEvent*> event = keyEvents.dequeue();
|
||||||
delete event.second;
|
delete event.second;
|
||||||
} else {
|
} else {
|
||||||
QPair<QObject*, QKeyEvent*> event = keyEvents.dequeue();
|
QPair<QPointer<QObject>, QKeyEvent*> event = keyEvents.dequeue();
|
||||||
QCoreApplication::postEvent(event.first, event.second);
|
if (event.first)
|
||||||
|
QCoreApplication::postEvent(event.first.data(), event.second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,8 +213,9 @@ void QSpiApplicationAdaptor::notifyKeyboardListenerError(const QDBusError& error
|
|||||||
{
|
{
|
||||||
qWarning() << QStringLiteral("QSpiApplication::keyEventError ") << error.name() << error.message();
|
qWarning() << QStringLiteral("QSpiApplication::keyEventError ") << error.name() << error.message();
|
||||||
while (!keyEvents.isEmpty()) {
|
while (!keyEvents.isEmpty()) {
|
||||||
QPair<QObject*, QKeyEvent*> event = keyEvents.dequeue();
|
QPair<QPointer<QObject>, QKeyEvent*> event = keyEvents.dequeue();
|
||||||
QCoreApplication::postEvent(event.first, event.second);
|
if (event.first)
|
||||||
|
QCoreApplication::postEvent(event.first.data(), event.second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#ifndef Q_SPI_APPLICATION_H
|
#ifndef Q_SPI_APPLICATION_H
|
||||||
#define Q_SPI_APPLICATION_H
|
#define Q_SPI_APPLICATION_H
|
||||||
|
|
||||||
|
#include <QtCore/QPointer>
|
||||||
#include <QtCore/QQueue>
|
#include <QtCore/QQueue>
|
||||||
#include <QtDBus/QDBusConnection>
|
#include <QtDBus/QDBusConnection>
|
||||||
#include <QtGui/QAccessibleInterface>
|
#include <QtGui/QAccessibleInterface>
|
||||||
@ -75,7 +76,7 @@ private Q_SLOTS:
|
|||||||
private:
|
private:
|
||||||
static QKeyEvent* copyKeyEvent(QKeyEvent*);
|
static QKeyEvent* copyKeyEvent(QKeyEvent*);
|
||||||
|
|
||||||
QQueue<QPair<QObject*, QKeyEvent*> > keyEvents;
|
QQueue<QPair<QPointer<QObject>, QKeyEvent*> > keyEvents;
|
||||||
QDBusConnection dbusConnection;
|
QDBusConnection dbusConnection;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -380,7 +380,7 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
|
|||||||
return QVariant(QGenericUnixTheme::xdgIconThemePaths());
|
return QVariant(QGenericUnixTheme::xdgIconThemePaths());
|
||||||
case QPlatformTheme::StyleNames: {
|
case QPlatformTheme::StyleNames: {
|
||||||
QStringList styleNames;
|
QStringList styleNames;
|
||||||
styleNames << QStringLiteral("GTK+") << QStringLiteral("cleanlooks") << QStringLiteral("windows");
|
styleNames << QStringLiteral("GTK+") << QStringLiteral("fusion") << QStringLiteral("windows");
|
||||||
return QVariant(styleNames);
|
return QVariant(styleNames);
|
||||||
}
|
}
|
||||||
case QPlatformTheme::KeyboardScheme:
|
case QPlatformTheme::KeyboardScheme:
|
||||||
|
@ -777,7 +777,6 @@ void QCocoaWindow::setNSWindow(NSWindow *window)
|
|||||||
{
|
{
|
||||||
m_nsWindowDelegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
|
m_nsWindowDelegate = [[QNSWindowDelegate alloc] initWithQCocoaWindow:this];
|
||||||
[window setDelegate:m_nsWindowDelegate];
|
[window setDelegate:m_nsWindowDelegate];
|
||||||
[window setAcceptsMouseMovedEvents:YES];
|
|
||||||
|
|
||||||
// Prevent Cocoa from releasing the window on close. Qt
|
// Prevent Cocoa from releasing the window on close. Qt
|
||||||
// handles the close event asynchronously and we want to
|
// handles the close event asynchronously and we want to
|
||||||
|
@ -151,6 +151,8 @@ QQnxScreen::QQnxScreen(screen_context_t screenContext, screen_display_t display,
|
|||||||
QQnxScreen::~QQnxScreen()
|
QQnxScreen::~QQnxScreen()
|
||||||
{
|
{
|
||||||
qScreenDebug() << Q_FUNC_INFO;
|
qScreenDebug() << Q_FUNC_INFO;
|
||||||
|
Q_FOREACH (QQnxWindow *childWindow, m_childWindows)
|
||||||
|
childWindow->setScreen(0);
|
||||||
|
|
||||||
delete m_cursor;
|
delete m_cursor;
|
||||||
}
|
}
|
||||||
@ -501,6 +503,11 @@ QPlatformCursor * QQnxScreen::cursor() const
|
|||||||
return m_cursor;
|
return m_cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPlatformCursor * QQnxScreen::cursor() const
|
||||||
|
{
|
||||||
|
return m_cursor;
|
||||||
|
}
|
||||||
|
|
||||||
void QQnxScreen::keyboardHeightChanged(int height)
|
void QQnxScreen::keyboardHeightChanged(int height)
|
||||||
{
|
{
|
||||||
if (height == m_keyboardHeight)
|
if (height == m_keyboardHeight)
|
||||||
|
@ -156,6 +156,7 @@ QQnxWindow::~QQnxWindow()
|
|||||||
|
|
||||||
// Remove from parent's Hierarchy.
|
// Remove from parent's Hierarchy.
|
||||||
removeFromParent();
|
removeFromParent();
|
||||||
|
if (m_screen)
|
||||||
m_screen->updateHierarchy();
|
m_screen->updateHierarchy();
|
||||||
|
|
||||||
// Cleanup QNX window and its buffers
|
// Cleanup QNX window and its buffers
|
||||||
@ -497,6 +498,11 @@ void QQnxWindow::setScreen(QQnxScreen *platformScreen)
|
|||||||
{
|
{
|
||||||
qWindowDebug() << Q_FUNC_INFO << "window =" << window() << "platformScreen =" << platformScreen;
|
qWindowDebug() << Q_FUNC_INFO << "window =" << window() << "platformScreen =" << platformScreen;
|
||||||
|
|
||||||
|
if (platformScreen == 0) { // The screen has been destroyed
|
||||||
|
m_screen = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_screen == platformScreen)
|
if (m_screen == platformScreen)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -539,7 +545,7 @@ void QQnxWindow::removeFromParent()
|
|||||||
m_parentWindow = 0;
|
m_parentWindow = 0;
|
||||||
else
|
else
|
||||||
qFatal("QQnxWindow: Window Hierarchy broken; window has parent, but parent hasn't got child.");
|
qFatal("QQnxWindow: Window Hierarchy broken; window has parent, but parent hasn't got child.");
|
||||||
} else {
|
} else if (m_screen) {
|
||||||
m_screen->removeWindow(this);
|
m_screen->removeWindow(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1495,8 +1495,9 @@ QWindowsNativeDialogBase *QWindowsFileDialogHelper::createNativeDialog()
|
|||||||
// Apply settings.
|
// Apply settings.
|
||||||
const QSharedPointer<QFileDialogOptions> &opts = options();
|
const QSharedPointer<QFileDialogOptions> &opts = options();
|
||||||
m_data.fromOptions(opts);
|
m_data.fromOptions(opts);
|
||||||
|
const QFileDialogOptions::FileMode mode = opts->fileMode();
|
||||||
result->setWindowTitle(opts->windowTitle());
|
result->setWindowTitle(opts->windowTitle());
|
||||||
result->setMode(opts->fileMode(), opts->options());
|
result->setMode(mode, opts->options());
|
||||||
result->setHideFiltersDetails(opts->testOption(QFileDialogOptions::HideNameFilterDetails));
|
result->setHideFiltersDetails(opts->testOption(QFileDialogOptions::HideNameFilterDetails));
|
||||||
const QStringList nameFilters = opts->nameFilters();
|
const QStringList nameFilters = opts->nameFilters();
|
||||||
if (!nameFilters.isEmpty())
|
if (!nameFilters.isEmpty())
|
||||||
@ -1513,6 +1514,12 @@ QWindowsNativeDialogBase *QWindowsFileDialogHelper::createNativeDialog()
|
|||||||
if (!info.isDir())
|
if (!info.isDir())
|
||||||
result->selectFile(info.fileName());
|
result->selectFile(info.fileName());
|
||||||
}
|
}
|
||||||
|
// No need to select initialNameFilter if mode is Dir
|
||||||
|
if (mode != QFileDialogOptions::Directory && mode != QFileDialogOptions::DirectoryOnly) {
|
||||||
|
const QString initialNameFilter = opts->initiallySelectedNameFilter();
|
||||||
|
if (!initialNameFilter.isEmpty())
|
||||||
|
result->selectNameFilter(initialNameFilter);
|
||||||
|
}
|
||||||
const QString defaultSuffix = opts->defaultSuffix();
|
const QString defaultSuffix = opts->defaultSuffix();
|
||||||
if (!defaultSuffix.isEmpty())
|
if (!defaultSuffix.isEmpty())
|
||||||
result->setDefaultSuffix(defaultSuffix);
|
result->setDefaultSuffix(defaultSuffix);
|
||||||
|
@ -109,6 +109,8 @@ Qt::KeyboardModifiers QWindowsMouseHandler::keyStateToModifiers(int wParam)
|
|||||||
mods |= Qt::ControlModifier;
|
mods |= Qt::ControlModifier;
|
||||||
if (wParam & MK_SHIFT)
|
if (wParam & MK_SHIFT)
|
||||||
mods |= Qt::ShiftModifier;
|
mods |= Qt::ShiftModifier;
|
||||||
|
if (GetKeyState(VK_MENU) < 0)
|
||||||
|
mods |= Qt::AltModifier;
|
||||||
return mods;
|
return mods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -257,6 +257,8 @@ static void setWindowOpacity(HWND hwnd, Qt::WindowFlags flags, bool hasAlpha, qr
|
|||||||
} else {
|
} else {
|
||||||
QWindowsContext::user32dll.setLayeredWindowAttributes(hwnd, 0, (int)(level * 255), LWA_ALPHA);
|
QWindowsContext::user32dll.setLayeredWindowAttributes(hwnd, 0, (int)(level * 255), LWA_ALPHA);
|
||||||
}
|
}
|
||||||
|
} else if (IsWindowVisible(hwnd)) { // Repaint when switching from layered.
|
||||||
|
InvalidateRect(hwnd, NULL, TRUE);
|
||||||
}
|
}
|
||||||
#endif // !Q_OS_WINCE
|
#endif // !Q_OS_WINCE
|
||||||
}
|
}
|
||||||
|
@ -3291,7 +3291,7 @@ QString Doc::canonicalTitle(const QString &title)
|
|||||||
for (int i = 0; i != title.size(); ++i) {
|
for (int i = 0; i != title.size(); ++i) {
|
||||||
uint c = title.at(i).unicode();
|
uint c = title.at(i).unicode();
|
||||||
if (c >= 'A' && c <= 'Z')
|
if (c >= 'A' && c <= 'Z')
|
||||||
c -= 'A' - 'a';
|
c += 'a' - 'A';
|
||||||
bool alnum = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9');
|
bool alnum = (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9');
|
||||||
if (alnum) {
|
if (alnum) {
|
||||||
result += QLatin1Char(c);
|
result += QLatin1Char(c);
|
||||||
|
@ -360,7 +360,7 @@ QString Generator::fileBase(const Node *node) const
|
|||||||
QChar c = base.at(i);
|
QChar c = base.at(i);
|
||||||
uint u = c.unicode();
|
uint u = c.unicode();
|
||||||
if (u >= 'A' && u <= 'Z')
|
if (u >= 'A' && u <= 'Z')
|
||||||
u -= 'A' - 'a';
|
u += 'a' - 'A';
|
||||||
if ((u >= 'a' && u <= 'z') || (u >= '0' && u <= '9')) {
|
if ((u >= 'a' && u <= 'z') || (u >= '0' && u <= '9')) {
|
||||||
res += QLatin1Char(u);
|
res += QLatin1Char(u);
|
||||||
begun = true;
|
begun = true;
|
||||||
|
@ -291,29 +291,29 @@ DocNode* QDocDatabase::addToModule(const QString& name, Node* node)
|
|||||||
*/
|
*/
|
||||||
DocNode* QDocDatabase::addToQmlModule(const QString& name, Node* node)
|
DocNode* QDocDatabase::addToQmlModule(const QString& name, Node* node)
|
||||||
{
|
{
|
||||||
QString longQmid, shortQmid;
|
QStringList qmid;
|
||||||
QStringList dotSplit;
|
QStringList dotSplit;
|
||||||
QStringList blankSplit = name.split(QLatin1Char(' '));
|
QStringList blankSplit = name.split(QLatin1Char(' '));
|
||||||
|
qmid.append(blankSplit[0]);
|
||||||
if (blankSplit.size() > 1) {
|
if (blankSplit.size() > 1) {
|
||||||
longQmid = blankSplit[0] + blankSplit[1];
|
qmid.append(blankSplit[0] + blankSplit[1]);
|
||||||
dotSplit = blankSplit[1].split(QLatin1Char('.'));
|
dotSplit = blankSplit[1].split(QLatin1Char('.'));
|
||||||
shortQmid = blankSplit[0] + dotSplit[0];
|
qmid.append(blankSplit[0] + dotSplit[0]);
|
||||||
}
|
}
|
||||||
DocNode* dn = findQmlModule(name);
|
DocNode* dn = findQmlModule(name);
|
||||||
dn->addMember(node);
|
dn->addMember(node);
|
||||||
node->setQmlModuleInfo(name);
|
node->setQmlModuleInfo(name);
|
||||||
if (node->subType() == Node::QmlClass) {
|
if (node->subType() == Node::QmlClass) {
|
||||||
QmlClassNode* n = static_cast<QmlClassNode*>(node);
|
QmlClassNode* n = static_cast<QmlClassNode*>(node);
|
||||||
QString key = longQmid + "::" + node->name();
|
for (int i=0; i<qmid.size(); ++i) {
|
||||||
for (int i=0; i<2; ++i) {
|
QString key = qmid[i] + "::" + node->name();
|
||||||
if (!qmlTypeMap_.contains(key))
|
if (!qmlTypeMap_.contains(key))
|
||||||
qmlTypeMap_.insert(key,n);
|
qmlTypeMap_.insert(key,n);
|
||||||
if (!masterMap_.contains(key))
|
if (!masterMap_.contains(key))
|
||||||
masterMap_.insert(key,node);
|
masterMap_.insert(key,node);
|
||||||
|
}
|
||||||
if (!masterMap_.contains(node->name(),node))
|
if (!masterMap_.contains(node->name(),node))
|
||||||
masterMap_.insert(node->name(),node);
|
masterMap_.insert(node->name(),node);
|
||||||
key = shortQmid + "::" + node->name();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return dn;
|
return dn;
|
||||||
}
|
}
|
||||||
|
@ -424,8 +424,9 @@ bool QmlDocVisitor::visit(QQmlJS::AST::UiObjectDefinition *definition)
|
|||||||
*/
|
*/
|
||||||
void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectDefinition *definition)
|
void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectDefinition *definition)
|
||||||
{
|
{
|
||||||
if (nestingLevel > 0)
|
if (nestingLevel > 0) {
|
||||||
--nestingLevel;
|
--nestingLevel;
|
||||||
|
}
|
||||||
lastEndOffset = definition->lastSourceLocation().end();
|
lastEndOffset = definition->lastSourceLocation().end();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,6 +462,26 @@ void QmlDocVisitor::endVisit(QQmlJS::AST::UiImportList *definition)
|
|||||||
lastEndOffset = definition->lastSourceLocation().end();
|
lastEndOffset = definition->lastSourceLocation().end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QmlDocVisitor::visit(QQmlJS::AST::UiObjectBinding *)
|
||||||
|
{
|
||||||
|
++nestingLevel;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmlDocVisitor::endVisit(QQmlJS::AST::UiObjectBinding *)
|
||||||
|
{
|
||||||
|
--nestingLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QmlDocVisitor::visit(QQmlJS::AST::UiArrayBinding *)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmlDocVisitor::endVisit(QQmlJS::AST::UiArrayBinding *)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Visits the public \a member declaration, which can be a
|
Visits the public \a member declaration, which can be a
|
||||||
signal or a property. It is a custom signal or property.
|
signal or a property. It is a custom signal or property.
|
||||||
@ -468,8 +489,9 @@ void QmlDocVisitor::endVisit(QQmlJS::AST::UiImportList *definition)
|
|||||||
*/
|
*/
|
||||||
bool QmlDocVisitor::visit(QQmlJS::AST::UiPublicMember *member)
|
bool QmlDocVisitor::visit(QQmlJS::AST::UiPublicMember *member)
|
||||||
{
|
{
|
||||||
if (nestingLevel > 1)
|
if (nestingLevel > 1) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
switch (member->type) {
|
switch (member->type) {
|
||||||
case QQmlJS::AST::UiPublicMember::Signal:
|
case QQmlJS::AST::UiPublicMember::Signal:
|
||||||
{
|
{
|
||||||
@ -535,8 +557,9 @@ bool QmlDocVisitor::visit(QQmlJS::AST::IdentifierPropertyName *)
|
|||||||
*/
|
*/
|
||||||
bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration* fd)
|
bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration* fd)
|
||||||
{
|
{
|
||||||
if (nestingLevel > 1)
|
if (nestingLevel > 1) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
if (current->type() == Node::Document) {
|
if (current->type() == Node::Document) {
|
||||||
QmlClassNode* qmlClass = static_cast<QmlClassNode*>(current);
|
QmlClassNode* qmlClass = static_cast<QmlClassNode*>(current);
|
||||||
if (qmlClass) {
|
if (qmlClass) {
|
||||||
@ -581,8 +604,9 @@ void QmlDocVisitor::endVisit(QQmlJS::AST::FunctionDeclaration* fd)
|
|||||||
*/
|
*/
|
||||||
bool QmlDocVisitor::visit(QQmlJS::AST::UiScriptBinding* sb)
|
bool QmlDocVisitor::visit(QQmlJS::AST::UiScriptBinding* sb)
|
||||||
{
|
{
|
||||||
if (nestingLevel > 1)
|
if (nestingLevel > 1) {
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
if (current->type() == Node::Document) {
|
if (current->type() == Node::Document) {
|
||||||
QString handler = sb->qualifiedId->name.toString();
|
QString handler = sb->qualifiedId->name.toString();
|
||||||
if (handler.length() > 2 && handler.startsWith("on") && handler.at(2).isUpper()) {
|
if (handler.length() > 2 && handler.startsWith("on") && handler.at(2).isUpper()) {
|
||||||
|
@ -85,6 +85,11 @@ public:
|
|||||||
bool visit(QQmlJS::AST::UiPublicMember *member);
|
bool visit(QQmlJS::AST::UiPublicMember *member);
|
||||||
void endVisit(QQmlJS::AST::UiPublicMember *definition);
|
void endVisit(QQmlJS::AST::UiPublicMember *definition);
|
||||||
|
|
||||||
|
virtual bool visit(QQmlJS::AST::UiObjectBinding *);
|
||||||
|
virtual void endVisit(QQmlJS::AST::UiObjectBinding *);
|
||||||
|
virtual void endVisit(QQmlJS::AST::UiArrayBinding *);
|
||||||
|
virtual bool visit(QQmlJS::AST::UiArrayBinding *);
|
||||||
|
|
||||||
bool visit(QQmlJS::AST::IdentifierPropertyName *idproperty);
|
bool visit(QQmlJS::AST::IdentifierPropertyName *idproperty);
|
||||||
|
|
||||||
bool visit(QQmlJS::AST::FunctionDeclaration *);
|
bool visit(QQmlJS::AST::FunctionDeclaration *);
|
||||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -2265,11 +2265,11 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
|
|||||||
case QFrame::VLine: {
|
case QFrame::VLine: {
|
||||||
QPoint p1, p2;
|
QPoint p1, p2;
|
||||||
if (frameShape == QFrame::HLine) {
|
if (frameShape == QFrame::HLine) {
|
||||||
p1 = QPoint(opt->rect.x(), opt->rect.height() / 2);
|
p1 = QPoint(opt->rect.x(), opt->rect.y() + opt->rect.height() / 2);
|
||||||
p2 = QPoint(opt->rect.x() + opt->rect.width(), p1.y());
|
p2 = QPoint(opt->rect.x() + opt->rect.width(), p1.y());
|
||||||
} else {
|
} else {
|
||||||
p1 = QPoint(opt->rect.x()+opt->rect.width() / 2, 0);
|
p1 = QPoint(opt->rect.x() + opt->rect.width() / 2, opt->rect.y());
|
||||||
p2 = QPoint(p1.x(), opt->rect.height());
|
p2 = QPoint(p1.x(), p1.y() + opt->rect.height());
|
||||||
}
|
}
|
||||||
if (frameShadow == QFrame::Plain) {
|
if (frameShadow == QFrame::Plain) {
|
||||||
QPen oldPen = p->pen();
|
QPen oldPen = p->pen();
|
||||||
|
@ -33,3 +33,4 @@ SUBDIRS=\
|
|||||||
# This test is only applicable on Windows
|
# This test is only applicable on Windows
|
||||||
!win32*:SUBDIRS -= qwineventnotifier
|
!win32*:SUBDIRS -= qwineventnotifier
|
||||||
|
|
||||||
|
qnx: SUBDIRS -= qsharedmemory qsystemsemaphore
|
||||||
|
@ -442,6 +442,8 @@ void tst_QMimeDatabase::mimeTypeForFileWithContent()
|
|||||||
txtTempFile.close();
|
txtTempFile.close();
|
||||||
mime = db.mimeTypeForFile(txtTempFileName);
|
mime = db.mimeTypeForFile(txtTempFileName);
|
||||||
QCOMPARE(mime.name(), QString::fromLatin1("text/plain"));
|
QCOMPARE(mime.name(), QString::fromLatin1("text/plain"));
|
||||||
|
mime = db.mimeTypeForFile(txtTempFileName, QMimeDatabase::MatchContent);
|
||||||
|
QCOMPARE(mime.name(), QString::fromLatin1("application/smil"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test what happens with an incorrect path
|
// Test what happens with an incorrect path
|
||||||
@ -714,6 +716,8 @@ void tst_QMimeDatabase::findByData()
|
|||||||
QFileInfo info(filePath);
|
QFileInfo info(filePath);
|
||||||
QString mimeForInfo = database.mimeTypeForFile(info, QMimeDatabase::MatchContent).name();
|
QString mimeForInfo = database.mimeTypeForFile(info, QMimeDatabase::MatchContent).name();
|
||||||
QCOMPARE(mimeForInfo, resultMimeTypeName);
|
QCOMPARE(mimeForInfo, resultMimeTypeName);
|
||||||
|
QString mimeForFile = database.mimeTypeForFile(filePath, QMimeDatabase::MatchContent).name();
|
||||||
|
QCOMPARE(mimeForFile, resultMimeTypeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QMimeDatabase::findByFile_data()
|
void tst_QMimeDatabase::findByFile_data()
|
||||||
|
@ -139,7 +139,7 @@ void tst_PlatformSocketEngine::construction()
|
|||||||
QVERIFY(socketDevice.error() == QAbstractSocket::UnknownSocketError);
|
QVERIFY(socketDevice.error() == QAbstractSocket::UnknownSocketError);
|
||||||
|
|
||||||
QTest::ignoreMessage(QtWarningMsg, PLATFORMSOCKETENGINESTRING "::bytesAvailable() was called in QAbstractSocket::UnconnectedState");
|
QTest::ignoreMessage(QtWarningMsg, PLATFORMSOCKETENGINESTRING "::bytesAvailable() was called in QAbstractSocket::UnconnectedState");
|
||||||
QVERIFY(socketDevice.bytesAvailable() == 0);
|
QVERIFY(socketDevice.bytesAvailable() == -1);
|
||||||
|
|
||||||
QTest::ignoreMessage(QtWarningMsg, PLATFORMSOCKETENGINESTRING "::hasPendingDatagrams() was called in QAbstractSocket::UnconnectedState");
|
QTest::ignoreMessage(QtWarningMsg, PLATFORMSOCKETENGINESTRING "::hasPendingDatagrams() was called in QAbstractSocket::UnconnectedState");
|
||||||
QVERIFY(!socketDevice.hasPendingDatagrams());
|
QVERIFY(!socketDevice.hasPendingDatagrams());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user