File indexing completed on 2024-04-28 04:39:09
0001 /* 0002 SPDX-FileCopyrightText: 2004 Roberto Raggi <roberto@kdevelop.org> 0003 SPDX-FileCopyrightText: 2007 Andreas Pakulat <apaku@gmx.de> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef KDEVPLATFORM_PLUGIN_PROJECTMANAGERVIEWPLUGIN_H 0009 #define KDEVPLATFORM_PLUGIN_PROJECTMANAGERVIEWPLUGIN_H 0010 0011 #include <interfaces/iplugin.h> 0012 #include <QVariantList> 0013 #include <project/builderjob.h> 0014 0015 namespace KDevelop 0016 { 0017 class ProjectBaseItem; 0018 } 0019 0020 class ProjectManagerView; 0021 0022 class ProjectManagerViewPlugin: public KDevelop::IPlugin 0023 { 0024 Q_OBJECT 0025 public: 0026 0027 public: 0028 explicit ProjectManagerViewPlugin(QObject *parent, const QVariantList & = QVariantList() ); 0029 ~ProjectManagerViewPlugin() override; 0030 0031 // Plugin methods 0032 void unload() override; 0033 0034 KDevelop::ContextMenuExtension contextMenuExtension(KDevelop::Context* context, QWidget* parent) override; 0035 0036 void removeItems(const QList<KDevelop::ProjectBaseItem*>& items); 0037 void renameItems(const QList< KDevelop::ProjectBaseItem* >& items); 0038 0039 public Q_SLOTS: 0040 void buildProjectItems(); 0041 void installProjectItems(); 0042 void cleanProjectItems(); 0043 void copyFromContextMenu(); 0044 void pasteFromContextMenu(); 0045 0046 protected Q_SLOTS: 0047 void closeProjects(); 0048 void buildItemsFromContextMenu(); 0049 void installItemsFromContextMenu(); 0050 void cleanItemsFromContextMenu(); 0051 void configureProjectItems(); 0052 void pruneProjectItems(); 0053 void buildAllProjects(); 0054 void addItemsFromContextMenuToBuildset(); 0055 void projectConfiguration(); 0056 void runTargetsFromContextMenu(); 0057 void reloadFromContextMenu(); 0058 void createFolderFromContextMenu(); 0059 void createFileFromContextMenu(); 0060 void removeFromContextMenu(); 0061 void cutFromContextMenu(); 0062 void removeTargetFilesFromContextMenu(); 0063 void renameItemFromContextMenu(); 0064 void updateActionState( KDevelop::Context* ctx ); 0065 void updateFromBuildSetChange(); 0066 0067 private: 0068 QList<KDevelop::ProjectBaseItem*> recurseAndFetchCheckedItems( KDevelop::ProjectBaseItem* item ); 0069 QList<KDevelop::ProjectBaseItem*> collectItems(); 0070 QList<KDevelop::ProjectBaseItem*> collectAllProjects(); 0071 void runBuilderJob( KDevelop::BuilderJob::BuildType type, const QList<KDevelop::ProjectBaseItem*>& items ); 0072 class ProjectManagerViewPluginPrivate* const d; 0073 }; 0074 0075 #endif 0076