diff options
author | Eike Ziller <eike.ziller@qt.io> | 2020-09-07 13:19:38 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2020-09-07 13:19:38 +0200 |
commit | df97d40a0d03d4073f45437e9ca60a8bbd70852b (patch) | |
tree | 4bbf9838a1c8a7567e2787861c7abc35cdbd24a3 /src | |
parent | f1806621f8ac12b690b94a1e93274ff0c4d37bc8 (diff) | |
parent | b0cad9e9c7aad209756fb2409520c0d048614dd9 (diff) |
Merge remote-tracking branch 'origin/4.13' into master
Change-Id: Iab93dc48b4a38fb4c698481bbf02a5a65e08206b
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/utils/outputformatter.cpp | 14 | ||||
-rw-r--r-- | src/libs/utils/outputformatter.h | 5 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpphighlighter.cpp | 2 | ||||
-rw-r--r-- | src/plugins/git/githighlighters.cpp | 10 | ||||
-rw-r--r-- | src/plugins/git/githighlighters.h | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/linuxiccparser.cpp | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/outputparser_test.cpp | 5 | ||||
-rw-r--r-- | src/plugins/projectexplorer/task.cpp | 11 | ||||
-rw-r--r-- | src/plugins/projectexplorer/task.h | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/taskhub.cpp | 4 | ||||
-rw-r--r-- | src/plugins/projectexplorer/taskmodel.cpp | 2 | ||||
-rw-r--r-- | src/plugins/qmldesigner/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/plugins/qmldesigner/qmldesignerplugin.qbs | 3 | ||||
-rw-r--r-- | src/plugins/qtsupport/qtoutputformatter.cpp | 1 |
14 files changed, 56 insertions, 13 deletions
diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp index 34c76d3ce6..49cb31d3e5 100644 --- a/src/libs/utils/outputformatter.cpp +++ b/src/libs/utils/outputformatter.cpp @@ -216,6 +216,7 @@ public: PostPrintAction postPrintAction; bool boldFontEnabled = true; bool prependCarriageReturn = false; + bool prependLineFeed = false; }; OutputFormatter::OutputFormatter() : d(new Private) { } @@ -436,6 +437,7 @@ void OutputFormatter::append(const QString &text, const QTextCharFormat &format) d->cursor.movePosition(QTextCursor::StartOfBlock, QTextCursor::KeepAnchor); startPos = crPos + 1; } + flushTrailingNewline(); if (startPos < text.count()) d->cursor.insertText(text.mid(startPos), format); } @@ -495,6 +497,14 @@ void OutputFormatter::flushIncompleteLine() d->incompleteLine.first.clear(); } +void Utils::OutputFormatter::flushTrailingNewline() +{ + if (d->prependLineFeed) { + d->cursor.insertText("\n"); + d->prependLineFeed = false; + } +} + void OutputFormatter::dumpIncompleteLine(const QString &line, OutputFormat format) { if (line.isEmpty()) @@ -560,6 +570,7 @@ void OutputFormatter::flush() { if (!d->incompleteLine.first.isEmpty()) flushIncompleteLine(); + flushTrailingNewline(); d->escapeCodeHandler.endFormatScope(); for (OutputLineParser * const p : qAsConst(d->lineParsers)) p->flush(); @@ -641,7 +652,8 @@ void OutputFormatter::appendMessage(const QString &text, OutputFormat format) dumpIncompleteLine(out.mid(startPos), format); break; } - doAppendMessage(out.mid(startPos, eolPos - startPos + 1), format); + doAppendMessage(out.mid(startPos, eolPos - startPos), format); + d->prependLineFeed = true; startPos = eolPos + 1; } } diff --git a/src/libs/utils/outputformatter.h b/src/libs/utils/outputformatter.h index 6c8539d3ed..f9bcb145c3 100644 --- a/src/libs/utils/outputformatter.h +++ b/src/libs/utils/outputformatter.h @@ -83,8 +83,8 @@ public: void setDemoteErrorsToWarnings(bool demote); bool demoteErrorsToWarnings() const; - // line contains at most one line feed character, and if it does occur, it's the last character. - // Either way, the input is to be considered "complete" for parsing purposes. + // Represents a single line, without a trailing line feed character. + // The input is to be considered "complete" for parsing purposes. virtual Result handleLine(const QString &line, OutputFormat format) = 0; virtual bool handleLink(const QString &href) { Q_UNUSED(href); return false; } @@ -183,6 +183,7 @@ private: void append(const QString &text, const QTextCharFormat &format); void initFormats(); void flushIncompleteLine(); + void flushTrailingNewline(); void dumpIncompleteLine(const QString &line, OutputFormat format); void clearLastLine(); QList<FormattedText> parseAnsi(const QString &text, const QTextCharFormat &format); diff --git a/src/plugins/cppeditor/cpphighlighter.cpp b/src/plugins/cppeditor/cpphighlighter.cpp index 3b7827d211..51aa17eed4 100644 --- a/src/plugins/cppeditor/cpphighlighter.cpp +++ b/src/plugins/cppeditor/cpphighlighter.cpp @@ -396,6 +396,8 @@ bool CppHighlighter::highlightRawStringLiteral(const QStringView &_text, const T if (text.at(tk.utf16charsEnd() - 1) != '"') return false; const int endDelimiterOffset = tk.utf16charsEnd() - 1 - delimiter.length(); + if (endDelimiterOffset <= delimiterOffset) + return false; if (text.mid(endDelimiterOffset, delimiter.length()) != delimiter) return false; if (text.at(endDelimiterOffset - 1) != ')') diff --git a/src/plugins/git/githighlighters.cpp b/src/plugins/git/githighlighters.cpp index 4f88183391..37c9af8699 100644 --- a/src/plugins/git/githighlighters.cpp +++ b/src/plugins/git/githighlighters.cpp @@ -104,6 +104,11 @@ static TextEditor::TextStyle styleForFormat(int format) case Format_Squash: return C_ENUMERATION; case Format_Fixup: return C_NUMBER; case Format_Exec: return C_LABEL; + case Format_Break: return C_PREPROCESSOR; + case Format_Drop: return C_REMOVED_LINE; + case Format_Label: return C_LABEL; + case Format_Reset: return C_LABEL; + case Format_Merge: return C_LABEL; case Format_Count: QTC_CHECK(false); // should never get here return C_TEXT; @@ -125,6 +130,11 @@ GitRebaseHighlighter::GitRebaseHighlighter(QTextDocument *parent) : m_actions << RebaseAction("^(s|squash)\\b", Format_Squash); m_actions << RebaseAction("^(f|fixup)\\b", Format_Fixup); m_actions << RebaseAction("^(x|exec)\\b", Format_Exec); + m_actions << RebaseAction("^(b|break)\\b", Format_Break); + m_actions << RebaseAction("^(d|drop)\\b", Format_Drop); + m_actions << RebaseAction("^(l|label)\\b", Format_Label); + m_actions << RebaseAction("^(t|reset)\\b", Format_Reset); + m_actions << RebaseAction("^(m|merge)\\b", Format_Merge); } void GitRebaseHighlighter::highlightBlock(const QString &text) diff --git a/src/plugins/git/githighlighters.h b/src/plugins/git/githighlighters.h index b1c8c78f89..004e8b72cd 100644 --- a/src/plugins/git/githighlighters.h +++ b/src/plugins/git/githighlighters.h @@ -42,6 +42,11 @@ enum Format { Format_Squash, Format_Fixup, Format_Exec, + Format_Break, + Format_Drop, + Format_Label, + Format_Reset, + Format_Merge, Format_Count }; diff --git a/src/plugins/projectexplorer/linuxiccparser.cpp b/src/plugins/projectexplorer/linuxiccparser.cpp index 82799fecd6..41d46a3522 100644 --- a/src/plugins/projectexplorer/linuxiccparser.cpp +++ b/src/plugins/projectexplorer/linuxiccparser.cpp @@ -57,7 +57,7 @@ LinuxIccParser::LinuxIccParser() : // ".pch/Qt5Core.pchi.cpp": creating precompiled header file ".pch/Qt5Core.pchi" // "animation/qabstractanimation.cpp": using precompiled header file ".pch/Qt5Core.pchi" - m_pchInfoLine.setPattern(QLatin1String("^\".*?\": (creating|using) precompiled header file \".*?\"\n$")); + m_pchInfoLine.setPattern(QLatin1String("^\".*?\": (creating|using) precompiled header file \".*?\"$")); QTC_CHECK(m_pchInfoLine.isValid()); } diff --git a/src/plugins/projectexplorer/outputparser_test.cpp b/src/plugins/projectexplorer/outputparser_test.cpp index d3a162d422..e599e30686 100644 --- a/src/plugins/projectexplorer/outputparser_test.cpp +++ b/src/plugins/projectexplorer/outputparser_test.cpp @@ -115,11 +115,10 @@ TestTerminator::TestTerminator(OutputParserTester *t) : Utils::OutputLineParser::Result TestTerminator::handleLine(const QString &line, Utils::OutputFormat type) { - QTC_CHECK(line.endsWith('\n')); if (type == Utils::StdOutFormat) - m_tester->m_receivedStdOutChildLine.append(line); + m_tester->m_receivedStdOutChildLine.append(line + '\n'); else - m_tester->m_receivedStdErrChildLine.append(line); + m_tester->m_receivedStdErrChildLine.append(line + '\n'); return Status::Done; } diff --git a/src/plugins/projectexplorer/task.cpp b/src/plugins/projectexplorer/task.cpp index 045e461d43..3ca1b969da 100644 --- a/src/plugins/projectexplorer/task.cpp +++ b/src/plugins/projectexplorer/task.cpp @@ -67,7 +67,7 @@ Task::Task(TaskType type_, const QString &description, const QIcon &icon, Options options) : taskId(s_nextId), type(type_), options(options), summary(description), line(line_), movedLine(line_), category(category_), - icon(icon.isNull() ? taskTypeIcon(type_) : icon) + m_icon(icon) { ++s_nextId; setFile(file_); @@ -108,7 +108,7 @@ void Task::clear() line = -1; movedLine = -1; category = Utils::Id(); - icon = QIcon(); + m_icon = QIcon(); formats.clear(); m_mark.clear(); } @@ -133,6 +133,13 @@ QString Task::description() const return desc; } +QIcon Task::icon() const +{ + if (m_icon.isNull()) + m_icon = taskTypeIcon(type); + return m_icon; +} + // // functions // diff --git a/src/plugins/projectexplorer/task.h b/src/plugins/projectexplorer/task.h index 9c99117977..61aa31e4fc 100644 --- a/src/plugins/projectexplorer/task.h +++ b/src/plugins/projectexplorer/task.h @@ -74,6 +74,7 @@ public: void clear(); void setFile(const Utils::FilePath &file); QString description() const; + QIcon icon() const; unsigned int taskId = 0; TaskType type = Unknown; @@ -85,7 +86,6 @@ public: int line = -1; int movedLine = -1; // contains a line number if the line was moved in the editor Utils::Id category; - QIcon icon; // Having a container of QTextLayout::FormatRange in Task isn't that great // It would be cleaner to split up the text into @@ -101,6 +101,7 @@ private: void setMark(TextEditor::TextMark *mark); QSharedPointer<TextEditor::TextMark> m_mark; + mutable QIcon m_icon; static unsigned int s_nextId; friend class TaskHub; diff --git a/src/plugins/projectexplorer/taskhub.cpp b/src/plugins/projectexplorer/taskhub.cpp index d2528d955c..856959ed0a 100644 --- a/src/plugins/projectexplorer/taskhub.cpp +++ b/src/plugins/projectexplorer/taskhub.cpp @@ -78,8 +78,8 @@ public: } else { setToolTip(task.description()); } - setIcon(task.icon); - setVisible(!task.icon.isNull()); + setIcon(task.icon()); + setVisible(!task.icon().isNull()); } bool isClickable() const override; diff --git a/src/plugins/projectexplorer/taskmodel.cpp b/src/plugins/projectexplorer/taskmodel.cpp index 7dc9f66b53..a52f2ff3ac 100644 --- a/src/plugins/projectexplorer/taskmodel.cpp +++ b/src/plugins/projectexplorer/taskmodel.cpp @@ -255,7 +255,7 @@ QVariant TaskModel::data(const QModelIndex &index, int role) const else if (role == TaskModel::Category) return m_tasks.at(index.row()).category.uniqueIdentifier(); else if (role == TaskModel::Icon) - return m_tasks.at(index.row()).icon; + return m_tasks.at(index.row()).icon(); else if (role == TaskModel::Task_t) return QVariant::fromValue(task(index)); return QVariant(); diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index 5c6479653d..6c0e25c37a 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -334,6 +334,8 @@ extend_qtc_plugin(QmlDesigner navigatortreeview.cpp navigatortreeview.h navigatorview.cpp navigatorview.h navigatorwidget.cpp navigatorwidget.h + choosetexturepropertydialog.cpp choosetexturepropertydialog.h + choosetexturepropertydialog.ui ) extend_qtc_plugin(QmlDesigner diff --git a/src/plugins/qmldesigner/qmldesignerplugin.qbs b/src/plugins/qmldesigner/qmldesignerplugin.qbs index 5ccf34efef..40a26e7392 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.qbs +++ b/src/plugins/qmldesigner/qmldesignerplugin.qbs @@ -610,6 +610,9 @@ Project { "navigator/navigatorview.h", "navigator/navigatorwidget.cpp", "navigator/navigatorwidget.h", + "navigator/choosetexturepropertydialog.cpp", + "navigator/choosetexturepropertydialog.h", + "navigator/choosetexturepropertydialog.ui", "propertyeditor/aligndistribute.cpp", "propertyeditor/aligndistribute.h", "propertyeditor/designerpropertymap.cpp", diff --git a/src/plugins/qtsupport/qtoutputformatter.cpp b/src/plugins/qtsupport/qtoutputformatter.cpp index 8975328dd0..01036dbaaa 100644 --- a/src/plugins/qtsupport/qtoutputformatter.cpp +++ b/src/plugins/qtsupport/qtoutputformatter.cpp @@ -511,6 +511,7 @@ void QtSupportPlugin::testQtOutputFormatter_appendMixedAssertAndAnsi() "Blue\n"; formatter.appendMessage(inputText, StdOutFormat); + formatter.flush(); QCOMPARE(edit.toPlainText(), outputText); |