Merge remote-tracking branch 'origin/4.10'

Change-Id: I1193e94353c14492a9e7f093fbcd3fa53f83e390
This commit is contained in:
Eike Ziller
2019-07-18 07:30:29 +02:00
40 changed files with 41401 additions and 127 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -174,7 +174,7 @@
\section2 GDB \section2 GDB
On Windows, use the Python-enabled GDB versions that is bundled On Windows, use the Python-enabled GDB version that is bundled
with the Qt package or comes with recent versions of MinGW. On with the Qt package or comes with recent versions of MinGW. On
most Linux distributions, the GDB builds shipped with the system most Linux distributions, the GDB builds shipped with the system
are sufficient. are sufficient.

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2018 The Qt Company Ltd. ** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -31,7 +31,7 @@
/*! /*!
\contentspage index.html \contentspage index.html
\previouspage creator-building-running.html \previouspage creator-live-preview-devices.html
\page creator-building-targets.html \page creator-building-targets.html
\nextpage creator-running-targets.html \nextpage creator-running-targets.html

View File

@@ -461,6 +461,9 @@
For an example of defining your own style and using it in the Design mode, see For an example of defining your own style and using it in the Design mode, see
\l {Qt Quick Controls 2 - Flat Style}. \l {Qt Quick Controls 2 - Flat Style}.
For more information about how to customize a particular control, see
\l{Customization Reference}.
Qt Quick Controls 2 work in conjunction with Qt Quick and Qt Quick Layouts. Qt Quick Controls 2 work in conjunction with Qt Quick and Qt Quick Layouts.
The \QC project wizards create Qt Quick applications that use Qt Quick The \QC project wizards create Qt Quick applications that use Qt Quick

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2018 The Qt Company Ltd. ** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/ ** Contact: https://www.qt.io/licensing/
** **
** This file is part of the Qt Creator documentation. ** This file is part of the Qt Creator documentation.
@@ -69,9 +69,6 @@
To set the visibility of the item, select \uicontrol Edit > To set the visibility of the item, select \uicontrol Edit >
\uicontrol Visibility in the context menu. \uicontrol Visibility in the context menu.
To specify the color of the selected item in the \uicontrol {Select Color}
dialog, select \uicontrol {Edit Color} in the context menu.
For more information on the properties available for an item, press For more information on the properties available for an item, press
\key {F1}. \key {F1}.
@@ -126,6 +123,39 @@
\li The type is explicitly set to hidden. \li The type is explicitly set to hidden.
\endtable \endtable
\section1 Picking Colors
To specify the color of the selected item in the color picker view (1),
select the color picker icon (2) in the \uicontrol Properties pane.
\image qtquick-designer-color-picker.png "Color Picker view"
You can use either a solid color (3) or a gradient (4). You can select the
gradient in the \uicontrol {Gradient Picker} (5).
The \uicontrol Original field displays the original color of the item,
whereas the \uicontrol New field displays the current color. The
\uicontrol Recent field displays the colors that you have last selected.
\section1 Picking Gradients
The \uicontrol {Gradient Picker} enables you to specify
\l{https://webgradients.com/}{WebGradients} for QML types
that support \l QGradient.
To open the \uicontrol {Gradient Picker}, select the
\uicontrol {Gradient Picker Dialog} icon in the \uicontrol Properties view.
\image qtquick-designer-gradient-picker.png "Gradient Picker dialog"
To apply a gradient on the selected item, select \uicontrol Apply.
To save a gradient in the \uicontrol {User Presets} tab, select
\uicontrol Save.
By default, a linear gradient (4) is used, but you can select another
supported gradient type in the \uicontrol Properties view.
\section1 Marking Text Items for Translation \section1 Marking Text Items for Translation
To support translators, mark each text item that should be translated. To support translators, mark each text item that should be translated.

View File

@@ -124,7 +124,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.9", "QtQuickVersion": "2.9",
"QtQuickWindowVersion": "2.9", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2"
} }
}, },
@@ -133,7 +133,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.8", "QtQuickVersion": "2.8",
"QtQuickWindowVersion": "2.8", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
} }
}, },
@@ -142,7 +142,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.7", "QtQuickVersion": "2.7",
"QtQuickWindowVersion": "2.7", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
} }
}, },
@@ -151,8 +151,8 @@
"value": "value":
{ {
"QtQuickVersion": "2.6", "QtQuickVersion": "2.6",
"QtQuickWindowVersion": "2.6", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.0" "QtQuickVirtualKeyboardImport": "QtQuick.Enterprise.VirtualKeyboard 2.0"
} }
} }
] ]

View File

@@ -3,7 +3,6 @@
<file>main.qml</file> <file>main.qml</file>
<file>Page1Form.ui.qml</file> <file>Page1Form.ui.qml</file>
<file>Page2Form.ui.qml</file> <file>Page2Form.ui.qml</file>
<file>main.qml</file>
<file>qtquickcontrols2.conf</file> <file>qtquickcontrols2.conf</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -84,7 +84,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.9", "QtQuickVersion": "2.9",
"QtQuickWindowVersion": "2.9", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2"
} }
}, },
@@ -93,7 +93,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.8", "QtQuickVersion": "2.8",
"QtQuickWindowVersion": "2.8", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
} }
}, },
@@ -102,7 +102,7 @@
"value": "value":
{ {
"QtQuickVersion": "2.7", "QtQuickVersion": "2.7",
"QtQuickWindowVersion": "2.7", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1" "QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
} }
}, },
@@ -111,8 +111,8 @@
"value": "value":
{ {
"QtQuickVersion": "2.6", "QtQuickVersion": "2.6",
"QtQuickWindowVersion": "2.6", "QtQuickWindowVersion": "2.2",
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.0" "QtQuickVirtualKeyboardImport": "QtQuick.Enterprise.VirtualKeyboard 2.0"
} }
} }
] ]

View File

@@ -120,15 +120,15 @@ static inline QString toHtml(const QString &t)
static void displayHelpText(const QString &t) static void displayHelpText(const QString &t)
{ {
if (Utils::HostOsInfo::isWindowsHost()) if (Utils::HostOsInfo::isWindowsHost() && qApp)
QMessageBox::information(0, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), toHtml(t)); QMessageBox::information(nullptr, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), toHtml(t));
else else
qWarning("%s", qPrintable(t)); qWarning("%s", qPrintable(t));
} }
static void displayError(const QString &t) static void displayError(const QString &t)
{ {
if (Utils::HostOsInfo::isWindowsHost()) if (Utils::HostOsInfo::isWindowsHost() && qApp)
QMessageBox::critical(0, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), t); QMessageBox::critical(0, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), t);
else else
qCritical("%s", qPrintable(t)); qCritical("%s", qPrintable(t));
@@ -246,7 +246,7 @@ static inline QStringList getPluginPaths()
static void setupInstallSettings(QString &installSettingspath) static void setupInstallSettings(QString &installSettingspath)
{ {
if (!installSettingspath.isEmpty() && !QFileInfo(installSettingspath).isDir()) { if (!installSettingspath.isEmpty() && !QFileInfo(installSettingspath).isDir()) {
displayHelpText(QString("-installsettingspath needs to be the path where a %1/%2.ini exist.").arg( displayError(QString("-installsettingspath \"%0\" needs to be the path where a %1/%2.ini exist.").arg(installSettingspath,
QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR), QLatin1String(Core::Constants::IDE_CASED_ID))); QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR), QLatin1String(Core::Constants::IDE_CASED_ID)));
installSettingspath.clear(); installSettingspath.clear();
} }

View File

@@ -1,7 +1,6 @@
INCLUDEPATH *= $$PWD INCLUDEPATH *= $$PWD
HEADERS += $$PWD/okapi_bm25.h \ HEADERS += $$PWD/sqlite3.h \
$$PWD/sqlite3.h \
$$PWD/sqlite3ext.h $$PWD/sqlite3ext.h
SOURCES += $$PWD/sqlite3.c SOURCES += $$PWD/sqlite3.c

7
src/libs/3rdparty/xdg/README vendored Normal file
View File

@@ -0,0 +1,7 @@
This contains a copy of freedesktop.org's shared-mime-info base package.
Update instructions:
curl https://people.freedesktop.org/~hadess/shared-mime-info-{VERSION}.tar.xz | \
xzcat | \
tar -xO shared-mime-info-{VERSION}/freedestop.org.xml > freedesktop.org.xml

41233
src/libs/3rdparty/xdg/freedesktop.org.xml vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -35,8 +35,6 @@
#include <QThread> #include <QThread>
#include <QDebug> #include <QDebug>
#include "okapi_bm25.h"
#include "sqlite3.h" #include "sqlite3.h"
namespace Sqlite { namespace Sqlite {
@@ -221,9 +219,6 @@ void DatabaseBackend::registerBusyHandler()
void DatabaseBackend::registerRankingFunction() void DatabaseBackend::registerRankingFunction()
{ {
// sqlite3_create_function_v2(sqliteDatabaseHandle(), "okapi_bm25", -1, SQLITE_ANY, 0, okapi_bm25, 0, 0, 0);
// sqlite3_create_function_v2(sqliteDatabaseHandle(), "okapi_bm25f", -1, SQLITE_UTF8, 0, okapi_bm25f, 0, 0, 0);
// sqlite3_create_function_v2(sqliteDatabaseHandle(), "okapi_bm25f_kb", -1, SQLITE_UTF8, 0, okapi_bm25f_kb, 0, 0, 0);
} }
int DatabaseBackend::busyHandlerCallback(void *, int counter) int DatabaseBackend::busyHandlerCallback(void *, int counter)

View File

@@ -784,28 +784,15 @@ void MimeXMLProvider::ensureLoaded()
{ {
if (!m_loaded /*|| shouldCheck()*/) { if (!m_loaded /*|| shouldCheck()*/) {
m_loaded = true; m_loaded = true;
// bool fdoXmlFound = false; QStringList allFiles = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
QStringList allFiles; QStringLiteral("mime/packages/freedesktop.org.xml"),
QStandardPaths::LocateFile);
// const QStringList packageDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/packages"), QStandardPaths::LocateDirectory); if (allFiles.isEmpty()) {
// //qDebug() << "packageDirs=" << packageDirs; // System freedsktop.org.xml file not found, use our bundled copy
// for (const QString &packageDir : packageDirs) { const char freedesktopOrgXml[] = ":/utils/mimetypes/freedesktop.org.xml";
// QDir dir(packageDir);
// const QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot);
// //qDebug() << static_cast<const void *>(this) << packageDir << files;
// if (!fdoXmlFound)
// fdoXmlFound = files.contains(QLatin1String("freedesktop.org.xml"));
// QStringList::const_iterator endIt(files.constEnd());
// for (QStringList::const_iterator it(files.constBegin()); it != endIt; ++it) {
// allFiles.append(packageDir + QLatin1Char('/') + *it);
// }
// }
// if (!fdoXmlFound) {
// // We could instead install the file as part of installing Qt?
const char freedesktopOrgXml[] = ":/qt-project.org/qmime/packages/freedesktop.org.xml";
allFiles.prepend(QLatin1String(freedesktopOrgXml)); allFiles.prepend(QLatin1String(freedesktopOrgXml));
// } }
m_nameMimeTypeMap.clear(); m_nameMimeTypeMap.clear();
m_aliases.clear(); m_aliases.clear();

View File

@@ -223,6 +223,7 @@
<file>images/toggleprogressdetails@2x.png</file> <file>images/toggleprogressdetails@2x.png</file>
<file>images/unknownfile.png</file> <file>images/unknownfile.png</file>
<file>images/dir.png</file> <file>images/dir.png</file>
<file alias="mimetypes/freedesktop.org.xml" compression-algorithm="best">../3rdparty/xdg/freedesktop.org.xml</file>
</qresource> </qresource>
<qresource prefix="/codemodel"> <qresource prefix="/codemodel">
<file>images/enum.png</file> <file>images/enum.png</file>

View File

@@ -110,9 +110,9 @@ void ResourceHandler::updateResourcesHelper(bool updateProjectResources)
if (fileNode) { if (fileNode) {
// We do not want qbs groups or qmake .pri files here, as they contain only a subset // We do not want qbs groups or qmake .pri files here, as they contain only a subset
// of the relevant files. // of the relevant files.
do
projectNode = fileNode->parentProjectNode(); projectNode = fileNode->parentProjectNode();
while (projectNode && !projectNode->isProduct()); while (projectNode && !projectNode->isProduct())
projectNode = projectNode->parentProjectNode();
} }
if (!projectNode) if (!projectNode)
projectNode = project->rootProjectNode(); projectNode = project->rootProjectNode();

View File

@@ -70,7 +70,7 @@ public:
static QString msgNoMakeCommand(); static QString msgNoMakeCommand();
static Task makeCommandMissingTask(); static Task makeCommandMissingTask();
bool isJobCountSupported() const; virtual bool isJobCountSupported() const;
int jobCount() const; int jobCount() const;
void setJobCount(int count); void setJobCount(int count);
bool jobCountOverridesMakeflags() const; bool jobCountOverridesMakeflags() const;

View File

@@ -148,7 +148,9 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
static QIcon warnIcon = Utils::Icons::WARNING.icon(); static QIcon warnIcon = Utils::Icons::WARNING.icon();
static QIcon emptyIcon = Utils::Icons::EMPTY16.icon(); static QIcon emptyIcon = Utils::Icons::EMPTY16.icon();
if (project) { if (project) {
if (project->isParsing()) if (project->needsConfiguration())
result = warnIcon;
else if (project->isParsing())
result = emptyIcon; result = emptyIcon;
else if (!project->activeTarget() else if (!project->activeTarget()
|| !project->projectIssues(project->activeTarget()->kit()).isEmpty()) || !project->projectIssues(project->activeTarget()->kit()).isEmpty())
@@ -180,7 +182,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
break; break;
} }
case Project::isParsingRole: { case Project::isParsingRole: {
result = project ? project->isParsing() : false; result = project ? project->isParsing() && !project->needsConfiguration() : false;
break; break;
} }
} }

