aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-10-26 12:02:03 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-10-27 09:19:22 +0000
commit49a8b021d968877c29c74833cefca8ed574f1cf9 (patch)
tree976a149d6651a264d53e685bbc72f75d7d97e647
parent78d6c0a15e86e88fa03b5ffa652014ab05d14e1e (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.cpp11
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);