File indexing completed on 2024-05-05 04:41:00
0001 /* 0002 SPDX-FileCopyrightText: 2007 Dukju Ahn <dukjuahn@gmail.com> 0003 SPDX-FileCopyrightText: 2008 Andreas Pakulat <apaku@gmx.de> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef KDEVPLATFORM_PLUGIN_KDEVSVNPLUGIN_H 0009 #define KDEVPLATFORM_PLUGIN_KDEVSVNPLUGIN_H 0010 0011 #include <vcs/interfaces/icentralizedversioncontrol.h> 0012 #include <vcs/vcsdiff.h> 0013 #include <vcs/vcslocation.h> 0014 #include <interfaces/iplugin.h> 0015 0016 class QUrl; 0017 class SvnStatusHolder; 0018 class SvnCommitDialog; 0019 0020 namespace ThreadWeaver 0021 { 0022 class Queue; 0023 } 0024 0025 namespace KDevelop 0026 { 0027 class VcsPluginHelper; 0028 } 0029 0030 class KDevSvnPlugin: public KDevelop::IPlugin, public KDevelop::ICentralizedVersionControl 0031 { 0032 Q_OBJECT 0033 Q_INTERFACES(KDevelop::IBasicVersionControl KDevelop::ICentralizedVersionControl) 0034 public: 0035 explicit KDevSvnPlugin(QObject *parent, const QVariantList & = QVariantList()); 0036 ~KDevSvnPlugin() override; 0037 0038 QString name() const override; 0039 KDevelop::VcsImportMetadataWidget* createImportMetadataWidget(QWidget* parent) override; 0040 0041 // Begin: KDevelop::IBasicVersionControl 0042 bool isValidRemoteRepositoryUrl(const QUrl& remoteLocation) override; 0043 bool isVersionControlled(const QUrl &localLocation) override; 0044 0045 KDevelop::VcsJob* repositoryLocation(const QUrl &localLocation) override; 0046 0047 KDevelop::VcsJob* status(const QList<QUrl>& localLocations, 0048 KDevelop::IBasicVersionControl::RecursionMode recursion 0049 = KDevelop::IBasicVersionControl::Recursive) override; 0050 0051 KDevelop::VcsJob* add(const QList<QUrl>& localLocations, 0052 KDevelop::IBasicVersionControl::RecursionMode recursion 0053 = KDevelop::IBasicVersionControl::Recursive) override; 0054 0055 KDevelop::VcsJob* remove(const QList<QUrl>& localLocations) override; 0056 0057 KDevelop::VcsJob* copy(const QUrl &localLocationSrc, 0058 const QUrl &localLocationDstn) override; 0059 0060 KDevelop::VcsJob* move(const QUrl &localLocationSrc, 0061 const QUrl &localLocationDst) override; 0062 0063 KDevelop::VcsJob* revert(const QList<QUrl>& localLocations, 0064 KDevelop::IBasicVersionControl::RecursionMode recursion 0065 = KDevelop::IBasicVersionControl::Recursive) override; 0066 0067 KDevelop::VcsJob* update(const QList<QUrl>& localLocations, 0068 const KDevelop::VcsRevision& rev, 0069 KDevelop::IBasicVersionControl::RecursionMode recursion 0070 = KDevelop::IBasicVersionControl::Recursive) override; 0071 0072 KDevelop::VcsJob* commit(const QString& message, 0073 const QList<QUrl>& localLocations, 0074 KDevelop::IBasicVersionControl::RecursionMode recursion 0075 = KDevelop::IBasicVersionControl::Recursive) override; 0076 0077 KDevelop::VcsJob* diff(const QUrl &fileOrDirectory, 0078 const KDevelop::VcsRevision& srcRevision, 0079 const KDevelop::VcsRevision& dstRevision, 0080 KDevelop::IBasicVersionControl::RecursionMode recursion 0081 = KDevelop::IBasicVersionControl::Recursive) override; 0082 0083 /** 0084 * Retrieves a diff between the two locations at the given revisions 0085 * 0086 * The diff is in unified diff format for text files by default 0087 */ 0088 KDevelop::VcsJob* diff2(const KDevelop::VcsLocation& localOrRepoLocationSrc, 0089 const KDevelop::VcsLocation& localOrRepoLocationDst, 0090 const KDevelop::VcsRevision& srcRevision, 0091 const KDevelop::VcsRevision& dstRevision, 0092 KDevelop::IBasicVersionControl::RecursionMode = KDevelop::IBasicVersionControl::Recursive); 0093 0094 KDevelop::VcsJob* log(const QUrl &localLocation, 0095 const KDevelop::VcsRevision& rev, 0096 unsigned long limit) override; 0097 0098 KDevelop::VcsJob* log(const QUrl &localLocation, 0099 const KDevelop::VcsRevision& rev, 0100 const KDevelop::VcsRevision& limit) override; 0101 0102 KDevelop::VcsJob* annotate(const QUrl &localLocation, 0103 const KDevelop::VcsRevision& rev) override; 0104 0105 KDevelop::VcsJob* merge(const KDevelop::VcsLocation& localOrRepoLocationSrc, 0106 const KDevelop::VcsLocation& localOrRepoLocationDst, 0107 const KDevelop::VcsRevision& srcRevision, 0108 const KDevelop::VcsRevision& dstRevision, 0109 const QUrl &localLocation); 0110 0111 KDevelop::VcsJob* resolve(const QList<QUrl>& localLocations, 0112 KDevelop::IBasicVersionControl::RecursionMode recursion) override; 0113 KDevelop::VcsLocationWidget* vcsLocation(QWidget* parent) const override; 0114 // End: KDevelop::IBasicVersionControl 0115 0116 // Begin: KDevelop::ICentralizedVersionControl 0117 KDevelop::VcsJob* import(const QString & commitMessage, const QUrl &sourceDirectory, const KDevelop::VcsLocation & destinationRepository) override; 0118 0119 KDevelop::VcsJob* createWorkingCopy(const KDevelop::VcsLocation & sourceRepository, const QUrl &destinationDirectory, KDevelop::IBasicVersionControl::RecursionMode recursion = KDevelop::IBasicVersionControl::Recursive) override; 0120 0121 KDevelop::VcsJob* edit(const QUrl &localLocation) override; 0122 0123 KDevelop::VcsJob* unedit(const QUrl &localLocation) override; 0124 0125 KDevelop::VcsJob* localRevision(const QUrl &localLocation, 0126 KDevelop::VcsRevision::RevisionType) override; 0127 // End: KDevelop::ICentralizedVersionControl 0128 0129 KDevelop::ContextMenuExtension contextMenuExtension(KDevelop::Context* context, QWidget* parent) override; 0130 0131 ThreadWeaver::Queue* jobQueue() const; 0132 0133 public Q_SLOTS: 0134 0135 // invoked by context-menu 0136 void ctxCopy(); 0137 void ctxMove(); 0138 private: 0139 QScopedPointer<KDevelop::VcsPluginHelper> m_common; 0140 QAction* copy_action; 0141 QAction* move_action; 0142 ThreadWeaver::Queue* m_jobQueue; 0143 }; 0144 #endif 0145