View File

@@ -367,6 +367,10 @@ void SessionManager::setStartupProject(Project *startupProject)
return; return;
d->m_startupProject = startupProject; d->m_startupProject = startupProject;
if (d->m_startupProject && d->m_startupProject->needsConfiguration()) {
ModeManager::activateMode(Constants::MODE_SESSION);
ModeManager::setFocusToCurrentMode();
}
emit m_instance->startupProjectChanged(startupProject); emit m_instance->startupProjectChanged(startupProject);
} }

View File

@@ -48,6 +48,7 @@ private:
bool init() override; bool init() override;
void finish(bool success) override; void finish(bool success) override;
void stdError(const QString &line) override; void stdError(const QString &line) override;
bool isJobCountSupported() const override { return false; }
Utils::FilePath installRoot() const; Utils::FilePath installRoot() const;
bool cleanInstallRoot() const; bool cleanInstallRoot() const;

View File

@@ -2,7 +2,6 @@ INCLUDEPATH += $$PWD
HEADERS += \ HEADERS += \
$$PWD/clangrefactoringbackend_global.h \ $$PWD/clangrefactoringbackend_global.h \
$$PWD/filestatuspreprocessorcallbacks.h \
$$PWD/sourcerangefilter.h \ $$PWD/sourcerangefilter.h \
$$PWD/symbolindexer.h \ $$PWD/symbolindexer.h \
$$PWD/symbolentry.h \ $$PWD/symbolentry.h \
@@ -14,10 +13,8 @@ HEADERS += \
$$PWD/symbolindexinginterface.h \ $$PWD/symbolindexinginterface.h \
$$PWD/collectmacrospreprocessorcallbacks.h \ $$PWD/collectmacrospreprocessorcallbacks.h \
$$PWD/projectpartentry.h \ $$PWD/projectpartentry.h \
$$PWD/symbolsvisitorbase.h \
$$PWD/usedmacro.h \ $$PWD/usedmacro.h \
$$PWD/sourcedependency.h \ $$PWD/sourcedependency.h \
$$PWD/indexdataconsumer.h \
$$PWD/sourcesmanager.h \ $$PWD/sourcesmanager.h \
$$PWD/symbolindexertaskqueue.h \ $$PWD/symbolindexertaskqueue.h \
$$PWD/symbolindexertaskqueueinterface.h \ $$PWD/symbolindexertaskqueueinterface.h \
@@ -35,6 +32,7 @@ SOURCES += \
$$PWD/collectsymbolsaction.cpp \ $$PWD/collectsymbolsaction.cpp \
$$PWD/collectmacrossourcefilecallbacks.cpp \ $$PWD/collectmacrossourcefilecallbacks.cpp \
$$PWD/symbolscollector.cpp \ $$PWD/symbolscollector.cpp \
$$PWD/filestatuspreprocessorcallbacks.cpp \
$$PWD/clangquerygatherer.cpp \ $$PWD/clangquerygatherer.cpp \
$$PWD/symbolindexing.cpp \ $$PWD/symbolindexing.cpp \
$$PWD/indexdataconsumer.cpp $$PWD/indexdataconsumer.cpp
@@ -51,10 +49,12 @@ HEADERS += \
$$PWD/collectsymbolsaction.h \ $$PWD/collectsymbolsaction.h \
$$PWD/collectmacrossourcefilecallbacks.h \ $$PWD/collectmacrossourcefilecallbacks.h \
$$PWD/symbolscollector.h \ $$PWD/symbolscollector.h \
$$PWD/symbolsvisitorbase.h \
$$PWD/indexdataconsumer.h \
$$PWD/filestatuspreprocessorcallbacks.h \
$$PWD/clangquerygatherer.h $$PWD/clangquerygatherer.h
} }
SOURCES += \ SOURCES += \
$$PWD/filestatuspreprocessorcallbacks.cpp \
$$PWD/sourcerangefilter.cpp \ $$PWD/sourcerangefilter.cpp \
$$PWD/symbolindexer.cpp $$PWD/symbolindexer.cpp

