File indexing completed on 2024-05-12 04:39:08
0001 /* 0002 SPDX-FileCopyrightText: 2009 David Nolden <david.nolden.kdevelop@art-master.de> 0003 SPDX-FileCopyrightText: 2014 Kevin Funk <kfunk@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-only 0006 */ 0007 0008 #ifndef ADAPTSIGNATUREACTION_H 0009 #define ADAPTSIGNATUREACTION_H 0010 0011 #include <interfaces/iassistant.h> 0012 #include <language/duchain/declaration.h> 0013 #include <language/duchain/topducontext.h> 0014 0015 namespace KDevelop { 0016 class RenameAction; 0017 } 0018 0019 using ParameterItem = QPair<KDevelop::IndexedType, QString>; 0020 struct Signature 0021 { 0022 Signature() 0023 : isConst(false) 0024 {} 0025 QVector<ParameterItem> parameters; 0026 QList<QString> defaultParams; 0027 KDevelop::IndexedType returnType; 0028 bool isConst; 0029 }; 0030 0031 class AdaptSignatureAction 0032 : public KDevelop::IAssistantAction 0033 { 0034 Q_OBJECT 0035 0036 public: 0037 AdaptSignatureAction(const KDevelop::DeclarationId& definitionId, 0038 const KDevelop::ReferencedTopDUContext& definitionContext, 0039 const Signature& oldSignature, 0040 const Signature& newSignature, 0041 bool editingDefinition, 0042 const QList<KDevelop::RenameAction*>& renameActions); 0043 ~AdaptSignatureAction() override; 0044 0045 QString description() const override; 0046 QString toolTip() const override; 0047 void execute() override; 0048 0049 private: 0050 KDevelop::DeclarationId m_otherSideId; 0051 KDevelop::ReferencedTopDUContext m_otherSideTopContext; 0052 Signature m_oldSignature; 0053 Signature m_newSignature; 0054 bool m_editingDefinition; 0055 const QList<KDevelop::RenameAction*> m_renameActions; 0056 }; 0057 0058 #endif // ADAPTSIGNATUREACTION_H