Merge remote-tracking branch 'origin/4.15'
Change-Id: Ide723c45dcd7e39e4e54432f2dc265c5d53c38eb
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 41 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 10 KiB |
BIN
doc/qtcreator/images/qtquick-designer-properties-font.png
Normal file
After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 21 KiB |
@@ -556,11 +556,14 @@
|
||||
default, they do not snap to step size, but you can set them to snap to it
|
||||
either while being dragged or after being released.
|
||||
|
||||
You can set slider orientation to horizontal or vertical in the
|
||||
\uicontrol Orientation field.
|
||||
|
||||
Select the \uicontrol Live check box to provide live updates of the value
|
||||
properties.
|
||||
|
||||
You can set slider orientation to horizontal or vertical in the
|
||||
\uicontrol Orientation field.
|
||||
Modify the \uicontrol {Touch drag threshold} to determine the threshold at
|
||||
which a touch drag event will be initiated.
|
||||
|
||||
For more information, watch the following video:
|
||||
|
||||
|
@@ -78,7 +78,8 @@
|
||||
size, emphasis, aligment, and spacing of the text. Specify the font
|
||||
size in either points or pixels in the \uicontrol Size field.
|
||||
|
||||
\image qtquick-designer-text-properties.png "Text component properties"
|
||||
\image qtquick-designer-text-properties.png "Text component general properties"
|
||||
\image qtquick-designer-properties-font.png "Text component font properties"
|
||||
|
||||
To display custom fonts in the list of available fonts in the
|
||||
\uicontrol Font field, you need to first add them to \l Library:
|
||||
|
@@ -98,12 +98,14 @@
|
||||
When editing states, you can easily see which values are explicitly set in
|
||||
the current state and which values are derived from the base state.
|
||||
|
||||
The following images illustrate this. In the base state, the \uicontrol Size
|
||||
(1) and \uicontrol Colors (2) values are explicitly set and highlighted.
|
||||
The following images illustrate this. In the base state, the
|
||||
\uicontrol Position (1) and \uicontrol Size (2) values are explicitly set
|
||||
and highlighted.
|
||||
|
||||
\image qmldesigner-properties-explicit-base.png "Explicitly set properties"
|
||||
|
||||
In \uicontrol State1, only the color (1) is explicitly set and highlighted.
|
||||
In \uicontrol State1, only \uicontrol Position is explicitly set and
|
||||
highlighted.
|
||||
|
||||
\image qmldesigner-properties-explicit-state1.png "Explicitly set properties"
|
||||
|
||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 38 KiB |
@@ -44,9 +44,14 @@
|
||||
|
||||
Logic helpers are invisible components that you can use in connection with
|
||||
controls, such as a \l {slider-control}{Slider} or \l {Check Box}.
|
||||
To use a logic helper, drag-and-drop it from \uicontrol Library >
|
||||
\uicontrol {Studio Logic Helper} to \uicontrol Navigator. The following
|
||||
sections describe the different types of logic helpers in more detail.
|
||||
To use a logic helper, drag-and-drop it from \l Library >
|
||||
\uicontrol Components > \uicontrol {Qt Quick Studio Logic Helper} to
|
||||
\l Navigator. If you cannot find the logic helpers in \uicontrol Library,
|
||||
you need to add the \uicontrol {Qt Quick Studio Logic Helper} module to
|
||||
your project, as described in \l {Adding and Removing Modules}.
|
||||
|
||||
The following sections describe the different types of logic helpers in more
|
||||
detail.
|
||||
|
||||
\section1 Boolean Helpers
|
||||
|
||||
|
@@ -110,12 +110,14 @@ def is_debug(fpath):
|
||||
# bootstrap exception
|
||||
if coredebug.search(fpath):
|
||||
return True
|
||||
try:
|
||||
# try to use dumpbin (MSVC) or objdump (MinGW), otherwise ship all .dlls
|
||||
if which('dumpbin'):
|
||||
output = subprocess.check_output(['dumpbin', '/imports', fpath])
|
||||
return coredebug.search(output.decode(encoding)) != None
|
||||
except OSError:
|
||||
# dumpbin is not there, maybe MinGW ? Just ship all .dlls.
|
||||
elif which('objdump'):
|
||||
output = subprocess.check_output(['objdump', '-p', fpath])
|
||||
else:
|
||||
return debug_build
|
||||
return coredebug.search(output.decode(encoding)) != None
|
||||
|
||||
def is_ignored_windows_file(use_debug, basepath, filename):
|
||||
ignore_patterns = ['.lib', '.pdb', '.exp', '.ilk']
|
||||
|
2
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
@@ -39,7 +39,7 @@
|
||||
|
||||
#define CPLUSPLUS_NO_DEBUG_RULE
|
||||
#define MAX_EXPRESSION_DEPTH 1000
|
||||
#define MAX_STATEMENT_DEPTH 100
|
||||
#define MAX_STATEMENT_DEPTH 300
|
||||
|
||||
using namespace CPlusPlus;
|
||||
|
||||
|
@@ -82,6 +82,16 @@ public:
|
||||
return !(first == second);
|
||||
}
|
||||
|
||||
friend bool operator==(const FileNameEntry &first, const FileNameView &second)
|
||||
{
|
||||
return first.directoryId == second.directoryId && first.fileName == second.fileName;
|
||||
}
|
||||
|
||||
friend bool operator!=(const FileNameEntry &first, const FileNameView &second)
|
||||
{
|
||||
return !(first == second);
|
||||
}
|
||||
|
||||
operator FileNameView() const { return {fileName, directoryId}; }
|
||||
|
||||
operator Utils::SmallString() && { return std::move(fileName); }
|
||||
|
@@ -526,6 +526,7 @@ void OutputWindow::reset()
|
||||
flush();
|
||||
d->queueTimer.stop();
|
||||
d->formatter.reset();
|
||||
d->scrollToBottom = true;
|
||||
if (!d->queuedOutput.isEmpty()) {
|
||||
d->queuedOutput.clear();
|
||||
d->formatter.appendMessage(tr("[Discarding excessive amount of pending output.]\n"),
|
||||
|
@@ -82,8 +82,8 @@ class PeripheralRegisterValue final
|
||||
{
|
||||
public:
|
||||
PeripheralRegisterValue(quint64 v = 0) : v(v) {}
|
||||
bool operator==(const PeripheralRegisterValue &other) { return v == other.v; }
|
||||
bool operator!=(const PeripheralRegisterValue &other) { return !operator==(other); }
|
||||
bool operator==(const PeripheralRegisterValue &other) const { return v == other.v; }
|
||||
bool operator!=(const PeripheralRegisterValue &other) const { return !operator==(other); }
|
||||
|
||||
bool fromString(const QString &string, PeripheralRegisterFormat fmt);
|
||||
QString toString(int size, PeripheralRegisterFormat fmt) const;
|
||||
|
@@ -251,7 +251,14 @@ GenericBuildSystem::GenericBuildSystem(Target *target)
|
||||
connect(&m_deployFileWatcher, &FileSystemWatcher::fileChanged,
|
||||
this, &GenericBuildSystem::updateDeploymentData);
|
||||
|
||||
connect(target, &Target::activeBuildConfigurationChanged, this, [this] { refresh(Everything); });
|
||||
connect(target, &Target::activeBuildConfigurationChanged, this, [this, target] {
|
||||
if (target == project()->activeTarget())
|
||||
refresh(Everything);
|
||||
});
|
||||
connect(project(), &Project::activeTargetChanged, this, [this, target] {
|
||||
if (target == project()->activeTarget())
|
||||
refresh(Everything);
|
||||
});
|
||||
}
|
||||
|
||||
GenericBuildSystem::~GenericBuildSystem()
|
||||
@@ -553,6 +560,8 @@ void GenericBuildSystem::refreshCppCodeModel()
|
||||
{
|
||||
if (!m_cppCodeModelUpdater)
|
||||
return;
|
||||
if (target() != project()->activeTarget())
|
||||
return;
|
||||
QtSupport::CppKitInfo kitInfo(kit());
|
||||
QTC_ASSERT(kitInfo.isValid(), return);
|
||||
|
||||
|
@@ -240,10 +240,11 @@ void KitManager::restoreKits()
|
||||
kitsToCheck.clear();
|
||||
|
||||
// Remove replacement kits for which the original kit has turned up again.
|
||||
erase(resultList, [&resultList](const std::unique_ptr<Kit> &k) {
|
||||
return k->isReplacementKit() && contains(resultList, [&k](const std::unique_ptr<Kit> &other) {
|
||||
return other->id() == k->id() && other != k;
|
||||
});
|
||||
Utils::erase(resultList, [&resultList](const std::unique_ptr<Kit> &k) {
|
||||
return k->isReplacementKit()
|
||||
&& contains(resultList, [&k](const std::unique_ptr<Kit> &other) {
|
||||
return other->id() == k->id() && other != k;
|
||||
});
|
||||
});
|
||||
|
||||
static const auto kitMatchesAbiList = [](const Kit *kit, const Abis &abis) {
|
||||
|
@@ -1630,7 +1630,7 @@ bool JsonArray::operator==(const JsonArray &other) const
|
||||
return !other.a->length;
|
||||
if (!other.a)
|
||||
return !a->length;
|
||||
if (a->length != other.a->length)
|
||||
if (a->length.val != other.a->length.val)
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < (int)a->length; ++i) {
|
||||
@@ -2594,7 +2594,7 @@ bool JsonObject::operator==(const JsonObject &other) const
|
||||
return !other.o->length;
|
||||
if (!other.o)
|
||||
return !o->length;
|
||||
if (o->length != other.o->length)
|
||||
if (o->length.val != other.o->length.val)
|
||||
return false;
|
||||
|
||||
for (uint32_t i = 0; i < o->length; ++i) {
|
||||
|
@@ -71,12 +71,12 @@ public:
|
||||
return DiagnosticSetIterator(cxTranslationUnit, cxDiagnosticSet, oldIndex);
|
||||
}
|
||||
|
||||
bool operator==(const DiagnosticSetIterator &other)
|
||||
bool operator==(const DiagnosticSetIterator &other) const
|
||||
{
|
||||
return index == other.index && cxDiagnosticSet == other.cxDiagnosticSet;
|
||||
}
|
||||
|
||||
bool operator!=(const DiagnosticSetIterator &other)
|
||||
bool operator!=(const DiagnosticSetIterator &other) const
|
||||
{
|
||||
return index != other.index || cxDiagnosticSet != other.cxDiagnosticSet;
|
||||
}
|
||||
|