diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2018-11-24 02:45:30 +0100 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2018-12-10 18:54:57 +0000 |
commit | 5242f581737b6821d469dd629f69bd1882f7e36f (patch) | |
tree | 622d08a9603936ae0b247a9a39e200e6a5ba99dd | |
parent | 00ec6dfb5d7e156cb87d0836f841ff9aef963618 (diff) |
QmlJSEditor: Modernize
modernize-*
Change-Id: I4dceb82c3904069a0d9848b2af61122d9282cb36
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
36 files changed, 298 insertions, 333 deletions
diff --git a/src/plugins/qmljseditor/qmlexpressionundercursor.cpp b/src/plugins/qmljseditor/qmlexpressionundercursor.cpp index 0d20a1a01d..d8014e9597 100644 --- a/src/plugins/qmljseditor/qmlexpressionundercursor.cpp +++ b/src/plugins/qmljseditor/qmlexpressionundercursor.cpp @@ -43,11 +43,8 @@ class ExpressionUnderCursor Scanner scanner; public: - ExpressionUnderCursor() - : start(0), end(0) - {} - - int start, end; + int start = 0; + int end = 0; int startState(const QTextBlock &block) const { @@ -117,12 +114,12 @@ using namespace QmlJSEditor; using namespace QmlJSEditor::Internal; QmlExpressionUnderCursor::QmlExpressionUnderCursor() - : _expressionNode(0), _expressionOffset(0), _expressionLength(0) + : _expressionNode(nullptr), _expressionOffset(0), _expressionLength(0) {} ExpressionNode *QmlExpressionUnderCursor::operator()(const QTextCursor &cursor) { - _expressionNode = 0; + _expressionNode = nullptr; _expressionOffset = -1; _expressionLength = -1; diff --git a/src/plugins/qmljseditor/qmljsautocompleter.cpp b/src/plugins/qmljseditor/qmljsautocompleter.cpp index e50c268d2c..281c80d860 100644 --- a/src/plugins/qmljseditor/qmljsautocompleter.cpp +++ b/src/plugins/qmljseditor/qmljsautocompleter.cpp @@ -133,11 +133,9 @@ static bool isCompleteStringLiteral(const QStringRef &text) return false; } -AutoCompleter::AutoCompleter() -{} +AutoCompleter::AutoCompleter() = default; -AutoCompleter::~AutoCompleter() -{} +AutoCompleter::~AutoCompleter() = default; bool AutoCompleter::contextAllowsAutoBrackets(const QTextCursor &cursor, const QString &textToInsert) const diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp index 2ecaa50de8..4d7eb0c1ed 100644 --- a/src/plugins/qmljseditor/qmljscompletionassist.cpp +++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp @@ -137,7 +137,7 @@ public: if (const FunctionValue *func = value->asFunctionValue()) { // constructors usually also have other interesting members, // don't consider them pure functions and complete the '()' - if (!func->lookupMember(QLatin1String("prototype"), 0, 0, false)) + if (!func->lookupMember(QLatin1String("prototype"), nullptr, nullptr, false)) data = QVariant::fromValue(CompleteFunctionCall(func->namedArgumentCount() || func->isVariadic())); } addCompletion(completions, name, icon, order, data); @@ -184,21 +184,16 @@ public: class ProcessProperties: private MemberProcessor { QSet<const ObjectValue *> _processed; - bool _globalCompletion; - bool _enumerateGeneratedSlots; - bool _enumerateSlots; + bool _globalCompletion = false; + bool _enumerateGeneratedSlots = false; + bool _enumerateSlots = true; const ScopeChain *_scopeChain; - const ObjectValue *_currentObject; - PropertyProcessor *_propertyProcessor; + const ObjectValue *_currentObject = nullptr; + PropertyProcessor *_propertyProcessor = nullptr; public: ProcessProperties(const ScopeChain *scopeChain) - : _globalCompletion(false), - _enumerateGeneratedSlots(false), - _enumerateSlots(true), - _scopeChain(scopeChain), - _currentObject(0), - _propertyProcessor(0) + : _scopeChain(scopeChain) { } @@ -294,7 +289,7 @@ private: _currentObject = object; object->processMembers(this); - _currentObject = 0; + _currentObject = nullptr; } }; @@ -303,16 +298,16 @@ const Value *getPropertyValue(const ObjectValue *object, const ContextPtr &context) { if (propertyNames.isEmpty() || !object) - return 0; + return nullptr; const Value *value = object; foreach (const QString &name, propertyNames) { if (const ObjectValue *objectValue = value->asObjectValue()) { value = objectValue->lookupMember(name, context); if (!value) - return 0; + return nullptr; } else { - return 0; + return nullptr; } } return value; @@ -486,8 +481,7 @@ int FunctionHintProposalModel::activeArgument(const QString &prefix) const int parcount = 0; Scanner tokenize; const QList<Token> tokens = tokenize(prefix); - for (int i = 0; i < tokens.count(); ++i) { - const Token &tk = tokens.at(i); + for (auto &tk : tokens) { if (tk.is(Token::LeftParenthesis)) ++parcount; else if (tk.is(Token::RightParenthesis)) @@ -533,8 +527,7 @@ QmlJSCompletionAssistProcessor::QmlJSCompletionAssistProcessor() , m_snippetCollector(QLatin1String(Constants::QML_SNIPPETS_GROUP_ID), iconForColor(Qt::red), SnippetOrder) {} -QmlJSCompletionAssistProcessor::~QmlJSCompletionAssistProcessor() -{} +QmlJSCompletionAssistProcessor::~QmlJSCompletionAssistProcessor() = default; IAssistProposal *QmlJSCompletionAssistProcessor::createContentProposal() const { @@ -556,7 +549,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * m_interface.reset(static_cast<const QmlJSCompletionAssistInterface *>(assistInterface)); if (assistInterface->reason() == IdleEditor && !acceptsIdleEditor()) - return 0; + return nullptr; const QString &fileName = m_interface->fileName(); @@ -567,11 +560,10 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * m_completions.clear(); - const QmlJSCompletionAssistInterface *qmlInterface = - static_cast<const QmlJSCompletionAssistInterface *>(assistInterface); + auto qmlInterface = static_cast<const QmlJSCompletionAssistInterface *>(assistInterface); const SemanticInfo &semanticInfo = qmlInterface->semanticInfo(); if (!semanticInfo.isValid()) - return 0; + return nullptr; const Document::Ptr document = semanticInfo.document; const QFileInfo currentFileInfo(fileName); @@ -597,7 +589,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * startPositionCursor.setPosition(m_startPosition); CompletionContextFinder contextFinder(startPositionCursor); - const ObjectValue *qmlScopeType = 0; + const ObjectValue *qmlScopeType = nullptr; if (contextFinder.isInQmlContext()) { // find the enclosing qml object // ### this should use semanticInfo.declaringMember instead, but that may also return functions @@ -612,13 +604,13 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * } // grouped property bindings change the scope type for (i++; i < path.size(); ++i) { - AST::UiObjectDefinition *objDef = AST::cast<AST::UiObjectDefinition *>(path[i]); + auto objDef = AST::cast<AST::UiObjectDefinition *>(path[i]); if (!objDef || !document->bind()->isGroupedPropertyBinding(objDef)) break; const ObjectValue *newScopeType = qmlScopeType; for (AST::UiQualifiedId *it = objDef->qualifiedTypeNameId; it; it = it->next) { if (!newScopeType || it->name.isEmpty()) { - newScopeType = 0; + newScopeType = nullptr; break; } const Value *v = newScopeType->lookupMember(it->name.toString(), context); @@ -648,7 +640,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * if (!literalText.isEmpty() && literalText.at(0) != QLatin1Char('"') && literalText.at(0) != QLatin1Char('\'')) { - return 0; + return nullptr; } literalText = literalText.mid(1); @@ -658,7 +650,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * patterns << QLatin1String("*.qml") << QLatin1String("*.js"); if (completeFileName(document->path(), literalText, patterns)) return createContentProposal(); - return 0; + return nullptr; } const Value *value = @@ -672,7 +664,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * // ### enum completion? - return 0; + return nullptr; } // currently path-in-stringliteral is the only completion available in imports @@ -705,7 +697,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * return createContentProposal(); } } - return 0; + return nullptr; } // member "a.bc<complete>" or function "foo(<complete>" completion @@ -719,7 +711,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * QmlExpressionUnderCursor expressionUnderCursor; AST::ExpressionNode *expression = expressionUnderCursor(tc); - if (expression != 0 && ! isLiteral(expression)) { + if (expression && ! isLiteral(expression)) { // Evaluate the expression under cursor. ValueOwner *interp = context->valueOwner(); const Value *value = @@ -759,7 +751,7 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * if (! m_completions.isEmpty()) return createContentProposal(); - return 0; + return nullptr; } // global completion @@ -866,10 +858,10 @@ IAssistProposal *QmlJSCompletionAssistProcessor::perform(const AssistInterface * if (! m_completions.isEmpty()) return createContentProposal(); - return 0; + return nullptr; } - return 0; + return nullptr; } bool QmlJSCompletionAssistProcessor::acceptsIdleEditor() const diff --git a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp index 2da26d1bf7..a88d615082 100644 --- a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp +++ b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp @@ -170,7 +170,7 @@ public: if (doc->isParsedCorrectly()) { - UiObjectMember *astRootNode = 0; + UiObjectMember *astRootNode = nullptr; if (UiProgram *program = doc->qmlProgram()) if (program->members) astRootNode = program->members->member; @@ -240,7 +240,7 @@ void matchComponentFromObjectDefQuickFix(const QmlJSQuickFixInterface &interface QList<Node *> path = interface->semanticInfo().rangePath(pos); for (int i = path.size() - 1; i >= 0; --i) { Node *node = path.at(i); - if (UiObjectDefinition *objDef = cast<UiObjectDefinition *>(node)) { + if (auto objDef = cast<UiObjectDefinition *>(node)) { if (!interface->currentFile()->isCursorOn(objDef->qualifiedTypeNameId)) return; @@ -249,7 +249,7 @@ void matchComponentFromObjectDefQuickFix(const QmlJSQuickFixInterface &interface result << new Operation(interface, objDef); return; } - } else if (UiObjectBinding *objBinding = cast<UiObjectBinding *>(node)) { + } else if (auto objBinding = cast<UiObjectBinding *>(node)) { if (!interface->currentFile()->isCursorOn(objBinding->qualifiedTypeNameId)) return; result << new Operation(interface, objBinding); diff --git a/src/plugins/qmljseditor/qmljscomponentnamedialog.h b/src/plugins/qmljseditor/qmljscomponentnamedialog.h index 72d54b93e9..f753ba9799 100644 --- a/src/plugins/qmljseditor/qmljscomponentnamedialog.h +++ b/src/plugins/qmljseditor/qmljscomponentnamedialog.h @@ -37,13 +37,13 @@ class ComponentNameDialog : public QDialog Q_OBJECT public: - explicit ComponentNameDialog(QWidget *parent = 0); - ~ComponentNameDialog(); + explicit ComponentNameDialog(QWidget *parent = nullptr); + ~ComponentNameDialog() override; static bool go(QString *proposedName, QString *proposedPath, QString *proposedSuffix, const QStringList &properties, const QStringList &sourcePreview, const QString &oldFileName, QStringList *result, - QWidget *parent = 0); + QWidget *parent = nullptr); void setProperties(const QStringList &properties); diff --git a/src/plugins/qmljseditor/qmljseditingsettingspage.cpp b/src/plugins/qmljseditor/qmljseditingsettingspage.cpp index be805c8ce1..37cd32fa63 100644 --- a/src/plugins/qmljseditor/qmljseditingsettingspage.cpp +++ b/src/plugins/qmljseditor/qmljseditingsettingspage.cpp @@ -161,8 +161,7 @@ QmlJsEditingSettings QmlJsEditingSettings::get() return settings; } -QmlJsEditingSettingsPage::QmlJsEditingSettingsPage() : - m_widget(0) +QmlJsEditingSettingsPage::QmlJsEditingSettingsPage() { setId("C.QmlJsEditing"); setDisplayName(tr("QML/JS Editing")); diff --git a/src/plugins/qmljseditor/qmljseditingsettingspage.h b/src/plugins/qmljseditor/qmljseditingsettingspage.h index 85687d6871..dd3010e0f2 100644 --- a/src/plugins/qmljseditor/qmljseditingsettingspage.h +++ b/src/plugins/qmljseditor/qmljseditingsettingspage.h @@ -82,7 +82,7 @@ class QmlJsEditingSettignsPageWidget : public QWidget Q_OBJECT public: - explicit QmlJsEditingSettignsPageWidget(QWidget *parent = 0); + explicit QmlJsEditingSettignsPageWidget(QWidget *parent = nullptr); QmlJsEditingSettings settings() const; void setSettings(const QmlJsEditingSettings &); @@ -101,9 +101,9 @@ class QmlJsEditingSettingsPage : public Core::IOptionsPage public: QmlJsEditingSettingsPage(); - QWidget *widget(); - void apply(); - void finish(); + QWidget *widget() override; + void apply() override; + void finish() override; private: QPointer<QmlJsEditingSettignsPageWidget> m_widget; diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index bb9c70f768..dadd9bee60 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -295,7 +295,7 @@ void QmlJSEditorWidget::updateContextPane() Node *oldNode = info.declaringMemberNoProperties(m_oldCursorPosition); Node *newNode = info.declaringMemberNoProperties(position()); if (oldNode != newNode && m_oldCursorPosition != -1) - m_contextPane->apply(this, info.document, 0, newNode, false); + m_contextPane->apply(this, info.document, nullptr, newNode, false); if (m_contextPane->isAvailable(this, info.document, newNode) && !m_contextPane->widget()->isVisible()) { @@ -357,14 +357,11 @@ void QmlJSEditorWidget::updateUses() class SelectedElement: protected Visitor { - unsigned m_cursorPositionStart; - unsigned m_cursorPositionEnd; + unsigned m_cursorPositionStart = 0; + unsigned m_cursorPositionEnd = 0; QList<UiObjectMember *> m_selectedMembers; public: - SelectedElement() - : m_cursorPositionStart(0), m_cursorPositionEnd(0) {} - QList<UiObjectMember *> operator()(const Document::Ptr &doc, unsigned startPosition, unsigned endPosition) { m_cursorPositionStart = startPosition; @@ -390,7 +387,7 @@ protected: inline bool isIdBinding(UiObjectMember *member) const { - if (UiScriptBinding *script = cast<UiScriptBinding *>(member)) { + if (auto script = cast<const UiScriptBinding *>(member)) { if (! script->qualifiedId) return false; else if (script->qualifiedId->name.isEmpty()) @@ -422,7 +419,7 @@ protected: return (m_cursorPositionStart != m_cursorPositionEnd); } - void postVisit(Node *ast) + void postVisit(Node *ast) override { if (!isRangeSelected() && !m_selectedMembers.isEmpty()) return; // nothing to do, we already have the results. @@ -511,9 +508,9 @@ void QmlJSEditorWidget::createToolBar() m_outlineCombo->setMinimumContentsLength(22); m_outlineCombo->setModel(m_qmlJsEditorDocument->outlineModel()); - QTreeView *treeView = new QTreeView; + auto treeView = new QTreeView; - Utils::AnnotatedItemDelegate *itemDelegate = new Utils::AnnotatedItemDelegate(this); + auto itemDelegate = new Utils::AnnotatedItemDelegate(this); itemDelegate->setDelimiter(QLatin1String(" ")); itemDelegate->setAnnotationRole(QmlOutlineModel::AnnotationRole); treeView->setItemDelegateForColumn(0, itemDelegate); @@ -620,13 +617,13 @@ static const CppComponentValue *findCppComponentToInspect(const SemanticInfo &se { AST::Node *node = semanticInfo.astNodeAt(cursorPosition); if (!node) - return 0; + return nullptr; const ScopeChain scopeChain = semanticInfo.scopeChain(semanticInfo.rangePath(cursorPosition)); Evaluate evaluator(&scopeChain); const Value *value = evaluator.reference(node); if (!value) - return 0; + return nullptr; return value->asCppComponentValue(); } @@ -726,7 +723,7 @@ void QmlJSEditorWidget::findLinkAt(const QTextCursor &cursor, AST::Node *node = semanticInfo.astNodeAt(cursorPosition); QTC_ASSERT(node, return;); - if (AST::UiImport *importAst = cast<AST::UiImport *>(node)) { + if (auto importAst = cast<const AST::UiImport *>(node)) { // if it's a file import, link to the file foreach (const ImportInfo &import, semanticInfo.document->bind()->imports()) { if (import.ast() == importAst && import.type() == ImportType::File) { @@ -742,7 +739,7 @@ void QmlJSEditorWidget::findLinkAt(const QTextCursor &cursor, } // string literals that could refer to a file link to them - if (StringLiteral *literal = cast<StringLiteral *>(node)) { + if (auto literal = cast<const StringLiteral *>(node)) { const QString &text = literal->value.toString(); Utils::Link link; link.linkTextStart = literal->literalToken.begin(); @@ -777,8 +774,8 @@ void QmlJSEditorWidget::findLinkAt(const QTextCursor &cursor, link.targetLine = line; link.targetColumn = column - 1; // adjust the column - if (AST::UiQualifiedId *q = AST::cast<AST::UiQualifiedId *>(node)) { - for (AST::UiQualifiedId *tail = q; tail; tail = tail->next) { + if (auto q = AST::cast<const AST::UiQualifiedId *>(node)) { + for (const AST::UiQualifiedId *tail = q; tail; tail = tail->next) { if (! tail->next && cursorPosition <= tail->identifierToken.end()) { link.linkTextStart = tail->identifierToken.begin(); link.linkTextEnd = tail->identifierToken.end(); @@ -787,13 +784,13 @@ void QmlJSEditorWidget::findLinkAt(const QTextCursor &cursor, } } - } else if (AST::IdentifierExpression *id = AST::cast<AST::IdentifierExpression *>(node)) { + } else if (auto id = AST::cast<const AST::IdentifierExpression *>(node)) { link.linkTextStart = id->firstSourceLocation().begin(); link.linkTextEnd = id->lastSourceLocation().end(); processLinkCallback(link); return; - } else if (AST::FieldMemberExpression *mem = AST::cast<AST::FieldMemberExpression *>(node)) { + } else if (auto mem = AST::cast<const AST::FieldMemberExpression *>(node)) { link.linkTextStart = mem->lastSourceLocation().begin(); link.linkTextEnd = mem->lastSourceLocation().end(); processLinkCallback(link); @@ -842,7 +839,7 @@ void QmlJSEditorWidget::contextMenuEvent(QContextMenuEvent *e) if (!proposal.isNull()) { GenericProposalModelPtr model = proposal->model().staticCast<GenericProposalModel>(); for (int index = 0; index < model->size(); ++index) { - AssistProposalItem *item = static_cast<AssistProposalItem *>(model->proposalItem(index)); + auto item = static_cast<const AssistProposalItem *>(model->proposalItem(index)); QuickFixOperation::Ptr op = item->data().value<QuickFixOperation::Ptr>(); QAction *action = refactoringMenu->addAction(op->description()); connect(action, &QAction::triggered, this, [op]() { op->perform(); }); @@ -902,7 +899,7 @@ void QmlJSEditorWidget::wheelEvent(QWheelEvent *event) TextEditorWidget::wheelEvent(event); if (visible) - m_contextPane->apply(this, m_qmlJsEditorDocument->semanticInfo().document, 0, + m_contextPane->apply(this, m_qmlJsEditorDocument->semanticInfo().document, nullptr, m_qmlJsEditorDocument->semanticInfo().declaringMemberNoProperties(m_oldCursorPosition), false, true); } @@ -934,7 +931,7 @@ void QmlJSEditorWidget::semanticInfoUpdated(const SemanticInfo &semanticInfo) if (m_contextPane) { Node *newNode = semanticInfo.declaringMemberNoProperties(position()); if (newNode) { - m_contextPane->apply(this, semanticInfo.document, 0, newNode, true); + m_contextPane->apply(this, semanticInfo.document, nullptr, newNode, true); m_contextPaneTimer.start(); //update text marker } } @@ -976,7 +973,8 @@ bool QmlJSEditorWidget::hideContextPane() { bool b = (m_contextPane) && m_contextPane->widget()->isVisible(); if (b) - m_contextPane->apply(this, m_qmlJsEditorDocument->semanticInfo().document, 0, 0, false); + m_contextPane->apply(this, m_qmlJsEditorDocument->semanticInfo().document, + nullptr, nullptr, false); return b; } @@ -993,7 +991,7 @@ AssistInterface *QmlJSEditorWidget::createAssistInterface( } else if (assistKind == QuickFix) { return new QmlJSQuickFixAssistInterface(const_cast<QmlJSEditorWidget *>(this), reason); } - return 0; + return nullptr; } QString QmlJSEditorWidget::foldReplacementText(const QTextBlock &block) const diff --git a/src/plugins/qmljseditor/qmljseditordocument.cpp b/src/plugins/qmljseditor/qmljseditordocument.cpp index bbd53bcf41..ae18e6a573 100644 --- a/src/plugins/qmljseditor/qmljseditordocument.cpp +++ b/src/plugins/qmljseditor/qmljseditordocument.cpp @@ -58,23 +58,16 @@ enum { struct Declaration { QString text; - int startLine; - int startColumn; - int endLine; - int endColumn; - - Declaration() - : startLine(0), - startColumn(0), - endLine(0), - endColumn(0) - { } + int startLine = 0; + int startColumn = 0; + int endLine = 0; + int endColumn = 0; }; class FindIdDeclarations: protected Visitor { public: - typedef QHash<QString, QList<AST::SourceLocation> > Result; + using Result = QHash<QString, QList<AST::SourceLocation> >; Result operator()(Document::Ptr doc) { @@ -111,8 +104,8 @@ protected: bool visit(AST::UiScriptBinding *node) override { if (asString(node->qualifiedId) == QLatin1String("id")) { - if (AST::ExpressionStatement *stmt = AST::cast<AST::ExpressionStatement*>(node->statement)) { - if (AST::IdentifierExpression *idExpr = AST::cast<AST::IdentifierExpression *>(stmt->expression)) { + if (auto stmt = AST::cast<const AST::ExpressionStatement*>(node->statement)) { + if (auto idExpr = AST::cast<const AST::IdentifierExpression *>(stmt->expression)) { if (!idExpr->name.isEmpty()) { const QString &id = idExpr->name.toString(); QList<AST::SourceLocation> *locs = &_ids[id]; @@ -331,8 +324,8 @@ protected: bool visit(AST::BinaryExpression *ast) override { - AST::FieldMemberExpression *field = AST::cast<AST::FieldMemberExpression *>(ast->left); - AST::FunctionExpression *funcExpr = AST::cast<AST::FunctionExpression *>(ast->right); + auto field = AST::cast<const AST::FieldMemberExpression *>(ast->left); + auto funcExpr = AST::cast<const AST::FunctionExpression *>(ast->right); if (field && funcExpr && funcExpr->body && (ast->op == QSOperator::Assign)) { Declaration decl; @@ -368,7 +361,7 @@ public: { _textDocument = textDocument; _ranges.clear(); - if (doc && doc->ast() != 0) + if (doc && doc->ast() != nullptr) doc->ast()->accept(this); return _ranges; } @@ -414,7 +407,7 @@ protected: bool visit(AST::UiScriptBinding *ast) override { - if (AST::Block *block = AST::cast<AST::Block *>(ast->statement)) + if (auto block = AST::cast<AST::Block *>(ast->statement)) _ranges.append(createRange(ast, block)); return true; } diff --git a/src/plugins/qmljseditor/qmljseditordocument_p.h b/src/plugins/qmljseditor/qmljseditordocument_p.h index 11d639cb59..22912263ce 100644 --- a/src/plugins/qmljseditor/qmljseditordocument_p.h +++ b/src/plugins/qmljseditor/qmljseditordocument_p.h @@ -50,7 +50,7 @@ class QmlJSEditorDocumentPrivate : public QObject public: QmlJSEditorDocumentPrivate(QmlJSEditorDocument *parent); - ~QmlJSEditorDocumentPrivate(); + ~QmlJSEditorDocumentPrivate() override; void invalidateFormatterCache(); void reparseDocument(); diff --git a/src/plugins/qmljseditor/qmljseditorplugin.cpp b/src/plugins/qmljseditor/qmljseditorplugin.cpp index 318575956e..afd33c18b8 100644 --- a/src/plugins/qmljseditor/qmljseditorplugin.cpp +++ b/src/plugins/qmljseditor/qmljseditorplugin.cpp @@ -241,7 +241,7 @@ QuickToolBar *QmlJSEditorPlugin::quickToolBar() void QmlJSEditorPluginPrivate::renameUsages() { - if (QmlJSEditorWidget *editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget())) + if (auto editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget())) editor->renameUsages(); } @@ -293,7 +293,7 @@ void QmlJSEditorPluginPrivate::reformatFile() void QmlJSEditorPluginPrivate::showContextPane() { - if (QmlJSEditorWidget *editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget())) + if (auto editor = qobject_cast<QmlJSEditorWidget*>(EditorManager::currentEditor()->widget())) editor->showContextPane(); } diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index c44158fb14..67abdece26 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -70,7 +70,7 @@ namespace { class FindUsages: protected Visitor { public: - typedef QList<AST::SourceLocation> Result; + using Result = QList<AST::SourceLocation>; FindUsages(Document::Ptr doc, const ContextPtr &context) : _doc(doc) @@ -276,7 +276,7 @@ private: bool checkLookup() { - const ObjectValue *scope = 0; + const ObjectValue *scope = nullptr; _scopeChain.lookup(_name, &scope); return check(scope); } @@ -288,13 +288,13 @@ private: ScopeBuilder _builder; QString _name; - const ObjectValue *_scope; + const ObjectValue *_scope = nullptr; }; class FindTypeUsages: protected Visitor { public: - typedef QList<AST::SourceLocation> Result; + using Result = QList<AST::SourceLocation>; FindTypeUsages(Document::Ptr doc, const ContextPtr &context) : _doc(doc) @@ -449,7 +449,7 @@ private: ScopeBuilder _builder; QString _name; - const ObjectValue *_typeValue; + const ObjectValue *_typeValue = nullptr; }; class FindTargetExpression: protected Visitor @@ -468,8 +468,8 @@ public: void operator()(quint32 offset) { _name.clear(); - _scope = 0; - _objectNode = 0; + _scope = nullptr; + _objectNode = nullptr; _offset = offset; _typeKind = ExpKind; if (_doc) @@ -587,7 +587,7 @@ protected: if (node->defaultToken.isValid()) { _name = node->memberType->name.toString(); _targetValue = _scopeChain->context()->lookupType(_doc.data(), QStringList(_name)); - _scope = 0; + _scope = nullptr; _typeKind = TypeKind; } return false; @@ -648,7 +648,7 @@ private: for (UiQualifiedId *att = id; att; att = att->next) { if (!att->name.isEmpty() && containsOffset(att->identifierToken)) { _targetValue = _scopeChain->context()->lookupType(_doc.data(), id, att->next); - _scope = 0; + _scope = nullptr; _name = att->name.toString(); _typeKind = TypeKind; return true; @@ -666,13 +666,13 @@ private: } QString _name; - const ObjectValue *_scope; - const Value *_targetValue; - Node *_objectNode; + const ObjectValue *_scope = nullptr; + const Value *_targetValue = nullptr; + Node *_objectNode = nullptr; Document::Ptr _doc; - const ScopeChain *_scopeChain; - quint32 _offset; - Kind _typeKind; + const ScopeChain *_scopeChain = nullptr; + quint32 _offset = 0; + Kind _typeKind = ExpKind; }; static QString matchingLine(unsigned position, const QString &source) @@ -687,8 +687,8 @@ static QString matchingLine(unsigned position, const QString &source) class ProcessFile { ContextPtr context; - typedef FindReferences::Usage Usage; - QString name; + using Usage = FindReferences::Usage; + const QString name; const ObjectValue *scope; QFutureInterface<Usage> *future; @@ -698,7 +698,7 @@ public: using result_type = QList<Usage>; ProcessFile(const ContextPtr &context, - QString name, + const QString &name, const ObjectValue *scope, QFutureInterface<Usage> *future) : context(context), name(name), scope(scope), future(future) @@ -729,8 +729,8 @@ public: class SearchFileForType { ContextPtr context; - typedef FindReferences::Usage Usage; - QString name; + using Usage = FindReferences::Usage; + const QString name; const ObjectValue *scope; QFutureInterface<Usage> *future; @@ -740,7 +740,7 @@ public: using result_type = QList<Usage>; SearchFileForType(const ContextPtr &context, - QString name, + const QString &name, const ObjectValue *scope, QFutureInterface<Usage> *future) : context(context), name(name), scope(scope), future(future) @@ -770,7 +770,7 @@ public: class UpdateUI { - typedef FindReferences::Usage Usage; + using Usage = FindReferences::Usage; QFutureInterface<Usage> *future; public: @@ -800,14 +800,12 @@ FindReferences::FindReferences(QObject *parent) connect(&m_watcher, &QFutureWatcherBase::finished, this, &FindReferences::searchFinished); } -FindReferences::~FindReferences() -{ -} +FindReferences::~FindReferences() = default; static void find_helper(QFutureInterface<FindReferences::Usage> &future, - const ModelManagerInterface::WorkingCopy workingCopy, + const ModelManagerInterface::WorkingCopy &workingCopy, Snapshot snapshot, - const QString fileName, + const QString &fileName, quint32 offset, QString replacement) { @@ -925,7 +923,7 @@ void FindReferences::renameUsages(const QString &fileName, quint32 offset, m_watcher.setFuture(result); } -QList<FindReferences::Usage> FindReferences::findUsageOfType(const QString &fileName, const QString typeName) +QList<FindReferences::Usage> FindReferences::findUsageOfType(const QString &fileName, const QString &typeName) { QList<Usage> usages; ModelManagerInterface *modelManager = ModelManagerInterface::instance(); @@ -1006,7 +1004,7 @@ void FindReferences::searchFinished() { if (m_currentSearch) m_currentSearch->finishSearch(m_watcher.isCanceled()); - m_currentSearch = 0; + m_currentSearch = nullptr; emit changed(); } diff --git a/src/plugins/qmljseditor/qmljsfindreferences.h b/src/plugins/qmljseditor/qmljsfindreferences.h index 192d25fe45..41c8fc07d2 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.h +++ b/src/plugins/qmljseditor/qmljsfindreferences.h @@ -49,18 +49,15 @@ public: class Usage { public: - Usage() - : line(0), col(0), len(0) {} - Usage(const QString &path, const QString &lineText, int line, int col, int len) : path(path), lineText(lineText), line(line), col(col), len(len) {} public: QString path; QString lineText; - int line; - int col; - int len; + int line = 0; + int col = 0; + int len = 0; }; public: @@ -75,7 +72,7 @@ public: void renameUsages(const QString &fileName, quint32 offset, const QString &replacement = QString()); - static QList<Usage> findUsageOfType(const QString &fileName, const QString typeName); + static QList<Usage> findUsageOfType(const QString &fileName, const QString &typeName); private: void displayResults(int first, int last); diff --git a/src/plugins/qmljseditor/qmljshighlighter.cpp b/src/plugins/qmljseditor/qmljshighlighter.cpp index 5777c6c3e2..6d81ea8d1d 100644 --- a/src/plugins/qmljseditor/qmljshighlighter.cpp +++ b/src/plugins/qmljseditor/qmljshighlighter.cpp @@ -45,9 +45,7 @@ QmlJSHighlighter::QmlJSHighlighter(QTextDocument *parent) setDefaultTextFormatCategories(); } -QmlJSHighlighter::~QmlJSHighlighter() -{ -} +QmlJSHighlighter::~QmlJSHighlighter() = default; bool QmlJSHighlighter::isQmlEnabled() const { @@ -167,8 +165,7 @@ void QmlJSHighlighter::highlightBlock(const QString &text) } int previousTokenEnd = 0; - for (int index = 0; index < tokens.size(); ++index) { - const Token &token = tokens.at(index); + for (const auto &token : tokens) { setFormat(previousTokenEnd, token.begin() - previousTokenEnd, formatForCategory(C_VISUAL_WHITESPACE)); switch (token.kind) { diff --git a/src/plugins/qmljseditor/qmljshighlighter.h b/src/plugins/qmljseditor/qmljshighlighter.h index c0a034707b..b1d9abb0f1 100644 --- a/src/plugins/qmljseditor/qmljshighlighter.h +++ b/src/plugins/qmljseditor/qmljshighlighter.h @@ -39,14 +39,14 @@ class QMLJSEDITOR_EXPORT QmlJSHighlighter : public TextEditor::SyntaxHighlighter Q_OBJECT public: - QmlJSHighlighter(QTextDocument *parent = 0); - virtual ~QmlJSHighlighter(); + QmlJSHighlighter(QTextDocument *parent = nullptr); + ~QmlJSHighlighter() override; bool isQmlEnabled() const; void setQmlEnabled(bool duiEnabled); protected: - virtual void highlightBlock(const QString &text); + void highlightBlock(const QString &text) override; int onBlockStart(); void onBlockEnd(int state); diff --git a/src/plugins/qmljseditor/qmljshoverhandler.cpp b/src/plugins/qmljseditor/qmljshoverhandler.cpp index 7334ad7ecd..5171b2750a 100644 --- a/src/plugins/qmljseditor/qmljshoverhandler.cpp +++ b/src/plugins/qmljseditor/qmljshoverhandler.cpp @@ -72,11 +72,10 @@ namespace { AST::UiObjectInitializer *nodeInitializer(AST::Node *node) { - AST::UiObjectInitializer *initializer = 0; - if (const AST::UiObjectBinding *binding = AST::cast<const AST::UiObjectBinding *>(node)) + AST::UiObjectInitializer *initializer = nullptr; + if (auto binding = AST::cast<const AST::UiObjectBinding*>(node)) initializer = binding->initializer; - else if (const AST::UiObjectDefinition *definition = - AST::cast<const AST::UiObjectDefinition *>(node)) + else if (auto definition = AST::cast<const AST::UiObjectDefinition*>(node)) initializer = definition->initializer; return initializer; } @@ -92,7 +91,7 @@ namespace { } } -QmlJSHoverHandler::QmlJSHoverHandler() : m_modelManager(0) +QmlJSHoverHandler::QmlJSHoverHandler() { m_modelManager = ModelManagerInterface::instance(); } @@ -177,7 +176,7 @@ bool QmlJSHoverHandler::setQmlTypeHelp(const ScopeChain &scopeChain, const Docum if (!urlMap.isEmpty()) break; return false; - } while (0); + } while (false); // Check if the module name contains a major version. QRegularExpression version("^([^\\d]*)(\\d+)\\.*\\d*$"); @@ -211,7 +210,7 @@ void QmlJSHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos, R if (!m_modelManager) return; - QmlJSEditorWidget *qmlEditor = qobject_cast<QmlJSEditorWidget *>(editorWidget); + auto qmlEditor = qobject_cast<QmlJSEditorWidget*>(editorWidget); QTC_ASSERT(qmlEditor, return); const QmlJSTools::SemanticInfo &semanticInfo = qmlEditor->qmlJsEditorDocument()->semanticInfo(); @@ -230,7 +229,7 @@ void QmlJSHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos, R if (rangePath.isEmpty()) { // Is the cursor on an import? The ast path will have an UiImport // member in the last or second to last position! - AST::UiImport *import = 0; + AST::UiImport *import = nullptr; if (astPath.size() >= 1) import = AST::cast<AST::UiImport *>(astPath.last()); if (!import && astPath.size() >= 2) @@ -305,7 +304,7 @@ bool QmlJSHoverHandler::matchColorItem(const ScopeChain &scopeChain, if (!initializer) return false; - AST::UiObjectMember *member = 0; + AST::UiObjectMember *member = nullptr; for (AST::UiObjectMemberList *list = initializer->members; list; list = list->next) { if (posIsInSource(pos, list->member)) { member = list->member; @@ -316,8 +315,8 @@ bool QmlJSHoverHandler::matchColorItem(const ScopeChain &scopeChain, return false; QString color; - const Value *value = 0; - if (const AST::UiScriptBinding *binding = AST::cast<const AST::UiScriptBinding *>(member)) { + const Value *value = nullptr; + if (auto binding = AST::cast<const AST::UiScriptBinding *>(member)) { if (binding->qualifiedId && posIsInSource(pos, binding->statement)) { value = scopeChain.evaluate(binding->qualifiedId); if (value && value->asColorValue()) { @@ -326,8 +325,7 @@ bool QmlJSHoverHandler::matchColorItem(const ScopeChain &scopeChain, binding->statement->lastSourceLocation()); } } - } else if (const AST::UiPublicMember *publicMember = - AST::cast<const AST::UiPublicMember *>(member)) { + } else if (auto publicMember = AST::cast<const AST::UiPublicMember *>(member)) { if (!publicMember->name.isEmpty() && posIsInSource(pos, publicMember->statement)) { value = scopeChain.lookup(publicMember->name.toString()); if (const Reference *ref = value->asReference()) @@ -440,33 +438,33 @@ void QmlJSHoverHandler::prettyPrintTooltip(const Value *value, static const ObjectValue *isMember(const ScopeChain &scopeChain, AST::Node *node, QString *name) { - const ObjectValue *owningObject = 0; - if (AST::IdentifierExpression *identExp = AST::cast<AST::IdentifierExpression *>(node)) { + const ObjectValue *owningObject = nullptr; + if (auto identExp = AST::cast<const AST::IdentifierExpression *>(node)) { if (identExp->name.isEmpty()) - return 0; + return nullptr; *name = identExp->name.toString(); scopeChain.lookup(*name, &owningObject); - } else if (AST::FieldMemberExpression *fme = AST::cast<AST::FieldMemberExpression *>(node)) { + } else if (auto fme = AST::cast<const AST::FieldMemberExpression *>(node)) { if (!fme->base || fme->name.isEmpty()) - return 0; + return nullptr; *name = fme->name.toString(); const Value *base = scopeChain.evaluate(fme->base); if (!base) - return 0; + return nullptr; owningObject = base->asObjectValue(); if (owningObject) owningObject->lookupMember(*name, scopeChain.context(), &owningObject); - } else if (AST::UiQualifiedId *qid = AST::cast<AST::UiQualifiedId *>(node)) { + } else if (auto qid = AST::cast<const AST::UiQualifiedId *>(node)) { if (qid->name.isEmpty()) - return 0; + return nullptr; *name = qid->name.toString(); const Value *value = scopeChain.lookup(*name, &owningObject); for (AST::UiQualifiedId *it = qid->next; it; it = it->next) { if (!value) - return 0; + return nullptr; const ObjectValue *next = value->asObjectValue(); if (!next || it->name.isEmpty()) - return 0; + return nullptr; *name = it->name.toString(); value = next->lookupMember(*name, scopeChain.context(), &owningObject); } @@ -483,7 +481,7 @@ bool QmlJSHoverHandler::setQmlHelpItem(const ScopeChain &scopeChain, if (const ObjectValue *scope = isMember(scopeChain, node, &name)) { // maybe it's a type? if (!name.isEmpty() && name.at(0).isUpper()) { - if (AST::UiQualifiedId *qualifiedId = AST::cast<AST::UiQualifiedId *>(node)) { + if (auto qualifiedId = AST::cast<AST::UiQualifiedId *>(node)) { const ObjectValue *value = scopeChain.context()->lookupType(qmlDocument.data(), qualifiedId); if (setQmlTypeHelp(scopeChain, qmlDocument, value, QStringList(qualifiedId->name.toString()))) return true; @@ -513,7 +511,8 @@ bool QmlJSHoverHandler::setQmlHelpItem(const ScopeChain &scopeChain, if (!HelpManager::linksForIdentifier(helpId).isEmpty()) break; helpId.clear(); - } while (0); + } while (false); + if (!helpId.isEmpty()) { setLastHelpItemIdentified(HelpItem(helpId, name, HelpItem::QmlProperty)); return true; @@ -525,7 +524,7 @@ bool QmlJSHoverHandler::setQmlHelpItem(const ScopeChain &scopeChain, } } else { // it might be a type, but the scope chain is broken (mismatched braces) - if (AST::UiQualifiedId *qualifiedId = AST::cast<AST::UiQualifiedId *>(node)) { + if (auto qualifiedId = AST::cast<AST::UiQualifiedId *>(node)) { const ObjectValue *value = scopeChain.context()->lookupType(qmlDocument.data(), qualifiedId); if (setQmlTypeHelp(scopeChain, qmlDocument, value, diff --git a/src/plugins/qmljseditor/qmljshoverhandler.h b/src/plugins/qmljseditor/qmljshoverhandler.h index 682d713f39..be51f6c53b 100644 --- a/src/plugins/qmljseditor/qmljshoverhandler.h +++ b/src/plugins/qmljseditor/qmljshoverhandler.h @@ -38,7 +38,7 @@ QT_END_NAMESPACE namespace QmlJS { class ScopeChain; class Context; -typedef QSharedPointer<const Context> ContextPtr; +using ContextPtr = QSharedPointer<const Context>; class Value; class ObjectValue; } @@ -82,7 +82,7 @@ private: const QmlJS::Document::Ptr &qmlDocument, QmlJS::AST::Node *node); - QmlJS::ModelManagerInterface *m_modelManager; + QmlJS::ModelManagerInterface *m_modelManager = nullptr; QColor m_colorTip; }; diff --git a/src/plugins/qmljseditor/qmljsoutline.cpp b/src/plugins/qmljseditor/qmljsoutline.cpp index 435725c0b2..228839573b 100644 --- a/src/plugins/qmljseditor/qmljsoutline.cpp +++ b/src/plugins/qmljseditor/qmljsoutline.cpp @@ -104,7 +104,7 @@ QmlJSOutlineWidget::QmlJSOutlineWidget(QWidget *parent) m_treeView->setModel(m_filterModel); setFocusProxy(m_treeView); - QVBoxLayout *layout = new QVBoxLayout; + auto layout = new QVBoxLayout; layout->setMargin(0); layout->setSpacing(0); @@ -259,10 +259,10 @@ bool QmlJSOutlineWidgetFactory::supportsEditor(Core::IEditor *editor) const TextEditor::IOutlineWidget *QmlJSOutlineWidgetFactory::createWidget(Core::IEditor *editor) { - QmlJSOutlineWidget *widget = new QmlJSOutlineWidget; + auto widget = new QmlJSOutlineWidget; - QmlJSEditor *qmlJSEditable = qobject_cast<QmlJSEditor*>(editor); - QmlJSEditorWidget *qmlJSEditor = qobject_cast<QmlJSEditorWidget*>(qmlJSEditable->widget()); + auto qmlJSEditable = qobject_cast<const QmlJSEditor*>(editor); + auto qmlJSEditor = qobject_cast<QmlJSEditorWidget*>(qmlJSEditable->widget()); Q_ASSERT(qmlJSEditor); widget->setEditor(qmlJSEditor); diff --git a/src/plugins/qmljseditor/qmljsoutline.h b/src/plugins/qmljseditor/qmljsoutline.h index a8f15c53e3..0a50667ae2 100644 --- a/src/plugins/qmljseditor/qmljsoutline.h +++ b/src/plugins/qmljseditor/qmljsoutline.h @@ -51,29 +51,29 @@ public: QmlJSOutlineFilterModel(QObject *parent); // QSortFilterProxyModel bool filterAcceptsRow(int sourceRow, - const QModelIndex &sourceParent) const; - QVariant data(const QModelIndex &index, int role) const; - Qt::DropActions supportedDragActions() const; + const QModelIndex &sourceParent) const override; + QVariant data(const QModelIndex &index, int role) const override; + Qt::DropActions supportedDragActions() const override; bool filterBindings() const; void setFilterBindings(bool filterBindings); private: - bool m_filterBindings; + bool m_filterBindings = false; }; class QmlJSOutlineWidget : public TextEditor::IOutlineWidget { Q_OBJECT public: - QmlJSOutlineWidget(QWidget *parent = 0); + QmlJSOutlineWidget(QWidget *parent = nullptr); void setEditor(QmlJSEditorWidget *editor); // IOutlineWidget - virtual QList<QAction*> filterMenuActions() const override; - virtual void setCursorSynchronization(bool syncWithCursor) override; - virtual void restoreSettings(const QVariantMap &map) override; - virtual QVariantMap settings() const override; + QList<QAction*> filterMenuActions() const override; + void setCursorSynchronization(bool syncWithCursor) override; + void restoreSettings(const QVariantMap &map) override; + QVariantMap settings() const override; private: void updateSelectionInTree(const QModelIndex &index); @@ -98,8 +98,8 @@ class QmlJSOutlineWidgetFactory : public TextEditor::IOutlineWidgetFactory { Q_OBJECT public: - bool supportsEditor(Core::IEditor *editor) const; - TextEditor::IOutlineWidget *createWidget(Core::IEditor *editor); + bool supportsEditor(Core::IEditor *editor) const override; + TextEditor::IOutlineWidget *createWidget(Core::IEditor *editor) override; }; } // namespace Internal diff --git a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp index 9e7efe7efd..ee373e9869 100644 --- a/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp +++ b/src/plugins/qmljseditor/qmljsoutlinetreeview.cpp @@ -44,7 +44,7 @@ QmlJSOutlineTreeView::QmlJSOutlineTreeView(QWidget *parent) : setRootIsDecorated(false); - Utils::AnnotatedItemDelegate *itemDelegate = new Utils::AnnotatedItemDelegate(this); + auto itemDelegate = new Utils::AnnotatedItemDelegate(this); itemDelegate->setDelimiter(QLatin1String(" ")); itemDelegate->setAnnotationRole(QmlOutlineModel::AnnotationRole); setItemDelegateForColumn(0, itemDelegate); diff --git a/src/plugins/qmljseditor/qmljsoutlinetreeview.h b/src/plugins/qmljseditor/qmljsoutlinetreeview.h index 53e919b484..3909754284 100644 --- a/src/plugins/qmljseditor/qmljsoutlinetreeview.h +++ b/src/plugins/qmljseditor/qmljsoutlinetreeview.h @@ -34,9 +34,9 @@ class QmlJSOutlineTreeView : public Utils::NavigationTreeView { Q_OBJECT public: - explicit QmlJSOutlineTreeView(QWidget *parent = 0); + explicit QmlJSOutlineTreeView(QWidget *parent = nullptr); - void contextMenuEvent(QContextMenuEvent *event); + void contextMenuEvent(QContextMenuEvent *event) override; private: void collapseAllExceptRoot(); diff --git a/src/plugins/qmljseditor/qmljsquickfix.h b/src/plugins/qmljseditor/qmljsquickfix.h index c80d23aede..856b4f29c8 100644 --- a/src/plugins/qmljseditor/qmljsquickfix.h +++ b/src/plugins/qmljseditor/qmljsquickfix.h @@ -38,10 +38,10 @@ namespace QmlJSEditor { namespace Internal { class QmlJSQuickFixAssistInterface; } -typedef QSharedPointer<const Internal::QmlJSQuickFixAssistInterface> QmlJSQuickFixInterface; -typedef TextEditor::QuickFixOperation QuickFixOperation; -typedef TextEditor::QuickFixOperations QuickFixOperations; -typedef TextEditor::QuickFixInterface QuickFixInterface; +using QmlJSQuickFixInterface = QSharedPointer<const Internal::QmlJSQuickFixAssistInterface>; +using TextEditor::QuickFixOperation; +using TextEditor::QuickFixOperations; +using TextEditor::QuickFixInterface; /*! A quick-fix operation for the QML/JavaScript editor. @@ -60,7 +60,7 @@ public: void perform() override; protected: - typedef Utils::ChangeSet::Range Range; + using Range = Utils::ChangeSet::Range; virtual void performChanges(QmlJSTools::QmlJSRefactoringFilePtr currentFile, const QmlJSTools::QmlJSRefactoringChanges &refactoring) = 0; diff --git a/src/plugins/qmljseditor/qmljsquickfixassist.cpp b/src/plugins/qmljseditor/qmljsquickfixassist.cpp index 8effaa26cf..21b44faaa5 100644 --- a/src/plugins/qmljseditor/qmljsquickfixassist.cpp +++ b/src/plugins/qmljseditor/qmljsquickfixassist.cpp @@ -53,8 +53,7 @@ QmlJSQuickFixAssistInterface::QmlJSQuickFixAssistInterface(QmlJSEditorWidget *ed , m_currentFile(QmlJSRefactoringChanges::file(editor, m_semanticInfo.document)) {} -QmlJSQuickFixAssistInterface::~QmlJSQuickFixAssistInterface() -{} +QmlJSQuickFixAssistInterface::~QmlJSQuickFixAssistInterface() = default; const SemanticInfo &QmlJSQuickFixAssistInterface::semanticInfo() const { diff --git a/src/plugins/qmljseditor/qmljsquickfixassist.h b/src/plugins/qmljseditor/qmljsquickfixassist.h index 0f03844b2e..f638465d4b 100644 --- a/src/plugins/qmljseditor/qmljsquickfixassist.h +++ b/src/plugins/qmljseditor/qmljsquickfixassist.h @@ -39,7 +39,7 @@ class QmlJSQuickFixAssistInterface : public TextEditor::AssistInterface { public: QmlJSQuickFixAssistInterface(QmlJSEditorWidget *editor, TextEditor::AssistReason reason); - ~QmlJSQuickFixAssistInterface(); + ~QmlJSQuickFixAssistInterface() override; const QmlJSTools::SemanticInfo &semanticInfo() const; QmlJSTools::QmlJSRefactoringFilePtr currentFile() const; @@ -54,7 +54,7 @@ class QmlJSQuickFixAssistProvider : public TextEditor::IAssistProvider { public: QmlJSQuickFixAssistProvider() = default; - ~QmlJSQuickFixAssistProvider() = default; + ~QmlJSQuickFixAssistProvider() override = default; IAssistProvider::RunType runType() const override; TextEditor::IAssistProcessor *createProcessor() const override; diff --git a/src/plugins/qmljseditor/qmljsquickfixes.cpp b/src/plugins/qmljseditor/qmljsquickfixes.cpp index e1afb05275..d0f63d74ae 100644 --- a/src/plugins/qmljseditor/qmljsquickfixes.cpp +++ b/src/plugins/qmljseditor/qmljsquickfixes.cpp @@ -73,9 +73,9 @@ public: } void performChanges(QmlJSRefactoringFilePtr currentFile, - const QmlJSRefactoringChanges &) + const QmlJSRefactoringChanges &) override { - Q_ASSERT(_objectInitializer != 0); + Q_ASSERT(_objectInitializer); Utils::ChangeSet changes; @@ -101,16 +101,16 @@ public: void matchSplitInitializerQuickFix(const QmlJSQuickFixInterface &interface, QuickFixOperations &result) { - UiObjectInitializer *objectInitializer = 0; + UiObjectInitializer *objectInitializer = nullptr; const int pos = interface->currentFile()->cursor().position(); if (Node *member = interface->semanticInfo().rangeAt(pos)) { - if (UiObjectBinding *b = AST::cast<UiObjectBinding *>(member)) { + if (auto b = AST::cast<const UiObjectBinding *>(member)) { if (b->initializer->lbraceToken.startLine == b->initializer->rbraceToken.startLine) objectInitializer = b->initializer; - } else if (UiObjectDefinition *b = AST::cast<UiObjectDefinition *>(member)) { + } else if (auto b = AST::cast<const UiObjectDefinition *>(member)) { if (b->initializer->lbraceToken.startLine == b->initializer->rbraceToken.startLine) objectInitializer = b->initializer; } diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp index c464b38092..cca1909cb4 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -72,7 +72,7 @@ static bool isIdScope(const ObjectValue *scope, const QList<const QmlComponentCh class CollectStateNames : protected Visitor { QStringList m_stateNames; - bool m_inStateType; + bool m_inStateType = false; ScopeChain m_scopeChain; const CppComponentValue *m_statePrototype; @@ -100,7 +100,7 @@ protected: ast->accept(this); } - bool preVisit(Node *ast) + bool preVisit(Node *ast) override { return ast->uiObjectMemberCast() || cast<UiProgram *>(ast) @@ -127,7 +127,7 @@ protected: return false; } - bool visit(UiObjectDefinition *ast) + bool visit(UiObjectDefinition *ast) override { const bool old = m_inStateType; m_inStateType = hasStatePrototype(ast); @@ -136,7 +136,7 @@ protected: return false; } - bool visit(UiObjectBinding *ast) + bool visit(UiObjectBinding *ast) override { const bool old = m_inStateType; m_inStateType = hasStatePrototype(ast); @@ -145,7 +145,7 @@ protected: return false; } - bool visit(UiScriptBinding *ast) + bool visit(UiScriptBinding *ast) override { if (!m_inStateType) return false; @@ -154,10 +154,10 @@ protected: if (ast->qualifiedId->name != QLatin1String("name")) return false; - ExpressionStatement *expStmt = cast<ExpressionStatement *>(ast->statement); + auto expStmt = cast<const ExpressionStatement *>(ast->statement); if (!expStmt) return false; - StringLiteral *strLit = cast<StringLiteral *>(expStmt->expression); + auto strLit = cast<const StringLiteral *>(expStmt->expression); if (!strLit || strLit->value.isEmpty()) return false; @@ -237,7 +237,7 @@ protected: return; const QString &nameStr = name.toString(); - const ObjectValue *scope = 0; + const ObjectValue *scope = nullptr; const Value *value = m_scopeChain.lookup(nameStr, &scope); if (!value || !scope) return; @@ -284,13 +284,13 @@ protected: addUse(fullLocationForQualifiedId(localId), SemanticHighlighter::BindingNameType); } - bool visit(UiImport *ast) + bool visit(UiImport *ast) override { processName(ast->importId, ast->importIdToken); return true; } - bool visit(UiObjectDefinition *ast) + bool visit(UiObjectDefinition *ast) override { if (m_scopeChain.document()->bind()->isGroupedPropertyBinding(ast)) processBindingName(ast->qualifiedTypeNameId); @@ -300,7 +300,7 @@ protected: return false; } - bool visit(UiObjectBinding *ast) + bool visit(UiObjectBinding *ast) override { processTypeId(ast->qualifiedTypeNameId); processBindingName(ast->qualifiedId); @@ -308,20 +308,20 @@ protected: return false; } - bool visit(UiScriptBinding *ast) + bool visit(UiScriptBinding *ast) override { processBindingName(ast->qualifiedId); scopedAccept(ast, ast->statement); return false; } - bool visit(UiArrayBinding *ast) + bool visit(UiArrayBinding *ast) override { processBindingName(ast->qualifiedId); return true; } - bool visit(UiPublicMember *ast) + bool visit(UiPublicMember *ast) override { if (ast->typeToken.isValid()) { // TODO: ast->isValid() ? if (m_scopeChain.context()->lookupType(m_scopeChain.document().data(), QStringList(ast->memberType->name.toString()))) @@ -338,32 +338,32 @@ protected: return false; } - bool visit(FunctionExpression *ast) + bool visit(FunctionExpression *ast) override { processName(ast->name, ast->identifierToken); scopedAccept(ast, ast->body); return false; } - bool visit(FunctionDeclaration *ast) + bool visit(FunctionDeclaration *ast) override { return visit(static_cast<FunctionExpression *>(ast)); } - bool visit(PatternElement *ast) + bool visit(PatternElement *ast) override { if (ast->isVariableDeclaration()) processName(ast->bindingIdentifier, ast->identifierToken); return true; } - bool visit(IdentifierExpression *ast) + bool visit(IdentifierExpression *ast) override { processName(ast->name, ast->identifierToken); return false; } - bool visit(StringLiteral *ast) + bool visit(StringLiteral *ast) override { if (ast->value.isEmpty()) return false; diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.h b/src/plugins/qmljseditor/qmljssemantichighlighter.h index f1714b7a8e..42525c7385 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.h +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.h @@ -66,7 +66,7 @@ public: Max // number of the last used value (to generate the warning formats) }; - typedef TextEditor::HighlightingResult Use; + using Use = TextEditor::HighlightingResult; SemanticHighlighter(QmlJSEditorDocument *document); diff --git a/src/plugins/qmljseditor/qmljssemanticinfoupdater.cpp b/src/plugins/qmljseditor/qmljssemanticinfoupdater.cpp index 7cd3b4704c..41dd48a0d7 100644 --- a/src/plugins/qmljseditor/qmljssemanticinfoupdater.cpp +++ b/src/plugins/qmljseditor/qmljssemanticinfoupdater.cpp @@ -47,9 +47,7 @@ SemanticInfoUpdater::SemanticInfoUpdater(QObject *parent) { } -SemanticInfoUpdater::~SemanticInfoUpdater() -{ -} +SemanticInfoUpdater::~SemanticInfoUpdater() = default; void SemanticInfoUpdater::abort() { @@ -121,7 +119,7 @@ QmlJSTools::SemanticInfo SemanticInfoUpdater::makeNewSemanticInfo(const QmlJS::D Link link(semanticInfo.snapshot, modelManager->defaultVContext(doc->language(), doc), modelManager->builtins(doc)); semanticInfo.context = link(doc, &semanticInfo.semanticMessages); - ScopeChain *scopeChain = new ScopeChain(doc, semanticInfo.context); + auto scopeChain = new ScopeChain(doc, semanticInfo.context); semanticInfo.setRootScopeChain(QSharedPointer<const ScopeChain>(scopeChain)); if (doc->language() == Dialect::Json) { diff --git a/src/plugins/qmljseditor/qmljssemanticinfoupdater.h b/src/plugins/qmljseditor/qmljssemanticinfoupdater.h index 0bc3533a42..85a3fce29f 100644 --- a/src/plugins/qmljseditor/qmljssemanticinfoupdater.h +++ b/src/plugins/qmljseditor/qmljssemanticinfoupdater.h @@ -40,8 +40,8 @@ class SemanticInfoUpdater: public QThread Q_OBJECT public: - SemanticInfoUpdater(QObject *parent = 0); - virtual ~SemanticInfoUpdater(); + SemanticInfoUpdater(QObject *parent = nullptr); + ~SemanticInfoUpdater() override; void abort(); void update(const QmlJS::Document::Ptr &doc, const QmlJS::Snapshot &snapshot); @@ -51,7 +51,7 @@ signals: void updated(const QmlJSTools::SemanticInfo &semanticInfo); protected: - virtual void run(); + void run() override; private: QmlJSTools::SemanticInfo makeNewSemanticInfo(const QmlJS::Document::Ptr &doc, diff --git a/src/plugins/qmljseditor/qmljstextmark.cpp b/src/plugins/qmljseditor/qmljstextmark.cpp index 4eac11b2c6..7c427a4d00 100644 --- a/src/plugins/qmljseditor/qmljstextmark.cpp +++ b/src/plugins/qmljseditor/qmljstextmark.cpp @@ -86,7 +86,7 @@ void QmlJSTextMark::removedFromEditor() m_removedFromEditorHandler(this); } -void QmlJSTextMark::init(bool warning, const QString message) +void QmlJSTextMark::init(bool warning, const QString &message) { setIcon(warning ? Utils::Icons::CODEMODEL_WARNING.icon() : Utils::Icons::CODEMODEL_ERROR.icon()); diff --git a/src/plugins/qmljseditor/qmljstextmark.h b/src/plugins/qmljseditor/qmljstextmark.h index fb3fe684d6..e9bc567451 100644 --- a/src/plugins/qmljseditor/qmljstextmark.h +++ b/src/plugins/qmljseditor/qmljstextmark.h @@ -47,7 +47,7 @@ public: private: void removedFromEditor() override; - void init(bool warning, const QString message); + void init(bool warning, const QString &message); private: RemovedFromEditorHandler m_removedFromEditorHandler; diff --git a/src/plugins/qmljseditor/qmljswrapinloader.cpp b/src/plugins/qmljseditor/qmljswrapinloader.cpp index 509a1daf9d..3766dcdbbf 100644 --- a/src/plugins/qmljseditor/qmljswrapinloader.cpp +++ b/src/plugins/qmljseditor/qmljswrapinloader.cpp @@ -52,7 +52,7 @@ namespace { class FindIds : protected Visitor { public: - typedef QHash<QString, SourceLocation> Result; + using Result = QHash<QString, SourceLocation>; Result operator()(Node *node) { @@ -87,7 +87,7 @@ public: : QmlJSQuickFixOperation(interface, 0) , m_objDef(objDef) { - Q_ASSERT(m_objDef != 0); + Q_ASSERT(m_objDef); setDescription(tr("Wrap Component in Loader")); } @@ -96,7 +96,7 @@ public: { QString tryName = base; int extraNumber = 1; - const ObjectValue *found = 0; + const ObjectValue *found = nullptr; const ScopeChain &scope = assistInterface()->semanticInfo().scopeChain(); forever { scope.lookup(tryName, &found); @@ -181,7 +181,7 @@ void matchWrapInLoaderQuickFix(const QmlJSQuickFixInterface &interface, QuickFix QList<Node *> path = interface->semanticInfo().rangePath(pos); for (int i = path.size() - 1; i >= 0; --i) { Node *node = path.at(i); - if (UiObjectDefinition *objDef = cast<UiObjectDefinition *>(node)) { + if (auto objDef = cast<UiObjectDefinition *>(node)) { if (!interface->currentFile()->isCursorOn(objDef->qualifiedTypeNameId)) return; // check that the node is not the root node @@ -189,7 +189,7 @@ void matchWrapInLoaderQuickFix(const QmlJSQuickFixInterface &interface, QuickFix result << new Operation<UiObjectDefinition>(interface, objDef); return; } - } else if (UiObjectBinding *objBinding = cast<UiObjectBinding *>(node)) { + } else if (auto objBinding = cast<UiObjectBinding *>(node)) { if (!interface->currentFile()->isCursorOn(objBinding->qualifiedTypeNameId)) return; result << new Operation<UiObjectBinding>(interface, objBinding); diff --git a/src/plugins/qmljseditor/qmloutlinemodel.cpp b/src/plugins/qmljseditor/qmloutlinemodel.cpp index 647a733a77..15c7c2fa0c 100644 --- a/src/plugins/qmljseditor/qmloutlinemodel.cpp +++ b/src/plugins/qmljseditor/qmloutlinemodel.cpp @@ -131,14 +131,14 @@ private: QHash<AST::UiObjectMember*,AST::UiObjectMember*> parent; QList<AST::UiObjectMember *> stack; - bool preVisit(AST::Node *node) + bool preVisit(AST::Node *node) override { if (AST::UiObjectMember *objMember = node->uiObjectMemberCast()) stack.append(objMember); return true; } - void postVisit(AST::Node *node) + void postVisit(AST::Node *node) override { if (AST::UiObjectMember *objMember = node->uiObjectMemberCast()) { stack.removeLast(); @@ -169,7 +169,7 @@ public: } private: - bool preVisit(AST::Node *node) + bool preVisit(AST::Node *node) override { if (!node) return false; @@ -178,37 +178,37 @@ private: return true; } - void postVisit(AST::Node *) + void postVisit(AST::Node *) override { indent--; } - typedef QPair<QString,QString> ElementType; - bool visit(AST::UiObjectDefinition *objDef) + using ElementType = QPair<QString,QString>; + bool visit(AST::UiObjectDefinition *objDef) override { QModelIndex index = m_model->enterObjectDefinition(objDef); m_nodeToIndex.insert(objDef, index); return true; } - void endVisit(AST::UiObjectDefinition * /*objDef*/) + void endVisit(AST::UiObjectDefinition * /*objDef*/) override { m_model->leaveObjectDefiniton(); } - bool visit(AST::UiObjectBinding *objBinding) + bool visit(AST::UiObjectBinding *objBinding) override { QModelIndex index = m_model->enterObjectBinding(objBinding); m_nodeToIndex.insert(objBinding, index); return true; } - void endVisit(AST::UiObjectBinding * /*objBinding*/) + void endVisit(AST::UiObjectBinding * /*objBinding*/) override { m_model->leaveObjectBinding(); } - bool visit(AST::UiArrayBinding *arrayBinding) + bool visit(AST::UiArrayBinding *arrayBinding) override { QModelIndex index = m_model->enterArrayBinding(arrayBinding); m_nodeToIndex.insert(arrayBinding, index); @@ -216,12 +216,12 @@ private: return true; } - void endVisit(AST::UiArrayBinding * /*arrayBinding*/) + void endVisit(AST::UiArrayBinding * /*arrayBinding*/) override { m_model->leaveArrayBinding(); } - bool visit(AST::UiScriptBinding *scriptBinding) + bool visit(AST::UiScriptBinding *scriptBinding) override { QModelIndex index = m_model->enterScriptBinding(scriptBinding); m_nodeToIndex.insert(scriptBinding, index); @@ -229,12 +229,12 @@ private: return true; } - void endVisit(AST::UiScriptBinding * /*scriptBinding*/) + void endVisit(AST::UiScriptBinding * /*scriptBinding*/) override { m_model->leaveScriptBinding(); } - bool visit(AST::UiPublicMember *publicMember) + bool visit(AST::UiPublicMember *publicMember) override { QModelIndex index = m_model->enterPublicMember(publicMember); m_nodeToIndex.insert(publicMember, index); @@ -242,12 +242,12 @@ private: return true; } - void endVisit(AST::UiPublicMember * /*publicMember*/) + void endVisit(AST::UiPublicMember * /*publicMember*/) override { m_model->leavePublicMember(); } - bool visit(AST::FunctionDeclaration *functionDeclaration) + bool visit(AST::FunctionDeclaration *functionDeclaration) override { QModelIndex index = m_model->enterFunctionDeclaration(functionDeclaration); m_nodeToIndex.insert(functionDeclaration, index); @@ -255,15 +255,15 @@ private: return true; } - void endVisit(AST::FunctionDeclaration * /*functionDeclaration*/) + void endVisit(AST::FunctionDeclaration * /*functionDeclaration*/) override { m_model->leaveFunctionDeclaration(); } - bool visit(AST::BinaryExpression *binExp) + bool visit(AST::BinaryExpression *binExp) override { - AST::IdentifierExpression *lhsIdent = AST::cast<AST::IdentifierExpression *>(binExp->left); - AST::ObjectPattern *rhsObjLit = AST::cast<AST::ObjectPattern *>(binExp->right); + auto lhsIdent = AST::cast<const AST::IdentifierExpression *>(binExp->left); + auto rhsObjLit = AST::cast<AST::ObjectPattern *>(binExp->right); if (lhsIdent && rhsObjLit && (lhsIdent->name == QLatin1String("testcase")) && (binExp->op == QSOperator::Assign)) { @@ -295,8 +295,8 @@ private: while (properties) { QModelIndex index = m_model->enterTestCaseProperties(properties); m_nodeToIndex.insert(properties, index); - if (AST::PatternProperty *assignment = AST::cast<AST::PatternProperty *>(properties->property)) - if (AST::ObjectPattern *objLiteral = AST::cast<AST::ObjectPattern *>(assignment->initializer)) + if (auto assignment = AST::cast<const AST::PatternProperty *>(properties->property)) + if (auto objLiteral = AST::cast<const AST::ObjectPattern *>(assignment->initializer)) visitProperties(objLiteral->properties); m_model->leaveTestCaseProperties(); @@ -333,16 +333,14 @@ QStringList QmlOutlineModel::mimeTypes() const QMimeData *QmlOutlineModel::mimeData(const QModelIndexList &indexes) const { if (indexes.count() <= 0) - return 0; + return nullptr; auto data = new Utils::DropMimeData; data->setOverrideFileDropAction(Qt::CopyAction); QByteArray encoded; QDataStream stream(&encoded, QIODevice::WriteOnly); stream << indexes.size(); - for (int i = 0; i < indexes.size(); ++i) { - QModelIndex index = indexes.at(i); - + for (const auto &index : indexes) { AST::SourceLocation location = sourceLocation(index); data->addFile(m_editorDocument->filePath().toString(), location.startLine, location.startColumn - 1 /*editors have 0-based column*/); @@ -399,7 +397,7 @@ bool QmlOutlineModel::dropMimeData(const QMimeData *data, Qt::DropAction action, itemsToMove << static_cast<QmlOutlineItem*>(itemFromIndex(index)); } - QmlOutlineItem *targetItem = static_cast<QmlOutlineItem*>(itemFromIndex(parent)); + auto targetItem = static_cast<QmlOutlineItem*>(itemFromIndex(parent)); reparentNodes(targetItem, row, itemsToMove); // Prevent view from calling removeRow() on it's own @@ -474,7 +472,7 @@ QModelIndex QmlOutlineModel::enterObjectDefinition(AST::UiObjectDefinition *objD const QString typeName = asString(objDef->qualifiedTypeNameId); QMap<int, QVariant> data; - AST::UiQualifiedId *idNode = 0; + AST::UiQualifiedId *idNode = nullptr; QIcon icon; data.insert(Qt::DisplayRole, typeName); @@ -575,7 +573,7 @@ QModelIndex QmlOutlineModel::enterPublicMember(AST::UiPublicMember *publicMember objectData.insert(AnnotationRole, getAnnotation(publicMember->statement)); objectData.insert(ItemTypeRole, NonElementBindingType); - QmlOutlineItem *item = enterNode(objectData, publicMember, 0, Icons::publicMemberIcon()); + QmlOutlineItem *item = enterNode(objectData, publicMember, nullptr, Icons::publicMemberIcon()); return item->index(); } @@ -610,7 +608,8 @@ QModelIndex QmlOutlineModel::enterFunctionDeclaration(AST::FunctionDeclaration * functionDeclaration->formals)); objectData.insert(ItemTypeRole, ElementBindingType); - QmlOutlineItem *item = enterNode(objectData, functionDeclaration, 0, Icons::functionDeclarationIcon()); + QmlOutlineItem *item = enterNode(objectData, functionDeclaration, nullptr, + Icons::functionDeclarationIcon()); return item->index(); } @@ -640,7 +639,8 @@ QModelIndex QmlOutlineModel::enterFieldMemberExpression(AST::FieldMemberExpressi objectData.insert(Qt::DisplayRole, display); objectData.insert(ItemTypeRole, ElementBindingType); - QmlOutlineItem *item = enterNode(objectData, expression, 0, m_icons->functionDeclarationIcon()); + QmlOutlineItem *item = enterNode(objectData, expression, nullptr, + m_icons->functionDeclarationIcon()); return item->index(); } @@ -657,7 +657,8 @@ QModelIndex QmlOutlineModel::enterTestCase(AST::ObjectPattern *objectLiteral) objectData.insert(Qt::DisplayRole, QLatin1String("testcase")); objectData.insert(ItemTypeRole, ElementBindingType); - QmlOutlineItem *item = enterNode(objectData, objectLiteral, 0, Icons::objectDefinitionIcon()); + QmlOutlineItem *item = enterNode(objectData, objectLiteral, nullptr, + Icons::objectDefinitionIcon()); return item->index(); } @@ -670,29 +671,29 @@ void QmlOutlineModel::leaveTestCase() QModelIndex QmlOutlineModel::enterTestCaseProperties(AST::PatternPropertyList *propertyAssignmentList) { QMap<int, QVariant> objectData; - if (AST::PatternProperty *assignment = AST::cast<AST::PatternProperty *>( + if (auto assignment = AST::cast<AST::PatternProperty *>( propertyAssignmentList->property)) { - if (AST::IdentifierPropertyName *propertyName = AST::cast<AST::IdentifierPropertyName *>(assignment->name)) { + if (auto propertyName = AST::cast<const AST::IdentifierPropertyName *>(assignment->name)) { objectData.insert(Qt::DisplayRole, propertyName->id.toString()); objectData.insert(ItemTypeRole, ElementBindingType); QmlOutlineItem *item; if (assignment->initializer->kind == AST::Node::Kind_FunctionExpression) - item = enterNode(objectData, assignment, 0, Icons::functionDeclarationIcon()); + item = enterNode(objectData, assignment, nullptr, Icons::functionDeclarationIcon()); else if (assignment->initializer->kind == AST::Node::Kind_ObjectPattern) - item = enterNode(objectData, assignment, 0, Icons::objectDefinitionIcon()); + item = enterNode(objectData, assignment, nullptr, Icons::objectDefinitionIcon()); else - item = enterNode(objectData, assignment, 0, Icons::scriptBindingIcon()); + item = enterNode(objectData, assignment, nullptr, Icons::scriptBindingIcon()); return item->index(); } } - if (AST::PatternProperty *getterSetter = AST::cast<AST::PatternProperty *>( + if (auto getterSetter = AST::cast<AST::PatternProperty *>( propertyAssignmentList->property)) { - if (AST::IdentifierPropertyName *propertyName = AST::cast<AST::IdentifierPropertyName *>(getterSetter->name)) { + if (auto propertyName = AST::cast<const AST::IdentifierPropertyName *>(getterSetter->name)) { objectData.insert(Qt::DisplayRole, propertyName->id.toString()); objectData.insert(ItemTypeRole, ElementBindingType); QmlOutlineItem *item; - item = enterNode(objectData, getterSetter, 0, Icons::functionDeclarationIcon()); + item = enterNode(objectData, getterSetter, nullptr, Icons::functionDeclarationIcon()); return item->index(); @@ -708,14 +709,14 @@ void QmlOutlineModel::leaveTestCaseProperties() AST::Node *QmlOutlineModel::nodeForIndex(const QModelIndex &index) const { - QTC_ASSERT(index.isValid() && (index.model() == this), return 0); + QTC_ASSERT(index.isValid() && (index.model() == this), return nullptr); if (index.isValid()) { - QmlOutlineItem *item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); - QTC_ASSERT(item, return 0); - QTC_ASSERT(m_itemToNode.contains(item), return 0); + auto item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); + QTC_ASSERT(item, return nullptr); + QTC_ASSERT(m_itemToNode.contains(item), return nullptr); return m_itemToNode.value(item); } - return 0; + return nullptr; } AST::SourceLocation QmlOutlineModel::sourceLocation(const QModelIndex &index) const @@ -728,7 +729,7 @@ AST::SourceLocation QmlOutlineModel::sourceLocation(const QModelIndex &index) co location = getLocation(member); else if (AST::ExpressionNode *expression = node->expressionCast()) location = getLocation(expression); - else if (AST::PatternPropertyList *propertyAssignmentList = AST::cast<AST::PatternPropertyList *>(node)) + else if (auto propertyAssignmentList = AST::cast<AST::PatternPropertyList *>(node)) location = getLocation(propertyAssignmentList); } return location; @@ -736,22 +737,22 @@ AST::SourceLocation QmlOutlineModel::sourceLocation(const QModelIndex &index) co AST::UiQualifiedId *QmlOutlineModel::idNode(const QModelIndex &index) const { - QTC_ASSERT(index.isValid() && (index.model() == this), return 0); - QmlOutlineItem *item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); + QTC_ASSERT(index.isValid() && (index.model() == this), return nullptr); + auto item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); return m_itemToIdNode.value(item); } QIcon QmlOutlineModel::icon(const QModelIndex &index) const { QTC_ASSERT(index.isValid() && (index.model() == this), return QIcon()); - QmlOutlineItem *item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); + auto item = static_cast<QmlOutlineItem*>(itemFromIndex(index)); return m_itemToIcon.value(item); } QmlOutlineItem *QmlOutlineModel::enterNode(QMap<int, QVariant> data, AST::Node *node, AST::UiQualifiedId *idNode, const QIcon &icon) { int siblingIndex = m_treePos.last(); - QmlOutlineItem *newItem = 0; + QmlOutlineItem *newItem = nullptr; if (siblingIndex == 0) { // first child if (!m_currentItem->hasChildren()) { @@ -827,19 +828,18 @@ void QmlOutlineModel::reparentNodes(QmlOutlineItem *targetItem, int row, QList<Q QList<Utils::ChangeSet::Range> changedRanges; - for (int i = 0; i < itemsToMove.size(); ++i) { - QmlOutlineItem *outlineItem = itemsToMove.at(i); + for (auto outlineItem : itemsToMove) { AST::UiObjectMember *sourceObjectMember = m_itemToNode.value(outlineItem)->uiObjectMemberCast(); if (!sourceObjectMember) return; bool insertionOrderSpecified = true; - AST::UiObjectMember *memberToInsertAfter = 0; + AST::UiObjectMember *memberToInsertAfter = nullptr; { if (row == -1) { insertionOrderSpecified = false; } else if (row > 0) { - QmlOutlineItem *outlineItem = static_cast<QmlOutlineItem*>(targetItem->child(row - 1)); + auto outlineItem = static_cast<QmlOutlineItem*>(targetItem->child(row - 1)); memberToInsertAfter = m_itemToNode.value(outlineItem)->uiObjectMemberCast(); } } @@ -888,8 +888,8 @@ void QmlOutlineModel::moveObjectMember(AST::UiObjectMember *toMove, Rewriter rewriter(documentText, changeSet, QStringList()); - if (AST::UiObjectDefinition *objDefinition = AST::cast<AST::UiObjectDefinition*>(newParent)) { - AST::UiObjectMemberList *listInsertAfter = 0; + if (auto objDefinition = AST::cast<const AST::UiObjectDefinition*>(newParent)) { + AST::UiObjectMemberList *listInsertAfter = nullptr; if (insertionOrderSpecified) { if (insertAfter) { listInsertAfter = objDefinition->initializer->members; @@ -898,7 +898,7 @@ void QmlOutlineModel::moveObjectMember(AST::UiObjectMember *toMove, } } - if (AST::UiScriptBinding *moveScriptBinding = AST::cast<AST::UiScriptBinding*>(toMove)) { + if (auto moveScriptBinding = AST::cast<const AST::UiScriptBinding*>(toMove)) { const QString propertyName = asString(moveScriptBinding->qualifiedId); QString propertyValue; { @@ -925,8 +925,8 @@ void QmlOutlineModel::moveObjectMember(AST::UiObjectMember *toMove, else *addedRange = rewriter.addObject(objDefinition->initializer, strToMove); } - } else if (AST::UiArrayBinding *arrayBinding = AST::cast<AST::UiArrayBinding*>(newParent)) { - AST::UiArrayMemberList *listInsertAfter = 0; + } else if (auto arrayBinding = AST::cast<AST::UiArrayBinding*>(newParent)) { + AST::UiArrayMemberList *listInsertAfter = nullptr; if (insertionOrderSpecified) { if (insertAfter) { listInsertAfter = arrayBinding->members; @@ -1000,7 +1000,7 @@ AST::SourceLocation QmlOutlineModel::getLocation(AST::ExpressionNode *exprNode) } AST::SourceLocation QmlOutlineModel::getLocation(AST::PatternPropertyList *propertyNode) { - if (AST::PatternProperty *assignment = AST::cast<AST::PatternProperty *>(propertyNode->property)) + if (auto assignment = AST::cast<AST::PatternProperty *>(propertyNode->property)) return getLocation(assignment); return propertyNode->firstSourceLocation(); // should never happen } @@ -1045,7 +1045,7 @@ QString QmlOutlineModel::getAnnotation(AST::UiObjectInitializer *objectInitializ QString QmlOutlineModel::getAnnotation(AST::Statement *statement) { - if (AST::ExpressionStatement *expr = AST::cast<AST::ExpressionStatement*>(statement)) + if (auto expr = AST::cast<const AST::ExpressionStatement*>(statement)) return getAnnotation(expr->expression); return QString(); } @@ -1065,7 +1065,7 @@ QString QmlOutlineModel::getAnnotation(AST::ExpressionNode *expression) QHash<QString,QString> QmlOutlineModel::getScriptBindings(AST::UiObjectInitializer *objectInitializer) { QHash <QString,QString> scriptBindings; for (AST::UiObjectMemberList *it = objectInitializer->members; it; it = it->next) { - if (AST::UiScriptBinding *binding = AST::cast<AST::UiScriptBinding*>(it->member)) { + if (auto binding = AST::cast<const AST::UiScriptBinding*>(it->member)) { const QString bindingName = asString(binding->qualifiedId); scriptBindings.insert(bindingName, getAnnotation(binding->statement)); } diff --git a/src/plugins/qmljseditor/qmloutlinemodel.h b/src/plugins/qmljseditor/qmloutlinemodel.h index fddbd2f7c6..17dd08abd8 100644 --- a/src/plugins/qmljseditor/qmloutlinemodel.h +++ b/src/plugins/qmljseditor/qmloutlinemodel.h @@ -48,8 +48,8 @@ public: QmlOutlineItem(QmlOutlineModel *model); // QStandardItem - QVariant data(int role = Qt::UserRole + 1) const; - int type() const; + QVariant data(int role = Qt::UserRole + 1) const override; + int type() const override; void setItemData(const QMap<int, QVariant> &roles); @@ -79,12 +79,12 @@ public: QmlOutlineModel(QmlJSEditorDocument *document); // QStandardItemModel - QStringList mimeTypes() const; - QMimeData *mimeData(const QModelIndexList &indexes) const; - bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent); - Qt::ItemFlags flags(const QModelIndex &index) const; - Qt::DropActions supportedDragActions() const; - Qt::DropActions supportedDropActions() const; + QStringList mimeTypes() const override; + QMimeData *mimeData(const QModelIndexList &indexes) const override; + bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override; + Qt::ItemFlags flags(const QModelIndex &index) const override; + Qt::DropActions supportedDragActions() const override; + Qt::DropActions supportedDropActions() const override; QmlJS::Document::Ptr document() const; void update(const QmlJSTools::SemanticInfo &semanticInfo); diff --git a/src/plugins/qmljseditor/quicktoolbar.cpp b/src/plugins/qmljseditor/quicktoolbar.cpp index 41c1bea114..f83cc2e13e 100644 --- a/src/plugins/qmljseditor/quicktoolbar.cpp +++ b/src/plugins/qmljseditor/quicktoolbar.cpp @@ -57,7 +57,7 @@ static inline const ObjectValue * getPropertyChangesTarget(Node *node, const Sco UiObjectInitializer *initializer = initializerOfObject(node); if (initializer) { for (UiObjectMemberList *members = initializer->members; members; members = members->next) { - if (UiScriptBinding *scriptBinding = cast<UiScriptBinding *>(members->member)) { + if (auto scriptBinding = cast<const UiScriptBinding *>(members->member)) { if (scriptBinding->qualifiedId && scriptBinding->qualifiedId->name == QLatin1String("target") && ! scriptBinding->qualifiedId->next) { @@ -66,12 +66,12 @@ static inline const ObjectValue * getPropertyChangesTarget(Node *node, const Sco if (const ObjectValue *targetObject = value_cast<ObjectValue>(targetValue)) return targetObject; else - return 0; + return nullptr; } } } } - return 0; + return nullptr; } QuickToolBar::QuickToolBar() @@ -105,7 +105,7 @@ QuickToolBar::QuickToolBar() QuickToolBar::~QuickToolBar() { delete m_widget.data(); - m_widget = 0; + m_widget = nullptr; } void QuickToolBar::apply(TextEditor::TextEditorWidget *editorWidget, Document::Ptr document, const ScopeChain *scopeChain, Node *node, bool update, bool force) @@ -153,13 +153,13 @@ void QuickToolBar::apply(TextEditor::TextEditorWidget *editorWidget, Document::P contextWidget()->colorDialog()->setParent(editorWidget->parentWidget()); if (cast<UiObjectDefinition*>(node) || cast<UiObjectBinding*>(node)) { - UiObjectDefinition *objectDefinition = cast<UiObjectDefinition*>(node); - UiObjectBinding *objectBinding = cast<UiObjectBinding*>(node); + auto objectDefinition = cast<const UiObjectDefinition*>(node); + auto objectBinding = cast<const UiObjectBinding*>(node); QString name; quint32 offset = 0; quint32 end = 0; - UiObjectInitializer *initializer = 0; + UiObjectInitializer *initializer = nullptr; if (objectDefinition) { name = objectDefinition->qualifiedTypeNameId->name.toString(); initializer = objectDefinition->initializer; @@ -199,7 +199,7 @@ void QuickToolBar::apply(TextEditor::TextEditorWidget *editorWidget, Document::P reg = reg.intersected(rect); if (contextWidget()->acceptsType(m_prototypes)) { - m_node = 0; + m_node = nullptr; PropertyReader propertyReader(document, initializer); QTextCursor tc = m_editorWidget->textCursor(); tc.setPosition(offset); @@ -224,12 +224,12 @@ void QuickToolBar::apply(TextEditor::TextEditorWidget *editorWidget, Document::P m_doc = document; m_node = node; } else { - contextWidget()->setParent(0); + contextWidget()->setParent(nullptr); contextWidget()->hide(); contextWidget()->colorDialog()->hide(); } } else { - contextWidget()->setParent(0); + contextWidget()->setParent(nullptr); contextWidget()->hide(); contextWidget()->colorDialog()->hide(); } @@ -248,8 +248,8 @@ bool QuickToolBar::isAvailable(TextEditor::TextEditorWidget *, Document::Ptr doc QString name; - UiObjectDefinition *objectDefinition = cast<UiObjectDefinition*>(node); - UiObjectBinding *objectBinding = cast<UiObjectBinding*>(node); + auto objectDefinition = cast<const UiObjectDefinition*>(node); + auto objectBinding = cast<const UiObjectBinding*>(node); if (objectDefinition) name = objectDefinition->qualifiedTypeNameId->name.toString(); @@ -281,10 +281,10 @@ void QuickToolBar::setProperty(const QString &propertyName, const QVariant &valu stringValue = QLatin1Char('\"') + value.toString() + QLatin1Char('\"'); if (cast<UiObjectDefinition*>(m_node) || cast<UiObjectBinding*>(m_node)) { - UiObjectDefinition *objectDefinition = cast<UiObjectDefinition*>(m_node); - UiObjectBinding *objectBinding = cast<UiObjectBinding*>(m_node); + auto objectDefinition = cast<const UiObjectDefinition*>(m_node); + auto objectBinding = cast<const UiObjectBinding*>(m_node); - UiObjectInitializer *initializer = 0; + UiObjectInitializer *initializer = nullptr; if (objectDefinition) initializer = objectDefinition->initializer; else if (objectBinding) @@ -326,10 +326,10 @@ void QuickToolBar::setProperty(const QString &propertyName, const QVariant &valu void QuickToolBar::removeProperty(const QString &propertyName) { if (cast<UiObjectDefinition*>(m_node) || cast<UiObjectBinding*>(m_node)) { - UiObjectDefinition *objectDefinition = cast<UiObjectDefinition*>(m_node); - UiObjectBinding *objectBinding = cast<UiObjectBinding*>(m_node); + auto objectDefinition = cast<const UiObjectDefinition*>(m_node); + auto objectBinding = cast<const UiObjectBinding*>(m_node); - UiObjectInitializer *initializer = 0; + UiObjectInitializer *initializer = nullptr; if (objectDefinition) initializer = objectDefinition->initializer; else if (objectBinding) diff --git a/src/plugins/qmljseditor/quicktoolbar.h b/src/plugins/qmljseditor/quicktoolbar.h index 42a71abbce..e781bdb1d4 100644 --- a/src/plugins/qmljseditor/quicktoolbar.h +++ b/src/plugins/qmljseditor/quicktoolbar.h @@ -39,13 +39,13 @@ class QuickToolBar : public QmlJS::IContextPane public: QuickToolBar(); - ~QuickToolBar(); - void apply(TextEditor::TextEditorWidget *widget, QmlJS::Document::Ptr document, const QmlJS::ScopeChain *scopeChain, QmlJS::AST::Node *node, bool update, bool force = false); - bool isAvailable(TextEditor::TextEditorWidget *widget, QmlJS::Document::Ptr document, QmlJS::AST::Node *node); + ~QuickToolBar() override; + void apply(TextEditor::TextEditorWidget *widget, QmlJS::Document::Ptr document, const QmlJS::ScopeChain *scopeChain, QmlJS::AST::Node *node, bool update, bool force = false) override; + bool isAvailable(TextEditor::TextEditorWidget *widget, QmlJS::Document::Ptr document, QmlJS::AST::Node *node) override; void setProperty(const QString &propertyName, const QVariant &value); void removeProperty(const QString &propertyName); - void setEnabled(bool); - QWidget* widget(); + void setEnabled(bool) override; + QWidget* widget() override; void onPropertyChanged(const QString &, const QVariant &); void onPropertyRemoved(const QString &); |