diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-10-26 12:02:03 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-10-27 09:19:22 +0000 |
commit | 49a8b021d968877c29c74833cefca8ed574f1cf9 (patch) | |
tree | 976a149d6651a264d53e685bbc72f75d7d97e647 | |
parent | 78d6c0a15e86e88fa03b5ffa652014ab05d14e1e (diff) |
CppEditor: Make pure virtual functions opt-in
... in the "Create implementations for all member functions" quickfix.
Fixes: QTCREATORBUG-26468
Change-Id: I0965290c38cc66cffaf5dd3871eb96b6ff24b4d2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | src/plugins/cppeditor/cppquickfixes.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index 6f5d9d07d1..f1f0193511 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -3116,8 +3116,10 @@ public: defaultImplTargetComboBox->insertItems(0, implTargetStrings); connect(defaultImplTargetComboBox, qOverload<int>(&QComboBox::currentIndexChanged), this, [this](int index) { - for (QComboBox * const cb : qAsConst(m_implTargetBoxes)) - cb->setCurrentIndex(index); + for (int i = 0; i < m_implTargetBoxes.size(); ++i) { + if (!m_candidates.at(i)->type()->asFunctionType()->isPureVirtual()) + static_cast<QComboBox *>(m_implTargetBoxes.at(i))->setCurrentIndex(index); + } }); const auto defaultImplTargetLayout = new QHBoxLayout; defaultImplTargetLayout->addWidget(new QLabel(tr("Default implementation location:"))); @@ -3128,10 +3130,13 @@ public: oo.showFunctionSignatures = true; oo.showReturnTypes = true; for (int i = 0; i < m_candidates.size(); ++i) { + const Function * const func = m_candidates.at(i)->type()->asFunctionType(); + QTC_ASSERT(func, continue); const auto implTargetComboBox = new QComboBox; m_implTargetBoxes.append(implTargetComboBox); implTargetComboBox->insertItems(0, implTargetStrings); - const Symbol * const func = m_candidates.at(i); + if (func->isPureVirtual()) + implTargetComboBox->setCurrentIndex(0); candidatesLayout->addWidget(new QLabel(oo.prettyType(func->type(), func->name())), i, 0); candidatesLayout->addWidget(implTargetComboBox, i, 1); |