File indexing completed on 2024-05-19 05:45:41
0001 /* 0002 SPDX-FileCopyrightText: 2021 Hamed Masafi <hamed.masfi@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QList> 0010 0011 #include "actions.h" 0012 0013 #include <Dolphin/KVersionControlPlugin> 0014 0015 class StatusCache; 0016 class DolphinPlugin : public KVersionControlPlugin 0017 { 0018 Q_OBJECT 0019 0020 enum class ChangeStatus { 0021 Unknown, 0022 Unmodified, 0023 Modified, 0024 Added, 0025 Removed, 0026 Renamed, 0027 Copied, 0028 UpdatedButInmerged, 0029 Ignored, 0030 Untracked, 0031 }; 0032 0033 public: 0034 explicit DolphinPlugin(QObject *parent, const QList<QVariant> &args); 0035 ~DolphinPlugin(); 0036 0037 QString fileName() const override; 0038 bool beginRetrieval(const QString &directory) override; 0039 void endRetrieval() override; 0040 ItemVersion itemVersion(const KFileItem &item) const override; 0041 QList<QAction *> versionControlActions(const KFileItemList &items) const override; 0042 QList<QAction *> outOfVersionControlActions(const KFileItemList &items) const override; 0043 0044 private Q_SLOTS: 0045 #define f(name, text, args, icon) void name##Clicked(); 0046 ACTIONS_FOR_EACH(f) 0047 #undef f 0048 0049 private: 0050 StatusCache *mCache; 0051 QAction *mMainActionGit = nullptr; 0052 QAction *mMainActionNonGit = nullptr; 0053 QString mPath; 0054 0055 #define decl(name, text, args, icon) QAction *name; 0056 ACTIONS_FOR_EACH(decl) 0057 #undef decl 0058 };