diff options
| author | Peter Penz <[email protected]> | 2009-09-13 14:49:26 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2009-09-13 14:49:26 +0000 |
| commit | 1a528b0cf1f1059bc72a72729bca2f01f79bc7c3 (patch) | |
| tree | d4702cc2acc6d899c89ab20a23a02c5c5c0b903a /src/fileviewsvnplugin.h | |
| parent | c3289bc0a2d80f1db46f3e9e7202a6d6cca0bd2d (diff) | |
Originally it was intended to move the SVN plugin from Dolphin to kdevplatform, but kdevplatform most probably won't get released with KDE 4.4. So for KDE 4.4 Dolphin will temporary contain the plugin in it's own codebase. As soon as kdevplatform will get released the SVN plugin will get moved to kdevplatform.
Still open: KServiceTypeTrader::query does not find the "FileViewVersionControlPlugin", I could not find the root cause for this yet (old cache?)
svn path=/trunk/KDE/kdebase/apps/; revision=1022921
Diffstat (limited to 'src/fileviewsvnplugin.h')
| -rw-r--r-- | src/fileviewsvnplugin.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/fileviewsvnplugin.h b/src/fileviewsvnplugin.h new file mode 100644 index 000000000..2cb3d71fb --- /dev/null +++ b/src/fileviewsvnplugin.h @@ -0,0 +1,93 @@ +/*************************************************************************** + * Copyright (C) 2009 by Peter Penz <[email protected]> * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + +#ifndef FILEVIEWSVNPLUGIN_H +#define FILEVIEWSVNPLUGIN_H + +#include <kfileitem.h> +#include <kversioncontrolplugin.h> +#include <QHash> +#include <QTemporaryFile> + +// TODO: This class will be moved to kdevplatform as soon as kdevplatform will +// be released. Moving it to kdevplatform allows to reuse code for the context +// menu actions like commit, add, update, ... +class FileViewSvnPlugin : public KVersionControlPlugin +{ + Q_OBJECT + +public: + FileViewSvnPlugin(); + virtual ~FileViewSvnPlugin(); + virtual QString fileName() const; + virtual bool beginRetrieval(const QString& directory); + virtual void endRetrieval(); + virtual KVersionControlPlugin::VersionState versionState(const KFileItem& item); + virtual QList<QAction*> contextMenuActions(const KFileItemList& items); + virtual QList<QAction*> contextMenuActions(const QString& directory); + +private slots: + void updateFiles(); + void showLocalChanges(); + void commitFiles(); + void addFiles(); + void removeFiles(); + + void slotOperationCompleted(); + void slotOperationError(); + +private: + /** + * Executes the command "svn {svnCommand}" for the files that have been + * set by getting the context menu actions (see contextMenuActions()). + * @param infoMsg Message that should be shown before the command is executed. + * @param errorMsg Message that should be shown if the execution of the command + * has been failed. + * @param operationCompletedMsg + * Message that should be shown if the execution of the command + * has been completed successfully. + */ + void execSvnCommand(const QString& svnCommand, + const QString& infoMsg, + const QString& errorMsg, + const QString& operationCompletedMsg); + + void startSvnCommandProcess(); + +private: + QHash<QString, VersionState> m_versionInfoHash; + QList<QString> m_versionInfoKeys; // cache for accessing the keys of the hash + + QAction* m_updateAction; + QAction* m_showLocalChangesAction; + QAction* m_commitAction; + QAction* m_addAction; + QAction* m_removeAction; + + QString m_command; + QString m_errorMsg; + QString m_operationCompletedMsg; + + QString m_contextDir; + KFileItemList m_contextItems; + + QTemporaryFile m_tempFile; +}; +#endif // FILEVIEWSVNPLUGIN_H + |
