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
|
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.
|
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
|
Select the \uicontrol Live check box to provide live updates of the value
|
||||||
properties.
|
properties.
|
||||||
|
|
||||||
You can set slider orientation to horizontal or vertical in the
|
Modify the \uicontrol {Touch drag threshold} to determine the threshold at
|
||||||
\uicontrol Orientation field.
|
which a touch drag event will be initiated.
|
||||||
|
|
||||||
For more information, watch the following video:
|
For more information, watch the following video:
|
||||||
|
|
||||||
|
@@ -78,7 +78,8 @@
|
|||||||
size, emphasis, aligment, and spacing of the text. Specify the font
|
size, emphasis, aligment, and spacing of the text. Specify the font
|
||||||
size in either points or pixels in the \uicontrol Size field.
|
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
|
To display custom fonts in the list of available fonts in the
|
||||||
\uicontrol Font field, you need to first add them to \l Library:
|
\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
|
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 current state and which values are derived from the base state.
|
||||||
|
|
||||||
The following images illustrate this. In the base state, the \uicontrol Size
|
The following images illustrate this. In the base state, the
|
||||||
(1) and \uicontrol Colors (2) values are explicitly set and highlighted.
|
\uicontrol Position (1) and \uicontrol Size (2) values are explicitly set
|
||||||
|
and highlighted.
|
||||||
|
|
||||||
\image qmldesigner-properties-explicit-base.png "Explicitly set properties"
|
\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"
|
\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
|
Logic helpers are invisible components that you can use in connection with
|
||||||
controls, such as a \l {slider-control}{Slider} or \l {Check Box}.
|
controls, such as a \l {slider-control}{Slider} or \l {Check Box}.
|
||||||
To use a logic helper, drag-and-drop it from \uicontrol Library >
|
To use a logic helper, drag-and-drop it from \l Library >
|
||||||
\uicontrol {Studio Logic Helper} to \uicontrol Navigator. The following
|
\uicontrol Components > \uicontrol {Qt Quick Studio Logic Helper} to
|
||||||
sections describe the different types of logic helpers in more detail.
|
\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
|
\section1 Boolean Helpers
|
||||||
|
|
||||||
|
@@ -110,12 +110,14 @@ def is_debug(fpath):
|
|||||||
# bootstrap exception
|
# bootstrap exception
|
||||||
if coredebug.search(fpath):
|
if coredebug.search(fpath):
|
||||||
return True
|
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])
|
output = subprocess.check_output(['dumpbin', '/imports', fpath])
|
||||||
return coredebug.search(output.decode(encoding)) != None
|
elif which('objdump'):
|
||||||
except OSError:
|
output = subprocess.check_output(['objdump', '-p', fpath])
|
||||||
# dumpbin is not there, maybe MinGW ? Just ship all .dlls.
|
else:
|
||||||
return debug_build
|
return debug_build
|
||||||
|
return coredebug.search(output.decode(encoding)) != None
|
||||||
|
|
||||||
def is_ignored_windows_file(use_debug, basepath, filename):
|
def is_ignored_windows_file(use_debug, basepath, filename):
|
||||||
ignore_patterns = ['.lib', '.pdb', '.exp', '.ilk']
|
ignore_patterns = ['.lib', '.pdb', '.exp', '.ilk']
|
||||||
|
2
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
#define CPLUSPLUS_NO_DEBUG_RULE
|
#define CPLUSPLUS_NO_DEBUG_RULE
|
||||||
#define MAX_EXPRESSION_DEPTH 1000
|
#define MAX_EXPRESSION_DEPTH 1000
|
||||||
#define MAX_STATEMENT_DEPTH 100
|
#define MAX_STATEMENT_DEPTH 300
|
||||||
|
|
||||||
using namespace CPlusPlus;
|
using namespace CPlusPlus;
|
||||||
|
|
||||||
|
@@ -82,6 +82,16 @@ public:
|
|||||||
return !(first == second);
|
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 FileNameView() const { return {fileName, directoryId}; }
|
||||||
|
|
||||||
operator Utils::SmallString() && { return std::move(fileName); }
|
operator Utils::SmallString() && { return std::move(fileName); }
|
||||||
|
@@ -526,6 +526,7 @@ void OutputWindow::reset()
|
|||||||
flush();
|
flush();
|
||||||
d->queueTimer.stop();
|
d->queueTimer.stop();
|
||||||
d->formatter.reset();
|
d->formatter.reset();
|
||||||
|
d->scrollToBottom = true;
|
||||||
if (!d->queuedOutput.isEmpty()) {
|
if (!d->queuedOutput.isEmpty()) {
|
||||||
d->queuedOutput.clear();
|
d->queuedOutput.clear();
|
||||||
d->formatter.appendMessage(tr("[Discarding excessive amount of pending output.]\n"),
|
d->formatter.appendMessage(tr("[Discarding excessive amount of pending output.]\n"),
|
||||||
|
@@ -82,8 +82,8 @@ class PeripheralRegisterValue final
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PeripheralRegisterValue(quint64 v = 0) : v(v) {}
|
PeripheralRegisterValue(quint64 v = 0) : v(v) {}
|
||||||
bool operator==(const PeripheralRegisterValue &other) { return v == other.v; }
|
bool operator==(const PeripheralRegisterValue &other) const { return v == other.v; }
|
||||||
bool operator!=(const PeripheralRegisterValue &other) { return !operator==(other); }
|
bool operator!=(const PeripheralRegisterValue &other) const { return !operator==(other); }
|
||||||
|
|
||||||
bool fromString(const QString &string, PeripheralRegisterFormat fmt);
|
bool fromString(const QString &string, PeripheralRegisterFormat fmt);
|
||||||
QString toString(int size, PeripheralRegisterFormat fmt) const;
|
QString toString(int size, PeripheralRegisterFormat fmt) const;
|
||||||
|
@@ -251,7 +251,14 @@ GenericBuildSystem::GenericBuildSystem(Target *target)
|
|||||||
connect(&m_deployFileWatcher, &FileSystemWatcher::fileChanged,
|
connect(&m_deployFileWatcher, &FileSystemWatcher::fileChanged,
|
||||||
this, &GenericBuildSystem::updateDeploymentData);
|
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()
|
GenericBuildSystem::~GenericBuildSystem()
|
||||||
@@ -553,6 +560,8 @@ void GenericBuildSystem::refreshCppCodeModel()
|
|||||||
{
|
{
|
||||||
if (!m_cppCodeModelUpdater)
|
if (!m_cppCodeModelUpdater)
|
||||||
return;
|
return;
|
||||||
|
if (target() != project()->activeTarget())
|
||||||
|
return;
|
||||||
QtSupport::CppKitInfo kitInfo(kit());
|
QtSupport::CppKitInfo kitInfo(kit());
|
||||||
QTC_ASSERT(kitInfo.isValid(), return);
|
QTC_ASSERT(kitInfo.isValid(), return);
|
||||||
|
|
||||||
|
@@ -240,8 +240,9 @@ void KitManager::restoreKits()
|
|||||||
kitsToCheck.clear();
|
kitsToCheck.clear();
|
||||||
|
|
||||||
// Remove replacement kits for which the original kit has turned up again.
|
// Remove replacement kits for which the original kit has turned up again.
|
||||||
erase(resultList, [&resultList](const std::unique_ptr<Kit> &k) {
|
Utils::erase(resultList, [&resultList](const std::unique_ptr<Kit> &k) {
|
||||||
return k->isReplacementKit() && contains(resultList, [&k](const std::unique_ptr<Kit> &other) {
|
return k->isReplacementKit()
|
||||||
|
&& contains(resultList, [&k](const std::unique_ptr<Kit> &other) {
|
||||||
return other->id() == k->id() && other != k;
|
return other->id() == k->id() && other != k;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -1630,7 +1630,7 @@ bool JsonArray::operator==(const JsonArray &other) const
|
|||||||
return !other.a->length;
|
return !other.a->length;
|
||||||
if (!other.a)
|
if (!other.a)
|
||||||
return !a->length;
|
return !a->length;
|
||||||
if (a->length != other.a->length)
|
if (a->length.val != other.a->length.val)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (int i = 0; i < (int)a->length; ++i) {
|
for (int i = 0; i < (int)a->length; ++i) {
|
||||||
@@ -2594,7 +2594,7 @@ bool JsonObject::operator==(const JsonObject &other) const
|
|||||||
return !other.o->length;
|
return !other.o->length;
|
||||||
if (!other.o)
|
if (!other.o)
|
||||||
return !o->length;
|
return !o->length;
|
||||||
if (o->length != other.o->length)
|
if (o->length.val != other.o->length.val)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
for (uint32_t i = 0; i < o->length; ++i) {
|
for (uint32_t i = 0; i < o->length; ++i) {
|
||||||
|
@@ -71,12 +71,12 @@ public:
|
|||||||
return DiagnosticSetIterator(cxTranslationUnit, cxDiagnosticSet, oldIndex);
|
return DiagnosticSetIterator(cxTranslationUnit, cxDiagnosticSet, oldIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool operator==(const DiagnosticSetIterator &other)
|
bool operator==(const DiagnosticSetIterator &other) const
|
||||||
{
|
{
|
||||||
return index == other.index && cxDiagnosticSet == other.cxDiagnosticSet;
|
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;
|
return index != other.index || cxDiagnosticSet != other.cxDiagnosticSet;
|
||||||
}
|
}
|
||||||
|