View File

@@ -143,6 +143,9 @@ void tst_Ssh::errorHandling_data()
void tst_Ssh::errorHandling() void tst_Ssh::errorHandling()
{ {
if (SshSettings::sshFilePath().isEmpty())
QSKIP("No ssh found in PATH - skipping this test.");
QFETCH(QString, host); QFETCH(QString, host);
QFETCH(quint16, port); QFETCH(quint16, port);
QFETCH(SshConnectionParameters::AuthenticationType, authType); QFETCH(SshConnectionParameters::AuthenticationType, authType);

View File

@@ -160,7 +160,7 @@
:Qt Creator_QmlJSEditor::QmlJSTextEditorWidget {type='QmlJSEditor::Internal::QmlJSEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_QmlJSEditor::QmlJSTextEditorWidget {type='QmlJSEditor::Internal::QmlJSEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
:Qt Creator_SearchResult_Core::Internal::OutputPaneToggleButton {occurrence='2' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_SearchResult_Core::Internal::OutputPaneToggleButton {occurrence='2' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
:Qt Creator_TextEditor::TextEditorWidget {type='TextEditor::TextEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_TextEditor::TextEditorWidget {type='TextEditor::TextEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
:Qt Creator_Utils::BuildDirectoryLineEdit {name='shadowBuildDirEditLineEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_Utils::BuildDirectoryLineEdit {name='LineEdit' type='Utils::FancyLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
:Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'} :Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
:Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'} :Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'}
:QtSupport__Internal__QtVersionManager.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' text?='Qt version *' type='QLabel' unnamed='1' visible='1'} :QtSupport__Internal__QtVersionManager.QLabel {container=':qt_tabwidget_stackedwidget.QtSupport__Internal__QtVersionManager_QtSupport::Internal::QtOptionsPageWidget' text?='Qt version *' type='QLabel' unnamed='1' visible='1'}

View File

@@ -1,6 +1,6 @@
GOOGLEBENCHMARK_DIR = $$(GOOGLEBENCHMARK_DIR) GOOGLEBENCHMARK_DIR = $$(GOOGLEBENCHMARK_DIR)
exists($$GOOGLEBENCHMARK_DIR) { !isEmpty(GOOGLEBENCHMARK_DIR):exists($$GOOGLEBENCHMARK_DIR) {
INCLUDEPATH += $$GOOGLEBENCHMARK_DIR/include INCLUDEPATH += $$GOOGLEBENCHMARK_DIR/include
DEFINES += HAVE_STD_REGEX WITH_BENCHMARKS DEFINES += HAVE_STD_REGEX WITH_BENCHMARKS

View File

@@ -24,9 +24,6 @@
****************************************************************************/ ****************************************************************************/
#include <QtGlobal> #include <QtGlobal>
#include <clang-c/Index.h>
#include <clangbackend_global.h>
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
# define DISABLED_ON_WINDOWS(x) DISABLED_##x # define DISABLED_ON_WINDOWS(x) DISABLED_##x

View File

@@ -23,9 +23,17 @@
** **
****************************************************************************/ ****************************************************************************/
#include "gtest-creator-printing.h"
#ifdef CLANG_UNIT_TESTS #ifdef CLANG_UNIT_TESTS
#include <clang/Basic/SourceLocation.h> #include <clang/Basic/SourceLocation.h>
#include <clang/Basic/SourceManager.h> #include <clang/Basic/SourceManager.h>
#include <clangdocumentsuspenderresumer.h>
#include <clangreferencescollector.h>
#include <fulltokeninfo.h>
#include <tokenprocessor.h>
#endif #endif
#include <gtest/gtest-printers.h> #include <gtest/gtest-printers.h>
@@ -77,3 +85,52 @@ void PrintTo(const SourceRange &sourceRange, ::std::ostream *os)
} }
} }
namespace ClangBackEnd {
std::ostream &operator<<(std::ostream &os, const TokenInfo &tokenInfo)
{
os << "(type: " << tokenInfo.types() << ", "
<< " line: " << tokenInfo.line() << ", "
<< " column: " << tokenInfo.column() << ", "
<< " length: " << tokenInfo.length() << ")";
return os;
}
template<class T>
std::ostream &operator<<(std::ostream &out, const TokenProcessor<T> &tokenInfos)
{
out << "[";
for (const T &entry : tokenInfos)
out << entry;
out << "]";
return out;
}
template std::ostream &operator<<(std::ostream &out, const TokenProcessor<TokenInfo> &tokenInfos);
template std::ostream &operator<<(std::ostream &out, const TokenProcessor<FullTokenInfo> &tokenInfos);
std::ostream &operator<<(std::ostream &out, const SuspendResumeJobsEntry &entry)
{
return out << "(" << entry.document.filePath() << ", " << entry.jobRequestType << ", "
<< entry.preferredTranslationUnit << ")";
}
std::ostream &operator<<(std::ostream &os, const ReferencesResult &value)
{
os << "ReferencesResult(";
os << value.isLocalVariable << ", {";
for (const SourceRangeContainer &r : value.references) {
os << r.start.line << ",";
os << r.start.column << ",";
os << r.end.column - r.start.column << ",";
}
os << "})";
return os;
}
} // namespace ClangBackEnd

View File

@@ -27,6 +27,8 @@
#include <iosfwd> #include <iosfwd>
#include <gtest/gtest-printers.h>
namespace llvm { namespace llvm {
class StringRef; class StringRef;
@@ -48,3 +50,17 @@ namespace TestGlobal {
void setSourceManager(const clang::SourceManager *sourceManager); void setSourceManager(const clang::SourceManager *sourceManager);
} }
namespace ClangBackEnd {
class TokenInfo;
template<typename T>
class TokenProcessor;
class SuspendResumeJobsEntry;
class ReferencesResult;
std::ostream &operator<<(std::ostream &os, const TokenInfo &tokenInfo);
template<class T>
std::ostream &operator<<(std::ostream &out, const TokenProcessor<T> &tokenInfos);
std::ostream &operator<<(std::ostream &out, const SuspendResumeJobsEntry &entry);
std::ostream &operator<<(std::ostream &os, const ReferencesResult &value);
} // namespace ClangBackEnd

View File

@@ -35,15 +35,12 @@
#include <builddependency.h> #include <builddependency.h>
#include <clangcodemodelclientmessages.h> #include <clangcodemodelclientmessages.h>
#include <clangcodemodelservermessages.h> #include <clangcodemodelservermessages.h>
#include <clangdocumentsuspenderresumer.h>
#include <clangpathwatcher.h> #include <clangpathwatcher.h>
#include <clangrefactoringmessages.h> #include <clangrefactoringmessages.h>
#include <clangreferencescollector.h>
#include <filepath.h> #include <filepath.h>
#include <filepathcaching.h> #include <filepathcaching.h>
#include <filepathview.h> #include <filepathview.h>
#include <filestatus.h> #include <filestatus.h>
#include <fulltokeninfo.h>
#include <includesearchpath.h> #include <includesearchpath.h>
#include <nativefilepath.h> #include <nativefilepath.h>
#include <pchpaths.h> #include <pchpaths.h>
@@ -58,16 +55,12 @@
#include <symbol.h> #include <symbol.h>
#include <symbolentry.h> #include <symbolentry.h>
#include <symbolindexertaskqueue.h> #include <symbolindexertaskqueue.h>
#include <tokenprocessor.h>
#include <toolchainargumentscache.h> #include <toolchainargumentscache.h>
#include <tooltipinfo.h> #include <tooltipinfo.h>
#include <usedmacro.h> #include <usedmacro.h>
#include <cpptools/usages.h> #include <cpptools/usages.h>
#include <projectexplorer/projectmacro.h> #include <projectexplorer/projectmacro.h>
#include <projectexplorer/headerpath.h> #include <projectexplorer/headerpath.h>
#include <coreplugin/find/searchresultitem.h> #include <coreplugin/find/searchresultitem.h>
#include <coreplugin/locator/ilocatorfilter.h> #include <coreplugin/locator/ilocatorfilter.h>
@@ -924,35 +917,6 @@ std::ostream &operator<<(std::ostream &os, const DocumentVisibilityChangedMessag
return os; return os;
} }
std::ostream &operator<<(std::ostream &os, const TokenInfo &tokenInfo)
{
os << "(type: " << tokenInfo.types() << ", "
<< " line: " << tokenInfo.line() << ", "
<< " column: " << tokenInfo.column() << ", "
<< " length: " << tokenInfo.length()
<< ")";
return os;
}
template<class T>
std::ostream &operator<<(std::ostream &out, const TokenProcessor<T> &tokenInfos)
{
out << "[";
for (const T &entry : tokenInfos)
out << entry;
out << "]";
return out;
}
template
std::ostream &operator<<(std::ostream &out, const TokenProcessor<TokenInfo> &tokenInfos);
template
std::ostream &operator<<(std::ostream &out, const TokenProcessor<FullTokenInfo> &tokenInfos);
std::ostream &operator<<(std::ostream &out, const FilePath &filePath) std::ostream &operator<<(std::ostream &out, const FilePath &filePath)
{ {
return out << "(" << filePath.path() << ", " << filePath.slashIndex() << ")"; return out << "(" << filePath.path() << ", " << filePath.slashIndex() << ")";
@@ -1078,30 +1042,6 @@ std::ostream &operator<<(std::ostream &out, const RemoveGeneratedFilesMessage &m
return out << "(" << message.generatedFiles << ")"; return out << "(" << message.generatedFiles << ")";
} }
std::ostream &operator<<(std::ostream &out, const SuspendResumeJobsEntry &entry)
{
return out << "("
<< entry.document.filePath() << ", "
<< entry.jobRequestType << ", "
<< entry.preferredTranslationUnit
<< ")";
}
std::ostream &operator<<(std::ostream &os, const ReferencesResult &value)
{
os << "ReferencesResult(";
os << value.isLocalVariable << ", {";
for (const SourceRangeContainer &r : value.references) {
os << r.start.line << ",";
os << r.start.column << ",";
EXPECT_THAT(r.start.line, testing::Eq(r.end.line));
os << r.end.column - r.start.column << ",";
}
os << "})";
return os;
}
std::ostream &operator<<(std::ostream &out, const SymbolIndexerTask &task) std::ostream &operator<<(std::ostream &out, const SymbolIndexerTask &task)
{ {
return out << "(" << task.filePathId << ", " << task.projectPartId << ")"; return out << "(" << task.filePathId << ", " << task.projectPartId << ")";

View File

@@ -99,10 +99,8 @@ SOURCES += \
nativefilepath-test.cpp \ nativefilepath-test.cpp \
nativefilepathview-test.cpp \ nativefilepathview-test.cpp \
mocktimer.cpp \ mocktimer.cpp \
tokenprocessor-test.cpp \
projectpartartefact-test.cpp \ projectpartartefact-test.cpp \
filestatuscache-test.cpp \ filestatuscache-test.cpp \
highlightingresultreporter-test.cpp \
precompiledheaderstorage-test.cpp \ precompiledheaderstorage-test.cpp \
generatedfiles-test.cpp \ generatedfiles-test.cpp \
sourcesmanager-test.cpp \ sourcesmanager-test.cpp \
@@ -165,6 +163,7 @@ SOURCES += \
diagnosticset-test.cpp \ diagnosticset-test.cpp \
diagnostic-test.cpp \ diagnostic-test.cpp \
fixit-test.cpp \ fixit-test.cpp \
highlightingresultreporter-test.cpp \
senddocumenttracker-test.cpp \ senddocumenttracker-test.cpp \
skippedsourceranges-test.cpp \ skippedsourceranges-test.cpp \
sourcelocation-test.cpp \ sourcelocation-test.cpp \
@@ -176,6 +175,7 @@ SOURCES += \
sqlitetable-test.cpp \ sqlitetable-test.cpp \
sqlstatementbuilder-test.cpp \ sqlstatementbuilder-test.cpp \
token-test.cpp \ token-test.cpp \
tokenprocessor-test.cpp \
translationunitupdater-test.cpp \ translationunitupdater-test.cpp \
unsavedfiles-test.cpp \ unsavedfiles-test.cpp \
unsavedfile-test.cpp \ unsavedfile-test.cpp \
@@ -207,7 +207,7 @@ SOURCES += \
SOURCES += clangformat-test.cpp SOURCES += clangformat-test.cpp
} }
exists($$GOOGLEBENCHMARK_DIR) { !isEmpty(GOOGLEBENCHMARK_DIR):exists($$GOOGLEBENCHMARK_DIR) {
SOURCES += \ SOURCES += \
smallstring-benchmark.cpp smallstring-benchmark.cpp
} }