Merge remote-tracking branch 'origin/3.4'

This commit is contained in:
Eike Ziller
2015-03-05 13:32:28 +01:00
318 changed files with 1345 additions and 2178 deletions
+3 -3
View File
@@ -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:
+1 -1
View File
@@ -23,6 +23,6 @@
<screenshots>
<screenshot type="default" width="800" height="600">http://qt-project.org/uploads/image_upload/qtcreator-edit-mode.png</screenshot>
</screenshots>
<url type="homepage">https://qt-project.org/wiki/Category:Tools::QtCreator</url>
<url type="homepage">https://wiki.qt.io/Category:Tools::QtCreator</url>
<project_group>Qt</project_group>
</application>
+15
View File
@@ -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)
+165
View File
@@ -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
+3 -3
View File
@@ -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:
+2 -3
View File
@@ -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).
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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.
+10 -6
View File
@@ -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
@@ -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.
+2 -2
View File
@@ -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}.
*/
+1 -1
View File
@@ -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}.
*/
+4 -1
View File
@@ -31,7 +31,10 @@
from dumper import *
def dumpLiteral(d, value):
d.putSimpleCharArray(value["_chars"], value["_size"])
if d.isNull(value):
d.putValue("<null>")
else:
d.putSimpleCharArray(value["_chars"], value["_size"])
def qdump__Core__Id(d, value):
try:
+2 -2
View File
@@ -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']
+3 -22
View File
@@ -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'])
+3
View File
@@ -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;
}
+1
View File
@@ -39,6 +39,7 @@
namespace QmlJS {
class DiagnosticMessage;
class Document;
class QMLJS_EXPORT Bind: protected AST::Visitor
+1 -1
View File
@@ -33,7 +33,7 @@
#include <qmljs/qmljs_global.h>
#include <qmljs/persistenttrie.h>
#include <qmljs/qmljsdocument.h>
#include <qmljs/qmljsdialect.h>
#include <QString>
#include <QHash>
+1
View File
@@ -36,6 +36,7 @@
#include <utils/qtcassert.h>
#include <QColor>
#include <QDir>
using namespace QmlJS;
@@ -29,6 +29,7 @@
****************************************************************************/
#include "qmljscompletioncontextfinder.h"
#include "qmljsscanner.h"
#include <QTextDocument>
#include <QStringList>
+2
View File
@@ -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;
+2 -1
View File
@@ -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 <QSharedPointer>
+8 -1
View File
@@ -29,6 +29,9 @@
****************************************************************************/
#include "qmljsdialect.h"
#include "qmljsconstants.h"
#include <QDebug>
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<PathAndLanguage> compactedList;
+1 -1
View File
@@ -31,7 +31,7 @@
#ifndef QMLJSDIALECT_H
#define QMLJSDIALECT_H
#include "qmljsconstants.h"
#include "qmljs_global.h"
#include <utils/fileutils.h>
+4 -1
View File
@@ -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<const Document> Ptr;
typedef QSharedPointer<Document> MutablePtr;
+1
View File
@@ -31,6 +31,7 @@
#include "qmljsevaluate.h"
#include "qmljscontext.h"
#include "qmljsscopechain.h"
#include "qmljsvalueowner.h"
#include "parser/qmljsast_p.h"
using namespace QmlJS;
@@ -31,6 +31,7 @@
#include "qmljsimportdependencies.h"
#include "qmljsinterpreter.h"
#include "qmljsqrcparser.h"
#include "qmljsviewercontext.h"
#include <utils/qtcassert.h>
+2 -1
View File
@@ -31,7 +31,7 @@
#ifndef QMLJSIMPORTCACHE_H
#define QMLJSIMPORTCACHE_H
#include "qmljsviewercontext.h"
#include "qmljsconstants.h"
#include "qmljsdialect.h"
#include <languageutils/componentversion.h>
@@ -52,6 +52,7 @@ QT_END_NAMESPACE
namespace QmlJS {
class ImportInfo;
class ViewerContext;
namespace Internal { class ImportDependenciesPrivate; }
class ImportDependencies;
+1
View File
@@ -67,6 +67,7 @@
*/
#include <qmljs/qmljsindenter.h>
#include <qmljs/qmljsscanner.h>
#include <QTextBlock>
+4 -1
View File
@@ -33,8 +33,10 @@
#include <qmljs/qmljs_global.h>
#include <qmljs/qmljsconstants.h>
#include <qmljs/qmljsdocument.h>
#include <qmljs/qmljsimportdependencies.h>
#include <qmljs/parser/qmljsastfwd_p.h>
#include <languageutils/fakemetaobject.h>
#include <QFileInfoList>
#include <QHash>
@@ -67,6 +69,7 @@ class JSImportScope;
class NameId;
class NullValue;
class NumberValue;
class ModuleApiInfo;
class ObjectValue;
class QmlEnumValue;
class QmlPrototypeReference;
+1
View File
@@ -67,6 +67,7 @@
*/
#include <qmljs/qmljslineinfo.h>
#include <qmljs/qmljsscanner.h>
using namespace QmlJS;
+1 -1
View File
@@ -32,12 +32,12 @@
#define QMLJSLINEINFO_H
#include <qmljs/qmljs_global.h>
#include <qmljs/qmljsscanner.h>
#include <QRegExp>
#include <QTextBlock>
namespace QmlJS {
class Token;
class QMLJS_EXPORT LineInfo
{
@@ -36,6 +36,7 @@
#include "qmljsplugindumper.h"
#include "qmljstypedescriptionreader.h"
#include "qmljsdialect.h"
#include "qmljsviewercontext.h"
#include <cplusplus/cppmodelmanagerbase.h>
#include <utils/hostosinfo.h>
+2 -6
View File
@@ -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 <cplusplus/CppDocument.h>
#include <utils/environment.h>
#include <utils/fileutils.h>
#include <QFuture>
#include <QFutureSynchronizer>
#include <QHash>
#include <QMultiHash>
#include <QObject>
#include <QPointer>
#include <QStringList>
#include <QStringList>
#include <QTimer>
QT_FORWARD_DECLARE_CLASS(QTimer)
namespace ProjectExplorer { class Project; }
+1
View File
@@ -33,6 +33,7 @@
#include "qmljscodeformatter.h"
#include "parser/qmljsast_p.h"
#include "parser/qmljsastvisitor_p.h"
#include "parser/qmljsengine_p.h"
#include <QString>
#include <QTextBlock>
+1
View File
@@ -32,6 +32,7 @@
#include "qmljsbind.h"
#include "qmljsevaluate.h"
#include "qmljsmodelmanagerinterface.h"
#include "parser/qmljsengine_p.h"
using namespace QmlJS;
@@ -30,10 +30,12 @@
#include "qmljsstaticanalysismessage.h"
#include "qmljsconstants.h"
#include "parser/qmljsengine_p.h"
#include <utils/qtcassert.h>
#include <QCoreApplication>
#include <QRegExp>
using namespace QmlJS;
using namespace QmlJS::StaticAnalysis;
+5 -2
View File
@@ -33,13 +33,16 @@
#include "qmljs_global.h"
#include "qmljsconstants.h"
#include "parser/qmljsengine_p.h"
#include "parser/qmljsastfwd_p.h"
#include <QRegExp>
#include <QString>
#include <QList>
QT_FORWARD_DECLARE_CLASS(QRegExp)
namespace QmlJS {
class DiagnosticMessage;
namespace StaticAnalysis {
enum Type
@@ -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"
+5 -1
View File
@@ -31,7 +31,10 @@
#ifndef QMLJSTYPEDESCRIPTIONREADER_H
#define QMLJSTYPEDESCRIPTIONREADER_H
#include "qmljsdocument.h"
#include "qmljs_global.h"
#include <qmljs/parser/qmljsastfwd_p.h>
#include <languageutils/fakemetaobject.h>
// for Q_DECLARE_TR_FUNCTIONS
#include <QCoreApplication>
@@ -43,6 +46,7 @@ QT_END_NAMESPACE
namespace QmlJS {
class ModuleApiInfo;
namespace AST {
class UiProgram;
class UiObjectDefinition;
+2
View File
@@ -32,6 +32,8 @@
#include "parser/qmljsast_p.h"
#include <QColor>
using namespace QmlJS;
using namespace QmlJS::AST;
+1 -1
View File
@@ -36,7 +36,7 @@
#include "parser/qmljsastfwd_p.h"
#include "parser/qmljsengine_p.h"
#include <QColor>
QT_FORWARD_DECLARE_CLASS(QColor)
namespace QmlJS {
-1
View File
@@ -32,7 +32,6 @@
#define VIEWERCONTEXT_H
#include "qmljs_global.h"
#include "qmljsconstants.h"
#include "qmljsdialect.h"
#include <QStringList>
+15 -3
View File
@@ -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)
+3 -1
View File
@@ -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)
}
+2 -2
View File
@@ -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
+26 -2
View File
@@ -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
}
}
}
+5 -6
View File
@@ -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);
+10 -1
View File
@@ -172,6 +172,13 @@ FancyLineEdit::FancyLineEdit(QWidget *parent) :
FancyLineEdit::~FancyLineEdit()
{
if (d->m_historyCompleter) {
// When dialog with FancyLineEdit widget closed by <Escape>
// 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 <Return> in the popup first causes editingFinished()
+1 -1
View File
@@ -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);
+18 -1
View File
@@ -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;
+1
View File
@@ -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();
+36 -10
View File
@@ -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());
}
+2 -1
View File
@@ -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();
+5 -5
View File
@@ -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
@@ -44,6 +44,7 @@
#include <coreplugin/rightpane.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/editormanager/editormanager.h>
#include <projectexplorer/projectexplorer.h>
@@ -65,6 +66,7 @@
#include <QVBoxLayout>
#include <QDockWidget>
#include <QAction>
#include <QMenu>
#include <QToolButton>
#include <QComboBox>
#include <QStackedWidget>
@@ -33,10 +33,8 @@
#define ANALYZERMANAGER_H
#include "analyzerbase_global.h"
#include "analyzerconstants.h"
#include <coreplugin/id.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <QObject>
@@ -30,6 +30,7 @@
****************************************************************************/
#include "analyzerplugin.h"
#include "analyzerconstants.h"
#include "analyzermanager.h"
#include <projectexplorer/projectexplorer.h>
@@ -35,20 +35,14 @@
#include "analyzerbase_global.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/task.h>
#include "analyzerbase_global.h"
#include "analyzerstartparameters.h"
#include <projectexplorer/task.h>
#include <projectexplorer/runconfiguration.h>
#include <utils/outputformat.h>
#include <QObject>
#include <QString>
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;
};
@@ -33,6 +33,7 @@
#include "analyzerconstants.h"
#include <cpptools/cppmodelmanager.h>
#include <projectexplorer/taskhub.h>
#include <texteditor/texteditor.h>
#include <texteditor/textdocument.h>
@@ -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();
}
+3 -3
View File
@@ -33,15 +33,15 @@
#include "analyzerbase_global.h"
QT_BEGIN_NAMESPACE
class QWidget;
QT_END_NAMESPACE
#include <projectexplorer/task.h>
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
@@ -35,10 +35,12 @@
#include <utils/qtcassert.h>
#include <QAction>
#include <QApplication>
#include <QClipboard>
#include <QContextMenuEvent>
#include <QFontMetrics>
#include <QMenu>
#include <QPainter>
#include <QScrollBar>
+2 -1
View File
@@ -33,7 +33,7 @@
#define IANALYZERTOOL_H
#include "analyzerbase_global.h"
#include "analyzerstartparameters.h"
#include "analyzerconstants.h"
#include <coreplugin/id.h>
#include <projectexplorer/projectexplorerconstants.h>
@@ -47,6 +47,7 @@ namespace ProjectExplorer { class RunConfiguration; }
namespace Analyzer {
class AnalyzerStartParameters;
class AnalyzerRunControl;
/**
@@ -34,7 +34,6 @@
#include "android_global.h"
#include <projectexplorer/abstractprocessstep.h>
#include <qtsupport/baseqtversion.h>
QT_BEGIN_NAMESPACE
class QAbstractItemModel;
@@ -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);
+6 -4
View File
@@ -41,16 +41,18 @@
#include <QMap>
#include <QFutureInterface>
#include <projectexplorer/abi.h>
#include <utils/fileutils.h>
#include <utils/environment.h>
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;
+1
View File
@@ -29,6 +29,7 @@
****************************************************************************/
#include "androidmanager.h"
#include "androidconstants.h"
#include "androiddeployconfiguration.h"
#include "androidconfigurations.h"
#include "androidrunconfiguration.h"
+2 -1
View File
@@ -32,7 +32,6 @@
#define ANDROIDMANAGER_H
#include "android_global.h"
#include <utils/fileutils.h>
#include <QPair>
#include <QObject>
@@ -43,6 +42,8 @@ class Kit;
class Target;
}
namespace Utils { class FileName; }
namespace Android {
class AndroidQtSupport;
@@ -33,6 +33,9 @@
#include "androidconstants.h"
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/idocument.h>
#include <utils/fileutils.h>
#include <QFileInfo>
@@ -37,6 +37,8 @@
#include <coreplugin/editormanager/ieditor.h>
#include <texteditor/texteditor.h>
#include <QActionGroup>
QT_BEGIN_NAMESPACE
class QToolBar;
class QActionGroup;
+6 -7
View File
@@ -31,21 +31,20 @@
#ifndef ANDROIDSUPPORT_H
#define ANDROIDSUPPORT_H
#include "android_global.h"
#include <QObject>
#include <QList>
#include <projectexplorer/project.h>
#include <utils/fileutils.h>
#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
@@ -32,8 +32,6 @@
#define ANDROIDRUNCONFIGURATION_H
#include "android_global.h"
#include "androidconstants.h"
#include "androidconfigurations.h"
#include <projectexplorer/runconfiguration.h>
+6 -5
View File
@@ -34,15 +34,16 @@
#include "androidconstants.h"
#include "javacompletionassistprovider.h"
#include <texteditor/textdocument.h>
#include <texteditor/texteditor.h>
#include <utils/uncommentselection.h>
#include <coreplugin/editormanager/ieditorfactory.h>
#include <texteditor/normalindenter.h>
#include <texteditor/textdocument.h>
#include <texteditor/texteditoractionhandler.h>
#include <texteditor/texteditorconstants.h>
#include <texteditor/normalindenter.h>
#include <texteditor/texteditor.h>
#include <extensionsystem/pluginmanager.h>
#include <utils/fileutils.h>
#include <utils/uncommentselection.h>
#include <QFileInfo>
+1
View File
@@ -48,6 +48,7 @@
#include <coreplugin/id.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
#include <coreplugin/documentmanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/locator/commandlocator.h>
@@ -57,6 +57,7 @@
#include <QDir>
#include <QFileInfo>
#include <QFutureWatcher>
#include <QMenu>
#include <QPlainTextEdit>
#include <QProcess>
#include <QScrollBar>
+11 -11
View File
@@ -267,19 +267,19 @@ public:
bool open(QString *errorString, const QString &fileName, quint64 offset = 0) {
QFile file(fileName);
quint64 size = static_cast<quint64>(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<quint64>(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;
@@ -36,6 +36,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <projectexplorer/projectexplorer.h>
@@ -42,6 +42,7 @@
#include <coreplugin/progressmanager/progressmanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/idocument.h>
#include <texteditor/texteditor.h>
#include <QThread>
@@ -35,15 +35,17 @@
#include "cmakesettingspage.h"
#include "cmaketoolmanager.h"
#include <utils/synchronousprocess.h>
#include <coreplugin/icore.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/actionmanager/actioncontainer.h>
#include <projectexplorer/projecttree.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projecttree.h>
#include <utils/synchronousprocess.h>
#include <QAction>
#include <QDateTime>
using namespace CMakeProjectManager::Internal;
@@ -32,6 +32,7 @@
#include "actionmanager.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/icontext.h>
#include <coreplugin/id.h>
#include <utils/hostosinfo.h>
@@ -48,6 +48,8 @@ QT_END_NAMESPACE
namespace Core {
class ActionContainer;
class Command;
class Context;
namespace Internal {
class CorePlugin;
@@ -29,8 +29,10 @@
****************************************************************************/
#include "commandbutton.h"
#include "actionmanager.h"
#include "command.h"
#include "../id.h"
#include <coreplugin/actionmanager/actionmanager.h>
#include <utils/proxyaction.h>
using namespace Core;
@@ -33,8 +33,6 @@
#include <coreplugin/dialogs/ioptionspage.h>
#include <QObject>
QT_BEGIN_NAMESPACE
class QLineEdit;
class QTreeWidget;
@@ -33,14 +33,11 @@
#include "core_global.h"
#include "generatedfile.h"
#include "featureprovider.h"
#include <coreplugin/iwizardfactory.h>
#include <extensionsystem/iplugin.h>
#include <QSharedDataPointer>
#include <QList>
#include <QVariantMap>
QT_BEGIN_NAMESPACE
class QIcon;
+1
View File
@@ -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"
+1
View File
@@ -31,6 +31,7 @@
#include "designmode.h"
#include <coreplugin/icore.h>
#include <coreplugin/idocument.h>
#include <coreplugin/modemanager.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/coreconstants.h>
@@ -35,6 +35,7 @@
#include <QCheckBox>
#include <QGroupBox>
#include <QIcon>
#include <QLabel>
#include <QPushButton>
@@ -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);
}
@@ -33,10 +33,14 @@
#include <coreplugin/id.h>
#include <QIcon>
#include <QObject>
#include <QStringList>
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<IOptionsPage *> pages() const = 0;
virtual bool matches(const QString & /* searchKeyWord*/) const = 0;
@@ -36,6 +36,7 @@
#include <QDialog>
#include <QIcon>
#include <QList>
#include <QVariantMap>
QT_BEGIN_NAMESPACE
class QAbstractProxyModel;
@@ -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);
@@ -32,6 +32,8 @@
#include <coreplugin/fileiconprovider.h>
#include <coreplugin/idocument.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <QDir>
@@ -37,6 +37,7 @@
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
#include <QAbstractItemModel>
#include <QDir>
#include <QIcon>
#include <QMimeData>
@@ -36,9 +36,10 @@
#include <utils/fileutils.h>
#include <QAbstractItemModel>
QT_FORWARD_DECLARE_CLASS(QIcon)
QT_BEGIN_NAMESPACE
class QAbstractItemModel;
class QIcon;
QT_END_NAMESPACE
namespace Core {
@@ -35,6 +35,7 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/icontext.h>
#include <coreplugin/idocument.h>
#include <coreplugin/icore.h>
#include <utils/qtcassert.h>
@@ -40,6 +40,7 @@
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/dialogs/openwithdialog.h>
#include <coreplugin/dialogs/readonlyfilesdialog.h>
@@ -68,6 +69,7 @@
#include <utils/hostosinfo.h>
#include <utils/macroexpander.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/mimetypes/mimetype.h>
#include <utils/qtcassert.h>
#include <QClipboard>
@@ -35,18 +35,14 @@
#include "documentmodel.h"
#include <coreplugin/id.h>
#include <coreplugin/idocument.h> // enumerations
#include <utils/mimetypes/mimetype.h>
#include <QList>
#include <QWidget>
#include <QMenu>
#include <functional>
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
QT_FORWARD_DECLARE_CLASS(QMenu)
namespace Utils { class MimeType; }
namespace Core {
@@ -50,6 +50,7 @@
#include <QHBoxLayout>
#include <QLabel>
#include <QMenu>
#include <QMouseEvent>
#include <QPainter>
#include <QStackedWidget>
@@ -31,7 +31,11 @@
#ifndef IEDITORFACTORY_H
#define IEDITORFACTORY_H
#include <coreplugin/idocumentfactory.h>
#include <coreplugin/core_global.h>
#include <coreplugin/id.h>
#include <QObject>
#include <QStringList>
namespace Core {

Some files were not shown because too many files have changed in this diff Show More