aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clearcase/clearcaseplugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/clearcase/clearcaseplugin.h')
-rw-r--r--src/plugins/clearcase/clearcaseplugin.h235
1 files changed, 14 insertions, 221 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.h b/src/plugins/clearcase/clearcaseplugin.h
index 0c756d5c0c..dd1f593dd3 100644
--- a/src/plugins/clearcase/clearcaseplugin.h
+++ b/src/plugins/clearcase/clearcaseplugin.h
@@ -28,9 +28,7 @@
#include "clearcasesettings.h"
-#include <coreplugin/id.h>
-#include <vcsbase/vcsbaseplugin.h>
-#include <vcsbase/vcscommand.h>
+#include <extensionsystem/iplugin.h>
#include <QFile>
#include <QPair>
@@ -38,38 +36,10 @@
#include <QMetaType>
#include <QSharedPointer>
-QT_BEGIN_NAMESPACE
-class QAction;
-template <typename T>
-class QFutureInterface;
-class QMutex;
-using QStringPair = QPair<QString, QString>;
-class QTextCodec;
-QT_END_NAMESPACE
-
-namespace Core {
-class CommandLocator;
-class IVersionControl;
-class IEditor;
-} // namespace Core
-
-namespace Utils { class ParameterAction; }
-namespace VcsBase { class VcsBaseSubmitEditor; }
-namespace ProjectExplorer { class Project; }
-
namespace ClearCase {
namespace Internal {
-class ClearCaseSubmitEditor;
-
-class ClearCaseResponse
-{
-public:
- bool error = false;
- QString stdOut;
- QString stdErr;
- QString message;
-};
+using QStringPair = QPair<QString, QString>;
class FileStatus
{
@@ -103,195 +73,6 @@ public:
QString root;
};
-class ClearCasePluginPrivate final : public VcsBase::VcsBasePluginPrivate
-{
- Q_OBJECT
- enum { SilentRun = VcsBase::VcsCommand::NoOutput | VcsBase::VcsCommand::FullySynchronously };
-
-public:
- ClearCasePluginPrivate();
- ~ClearCasePluginPrivate() final;
-
- // IVersionControl
- QString displayName() const final;
- Core::Id id() const final;
-
- bool isVcsFileOrDirectory(const Utils::FilePath &fileName) const final;
-
- bool managesDirectory(const QString &directory, QString *topLevel) const final;
- bool managesFile(const QString &workingDirectory, const QString &fileName) const final;
-
- bool isConfigured() const final;
-
- bool supportsOperation(Operation operation) const final;
- OpenSupportMode openSupportMode(const QString &fileName) const final;
- bool vcsOpen(const QString &fileName) final;
- SettingsFlags settingsFlags() const final;
- bool vcsAdd(const QString &fileName) final;
- bool vcsDelete(const QString &filename) final;
- bool vcsMove(const QString &from, const QString &to) final;
- bool vcsCreateRepository(const QString &directory) final;
-
- bool vcsAnnotate(const QString &file, int line) final;
-
- QString vcsOpenText() const final;
- QString vcsMakeWritableText() const final;
- QString vcsTopic(const QString &directory) final;
-
- ///
- ClearCaseSubmitEditor *openClearCaseSubmitEditor(const QString &fileName, bool isUcm);
-
- const ClearCaseSettings &settings() const;
- void setSettings(const ClearCaseSettings &s);
-
- // IVersionControl
- bool vcsOpen(const QString &workingDir, const QString &fileName);
- bool vcsAdd(const QString &workingDir, const QString &fileName);
- bool vcsDelete(const QString &workingDir, const QString &fileName);
- bool vcsCheckIn(const QString &workingDir, const QStringList &files, const QString &activity,
- bool isIdentical, bool isPreserve, bool replaceActivity);
- bool vcsUndoCheckOut(const QString &workingDir, const QString &fileName, bool keep);
- bool vcsUndoHijack(const QString &workingDir, const QString &fileName, bool keep);
- bool vcsMove(const QString &workingDir, const QString &from, const QString &to);
- bool vcsSetActivity(const QString &workingDir, const QString &title, const QString &activity);
-
- static ClearCasePluginPrivate *instance();
-
- QString ccGetCurrentActivity() const;
- QList<QStringPair> activities(int *current = nullptr) const;
- QString ccGetPredecessor(const QString &version) const;
- QStringList ccGetActiveVobs() const;
- ViewData ccGetView(const QString &workingDir) const;
- QString ccGetComment(const QString &workingDir, const QString &fileName) const;
- bool ccFileOp(const QString &workingDir, const QString &title, const QStringList &args,
- const QString &fileName, const QString &file2 = QString());
- FileStatus vcsStatus(const QString &file) const;
- void checkAndReIndexUnknownFile(const QString &file);
- QString currentView() const { return m_viewData.name; }
- QString viewRoot() const { return m_viewData.root; }
- void refreshActivities();
- inline bool isUcm() const { return m_viewData.isUcm; }
- inline bool isDynamic() const { return m_viewData.isDynamic; }
- void setStatus(const QString &file, FileStatus::Status status, bool update = true);
-
- bool ccCheckUcm(const QString &viewname, const QString &workingDir) const;
-#ifdef WITH_TESTS
- inline void setFakeCleartool(const bool b = true) { m_fakeClearTool = b; }
-#endif
-
- void vcsAnnotateHelper(const QString &workingDir, const QString &file,
- const QString &revision = QString(), int lineNumber = -1) const;
- bool newActivity();
- void updateStreamAndView();
- void describe(const QString &source, const QString &changeNr);
-
-protected:
- void updateActions(VcsBase::VcsBasePluginPrivate::ActionState) override;
- bool submitEditorAboutToClose() override;
- QString ccGet(const QString &workingDir, const QString &file, const QString &prefix = QString());
- QList<QStringPair> ccGetActivities() const;
-
-private:
- void syncSlot();
- Q_INVOKABLE void updateStatusActions();
-
- QString commitDisplayName() const final;
- void checkOutCurrentFile();
- void addCurrentFile();
- void undoCheckOutCurrent();
- void undoHijackCurrent();
- void diffActivity();
- void diffCurrentFile();
- void startCheckInAll();
- void startCheckInActivity();
- void startCheckInCurrentFile();
- void historyCurrentFile();
- void annotateCurrentFile();
- void viewStatus();
- void commitFromEditor() override;
- void diffCheckInFiles(const QStringList &);
- void updateIndex();
- void updateView();
- void projectChanged(ProjectExplorer::Project *project);
- void tasksFinished(Core::Id type);
- void closing();
-
- inline bool isCheckInEditorOpen() const;
- QStringList getVobList() const;
- QString ccManagesDirectory(const QString &directory) const;
- QString ccViewRoot(const QString &directory) const;
- QString findTopLevel(const QString &directory) const;
- Core::IEditor *showOutputInEditor(const QString& title, const QString &output,
- int editorType, const QString &source,
- QTextCodec *codec) const;
- QString runCleartoolSync(const QString &workingDir, const QStringList &arguments) const;
- ClearCaseResponse runCleartool(const QString &workingDir, const QStringList &arguments,
- int timeOutS, unsigned flags,
- QTextCodec *outputCodec = nullptr) const;
- static void sync(QFutureInterface<void> &future, QStringList files);
-
- void history(const QString &workingDir,
- const QStringList &file = QStringList(),
- bool enableAnnotationContextMenu = false);
- QString ccGetFileVersion(const QString &workingDir, const QString &file) const;
- void ccUpdate(const QString &workingDir, const QStringList &relativePaths = QStringList());
- void ccDiffWithPred(const QString &workingDir, const QStringList &files);
- void startCheckIn(const QString &workingDir, const QStringList &files = QStringList());
- void cleanCheckInMessageFile();
- QString ccGetFileActivity(const QString &workingDir, const QString &file);
- QStringList ccGetActivityVersions(const QString &workingDir, const QString &activity);
- void diffGraphical(const QString &file1, const QString &file2 = QString());
- QString diffExternal(QString file1, QString file2 = QString(), bool keep = false);
- QString getFile(const QString &nativeFile, const QString &prefix);
- static void rmdir(const QString &path);
- QString runExtDiff(const QString &workingDir, const QStringList &arguments, int timeOutS,
- QTextCodec *outputCodec = nullptr);
- static QString getDriveLetterOfPath(const QString &directory);
-
- FileStatus::Status getFileStatus(const QString &fileName) const;
- void updateStatusForFile(const QString &absFile);
- void updateEditDerivedObjectWarning(const QString &fileName, const FileStatus::Status status);
-
- ClearCaseSettings m_settings;
-
- QString m_checkInMessageFileName;
- QString m_checkInView;
- QString m_topLevel;
- QString m_stream;
- ViewData m_viewData;
- QString m_intStream;
- QString m_activity;
- QString m_diffPrefix;
-
- Core::CommandLocator *m_commandLocator = nullptr;
- Utils::ParameterAction *m_checkOutAction = nullptr;
- Utils::ParameterAction *m_checkInCurrentAction = nullptr;
- Utils::ParameterAction *m_undoCheckOutAction = nullptr;
- Utils::ParameterAction *m_undoHijackAction = nullptr;
- Utils::ParameterAction *m_diffCurrentAction = nullptr;
- Utils::ParameterAction *m_historyCurrentAction = nullptr;
- Utils::ParameterAction *m_annotateCurrentAction = nullptr;
- Utils::ParameterAction *m_addFileAction = nullptr;
- QAction *m_diffActivityAction = nullptr;
- QAction *m_updateIndexAction = nullptr;
- Utils::ParameterAction *m_updateViewAction = nullptr;
- Utils::ParameterAction *m_checkInActivityAction = nullptr;
- QAction *m_checkInAllAction = nullptr;
- QAction *m_statusAction = nullptr;
-
- QAction *m_menuAction = nullptr;
- bool m_submitActionTriggered = false;
- QMutex *m_activityMutex;
- QList<QStringPair> m_activities;
- QSharedPointer<StatusMap> m_statusMap;
-
- friend class ClearCasePlugin;
-#ifdef WITH_TESTS
- bool m_fakeClearTool = false;
- QString m_tempFile;
-#endif
-};
-
class ClearCasePlugin final : public ExtensionSystem::IPlugin
{
Q_OBJECT
@@ -299,6 +80,18 @@ class ClearCasePlugin final : public ExtensionSystem::IPlugin
~ClearCasePlugin() final;
+public:
+ static bool newActivity();
+ static const QList<QStringPair> activities(int *current);
+ static QStringList ccGetActiveVobs();
+ static void refreshActivities();
+ static const ViewData viewData();
+ static void setStatus(const QString &file, FileStatus::Status status, bool update);
+ static const ClearCaseSettings &settings();
+ static void setSettings(const ClearCaseSettings &s);
+ static QSharedPointer<StatusMap> statusMap();
+
+private:
bool initialize(const QStringList &arguments, QString *error_message) final;
void extensionsInitialized() final;