diff --git a/README b/README
index 9da0707989f..74655f93c18 100644
--- a/README
+++ b/README
@@ -43,7 +43,7 @@ versions of Qt and Qt Creator on Windows. Alternatively, to avoid having to
compile Qt yourself, you can use one of the versions of Qt shipped with the Qt
SDK (release builds of Qt using MinGW and Visual C++ 2010 or later).
For detailed information on the supported compilers, see
-http://qt-project.org/wiki/Building_Qt_5_from_Git .
+http://wiki.qt.io/Building_Qt_5_from_Git .
1. Decide which compiler to use: MinGW or Microsoft Visual Studio. If you
plan to contribute to Qt Creator, you should compile your changes with
@@ -75,7 +75,7 @@ http://qt-project.org/wiki/Building_Qt_5_from_Git .
directory.
7. Install a compiler:
- - For a MinGW toolchain for Qt, see http://qt-project.org/wiki/MinGW .
+ - For a MinGW toolchain for Qt, see http://wiki.qt.io/MinGW .
- For Microsoft Visual C++, install the Windows SDK and the "Debugging
Tools for Windows" from the SDK image. We strongly recommend using the
@@ -122,7 +122,7 @@ http://qt-project.org/wiki/Building_Qt_5_from_Git .
You have to remove it from the path.
10. You are now ready to configure and build Qt and Qt Creator.
- Please see http://qt-project.org/wiki/Building_Qt_5_from_Git for
+ Please see http://wiki.qt.io/Building_Qt_5_from_Git for
recommended configure-options for Qt 5.
To use MinGW, open the the shell prompt and enter:
diff --git a/dist/appdata.xml b/dist/appdata.xml
index 017bbf9445d..685eba7aa73 100644
--- a/dist/appdata.xml
+++ b/dist/appdata.xml
@@ -23,6 +23,6 @@
http://qt-project.org/uploads/image_upload/qtcreator-edit-mode.png
- https://qt-project.org/wiki/Category:Tools::QtCreator
+ https://wiki.qt.io/Category:Tools::QtCreator
Qt
diff --git a/dist/changes-3.3.2 b/dist/changes-3.3.2
new file mode 100644
index 00000000000..a77efcd45b2
--- /dev/null
+++ b/dist/changes-3.3.2
@@ -0,0 +1,15 @@
+Qt Creator version 3.3.2 contains bug fixes.
+
+The most important changes are listed in this document. For a complete
+list of changes, see the Git log for the Qt Creator sources that
+you can check out from the public Git repository. For example:
+
+git clone git://gitorious.org/qt-creator/qt-creator.git
+git log --cherry-pick --pretty=oneline v3.3.1..v3.3.2
+
+C++ Support
+ * Fixed deployment of Clang code model plugin (QTCREATORBUG-14038)
+
+Qt Quick Designer
+ * Fixed crash of Qt Quick emulation layer when using fallback emulation
+ (QTCREATORBUG-14031)
diff --git a/dist/changes-3.4.0 b/dist/changes-3.4.0
new file mode 100644
index 00000000000..d69578639bc
--- /dev/null
+++ b/dist/changes-3.4.0
@@ -0,0 +1,165 @@
+Qt Creator version 3.4 contains bug fixes and new features.
+
+The most important changes are listed in this document. For a complete
+list of changes, see the Git log for the Qt Creator sources that
+you can check out from the public Git repository. For example:
+
+git clone git://gitorious.org/qt-creator/qt-creator.git
+git log --cherry-pick --pretty=oneline origin/3.3..origin/3.4
+
+General
+ * Added option to change environment for running external tools (QTCREATORBUG-4995)
+ * Improved performance of output panes
+ * Fixed that wizard windows were missing in Window menu (QTCREATORBUG-13766)
+
+Editing
+ * Switched to a QMimeDatabase based MIME database implementation
+ * Added hint in empty editor area
+ * Added "Copy Path and Line Number" to context menu of document selector
+ * Added parenthesis highlighting to generic highlighter
+ * Fixed that files with same file name but different path were not distinguishable
+ in document selector and open documents pane (QTCREATORBUG-10185)
+ * Fixed that symlinks and their target could be opened at the same time (QTCREATORBUG-5941)
+ * Fixed that wrong highlight definition was downloaded when sorting the list in the settings
+
+Help
+ * Fixed clean up of automatically registered documentation
+
+QMake Projects
+ * Added handling of QMAKE_CXXFLAGS_(APP|SHLIB|PLUGIN) variables
+ * Added option to put debug information in separate file (QTCREATORBUG-14009)
+ * Fixed ANSI color support for application output (QTCREATORBUG-13764)
+ * Fixed handling of DEFINES with escaped characters
+
+CMake Projects
+ * Fixed that static libraries were deployed
+ * Fixed finding source directory for build directory
+
+Qbs Projects
+ * Added option to show full command lines during build
+
+QML-Only Projects (.qmlproject)
+ * Disabled plugin by default
+
+Debugging
+ * LLDB
+ * Fixed debugging of console applications (QTCREATORBUG-13803)
+
+Analyzer
+ * Added Valgrind Memory Analyzer with GDB
+
+QML Profiler
+ * Made it possible to search through event notes (QTCREATORBUG-13417)
+
+C++ Support
+ * Added support for binary literals (n3472)
+ * Added locator filter for all included files (QTCREATORBUG-280)
+ * Added refactoring action that moves all function definitions out of a class declaration
+ * Added support for signal and slot completion in Qt 5 style connects
+ * Improved support for non-Qt projects that use Qt keywords
+ * Made auto-completion delay configurable (QTCREATORBUG-13393)
+ * Fixed auto-indentation for break in switch statement (QTCREATORBUG-13155)
+ * Fixed issues with case-insensitive file systems (QTCREATORBUG-12390)
+ * Fixed completion for enums inside member functions (QTCREATORBUG-13757)
+ * Fixed crash on closing one of multiple outline views (QTCREATORBUG-13614)
+ * Fixed that Move Definition to Class refactoring action was not available when using "override"
+ (QTCREATORBUG-13564)
+ * Fixed that Assign to Local Variable refactoring action was not working with chained
+ function calls (QTCREATORBUG-10355)
+ * Fixed several issues with completion and iterators (QTCREATORBUG-13799)
+
+QML Support
+ * Fixed crash on closing one of multiple outline views (QTCREATORBUG-13614)
+
+Version Control Systems
+ * Git
+ * Added support for "git stash --keep-index" (QTCREATORBUG-13587)
+ * Gerrit
+ * Fixed that it was not possible to abort query and fetch (QTCREATORBUG-9743)
+ * Fixed that not all remotes where shown in Push to Gerrit dialog (QTCREATORBUG-13718)
+ * Subversion
+ * Added option to show verbose log
+ * Changed to use the new unified diff viewer
+ * Fixed that committing failed when using non-Latin1 characters in commit message
+ (QTCREATORBUG-13979)
+ * Perforce
+ * Improved repository log (QTCREATORBUG-13526)
+
+FakeVim
+ * Fixed target column for various commands
+ * Fixed behavior of "D" in visual block mode
+ * Fixed cursor shape after failing search
+ * Fixed issues with pasting in presence of splits (QTCREATORBUG-13481)
+
+Platform Specific
+
+Windows
+
+OS X
+
+Android
+ * Added support for 64bit tool chains
+ * Fixed that active run configuration setting was ignored for deploying application
+ (QTCREATORBUG-13732)
+
+Remote Linux
+ * Added optional host key checking (QTCREATORBUG-13339)
+ * Added automatic closing of SSH connections after a period of inactivity
+ * Added support for SHA-256 HMAC for SSH
+ * Fixed that it was not possible to quote run arguments (QTCREATORBUG-14002)
+
+BareMetal
+ * Added GDB server configuration management (QTCREATORBUG-13686)
+ * Added support for remote channel without port
+ * Added support for generic projects
+
+Credits for these changes go to:
+Adam Strzelecki
+Alessandro Portale
+André Hartmann
+André Pönitz
+BogDan Vatra
+Christian Kandeler
+Christian Stenger
+Cristian Adam
+Daniel Teske
+David Schulz
+Denis Shienkov
+Eike Ziller
+Erik Verbruggen
+Fawzi Mohamed
+Francois Ferrand
+Friedemann Kleint
+Hugues Delorme
+Jake Petroules
+Jarek Kobus
+Jörg Bornemann
+Kai Köhne
+Leena Miettinen
+lemelisk
+Libor Tomsik
+Lorenz Haas
+Lukas Holecek
+Maksim Klimov
+Marco Bubke
+Mitch Curtis
+Montel Laurent
+Nikita Baryshnikov
+Nikolai Kosjar
+Orgad Shaneh
+Oswald Buddenhagen
+Przemyslaw Gorszkowski
+Robert Löhning
+Sune Vuorela
+Takumi Asaki
+Tasuku Suzuki
+Thiago Macieira
+Thomas Hartmann
+Tim Jenssen
+Tim Sander
+Tobias Hunger
+Tom Deblauwe
+Toralf Lund
+Ulf Hermann
+Volker Vogelhuber
+Yuchen Deng
diff --git a/doc/api/coding-style.qdoc b/doc/api/coding-style.qdoc
index 8c51f1d34df..a1a19999db8 100644
--- a/doc/api/coding-style.qdoc
+++ b/doc/api/coding-style.qdoc
@@ -59,7 +59,7 @@
the philosophy behind Qt development. For more information about how to set up
the development environment for working on Qt Creator and how to submit code
and documentation for inclusion, see
- \l{http://wiki.qt-project.org/index.php/Main_Page}{Guidelines for Contributions to the Qt Project}.
+ \l{https://wiki.qt.io/Qt_Contribution_Guidelines}{Qt Contribution Guidelines}.
\section1 Binary and Source Compatibility
@@ -109,7 +109,7 @@
\li Do not reimplement functions (not even inlines,
nor protected or private functions).
\li Check
- \l {http://wiki.qt-project.org/index.php/Binary_Compatibility_Workarounds}{Binary Compatibility Workarounds}
+ \l {https://wiki.qt.io/Binary_Compatibility_Workarounds}{Binary Compatibility Workarounds}
for ways to preserve binary compatibility.
\endlist
@@ -640,7 +640,7 @@
\target coding-rules-namespacing
\section2 Namespacing
- Read \l {http://wiki.qt-project.org/index.php/Qt_In_Namespace}{Qt In Namespace}
+ Read \l{https://wiki.qt.io/Qt_In_Namespace}{Qt In Namespace}
and keep in mind that all of Qt Creator is \e{namespace aware} code.
The namespacing policy within Qt Creator is as follows:
diff --git a/doc/api/getting-and-building.qdoc b/doc/api/getting-and-building.qdoc
index 31baf943c63..29002b03bb4 100644
--- a/doc/api/getting-and-building.qdoc
+++ b/doc/api/getting-and-building.qdoc
@@ -37,8 +37,7 @@
(You can find the current version in our source repository here:
\l{http://qt.gitorious.org/qt-creator/qt-creator/blobs/master/qtcreator.pro}.)
- You can get prebuilt Qt packages from the
- \l{https://download.qt-project.org/official_releases/qt/}{Qt Project download page}.
+ You can get prebuilt Qt packages from \l{https://download.qt.io}{Qt Downloads}.
If you want to use Qt as provided by your Linux distribution, you need to make sure that all
Qt development packages and private header packages are also installed.
@@ -48,7 +47,7 @@
released source bundles, or from the Gitorious repository
\l{http://qt.gitorious.org/qt-creator}. If you intend to contribute to \QC
itself, you should use the repository from our Gerrit review tool as described
- in the developer wiki here: \l{http://wiki.qt-project.org/Setting_up_Gerrit}.
+ in: \l{https://wiki.qt.io/Setting_up_Gerrit}{Setting up Gerrit}.
We strongly encourage you to do out-of-source builds of \QC (also called
shadow-builds).
diff --git a/doc/api/qtcreator-documentation.qdoc b/doc/api/qtcreator-documentation.qdoc
index 8c7bbd52bde..0d9fc3d3937 100644
--- a/doc/api/qtcreator-documentation.qdoc
+++ b/doc/api/qtcreator-documentation.qdoc
@@ -131,7 +131,7 @@
\section1 Writing Text
Follow the guidelines for
- \l{http://qt-project.org/wiki/Writing_Qt_Documentation}
+ \l{http://wiki.qt.io/Writing_Qt_Documentation}
{writing Qt documentation}.
The documentation must be grammatically correct English and use the standard
diff --git a/doc/src/debugger/creator-debugger-setup.qdoc b/doc/src/debugger/creator-debugger-setup.qdoc
index cbb8d3db466..3ea650a4d80 100644
--- a/doc/src/debugger/creator-debugger-setup.qdoc
+++ b/doc/src/debugger/creator-debugger-setup.qdoc
@@ -181,7 +181,7 @@
versions of MinGW. On most Linux distributions the GDB
builds shipped with the system are sufficient. You can
also build your own. Follow the instructions in
- \l{http://qt-project.org/wiki/QtCreatorBuildGdb}
+ \l{http://wiki.qt.io/QtCreator_Build_Gdb}
{Building GDB}.
Builds of GDB shipped with Xcode on OS X are no longer
supported.
diff --git a/doc/src/debugger/creator-debugger.qdoc b/doc/src/debugger/creator-debugger.qdoc
index 59fa9c6f1d5..3813d731301 100644
--- a/doc/src/debugger/creator-debugger.qdoc
+++ b/doc/src/debugger/creator-debugger.qdoc
@@ -273,7 +273,7 @@
\list 1
- \li Select \uicontrol {Debug > Start Debugging > Attach to Remote
+ \li Select \uicontrol {Debug > Start Debugging > Attach to Running
Debug Server}.
\li In the \uicontrol {Host and port} field, enter the name of the remote
diff --git a/doc/src/howto/qtcreator-faq.qdoc b/doc/src/howto/qtcreator-faq.qdoc
index ab99288517d..9ac5727c625 100644
--- a/doc/src/howto/qtcreator-faq.qdoc
+++ b/doc/src/howto/qtcreator-faq.qdoc
@@ -191,7 +191,7 @@
installed when you install \QC and \QSDK. On OS X, GDB is no longer
officially supported. To build your own Python-enabled GDB, follow the
instructions in
- \l{http://qt-project.org/wiki/QtCreatorBuildGdb}{Building GDB}.
+ \l{https://wiki.qt.io/QtCreator_Build_Gdb}{Building GDB}.
You must use Python version 2.6 or 2.7.
@@ -220,7 +220,7 @@
On Windows, nmake does not support the \c{-j} parameter. Instead, we
provide a drop-in replacement called jom. You can download a precompiled
- version of jom from \l{http://releases.qt-project.org/jom/}{Qt Project Release server}.
+ version of jom from \l{https://download.qt.io/official_releases/jom/}{Qt Downloads}.
Put jom.exe in a location in the %PATH%. Go to the \uicontrol {Build Settings}
and set jom.exe as the make command.
diff --git a/doc/src/overview/creator-tech-support.qdoc b/doc/src/overview/creator-tech-support.qdoc
index b862606cbd9..a3587406392 100644
--- a/doc/src/overview/creator-tech-support.qdoc
+++ b/doc/src/overview/creator-tech-support.qdoc
@@ -40,24 +40,28 @@
\li Where to Go
\row
- \li Learn more about Qt
- \li \l{http://qt-project.org/wiki/developer-guides}
- {Qt Developer Guides}
+ \li View examples of what you can do with Qt
+ \li \l{https://doc.qt.io/qt-5/all-examples.html}{List of Qt Examples}
+
+ \l{https://doc.qt.io/qt-5/qtquick-codesamples.html}
+ {List of Qt Quick Examples}
\row
\li Develop Qt applications for desktop and mobile devices
- \li \l{http://qt-project.org}{Qt Developer Network}
+ \li \l{https://www.qt.io/developers/}{Qt Developers}
\row
\li Participate in Qt development
- \li \l{http://qt-project.org/contribute}{Contribute to Qt}
+ \li \l{https://wiki.qt.io/Qt_Contribution_Guidelines}
+ {Qt Contribution Guidelines}
\row
\li Find free Qt-based applications
\li \l{http://qt-apps.org/}{Qt Apps}
\row
- \li Develop with a commercial Qt license and support - Qt by The Qt Company
+ \li Develop with a commercial Qt license and support -
+ Qt by The Qt Company
\li \l{http://qt.io/licensing/}{Qt Licensing}
\endtable
diff --git a/doc/src/projects/creator-projects-debuggers.qdoc b/doc/src/projects/creator-projects-debuggers.qdoc
index 4158039f515..51bb7fe3f12 100644
--- a/doc/src/projects/creator-projects-debuggers.qdoc
+++ b/doc/src/projects/creator-projects-debuggers.qdoc
@@ -58,20 +58,7 @@
\li For GDB, specify the path to the GDB executable. The
executable must be built with Python scripting support
- enabled. The options you
- have depend on the development and target platform:
-
- \list
-
- \li For debugging on embedded devices using a different ABI,
- you must provide a special executable.
-
- \li For debugging on Windows using MinGW, select a Windows
- executable of GDB with Python scripting enabled. You can
- download it from
- \l{http://builds.qt-project.org/job/gdb-windows}.
-
- \endlist
+ enabled.
\li For LLDB (experimental), specify the path to the LLDB
executable.
diff --git a/doc/src/qnx/creator-deployment-bb10.qdoc b/doc/src/qnx/creator-deployment-bb10.qdoc
index a99fdd1ca65..224aa40ec49 100644
--- a/doc/src/qnx/creator-deployment-bb10.qdoc
+++ b/doc/src/qnx/creator-deployment-bb10.qdoc
@@ -84,7 +84,7 @@
filter, so you need to set this filter in the top-right corner of the
\uicontrol {New} dialog to enable those templates.
- \note Currently, the BlackBerry 10 devices and Simulator have Qt 4.8 libraries preinstalled. To use Qt 5 features, you must compile the Qt libraries for BlackBerry 10 yourself. For more information, see \l {http://qt-project.org/wiki/Building-Qt5-for-Blackberry}{http://qt-p roject.org/wiki/Building-Qt5-for-Blackberry}.
+ \note Currently, the BlackBerry 10 devices and Simulator have Qt 4.8 libraries preinstalled. To use Qt 5 features, you must compile the Qt libraries for BlackBerry 10 yourself. For more information, see \l {http://wiki.qt.io/Building_Qt5_for_Blackberry}{Building Qt5 for BlackBerry}.
- For more details please refer to the Qt-Project wiki page: \l {http://qt-project.org/wiki/BlackBerry} {http://qt-project.org/wiki/BlackBerry}.
+ For more details please refer to the Qt-Project wiki page: \l {http://wiki.qt.io/BlackBerry}{Qt for BlackBerry}.
*/
diff --git a/doc/src/qnx/creator-developing-bb10.qdoc b/doc/src/qnx/creator-developing-bb10.qdoc
index 54274f6ac95..d7b347d2472 100644
--- a/doc/src/qnx/creator-developing-bb10.qdoc
+++ b/doc/src/qnx/creator-developing-bb10.qdoc
@@ -120,5 +120,5 @@
\include qnx/creator-key-management-qnx.qdocinc
- For more details please refer to the Qt-Project wiki page: \l {http://qt-project.org/wiki/BlackBerry} {http://qt-project.org/wiki/BlackBerry}.
+ For more details please refer to the Qt-Project wiki page: \l {http://wiki.qt.io/BlackBerry}{Qt for BlackBerry}.
*/
diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py
index 9f57c25b433..64f31da3d58 100644
--- a/share/qtcreator/debugger/creatortypes.py
+++ b/share/qtcreator/debugger/creatortypes.py
@@ -31,7 +31,10 @@
from dumper import *
def dumpLiteral(d, value):
- d.putSimpleCharArray(value["_chars"], value["_size"])
+ if d.isNull(value):
+ d.putValue("")
+ else:
+ d.putSimpleCharArray(value["_chars"], value["_size"])
def qdump__Core__Id(d, value):
try:
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index 49d0b7537ef..97c689b39b5 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -1713,7 +1713,7 @@ class DumperBase:
result += ']'
return result
- def reloadDumper(self):
+ def reloadDumper(self, args):
for mod in self.dumpermodules:
m = sys.modules[mod]
if sys.version_info[0] >= 3:
@@ -1721,7 +1721,7 @@ class DumperBase:
else:
reload(m)
- setupDumper()
+ self.setupDumper(args)
def addDumperModule(self, args):
path = args['path']
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 71b5ddec0a6..1dfd7233e14 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -829,6 +829,8 @@ class Dumper(DumperBase):
self.report('msg="No thread"')
return
+ self.reportLocation(thread.GetFrameAtIndex(0)) # FIXME
+
isNativeMixed = int(args.get('nativeMixed', 0))
limit = args.get('stacklimit', -1)
@@ -893,20 +895,6 @@ class Dumper(DumperBase):
if "continuation" in args:
self.report('continuation=\"%s\"' % args["continuation"])
- def reportStackPosition(self):
- thread = self.currentThread()
- if not thread:
- self.report('msg="No thread"')
- return
- frame = thread.GetSelectedFrame()
- if frame:
- self.report('stack-position={id="%s"}' % frame.GetFrameID())
- else:
- self.report('stack-position={id="-1"}')
-
- def reportStackTop(self):
- self.report('stack-top={}')
-
def extractBlob(self, base, size):
if size == 0:
return Blob("")
@@ -1220,7 +1208,6 @@ class Dumper(DumperBase):
else:
state = self.process.GetState()
if state == lldb.eStateStopped:
- self.reportStackPosition()
self.reportThreads()
self.reportVariables()
@@ -1340,10 +1327,7 @@ class Dumper(DumperBase):
stoppedThread = self.firstStoppedThread()
if stoppedThread:
self.process.SetSelectedThread(stoppedThread)
- self.reportStackTop()
self.reportThreads()
- if stoppedThread:
- self.reportLocation(stoppedThread.GetSelectedFrame())
elif eventType == lldb.SBProcess.eBroadcastBitInterrupt: # 2
pass
elif eventType == lldb.SBProcess.eBroadcastBitSTDOUT:
@@ -1568,7 +1552,6 @@ class Dumper(DumperBase):
self.reportState("running")
self.reportState("stopped")
self.reportError(error)
- self.reportLocation(self.currentFrame())
else:
self.reportData()
@@ -1605,9 +1588,7 @@ class Dumper(DumperBase):
def activateFrame(self, args):
thread = args['thread']
self.currentThread().SetSelectedFrame(args['index'])
- state = self.process.GetState()
- if state == lldb.eStateStopped:
- self.reportStackPosition()
+ self.reportContinuation(args)
def selectThread(self, args):
self.process.SetSelectedThreadByID(args['id'])
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 512700c016a..35be29d6f23 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -1705,11 +1705,14 @@ bool CreateBindings::visit(Declaration *decl)
bool CreateBindings::visit(Function *function)
{
+ ClassOrNamespace *previous = _currentClassOrNamespace;
+ _currentClassOrNamespace = lookupType(function, previous);
for (unsigned i = 0, count = function->memberCount(); i < count; ++i) {
Symbol *s = function->memberAt(i);
if (Block *b = s->asBlock())
visit(b);
}
+ _currentClassOrNamespace = previous;
return false;
}
diff --git a/src/libs/qmljs/qmljsbind.h b/src/libs/qmljs/qmljsbind.h
index c40117efa64..14a64e024ee 100644
--- a/src/libs/qmljs/qmljsbind.h
+++ b/src/libs/qmljs/qmljsbind.h
@@ -39,6 +39,7 @@
namespace QmlJS {
+class DiagnosticMessage;
class Document;
class QMLJS_EXPORT Bind: protected AST::Visitor
diff --git a/src/libs/qmljs/qmljsbundle.h b/src/libs/qmljs/qmljsbundle.h
index 3a75a1edb4e..110f56ee363 100644
--- a/src/libs/qmljs/qmljsbundle.h
+++ b/src/libs/qmljs/qmljsbundle.h
@@ -33,7 +33,7 @@
#include
#include
-#include
+#include
#include
#include
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index ce06d4cd8e7..e71c0a21659 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -36,6 +36,7 @@
#include
+#include
#include
using namespace QmlJS;
diff --git a/src/libs/qmljs/qmljscompletioncontextfinder.cpp b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
index 448677ebf63..b260c5ba93c 100644
--- a/src/libs/qmljs/qmljscompletioncontextfinder.cpp
+++ b/src/libs/qmljs/qmljscompletioncontextfinder.cpp
@@ -29,6 +29,7 @@
****************************************************************************/
#include "qmljscompletioncontextfinder.h"
+#include "qmljsscanner.h"
#include
#include
diff --git a/src/libs/qmljs/qmljscontext.cpp b/src/libs/qmljs/qmljscontext.cpp
index f81cf2dccc5..df467ed304a 100644
--- a/src/libs/qmljs/qmljscontext.cpp
+++ b/src/libs/qmljs/qmljscontext.cpp
@@ -31,6 +31,8 @@
#include "qmljscontext.h"
#include "parser/qmljsast_p.h"
+#include "parser/qmljsengine_p.h"
+#include "qmljsvalueowner.h"
using namespace QmlJS;
using namespace QmlJS::AST;
diff --git a/src/libs/qmljs/qmljscontext.h b/src/libs/qmljs/qmljscontext.h
index 13f43557718..deaadddee67 100644
--- a/src/libs/qmljs/qmljscontext.h
+++ b/src/libs/qmljs/qmljscontext.h
@@ -32,7 +32,8 @@
#define QMLJS_CONTEXT_H
#include "qmljs_global.h"
-#include "qmljsvalueowner.h"
+#include "qmljsdocument.h"
+#include "qmljsinterpreter.h"
#include "qmljsviewercontext.h"
#include
diff --git a/src/libs/qmljs/qmljsdialect.cpp b/src/libs/qmljs/qmljsdialect.cpp
index 60d4a1e46fc..27069421bf4 100644
--- a/src/libs/qmljs/qmljsdialect.cpp
+++ b/src/libs/qmljs/qmljsdialect.cpp
@@ -29,6 +29,9 @@
****************************************************************************/
#include "qmljsdialect.h"
+#include "qmljsconstants.h"
+
+#include
namespace QmlJS {
@@ -300,7 +303,11 @@ bool PathsAndLanguages::maybeInsert(const PathAndLanguage &pathAndLanguage) {
return true;
}
-void PathsAndLanguages::compact() {
+void PathsAndLanguages::compact()
+{
+ if (m_list.isEmpty())
+ return;
+
int oldCompactionPlace = 0;
Utils::FileName oldPath = m_list.first().path();
QList compactedList;
diff --git a/src/libs/qmljs/qmljsdialect.h b/src/libs/qmljs/qmljsdialect.h
index 6dac12cc3e0..9d9113ca7ee 100644
--- a/src/libs/qmljs/qmljsdialect.h
+++ b/src/libs/qmljs/qmljsdialect.h
@@ -31,7 +31,7 @@
#ifndef QMLJSDIALECT_H
#define QMLJSDIALECT_H
-#include "qmljsconstants.h"
+#include "qmljs_global.h"
#include
diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h
index d984b2deb88..5c8b6df12d7 100644
--- a/src/libs/qmljs/qmljsdocument.h
+++ b/src/libs/qmljs/qmljsdocument.h
@@ -38,7 +38,7 @@
#include "qmljsdialect.h"
#include "parser/qmldirparser_p.h"
-#include "parser/qmljsengine_p.h"
+#include "parser/qmljsastfwd_p.h"
#include "qmljs_global.h"
#include "qmljsconstants.h"
#include "qmljsimportdependencies.h"
@@ -46,11 +46,14 @@
namespace QmlJS {
class Bind;
+class DiagnosticMessage;
+class Engine;
class Snapshot;
class ImportDependencies;
class QMLJS_EXPORT Document
{
+ Q_DISABLE_COPY(Document)
public:
typedef QSharedPointer Ptr;
typedef QSharedPointer MutablePtr;
diff --git a/src/libs/qmljs/qmljsevaluate.cpp b/src/libs/qmljs/qmljsevaluate.cpp
index 2a7aa042d64..7c5ef71f468 100644
--- a/src/libs/qmljs/qmljsevaluate.cpp
+++ b/src/libs/qmljs/qmljsevaluate.cpp
@@ -31,6 +31,7 @@
#include "qmljsevaluate.h"
#include "qmljscontext.h"
#include "qmljsscopechain.h"
+#include "qmljsvalueowner.h"
#include "parser/qmljsast_p.h"
using namespace QmlJS;
diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp
index dc0e745822f..d383be41896 100644
--- a/src/libs/qmljs/qmljsimportdependencies.cpp
+++ b/src/libs/qmljs/qmljsimportdependencies.cpp
@@ -31,6 +31,7 @@
#include "qmljsimportdependencies.h"
#include "qmljsinterpreter.h"
#include "qmljsqrcparser.h"
+#include "qmljsviewercontext.h"
#include
diff --git a/src/libs/qmljs/qmljsimportdependencies.h b/src/libs/qmljs/qmljsimportdependencies.h
index 2125ac125f3..62d09282295 100644
--- a/src/libs/qmljs/qmljsimportdependencies.h
+++ b/src/libs/qmljs/qmljsimportdependencies.h
@@ -31,7 +31,7 @@
#ifndef QMLJSIMPORTCACHE_H
#define QMLJSIMPORTCACHE_H
-#include "qmljsviewercontext.h"
+#include "qmljsconstants.h"
#include "qmljsdialect.h"
#include
@@ -52,6 +52,7 @@ QT_END_NAMESPACE
namespace QmlJS {
class ImportInfo;
+class ViewerContext;
namespace Internal { class ImportDependenciesPrivate; }
class ImportDependencies;
diff --git a/src/libs/qmljs/qmljsindenter.cpp b/src/libs/qmljs/qmljsindenter.cpp
index f73515c6a2d..89c17044427 100644
--- a/src/libs/qmljs/qmljsindenter.cpp
+++ b/src/libs/qmljs/qmljsindenter.cpp
@@ -67,6 +67,7 @@
*/
#include
+#include
#include
diff --git a/src/libs/qmljs/qmljsinterpreter.h b/src/libs/qmljs/qmljsinterpreter.h
index 1756fbf3f6d..6b8ffe549d3 100644
--- a/src/libs/qmljs/qmljsinterpreter.h
+++ b/src/libs/qmljs/qmljsinterpreter.h
@@ -33,8 +33,10 @@
#include
#include
-#include
#include
+#include
+
+#include
#include
#include
@@ -67,6 +69,7 @@ class JSImportScope;
class NameId;
class NullValue;
class NumberValue;
+class ModuleApiInfo;
class ObjectValue;
class QmlEnumValue;
class QmlPrototypeReference;
diff --git a/src/libs/qmljs/qmljslineinfo.cpp b/src/libs/qmljs/qmljslineinfo.cpp
index e3e39d7e224..54c01a809d1 100644
--- a/src/libs/qmljs/qmljslineinfo.cpp
+++ b/src/libs/qmljs/qmljslineinfo.cpp
@@ -67,6 +67,7 @@
*/
#include
+#include
using namespace QmlJS;
diff --git a/src/libs/qmljs/qmljslineinfo.h b/src/libs/qmljs/qmljslineinfo.h
index b002da8fce2..55b37021791 100644
--- a/src/libs/qmljs/qmljslineinfo.h
+++ b/src/libs/qmljs/qmljslineinfo.h
@@ -32,12 +32,12 @@
#define QMLJSLINEINFO_H
#include
-#include
#include
#include
namespace QmlJS {
+class Token;
class QMLJS_EXPORT LineInfo
{
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
index be839396e8e..37d2e595c10 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.cpp
@@ -36,6 +36,7 @@
#include "qmljsplugindumper.h"
#include "qmljstypedescriptionreader.h"
#include "qmljsdialect.h"
+#include "qmljsviewercontext.h"
#include
#include
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h
index 8b4a91fc989..df232598811 100644
--- a/src/libs/qmljs/qmljsmodelmanagerinterface.h
+++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h
@@ -33,25 +33,21 @@
#include "qmljs_global.h"
#include "qmljsbundle.h"
-#include "qmljsconstants.h"
#include "qmljsdocument.h"
#include "qmljsqrcparser.h"
-#include "qmljsviewercontext.h"
#include "qmljsdialect.h"
#include
#include
-#include
#include
#include
#include
-#include
#include
#include
#include
-#include
-#include
+
+QT_FORWARD_DECLARE_CLASS(QTimer)
namespace ProjectExplorer { class Project; }
diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp
index be393f92ee3..fd987851b84 100644
--- a/src/libs/qmljs/qmljsreformatter.cpp
+++ b/src/libs/qmljs/qmljsreformatter.cpp
@@ -33,6 +33,7 @@
#include "qmljscodeformatter.h"
#include "parser/qmljsast_p.h"
#include "parser/qmljsastvisitor_p.h"
+#include "parser/qmljsengine_p.h"
#include
#include
diff --git a/src/libs/qmljs/qmljsscopechain.cpp b/src/libs/qmljs/qmljsscopechain.cpp
index 1fa71328cea..5416b8e195b 100644
--- a/src/libs/qmljs/qmljsscopechain.cpp
+++ b/src/libs/qmljs/qmljsscopechain.cpp
@@ -32,6 +32,7 @@
#include "qmljsbind.h"
#include "qmljsevaluate.h"
#include "qmljsmodelmanagerinterface.h"
+#include "parser/qmljsengine_p.h"
using namespace QmlJS;
diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.cpp b/src/libs/qmljs/qmljsstaticanalysismessage.cpp
index bd8a7e78aab..df2cf1f61d2 100644
--- a/src/libs/qmljs/qmljsstaticanalysismessage.cpp
+++ b/src/libs/qmljs/qmljsstaticanalysismessage.cpp
@@ -30,10 +30,12 @@
#include "qmljsstaticanalysismessage.h"
#include "qmljsconstants.h"
+#include "parser/qmljsengine_p.h"
#include
#include
+#include
using namespace QmlJS;
using namespace QmlJS::StaticAnalysis;
diff --git a/src/libs/qmljs/qmljsstaticanalysismessage.h b/src/libs/qmljs/qmljsstaticanalysismessage.h
index f4f22e373ec..41e4bfd3ab2 100644
--- a/src/libs/qmljs/qmljsstaticanalysismessage.h
+++ b/src/libs/qmljs/qmljsstaticanalysismessage.h
@@ -33,13 +33,16 @@
#include "qmljs_global.h"
#include "qmljsconstants.h"
-#include "parser/qmljsengine_p.h"
+#include "parser/qmljsastfwd_p.h"
-#include
#include
#include
+QT_FORWARD_DECLARE_CLASS(QRegExp)
+
namespace QmlJS {
+class DiagnosticMessage;
+
namespace StaticAnalysis {
enum Type
diff --git a/src/libs/qmljs/qmljstypedescriptionreader.cpp b/src/libs/qmljs/qmljstypedescriptionreader.cpp
index e37d72aba0a..a7351bd7407 100644
--- a/src/libs/qmljs/qmljstypedescriptionreader.cpp
+++ b/src/libs/qmljs/qmljstypedescriptionreader.cpp
@@ -30,6 +30,7 @@
#include "qmljstypedescriptionreader.h"
+#include "qmljsdocument.h"
#include "parser/qmljsparser_p.h"
#include "parser/qmljslexer_p.h"
#include "parser/qmljsengine_p.h"
diff --git a/src/libs/qmljs/qmljstypedescriptionreader.h b/src/libs/qmljs/qmljstypedescriptionreader.h
index 7a4fe1f61fe..f37367b59fb 100644
--- a/src/libs/qmljs/qmljstypedescriptionreader.h
+++ b/src/libs/qmljs/qmljstypedescriptionreader.h
@@ -31,7 +31,10 @@
#ifndef QMLJSTYPEDESCRIPTIONREADER_H
#define QMLJSTYPEDESCRIPTIONREADER_H
-#include "qmljsdocument.h"
+#include "qmljs_global.h"
+#include
+
+#include
// for Q_DECLARE_TR_FUNCTIONS
#include
@@ -43,6 +46,7 @@ QT_END_NAMESPACE
namespace QmlJS {
+class ModuleApiInfo;
namespace AST {
class UiProgram;
class UiObjectDefinition;
diff --git a/src/libs/qmljs/qmljsutils.cpp b/src/libs/qmljs/qmljsutils.cpp
index 3a721a54b06..bcbdde5ccc1 100644
--- a/src/libs/qmljs/qmljsutils.cpp
+++ b/src/libs/qmljs/qmljsutils.cpp
@@ -32,6 +32,8 @@
#include "parser/qmljsast_p.h"
+#include
+
using namespace QmlJS;
using namespace QmlJS::AST;
diff --git a/src/libs/qmljs/qmljsutils.h b/src/libs/qmljs/qmljsutils.h
index b0aab716b12..48de0b2229b 100644
--- a/src/libs/qmljs/qmljsutils.h
+++ b/src/libs/qmljs/qmljsutils.h
@@ -36,7 +36,7 @@
#include "parser/qmljsastfwd_p.h"
#include "parser/qmljsengine_p.h"
-#include
+QT_FORWARD_DECLARE_CLASS(QColor)
namespace QmlJS {
diff --git a/src/libs/qmljs/qmljsviewercontext.h b/src/libs/qmljs/qmljsviewercontext.h
index 955f384e4cc..3bf85c21250 100644
--- a/src/libs/qmljs/qmljsviewercontext.h
+++ b/src/libs/qmljs/qmljsviewercontext.h
@@ -32,7 +32,6 @@
#define VIEWERCONTEXT_H
#include "qmljs_global.h"
-#include "qmljsconstants.h"
#include "qmljsdialect.h"
#include
diff --git a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
index 3fb27917e72..b08eacd1f66 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroupvalue.cpp
@@ -666,11 +666,23 @@ const QtInfo &QtInfo::get(const SymbolGroupValueContext &ctx)
modulePattern != total; ++modulePattern) {
const std::string pattern = *modulePattern + qstrdupSymbol;
const StringList &allMatches = SymbolGroupValue::resolveSymbolName(pattern.c_str(), ctx);
- const StringListConstIt match = *modulePattern == "*" ? allMatches.begin()
+ const bool wildcardPattern = *modulePattern == "*";
+ const StringListConstIt match = wildcardPattern
+ ? std::find_if(allMatches.begin(), allMatches.end(), SubStringPredicate("Core"))
: std::find_if(allMatches.begin(), allMatches.end(), SubStringPredicate(modulePattern->c_str()));
- if (match == allMatches.end())
+
+ if (match != allMatches.end()) {
+ qualifiedSymbol = *match;
+ } else if (wildcardPattern && !allMatches.empty()) {
+ // Use the first qstrdup symbol if there is no Core in all available qstrdup symbols
+ // This is useful when qt is statically linked.
+ qualifiedSymbol = *allMatches.begin();
+ } else {
+ // If we haven't found a match and this isn't the wildcard pattern we continue
+ // we could still find a dynamic qt library with a libinfix
continue;
- qualifiedSymbol = *match;
+ }
+
exclPos = qualifiedSymbol.find('!'); // Resolved: 'QtCored4!qstrdup'
libPos = qualifiedSymbol.find("Core");
if (exclPos != std::string::npos && libPos != std::string::npos)
diff --git a/src/libs/timeline/qml/Detail.qml b/src/libs/timeline/qml/Detail.qml
index 83bd262ba0c..762ac62fff2 100644
--- a/src/libs/timeline/qml/Detail.qml
+++ b/src/libs/timeline/qml/Detail.qml
@@ -32,10 +32,12 @@ import QtQuick 2.1
Text {
property bool isLabel: false
+ property int labelWidth: 85
+ property int valueWidth: 170
font.pixelSize: 12
font.bold: isLabel
textFormat: Text.PlainText
renderType: Text.NativeRendering
elide: Text.ElideRight
- width: text === "" ? 0 : (isLabel ? 85 : 170)
+ width: text === "" ? 0 : (isLabel ? labelWidth : valueWidth)
}
diff --git a/src/libs/timeline/qml/MainView.qml b/src/libs/timeline/qml/MainView.qml
index 984e6728188..9c902cd145a 100644
--- a/src/libs/timeline/qml/MainView.qml
+++ b/src/libs/timeline/qml/MainView.qml
@@ -321,7 +321,7 @@ Rectangle {
}
SelectionRangeDetails {
- z: 1
+ z: 3
x: 200
y: 125
@@ -347,7 +347,7 @@ Rectangle {
RangeDetails {
id: rangeDetails
- z: 1
+ z: 3
visible: false
x: 200
y: 25
diff --git a/src/libs/timeline/qml/RangeDetails.qml b/src/libs/timeline/qml/RangeDetails.qml
index 55d53c6de49..a8903863666 100644
--- a/src/libs/timeline/qml/RangeDetails.qml
+++ b/src/libs/timeline/qml/RangeDetails.qml
@@ -54,7 +54,7 @@ Item {
signal clearSelection
width: col.width + 25
- height: col.height + 30
+ height: contentArea.height + titleBar.height
function hide() {
noteEdit.focus = false;
@@ -146,8 +146,8 @@ Item {
y: px + 1
}
- // title bar
Rectangle {
+ id: titleBar
width: parent.width
height: 20
color: "#55a3b8"
@@ -186,6 +186,7 @@ Item {
// Details area
Rectangle {
+ id: contentArea
color: "white"
width: parent.width
height: 10 + col.height + (noteEdit.visible ? (noteEdit.height + 5) : 0)
@@ -204,6 +205,7 @@ Item {
Repeater {
model: eventInfo
Detail {
+ valueWidth: dragHandle.x - x - 15
isLabel: index % 2 === 0
text: (content === undefined) ? "" : (isLabel ? (content + ":") : content)
}
@@ -298,4 +300,26 @@ Item {
}
}
+ Item {
+ id: dragHandle
+ width: 10
+ height: 10
+ x: 300
+ anchors.bottom: parent.bottom
+ clip: true
+ MouseArea {
+ anchors.fill: parent
+ drag.target: parent
+ drag.axis: Drag.XAxis
+ cursorShape: Qt.SizeHorCursor
+ }
+ Rectangle {
+ color: "#55a3b8"
+ rotation: 45
+ width: parent.width * Math.SQRT2
+ height: parent.height * Math.SQRT2
+ x: parent.width - width / 2
+ y: parent.height - height / 2
+ }
+ }
}
diff --git a/src/libs/timeline/qml/TimelineContent.qml b/src/libs/timeline/qml/TimelineContent.qml
index 998c5c108ba..c4d1a273537 100644
--- a/src/libs/timeline/qml/TimelineContent.qml
+++ b/src/libs/timeline/qml/TimelineContent.qml
@@ -172,12 +172,11 @@ ScrollView {
if (modelData.endTime(selectedItem) < zoomer.rangeStart ||
modelData.startTime(selectedItem) > zoomer.rangeEnd) {
- var newStart = (modelData.startTime(selectedItem) +
- modelData.endTime(selectedItem) -
- zoomer.rangeDuration) / 2;
- zoomer.setRange(Math.max(newStart, zoomer.traceStart),
- Math.min(newStart + zoomer.rangeDuration,
- zoomer.traceEnd));
+ var newStart = Math.max((modelData.startTime(selectedItem) +
+ modelData.endTime(selectedItem) -
+ zoomer.rangeDuration) / 2, zoomer.traceStart);
+ zoomer.setRange(newStart,
+ Math.min(newStart + zoomer.rangeDuration, zoomer.traceEnd));
}
var row = modelData.row(selectedItem);
diff --git a/src/libs/utils/fancylineedit.cpp b/src/libs/utils/fancylineedit.cpp
index d5316dfdb8f..f2b7684b5cc 100644
--- a/src/libs/utils/fancylineedit.cpp
+++ b/src/libs/utils/fancylineedit.cpp
@@ -172,6 +172,13 @@ FancyLineEdit::FancyLineEdit(QWidget *parent) :
FancyLineEdit::~FancyLineEdit()
{
+ if (d->m_historyCompleter) {
+ // When dialog with FancyLineEdit widget closed by
+ // the QueuedConnection don't have enough time to call slot callback
+ // because edit widget and all of its connections are destroyed before
+ // QCoreApplicationPrivate::sendPostedEvents dispatch our queued signal.
+ d->m_historyCompleter->addEntry(text());
+ }
}
void FancyLineEdit::setButtonVisible(Side side, bool visible)
@@ -297,10 +304,12 @@ bool FancyLineEdit::hasAutoHideButton(Side side) const
return d->m_iconbutton[side]->hasAutoHide();
}
-void FancyLineEdit::setHistoryCompleter(const QString &historyKey)
+void FancyLineEdit::setHistoryCompleter(const QString &historyKey, bool restoreLastItemFromHistory)
{
QTC_ASSERT(!d->m_historyCompleter, return);
d->m_historyCompleter = new HistoryCompleter(historyKey, this);
+ if (restoreLastItemFromHistory)
+ setText(d->m_historyCompleter->historyItem());
QLineEdit::setCompleter(d->m_historyCompleter);
// Hitting in the popup first causes editingFinished()
diff --git a/src/libs/utils/fancylineedit.h b/src/libs/utils/fancylineedit.h
index 975da4d1765..c50adfea30a 100644
--- a/src/libs/utils/fancylineedit.h
+++ b/src/libs/utils/fancylineedit.h
@@ -114,7 +114,7 @@ public:
// Completion
// Enable a history completer with a history of entries.
- void setHistoryCompleter(const QString &historyKey);
+ void setHistoryCompleter(const QString &historyKey, bool restoreLastItemFromHistory = false);
// Sets a completer that is not a history completer.
void setSpecialCompleter(QCompleter *completer);
diff --git a/src/libs/utils/historycompleter.cpp b/src/libs/utils/historycompleter.cpp
index d2e660861c0..4cf055ae3c4 100644
--- a/src/libs/utils/historycompleter.cpp
+++ b/src/libs/utils/historycompleter.cpp
@@ -59,6 +59,8 @@ public:
QStringList list;
QString historyKey;
+ bool isLastItemEmpty;
+ QString historyKeyIsLastItemEmpty;
int maxLines;
};
@@ -149,8 +151,11 @@ void HistoryCompleterPrivate::clearHistory()
void HistoryCompleterPrivate::addEntry(const QString &str)
{
const QString entry = str.trimmed();
- if (entry.isEmpty())
+ if (entry.isEmpty()) {
+ isLastItemEmpty = true;
+ theSettings->setValue(historyKeyIsLastItemEmpty, isLastItemEmpty);
return;
+ }
int removeIndex = list.indexOf(entry);
beginResetModel();
if (removeIndex != -1)
@@ -159,6 +164,8 @@ void HistoryCompleterPrivate::addEntry(const QString &str)
list = list.mid(0, maxLines - 1);
endResetModel();
theSettings->setValue(historyKey, list);
+ isLastItemEmpty = false;
+ theSettings->setValue(historyKeyIsLastItemEmpty, isLastItemEmpty);
}
HistoryCompleter::HistoryCompleter(const QString &historyKey, QObject *parent)
@@ -170,6 +177,9 @@ HistoryCompleter::HistoryCompleter(const QString &historyKey, QObject *parent)
d->historyKey = QLatin1String("CompleterHistory/") + historyKey;
d->list = theSettings->value(d->historyKey).toStringList();
+ d->historyKeyIsLastItemEmpty = QLatin1String("CompleterHistory/")
+ + historyKey + QLatin1String(".IsLastItemEmpty");
+ d->isLastItemEmpty = theSettings->value(d->historyKeyIsLastItemEmpty, false).toBool();
setModel(d);
setPopup(new HistoryLineView(d));
@@ -180,6 +190,13 @@ bool HistoryCompleter::removeHistoryItem(int index)
return d->removeRow(index);
}
+QString HistoryCompleter::historyItem() const
+{
+ if (historySize() == 0 || d->isLastItemEmpty)
+ return QString();
+ return d->list.at(0);
+}
+
HistoryCompleter::~HistoryCompleter()
{
delete d;
diff --git a/src/libs/utils/historycompleter.h b/src/libs/utils/historycompleter.h
index 47dd6286ae9..641eaaec61b 100644
--- a/src/libs/utils/historycompleter.h
+++ b/src/libs/utils/historycompleter.h
@@ -51,6 +51,7 @@ public:
static void setSettings(QSettings *settings);
HistoryCompleter(const QString &historyKey, QObject *parent = 0);
bool removeHistoryItem(int index);
+ QString historyItem() const;
private:
~HistoryCompleter();
diff --git a/src/libs/utils/mimetypes/mimemagicrule.cpp b/src/libs/utils/mimetypes/mimemagicrule.cpp
index 397bf23c903..6fa471f2cad 100644
--- a/src/libs/utils/mimetypes/mimemagicrule.cpp
+++ b/src/libs/utils/mimetypes/mimemagicrule.cpp
@@ -233,14 +233,13 @@ QByteArray MimeMagicRule::makePattern(const QByteArray &value)
}
MimeMagicRule::MimeMagicRule(MimeMagicRule::Type theType,
- const QByteArray &theValue,
- int theStartPos,
- int theEndPos,
- const QByteArray &theMask) :
+ const QByteArray &theValue,
+ int theStartPos,
+ int theEndPos,
+ const QByteArray &theMask,
+ QString *errorString) :
d(new MimeMagicRulePrivate)
{
- Q_ASSERT(!theValue.isEmpty());
-
d->type = theType;
d->value = theValue;
d->startPos = theStartPos;
@@ -248,10 +247,23 @@ MimeMagicRule::MimeMagicRule(MimeMagicRule::Type theType,
d->mask = theMask;
d->matchFunction = 0;
+ if (d->value.isEmpty()) {
+ d->type = Invalid;
+ if (errorString)
+ *errorString = QLatin1String("Invalid empty magic rule value");
+ return;
+ }
+
if (d->type >= Host16 && d->type <= Byte) {
bool ok;
d->number = d->value.toUInt(&ok, 0); // autodetect
- Q_ASSERT(ok);
+ if (!ok) {
+ d->type = Invalid;
+ if (errorString)
+ *errorString = QString::fromLatin1("Invalid magic rule value \"%1\"").arg(
+ QString::fromLatin1(d->value));
+ return;
+ }
d->numberMask = !d->mask.isEmpty() ? d->mask.toUInt(&ok, 0) : 0; // autodetect
}
@@ -260,9 +272,23 @@ MimeMagicRule::MimeMagicRule(MimeMagicRule::Type theType,
d->pattern = makePattern(d->value);
d->pattern.squeeze();
if (!d->mask.isEmpty()) {
- Q_ASSERT(d->mask.size() >= 4 && d->mask.startsWith("0x"));
- d->mask = QByteArray::fromHex(QByteArray::fromRawData(d->mask.constData() + 2, d->mask.size() - 2));
- Q_ASSERT(d->mask.size() == d->pattern.size());
+ if (d->mask.size() < 4 || !d->mask.startsWith("0x")) {
+ d->type = Invalid;
+ if (errorString)
+ *errorString = QString::fromLatin1("Invalid magic rule mask \"%1\"").arg(
+ QString::fromLatin1(d->mask));
+ return;
+ }
+ const QByteArray &tempMask = QByteArray::fromHex(QByteArray::fromRawData(
+ d->mask.constData() + 2, d->mask.size() - 2));
+ if (tempMask.size() != d->pattern.size()) {
+ d->type = Invalid;
+ if (errorString)
+ *errorString = QString::fromLatin1("Invalid magic rule mask size \"%1\"").arg(
+ QString::fromLatin1(d->mask));
+ return;
+ }
+ d->mask = tempMask;
} else {
d->mask.fill(char(-1), d->pattern.size());
}
diff --git a/src/libs/utils/mimetypes/mimemagicrule_p.h b/src/libs/utils/mimetypes/mimemagicrule_p.h
index 495d2167043..b1ebe1060ce 100644
--- a/src/libs/utils/mimetypes/mimemagicrule_p.h
+++ b/src/libs/utils/mimetypes/mimemagicrule_p.h
@@ -65,7 +65,8 @@ class QTCREATOR_UTILS_EXPORT MimeMagicRule
public:
enum Type { Invalid = 0, String, Host16, Host32, Big16, Big32, Little16, Little32, Byte };
- MimeMagicRule(Type type, const QByteArray &value, int startPos, int endPos, const QByteArray &mask = QByteArray());
+ MimeMagicRule(Type type, const QByteArray &value, int startPos, int endPos,
+ const QByteArray &mask = QByteArray(), QString *errorString = 0);
MimeMagicRule(const MimeMagicRule &other);
~MimeMagicRule();
diff --git a/src/libs/utils/mimetypes/mimetypeparser.cpp b/src/libs/utils/mimetypes/mimetypeparser.cpp
index 2b953a9168f..c1db64fb5c4 100644
--- a/src/libs/utils/mimetypes/mimetypeparser.cpp
+++ b/src/libs/utils/mimetypes/mimetypeparser.cpp
@@ -176,10 +176,6 @@ static bool createMagicMatchRule(const QXmlStreamAttributes &atts,
return true;
}
const QString value = atts.value(QLatin1String(matchValueAttributeC)).toString();
- if (value.isEmpty()) {
- *errorMessage = QString::fromLatin1("Empty match value detected.");
- return false;
- }
// Parse for offset as "1" or "1:10"
int startPos, endPos;
const QString offsetS = atts.value(QLatin1String(matchOffsetAttributeC)).toString();
@@ -190,8 +186,12 @@ static bool createMagicMatchRule(const QXmlStreamAttributes &atts,
return false;
const QString mask = atts.value(QLatin1String(matchMaskAttributeC)).toString();
- rule = new MimeMagicRule(magicType, value.toUtf8(), startPos, endPos, mask.toLatin1());
+ MimeMagicRule *tempRule = new MimeMagicRule(magicType, value.toUtf8(), startPos, endPos,
+ mask.toLatin1(), errorMessage);
+ if (!tempRule->isValid())
+ return false;
+ rule = tempRule;
return true;
}
#endif
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 4db3caedee7..42bddb42141 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -44,6 +44,7 @@
#include
#include
#include
+#include
#include
#include
@@ -65,6 +66,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/src/plugins/analyzerbase/analyzermanager.h b/src/plugins/analyzerbase/analyzermanager.h
index f8360061dd0..786589b0733 100644
--- a/src/plugins/analyzerbase/analyzermanager.h
+++ b/src/plugins/analyzerbase/analyzermanager.h
@@ -33,10 +33,8 @@
#define ANALYZERMANAGER_H
#include "analyzerbase_global.h"
-#include "analyzerconstants.h"
#include
-#include
#include
diff --git a/src/plugins/analyzerbase/analyzerplugin.cpp b/src/plugins/analyzerbase/analyzerplugin.cpp
index a396dc5056b..ef9b53edda4 100644
--- a/src/plugins/analyzerbase/analyzerplugin.cpp
+++ b/src/plugins/analyzerbase/analyzerplugin.cpp
@@ -30,6 +30,7 @@
****************************************************************************/
#include "analyzerplugin.h"
+#include "analyzerconstants.h"
#include "analyzermanager.h"
#include
diff --git a/src/plugins/analyzerbase/analyzerruncontrol.h b/src/plugins/analyzerbase/analyzerruncontrol.h
index fd6619a8692..82769b0768e 100644
--- a/src/plugins/analyzerbase/analyzerruncontrol.h
+++ b/src/plugins/analyzerbase/analyzerruncontrol.h
@@ -35,20 +35,14 @@
#include "analyzerbase_global.h"
#include
-#include
-#include "analyzerbase_global.h"
#include "analyzerstartparameters.h"
-#include
-#include
#include
#include
#include
-namespace ProjectExplorer { class RunConfiguration; }
-
namespace Analyzer {
/**
@@ -105,6 +99,8 @@ signals:
void starting(const Analyzer::AnalyzerRunControl *);
private:
+ bool supportsReRunning() const { return false; }
+
ProjectExplorer::RunConfiguration *m_runConfig;
AnalyzerStartParameters m_sp;
};
diff --git a/src/plugins/analyzerbase/analyzerutils.cpp b/src/plugins/analyzerbase/analyzerutils.cpp
index 1216f9cfb53..3d4e71747d4 100644
--- a/src/plugins/analyzerbase/analyzerutils.cpp
+++ b/src/plugins/analyzerbase/analyzerutils.cpp
@@ -33,6 +33,7 @@
#include "analyzerconstants.h"
#include
+#include
#include
#include
@@ -46,6 +47,7 @@
using namespace Analyzer;
using namespace Core;
+using namespace ProjectExplorer;
static void moveCursorToEndOfName(QTextCursor *tc)
{
@@ -93,3 +95,10 @@ CPlusPlus::Symbol *AnalyzerUtils::findSymbolUnderCursor()
const CPlusPlus::LookupItem &lookupItem = lookupItems.first(); // ### TODO: select best candidate.
return lookupItem.declaration();
}
+
+void AnalyzerUtils::logToIssuesPane(Task::TaskType type, const QString &message)
+{
+ TaskHub::addTask(type, message, Analyzer::Constants::ANALYZERTASK_ID);
+ if (type == Task::Error)
+ TaskHub::requestPopup();
+}
diff --git a/src/plugins/analyzerbase/analyzerutils.h b/src/plugins/analyzerbase/analyzerutils.h
index 210da4860d8..a7d544e8b5d 100644
--- a/src/plugins/analyzerbase/analyzerutils.h
+++ b/src/plugins/analyzerbase/analyzerutils.h
@@ -33,15 +33,15 @@
#include "analyzerbase_global.h"
-QT_BEGIN_NAMESPACE
-class QWidget;
-QT_END_NAMESPACE
+#include
namespace CPlusPlus { class Symbol; }
namespace AnalyzerUtils
{
ANALYZER_EXPORT CPlusPlus::Symbol *findSymbolUnderCursor();
+ ANALYZER_EXPORT void logToIssuesPane(ProjectExplorer::Task::TaskType type,
+ const QString &message);
}
#endif // ANALYZERUTILS_H
diff --git a/src/plugins/analyzerbase/detailederrorview.cpp b/src/plugins/analyzerbase/detailederrorview.cpp
index 73e94b53ee3..1c31a7ff402 100644
--- a/src/plugins/analyzerbase/detailederrorview.cpp
+++ b/src/plugins/analyzerbase/detailederrorview.cpp
@@ -35,10 +35,12 @@
#include
+#include
#include
#include
#include
#include
+#include
#include
#include
diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h
index 171bb6c903c..31cec8cc712 100644
--- a/src/plugins/analyzerbase/ianalyzertool.h
+++ b/src/plugins/analyzerbase/ianalyzertool.h
@@ -33,7 +33,7 @@
#define IANALYZERTOOL_H
#include "analyzerbase_global.h"
-#include "analyzerstartparameters.h"
+#include "analyzerconstants.h"
#include
#include
@@ -47,6 +47,7 @@ namespace ProjectExplorer { class RunConfiguration; }
namespace Analyzer {
+class AnalyzerStartParameters;
class AnalyzerRunControl;
/**
diff --git a/src/plugins/android/androidbuildapkstep.h b/src/plugins/android/androidbuildapkstep.h
index c8aff85c014..a32d78a6e83 100644
--- a/src/plugins/android/androidbuildapkstep.h
+++ b/src/plugins/android/androidbuildapkstep.h
@@ -34,7 +34,6 @@
#include "android_global.h"
#include
-#include
QT_BEGIN_NAMESPACE
class QAbstractItemModel;
diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp
index 557425ade65..833de15485c 100644
--- a/src/plugins/android/androidconfigurations.cpp
+++ b/src/plugins/android/androidconfigurations.cpp
@@ -1183,7 +1183,7 @@ void AndroidConfigurations::updateAutomaticKitList()
Debugger::DebuggerItem debugger;
debugger.setCommand(tc->suggestedDebugger());
debugger.setEngineType(Debugger::GdbEngineType);
- debugger.setDisplayName(tr("Android Debugger for %1").arg(tc->displayName()));
+ debugger.setUnexpandedDisplayName(tr("Android Debugger for %1").arg(tc->displayName()));
debugger.setAutoDetected(true);
debugger.setAbi(tc->targetAbi());
QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger);
@@ -1229,7 +1229,7 @@ void AndroidConfigurations::updateAutomaticKitList()
Debugger::DebuggerItem debugger;
debugger.setCommand(tc->suggestedDebugger());
debugger.setEngineType(Debugger::GdbEngineType);
- debugger.setDisplayName(tr("Android Debugger for %1").arg(tc->displayName()));
+ debugger.setUnexpandedDisplayName(tr("Android Debugger for %1").arg(tc->displayName()));
debugger.setAutoDetected(true);
debugger.setAbi(tc->targetAbi());
QVariant id = Debugger::DebuggerItemManager::registerDebugger(debugger);
diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h
index 7c1d7649f97..f35cce897a1 100644
--- a/src/plugins/android/androidconfigurations.h
+++ b/src/plugins/android/androidconfigurations.h
@@ -41,16 +41,18 @@
#include
#include
-#include
-
#include
-#include
QT_BEGIN_NAMESPACE
class QSettings;
QT_END_NAMESPACE
-namespace ProjectExplorer { class Project; }
+namespace ProjectExplorer {
+class Abi;
+class Project;
+}
+
+namespace Utils { class Environment; }
namespace Android {
class AndroidPlugin;
diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp
index 80b61e0bfa1..3c2625c8604 100644
--- a/src/plugins/android/androidmanager.cpp
+++ b/src/plugins/android/androidmanager.cpp
@@ -29,6 +29,7 @@
****************************************************************************/
#include "androidmanager.h"
+#include "androidconstants.h"
#include "androiddeployconfiguration.h"
#include "androidconfigurations.h"
#include "androidrunconfiguration.h"
diff --git a/src/plugins/android/androidmanager.h b/src/plugins/android/androidmanager.h
index acb81dfafdc..771963a1fca 100644
--- a/src/plugins/android/androidmanager.h
+++ b/src/plugins/android/androidmanager.h
@@ -32,7 +32,6 @@
#define ANDROIDMANAGER_H
#include "android_global.h"
-#include
#include
#include
@@ -43,6 +42,8 @@ class Kit;
class Target;
}
+namespace Utils { class FileName; }
+
namespace Android {
class AndroidQtSupport;
diff --git a/src/plugins/android/androidmanifestdocument.cpp b/src/plugins/android/androidmanifestdocument.cpp
index cce32f2edfd..275e8db74cd 100644
--- a/src/plugins/android/androidmanifestdocument.cpp
+++ b/src/plugins/android/androidmanifestdocument.cpp
@@ -33,6 +33,9 @@
#include "androidconstants.h"
#include
+#include
+
+#include
#include
diff --git a/src/plugins/android/androidmanifesteditor.h b/src/plugins/android/androidmanifesteditor.h
index 848a092c622..c8aade5314c 100644
--- a/src/plugins/android/androidmanifesteditor.h
+++ b/src/plugins/android/androidmanifesteditor.h
@@ -37,6 +37,8 @@
#include
#include
+#include
+
QT_BEGIN_NAMESPACE
class QToolBar;
class QActionGroup;
diff --git a/src/plugins/android/androidqtsupport.h b/src/plugins/android/androidqtsupport.h
index 013e28a3b2a..b6e2867f5a5 100644
--- a/src/plugins/android/androidqtsupport.h
+++ b/src/plugins/android/androidqtsupport.h
@@ -31,21 +31,20 @@
#ifndef ANDROIDSUPPORT_H
#define ANDROIDSUPPORT_H
+#include "android_global.h"
+
#include
#include
-#include
-
-#include
-
-#include "android_global.h"
-
namespace ProjectExplorer {
- class Target;
class DeployConfiguration;
class ProcessParameters;
+ class Project;
+ class Target;
}
+namespace Utils { class FileName; }
+
namespace Android {
class ANDROID_EXPORT AndroidQtSupport : public QObject
diff --git a/src/plugins/android/androidrunconfiguration.h b/src/plugins/android/androidrunconfiguration.h
index 67b0d41db0b..d62936e8cda 100644
--- a/src/plugins/android/androidrunconfiguration.h
+++ b/src/plugins/android/androidrunconfiguration.h
@@ -32,8 +32,6 @@
#define ANDROIDRUNCONFIGURATION_H
#include "android_global.h"
-#include "androidconstants.h"
-#include "androidconfigurations.h"
#include
diff --git a/src/plugins/android/javaeditor.cpp b/src/plugins/android/javaeditor.cpp
index b190c338c54..ec3c026a090 100644
--- a/src/plugins/android/javaeditor.cpp
+++ b/src/plugins/android/javaeditor.cpp
@@ -34,15 +34,16 @@
#include "androidconstants.h"
#include "javacompletionassistprovider.h"
-#include
-#include
-#include
#include
-
+#include
+#include
#include
#include
-#include
+#include
+
#include
+#include
+#include
#include
diff --git a/src/plugins/bazaar/bazaarplugin.cpp b/src/plugins/bazaar/bazaarplugin.cpp
index 9729f00d97c..1bc842a1ccb 100644
--- a/src/plugins/bazaar/bazaarplugin.cpp
+++ b/src/plugins/bazaar/bazaarplugin.cpp
@@ -48,6 +48,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/src/plugins/beautifier/beautifierplugin.cpp b/src/plugins/beautifier/beautifierplugin.cpp
index bc10838bfde..67bafd1a132 100644
--- a/src/plugins/beautifier/beautifierplugin.cpp
+++ b/src/plugins/beautifier/beautifierplugin.cpp
@@ -57,6 +57,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp
index a47ddf9e921..586bb58e52b 100644
--- a/src/plugins/bineditor/bineditorplugin.cpp
+++ b/src/plugins/bineditor/bineditorplugin.cpp
@@ -267,19 +267,19 @@ public:
bool open(QString *errorString, const QString &fileName, quint64 offset = 0) {
QFile file(fileName);
- quint64 size = static_cast(file.size());
- if (size == 0 && !fileName.isEmpty()) {
- QString msg = tr("The Binary Editor cannot open empty files.");
- if (errorString)
- *errorString = msg;
- else
- QMessageBox::critical(ICore::mainWindow(), tr("File Error"), msg);
- return false;
- }
- if (offset >= size)
- return false;
if (file.open(QIODevice::ReadOnly)) {
file.close();
+ quint64 size = static_cast(file.size());
+ if (size == 0) {
+ QString msg = tr("The Binary Editor cannot open empty files.");
+ if (errorString)
+ *errorString = msg;
+ else
+ QMessageBox::critical(ICore::mainWindow(), tr("File Error"), msg);
+ return false;
+ }
+ if (offset >= size)
+ return false;
setFilePath(FileName::fromString(fileName));
m_widget->setSizes(offset, file.size());
return true;
diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp
index fbca8c0a726..17936c7f10d 100644
--- a/src/plugins/bookmarks/bookmarkmanager.cpp
+++ b/src/plugins/bookmarks/bookmarkmanager.cpp
@@ -36,6 +36,7 @@
#include
#include
+#include
#include
#include
#include
diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp
index caf39ef7ffc..ba2db7452bd 100644
--- a/src/plugins/classview/classviewmanager.cpp
+++ b/src/plugins/classview/classviewmanager.cpp
@@ -42,6 +42,7 @@
#include
#include
#include
+#include
#include
#include
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index b0f5b8b49b4..476d3da3d94 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -35,15 +35,17 @@
#include "cmakesettingspage.h"
#include "cmaketoolmanager.h"
-#include
-
#include
#include
#include
#include
-#include
#include
#include
+#include
+
+#include
+
+#include
#include
using namespace CMakeProjectManager::Internal;
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index ef618123d6e..a1aef0885fa 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -32,6 +32,7 @@
#include "actionmanager.h"
#include
+#include
#include
#include
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.h b/src/plugins/coreplugin/actionmanager/actionmanager.h
index 493143cfbb5..7e924af38c9 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.h
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.h
@@ -48,6 +48,8 @@ QT_END_NAMESPACE
namespace Core {
class ActionContainer;
+class Command;
+class Context;
namespace Internal {
class CorePlugin;
diff --git a/src/plugins/coreplugin/actionmanager/commandbutton.cpp b/src/plugins/coreplugin/actionmanager/commandbutton.cpp
index 76e0fd4bf37..0b6c273d4ec 100644
--- a/src/plugins/coreplugin/actionmanager/commandbutton.cpp
+++ b/src/plugins/coreplugin/actionmanager/commandbutton.cpp
@@ -29,8 +29,10 @@
****************************************************************************/
#include "commandbutton.h"
+#include "actionmanager.h"
+#include "command.h"
+#include "../id.h"
-#include
#include
using namespace Core;
diff --git a/src/plugins/coreplugin/actionmanager/commandmappings.h b/src/plugins/coreplugin/actionmanager/commandmappings.h
index 8fbb3951719..00da4509018 100644
--- a/src/plugins/coreplugin/actionmanager/commandmappings.h
+++ b/src/plugins/coreplugin/actionmanager/commandmappings.h
@@ -33,8 +33,6 @@
#include
-#include
-
QT_BEGIN_NAMESPACE
class QLineEdit;
class QTreeWidget;
diff --git a/src/plugins/coreplugin/basefilewizardfactory.h b/src/plugins/coreplugin/basefilewizardfactory.h
index 44f3d64248b..e4028522616 100644
--- a/src/plugins/coreplugin/basefilewizardfactory.h
+++ b/src/plugins/coreplugin/basefilewizardfactory.h
@@ -33,14 +33,11 @@
#include "core_global.h"
#include "generatedfile.h"
-#include "featureprovider.h"
#include
-#include
-
-#include
#include
+#include
QT_BEGIN_NAMESPACE
class QIcon;
diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp
index 923bd2cdcb1..4246dfe7295 100644
--- a/src/plugins/coreplugin/coreplugin.cpp
+++ b/src/plugins/coreplugin/coreplugin.cpp
@@ -31,6 +31,7 @@
#include "coreplugin.h"
#include "designmode.h"
#include "editmode.h"
+#include "idocument.h"
#include "helpmanager.h"
#include "mainwindow.h"
#include "modemanager.h"
diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp
index fe5dd3556f7..f119a29eba8 100644
--- a/src/plugins/coreplugin/designmode.cpp
+++ b/src/plugins/coreplugin/designmode.cpp
@@ -31,6 +31,7 @@
#include "designmode.h"
#include
+#include
#include
#include
#include
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.cpp b/src/plugins/coreplugin/dialogs/ioptionspage.cpp
index f25a8169abc..9b6bdd2ba86 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.cpp
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.cpp
@@ -35,6 +35,7 @@
#include
#include
+#include
#include
#include
@@ -80,6 +81,11 @@
side of the \gui Options dialog.
*/
+QIcon Core::IOptionsPage::categoryIcon() const
+{
+ return QIcon(m_categoryIcon);
+}
+
/*!
\fn QWidget *IOptionsPage::widget()
@@ -183,3 +189,8 @@ bool Core::IOptionsPage::matches(const QString &searchKeyWord) const
return true;
return false;
}
+
+QIcon Core::IOptionsPageProvider::categoryIcon() const
+{
+ return QIcon(m_categoryIcon);
+}
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h
index 247437fbb53..4d0a35af425 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.h
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.h
@@ -33,10 +33,14 @@
#include
-#include
#include
#include
+QT_BEGIN_NAMESPACE
+class QIcon;
+class QWidget;
+QT_END_NAMESPACE
+
namespace Core {
class CORE_EXPORT IOptionsPage : public QObject
@@ -51,7 +55,7 @@ public:
QString displayName() const { return m_displayName; }
Id category() const { return m_category; }
QString displayCategory() const { return m_displayCategory; }
- QIcon categoryIcon() const { return QIcon(m_categoryIcon); }
+ QIcon categoryIcon() const;
virtual bool matches(const QString &searchKeyWord) const;
virtual QWidget *widget() = 0;
@@ -92,7 +96,7 @@ public:
Id category() const { return m_category; }
QString displayCategory() const { return m_displayCategory; }
- QIcon categoryIcon() const { return QIcon(m_categoryIcon); }
+ QIcon categoryIcon() const;
virtual QList pages() const = 0;
virtual bool matches(const QString & /* searchKeyWord*/) const = 0;
diff --git a/src/plugins/coreplugin/dialogs/newdialog.h b/src/plugins/coreplugin/dialogs/newdialog.h
index 3ce9c6158c8..bf1b0d6da38 100644
--- a/src/plugins/coreplugin/dialogs/newdialog.h
+++ b/src/plugins/coreplugin/dialogs/newdialog.h
@@ -36,6 +36,7 @@
#include
#include
#include
+#include
QT_BEGIN_NAMESPACE
class QAbstractProxyModel;
diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
index c85216ed0a3..fded4d11c86 100644
--- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp
@@ -460,7 +460,7 @@ void ReadOnlyFilesDialogPrivate::initDialog(const QStringList &fileNames)
ui.treeWidget->setAlternatingRowColors(true);
// Do not show any options to the user if he has no choice.
- if (!useSaveAs && (useVCS || !useMakeWritable)) {
+ if (!useSaveAs && (!useVCS || !useMakeWritable)) {
ui.treeWidget->setColumnHidden(MakeWritable, true);
ui.treeWidget->setColumnHidden(OpenWithVCS, true);
ui.treeWidget->setColumnHidden(SaveAs, true);
diff --git a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
index 52f1f631e49..89b59da6d91 100644
--- a/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/saveitemsdialog.cpp
@@ -32,6 +32,8 @@
#include
#include
+
+#include
#include
#include
diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp
index aa4b7b0401e..79652c1d380 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel.cpp
+++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp
@@ -37,6 +37,7 @@
#include
#include
+#include
#include
#include
#include
diff --git a/src/plugins/coreplugin/editormanager/documentmodel.h b/src/plugins/coreplugin/editormanager/documentmodel.h
index daf2996755c..28d1f9348ea 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel.h
+++ b/src/plugins/coreplugin/editormanager/documentmodel.h
@@ -36,9 +36,10 @@
#include
-#include
-
-QT_FORWARD_DECLARE_CLASS(QIcon)
+QT_BEGIN_NAMESPACE
+class QAbstractItemModel;
+class QIcon;
+QT_END_NAMESPACE
namespace Core {
diff --git a/src/plugins/coreplugin/editormanager/editorarea.cpp b/src/plugins/coreplugin/editormanager/editorarea.cpp
index ef5d1662b0a..d1227e5f5e9 100644
--- a/src/plugins/coreplugin/editormanager/editorarea.cpp
+++ b/src/plugins/coreplugin/editormanager/editorarea.cpp
@@ -35,6 +35,7 @@
#include
#include
+#include
#include
#include
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index e7ff06cff02..82a156ab421 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -40,6 +40,7 @@
#include
#include
+#include
#include
#include
#include
@@ -68,6 +69,7 @@
#include
#include
#include
+#include
#include
#include
diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h
index f2b123c3baf..dc945802504 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.h
+++ b/src/plugins/coreplugin/editormanager/editormanager.h
@@ -35,18 +35,14 @@
#include "documentmodel.h"
-#include
-#include // enumerations
-#include
-
#include
#include
-#include
#include
-QT_BEGIN_NAMESPACE
-QT_END_NAMESPACE
+QT_FORWARD_DECLARE_CLASS(QMenu)
+
+namespace Utils { class MimeType; }
namespace Core {
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index ae541c885a9..85fb0baf324 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -50,6 +50,7 @@
#include
#include
+#include