Merge remote-tracking branch 'origin/4.10'
Change-Id: I1193e94353c14492a9e7f093fbcd3fa53f83e390
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 20 KiB |
BIN
doc/images/qtquick-designer-color-picker.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
doc/images/qtquick-designer-gradient-picker.png
Normal file
After Width: | Height: | Size: 29 KiB |
@@ -174,7 +174,7 @@
|
||||
|
||||
\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
|
||||
most Linux distributions, the GDB builds shipped with the system
|
||||
are sufficient.
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator documentation.
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/*!
|
||||
\contentspage index.html
|
||||
\previouspage creator-building-running.html
|
||||
\previouspage creator-live-preview-devices.html
|
||||
\page creator-building-targets.html
|
||||
\nextpage creator-running-targets.html
|
||||
|
||||
|
@@ -461,6 +461,9 @@
|
||||
For an example of defining your own style and using it in the Design mode, see
|
||||
\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.
|
||||
|
||||
The \QC project wizards create Qt Quick applications that use Qt Quick
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Copyright (C) 2019 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the Qt Creator documentation.
|
||||
@@ -69,9 +69,6 @@
|
||||
To set the visibility of the item, select \uicontrol Edit >
|
||||
\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
|
||||
\key {F1}.
|
||||
|
||||
@@ -126,6 +123,39 @@
|
||||
\li The type is explicitly set to hidden.
|
||||
\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
|
||||
|
||||
To support translators, mark each text item that should be translated.
|
||||
|
@@ -124,7 +124,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.9",
|
||||
"QtQuickWindowVersion": "2.9",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2"
|
||||
}
|
||||
},
|
||||
@@ -133,7 +133,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.8",
|
||||
"QtQuickWindowVersion": "2.8",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
|
||||
}
|
||||
},
|
||||
@@ -142,7 +142,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.7",
|
||||
"QtQuickWindowVersion": "2.7",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
|
||||
}
|
||||
},
|
||||
@@ -151,8 +151,8 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.6",
|
||||
"QtQuickWindowVersion": "2.6",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.0"
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.Enterprise.VirtualKeyboard 2.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@@ -3,7 +3,6 @@
|
||||
<file>main.qml</file>
|
||||
<file>Page1Form.ui.qml</file>
|
||||
<file>Page2Form.ui.qml</file>
|
||||
<file>main.qml</file>
|
||||
<file>qtquickcontrols2.conf</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@@ -84,7 +84,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.9",
|
||||
"QtQuickWindowVersion": "2.9",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.2"
|
||||
}
|
||||
},
|
||||
@@ -93,7 +93,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.8",
|
||||
"QtQuickWindowVersion": "2.8",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
|
||||
}
|
||||
},
|
||||
@@ -102,7 +102,7 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.7",
|
||||
"QtQuickWindowVersion": "2.7",
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.1"
|
||||
}
|
||||
},
|
||||
@@ -111,8 +111,8 @@
|
||||
"value":
|
||||
{
|
||||
"QtQuickVersion": "2.6",
|
||||
"QtQuickWindowVersion": "2.6",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.VirtualKeyboard 2.0"
|
||||
"QtQuickWindowVersion": "2.2",
|
||||
"QtQuickVirtualKeyboardImport": "QtQuick.Enterprise.VirtualKeyboard 2.0"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@@ -120,15 +120,15 @@ static inline QString toHtml(const QString &t)
|
||||
|
||||
static void displayHelpText(const QString &t)
|
||||
{
|
||||
if (Utils::HostOsInfo::isWindowsHost())
|
||||
QMessageBox::information(0, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), toHtml(t));
|
||||
if (Utils::HostOsInfo::isWindowsHost() && qApp)
|
||||
QMessageBox::information(nullptr, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), toHtml(t));
|
||||
else
|
||||
qWarning("%s", qPrintable(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);
|
||||
else
|
||||
qCritical("%s", qPrintable(t));
|
||||
@@ -246,7 +246,7 @@ static inline QStringList getPluginPaths()
|
||||
static void setupInstallSettings(QString &installSettingspath)
|
||||
{
|
||||
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)));
|
||||
installSettingspath.clear();
|
||||
}
|
||||
|
3
src/libs/3rdparty/sqlite/sqlite.pri
vendored
@@ -1,7 +1,6 @@
|
||||
INCLUDEPATH *= $$PWD
|
||||
|
||||
HEADERS += $$PWD/okapi_bm25.h \
|
||||
$$PWD/sqlite3.h \
|
||||
HEADERS += $$PWD/sqlite3.h \
|
||||
$$PWD/sqlite3ext.h
|
||||
|
||||
SOURCES += $$PWD/sqlite3.c
|
||||
|
7
src/libs/3rdparty/xdg/README
vendored
Normal 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
@@ -35,8 +35,6 @@
|
||||
#include <QThread>
|
||||
#include <QDebug>
|
||||
|
||||
#include "okapi_bm25.h"
|
||||
|
||||
#include "sqlite3.h"
|
||||
|
||||
namespace Sqlite {
|
||||
@@ -221,9 +219,6 @@ void DatabaseBackend::registerBusyHandler()
|
||||
|
||||
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)
|
||||
|
@@ -784,28 +784,15 @@ void MimeXMLProvider::ensureLoaded()
|
||||
{
|
||||
if (!m_loaded /*|| shouldCheck()*/) {
|
||||
m_loaded = true;
|
||||
// bool fdoXmlFound = false;
|
||||
QStringList allFiles;
|
||||
QStringList allFiles = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation,
|
||||
QStringLiteral("mime/packages/freedesktop.org.xml"),
|
||||
QStandardPaths::LocateFile);
|
||||
|
||||
// const QStringList packageDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime/packages"), QStandardPaths::LocateDirectory);
|
||||
// //qDebug() << "packageDirs=" << packageDirs;
|
||||
// for (const QString &packageDir : packageDirs) {
|
||||
// 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";
|
||||
if (allFiles.isEmpty()) {
|
||||
// System freedsktop.org.xml file not found, use our bundled copy
|
||||
const char freedesktopOrgXml[] = ":/utils/mimetypes/freedesktop.org.xml";
|
||||
allFiles.prepend(QLatin1String(freedesktopOrgXml));
|
||||
// }
|
||||
}
|
||||
|
||||
m_nameMimeTypeMap.clear();
|
||||
m_aliases.clear();
|
||||
|
@@ -223,6 +223,7 @@
|
||||
<file>images/toggleprogressdetails@2x.png</file>
|
||||
<file>images/unknownfile.png</file>
|
||||
<file>images/dir.png</file>
|
||||
<file alias="mimetypes/freedesktop.org.xml" compression-algorithm="best">../3rdparty/xdg/freedesktop.org.xml</file>
|
||||
</qresource>
|
||||
<qresource prefix="/codemodel">
|
||||
<file>images/enum.png</file>
|
||||
|
@@ -110,9 +110,9 @@ void ResourceHandler::updateResourcesHelper(bool updateProjectResources)
|
||||
if (fileNode) {
|
||||
// We do not want qbs groups or qmake .pri files here, as they contain only a subset
|
||||
// of the relevant files.
|
||||
do
|
||||
projectNode = fileNode->parentProjectNode();
|
||||
while (projectNode && !projectNode->isProduct());
|
||||
while (projectNode && !projectNode->isProduct())
|
||||
projectNode = projectNode->parentProjectNode();
|
||||
}
|
||||
if (!projectNode)
|
||||
projectNode = project->rootProjectNode();
|
||||
|
@@ -70,7 +70,7 @@ public:
|
||||
static QString msgNoMakeCommand();
|
||||
static Task makeCommandMissingTask();
|
||||
|
||||
bool isJobCountSupported() const;
|
||||
virtual bool isJobCountSupported() const;
|
||||
int jobCount() const;
|
||||
void setJobCount(int count);
|
||||
bool jobCountOverridesMakeflags() const;
|
||||
|
@@ -148,7 +148,9 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
|
||||
static QIcon warnIcon = Utils::Icons::WARNING.icon();
|
||||
static QIcon emptyIcon = Utils::Icons::EMPTY16.icon();
|
||||
if (project) {
|
||||
if (project->isParsing())
|
||||
if (project->needsConfiguration())
|
||||
result = warnIcon;
|
||||
else if (project->isParsing())
|
||||
result = emptyIcon;
|
||||
else if (!project->activeTarget()
|
||||
|| !project->projectIssues(project->activeTarget()->kit()).isEmpty())
|
||||
@@ -180,7 +182,7 @@ QVariant FlatModel::data(const QModelIndex &index, int role) const
|
||||
break;
|
||||
}
|
||||
case Project::isParsingRole: {
|
||||
result = project ? project->isParsing() : false;
|
||||
result = project ? project->isParsing() && !project->needsConfiguration() : false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -367,6 +367,10 @@ void SessionManager::setStartupProject(Project *startupProject)
|
||||
return;
|
||||
|
||||
d->m_startupProject = startupProject;
|
||||
if (d->m_startupProject && d->m_startupProject->needsConfiguration()) {
|
||||
ModeManager::activateMode(Constants::MODE_SESSION);
|
||||
ModeManager::setFocusToCurrentMode();
|
||||
}
|
||||
emit m_instance->startupProjectChanged(startupProject);
|
||||
}
|
||||
|
||||
|
@@ -48,6 +48,7 @@ private:
|
||||
bool init() override;
|
||||
void finish(bool success) override;
|
||||
void stdError(const QString &line) override;
|
||||
bool isJobCountSupported() const override { return false; }
|
||||
|
||||
Utils::FilePath installRoot() const;
|
||||
bool cleanInstallRoot() const;
|
||||
|
@@ -2,7 +2,6 @@ INCLUDEPATH += $$PWD
|
||||
|
||||
HEADERS += \
|
||||
$$PWD/clangrefactoringbackend_global.h \
|
||||
$$PWD/filestatuspreprocessorcallbacks.h \
|
||||
$$PWD/sourcerangefilter.h \
|
||||
$$PWD/symbolindexer.h \
|
||||
$$PWD/symbolentry.h \
|
||||
@@ -14,10 +13,8 @@ HEADERS += \
|
||||
$$PWD/symbolindexinginterface.h \
|
||||
$$PWD/collectmacrospreprocessorcallbacks.h \
|
||||
$$PWD/projectpartentry.h \
|
||||
$$PWD/symbolsvisitorbase.h \
|
||||
$$PWD/usedmacro.h \
|
||||
$$PWD/sourcedependency.h \
|
||||
$$PWD/indexdataconsumer.h \
|
||||
$$PWD/sourcesmanager.h \
|
||||
$$PWD/symbolindexertaskqueue.h \
|
||||
$$PWD/symbolindexertaskqueueinterface.h \
|
||||
@@ -35,6 +32,7 @@ SOURCES += \
|
||||
$$PWD/collectsymbolsaction.cpp \
|
||||
$$PWD/collectmacrossourcefilecallbacks.cpp \
|
||||
$$PWD/symbolscollector.cpp \
|
||||
$$PWD/filestatuspreprocessorcallbacks.cpp \
|
||||
$$PWD/clangquerygatherer.cpp \
|
||||
$$PWD/symbolindexing.cpp \
|
||||
$$PWD/indexdataconsumer.cpp
|
||||
@@ -51,10 +49,12 @@ HEADERS += \
|
||||
$$PWD/collectsymbolsaction.h \
|
||||
$$PWD/collectmacrossourcefilecallbacks.h \
|
||||
$$PWD/symbolscollector.h \
|
||||
$$PWD/symbolsvisitorbase.h \
|
||||
$$PWD/indexdataconsumer.h \
|
||||
$$PWD/filestatuspreprocessorcallbacks.h \
|
||||
$$PWD/clangquerygatherer.h
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
$$PWD/filestatuspreprocessorcallbacks.cpp \
|
||||
$$PWD/sourcerangefilter.cpp \
|
||||
$$PWD/symbolindexer.cpp
|
||||
|
@@ -143,6 +143,9 @@ void tst_Ssh::errorHandling_data()
|
||||
|
||||
void tst_Ssh::errorHandling()
|
||||
{
|
||||
if (SshSettings::sshFilePath().isEmpty())
|
||||
QSKIP("No ssh found in PATH - skipping this test.");
|
||||
|
||||
QFETCH(QString, host);
|
||||
QFETCH(quint16, port);
|
||||
QFETCH(SshConnectionParameters::AuthenticationType, authType);
|
||||
|
@@ -160,7 +160,7 @@
|
||||
: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_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::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'}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
GOOGLEBENCHMARK_DIR = $$(GOOGLEBENCHMARK_DIR)
|
||||
|
||||
exists($$GOOGLEBENCHMARK_DIR) {
|
||||
!isEmpty(GOOGLEBENCHMARK_DIR):exists($$GOOGLEBENCHMARK_DIR) {
|
||||
INCLUDEPATH += $$GOOGLEBENCHMARK_DIR/include
|
||||
|
||||
DEFINES += HAVE_STD_REGEX WITH_BENCHMARKS
|
||||
|
@@ -24,9 +24,6 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtGlobal>
|
||||
#include <clang-c/Index.h>
|
||||
|
||||
#include <clangbackend_global.h>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
# define DISABLED_ON_WINDOWS(x) DISABLED_##x
|
||||
|
@@ -23,9 +23,17 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "gtest-creator-printing.h"
|
||||
|
||||
#ifdef CLANG_UNIT_TESTS
|
||||
#include <clang/Basic/SourceLocation.h>
|
||||
#include <clang/Basic/SourceManager.h>
|
||||
|
||||
#include <clangdocumentsuspenderresumer.h>
|
||||
#include <clangreferencescollector.h>
|
||||
#include <fulltokeninfo.h>
|
||||
#include <tokenprocessor.h>
|
||||
|
||||
#endif
|
||||
|
||||
#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
|
||||
|
@@ -27,6 +27,8 @@
|
||||
|
||||
#include <iosfwd>
|
||||
|
||||
#include <gtest/gtest-printers.h>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class StringRef;
|
||||
@@ -48,3 +50,17 @@ namespace TestGlobal {
|
||||
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
|
||||
|
@@ -35,15 +35,12 @@
|
||||
#include <builddependency.h>
|
||||
#include <clangcodemodelclientmessages.h>
|
||||
#include <clangcodemodelservermessages.h>
|
||||
#include <clangdocumentsuspenderresumer.h>
|
||||
#include <clangpathwatcher.h>
|
||||
#include <clangrefactoringmessages.h>
|
||||
#include <clangreferencescollector.h>
|
||||
#include <filepath.h>
|
||||
#include <filepathcaching.h>
|
||||
#include <filepathview.h>
|
||||
#include <filestatus.h>
|
||||
#include <fulltokeninfo.h>
|
||||
#include <includesearchpath.h>
|
||||
#include <nativefilepath.h>
|
||||
#include <pchpaths.h>
|
||||
@@ -58,16 +55,12 @@
|
||||
#include <symbol.h>
|
||||
#include <symbolentry.h>
|
||||
#include <symbolindexertaskqueue.h>
|
||||
#include <tokenprocessor.h>
|
||||
#include <toolchainargumentscache.h>
|
||||
#include <tooltipinfo.h>
|
||||
#include <usedmacro.h>
|
||||
|
||||
#include <cpptools/usages.h>
|
||||
|
||||
#include <projectexplorer/projectmacro.h>
|
||||
#include <projectexplorer/headerpath.h>
|
||||
|
||||
#include <coreplugin/find/searchresultitem.h>
|
||||
#include <coreplugin/locator/ilocatorfilter.h>
|
||||
|
||||
@@ -924,35 +917,6 @@ std::ostream &operator<<(std::ostream &os, const DocumentVisibilityChangedMessag
|
||||
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)
|
||||
{
|
||||
return out << "(" << filePath.path() << ", " << filePath.slashIndex() << ")";
|
||||
@@ -1078,30 +1042,6 @@ std::ostream &operator<<(std::ostream &out, const RemoveGeneratedFilesMessage &m
|
||||
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)
|
||||
{
|
||||
return out << "(" << task.filePathId << ", " << task.projectPartId << ")";
|
||||
|
@@ -99,10 +99,8 @@ SOURCES += \
|
||||
nativefilepath-test.cpp \
|
||||
nativefilepathview-test.cpp \
|
||||
mocktimer.cpp \
|
||||
tokenprocessor-test.cpp \
|
||||
projectpartartefact-test.cpp \
|
||||
filestatuscache-test.cpp \
|
||||
highlightingresultreporter-test.cpp \
|
||||
precompiledheaderstorage-test.cpp \
|
||||
generatedfiles-test.cpp \
|
||||
sourcesmanager-test.cpp \
|
||||
@@ -165,6 +163,7 @@ SOURCES += \
|
||||
diagnosticset-test.cpp \
|
||||
diagnostic-test.cpp \
|
||||
fixit-test.cpp \
|
||||
highlightingresultreporter-test.cpp \
|
||||
senddocumenttracker-test.cpp \
|
||||
skippedsourceranges-test.cpp \
|
||||
sourcelocation-test.cpp \
|
||||
@@ -176,6 +175,7 @@ SOURCES += \
|
||||
sqlitetable-test.cpp \
|
||||
sqlstatementbuilder-test.cpp \
|
||||
token-test.cpp \
|
||||
tokenprocessor-test.cpp \
|
||||
translationunitupdater-test.cpp \
|
||||
unsavedfiles-test.cpp \
|
||||
unsavedfile-test.cpp \
|
||||
@@ -207,7 +207,7 @@ SOURCES += \
|
||||
SOURCES += clangformat-test.cpp
|
||||
}
|
||||
|
||||
exists($$GOOGLEBENCHMARK_DIR) {
|
||||
!isEmpty(GOOGLEBENCHMARK_DIR):exists($$GOOGLEBENCHMARK_DIR) {
|
||||
SOURCES += \
|
||||
smallstring-benchmark.cpp
|
||||
}
|
||||
|