diff options
Diffstat (limited to 'vcs/cvsservice/cvspart.h')
-rw-r--r-- | vcs/cvsservice/cvspart.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/vcs/cvsservice/cvspart.h b/vcs/cvsservice/cvspart.h new file mode 100644 index 00000000..e3513a98 --- /dev/null +++ b/vcs/cvsservice/cvspart.h @@ -0,0 +1,173 @@ +/*************************************************************************** + * Copyright (C) 1999-2001 by Bernd Gehrmann * + * bernd@kdevelop.org * + * Copyright (C) 2003 by Mario Scalas * + * mario.scalas@libero.it * + * * + * 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. * + * * + ***************************************************************************/ + +#ifndef _CVSPART_H_ +#define _CVSPART_H_ + +#include <qguardedptr.h> +#include <qcstring.h> +#include <kurl.h> +#include "kdevversioncontrol.h" + +class Context; +class QPopupMenu; +class QDir; +class KDialogBase; +class KURL; +class KURL::List; +class KAction; + +class CvsProcessWidget; +class CvsForm; +class CheckoutDialog; + +class CvsService_stub; +class Repository_stub; +class CvsServicePartImpl; + +class CvsServicePart : public KDevVersionControl +{ + Q_OBJECT + + friend class CvsServicePartImpl; + +public: + //! Standard constructor. + CvsServicePart( QObject *parent, const char *name, const QStringList & ); + //! Destructor. + virtual ~CvsServicePart(); + + /** + * Returns the configuration widget (for properly configuring the project to + * use CVS), child of @p parent. + */ + virtual QWidget *newProjectWidget( QWidget *parent ); + /** + * Setup a directory tree for use with CVS. + */ + virtual void createNewProject( const QString& dir ); + /** + * Fetch a module from remote repository, so it can be used for importing + */ + virtual bool fetchFromRepository(); + /** + * @return the info provider for VCS sandboxes + */ + virtual KDevVCSFileInfoProvider *fileInfoProvider() const; + /** + * @param dirPath absolute path of the directory + * @return true if the the directory is a valid CVS sandbox + */ + virtual bool isValidDirectory( const QString &dirPath ) const; + +private slots: + /** Add menu items binded to cvs operations' slots to @p popup, using + * data in @p context. + * Not that @p context _must_ be FileContext-type, otherwise will do + * nothing. + */ + void contextMenu( QPopupMenu *popup, const Context *context ); + + // Cvs operations (menubar) + void slotActionLogin(); + void slotActionLogout(); + + void slotActionCommit(); + void slotActionUpdate(); + void slotActionEditors(); + void slotActionEdit(); + void slotActionUnEdit(); + void slotActionAdd(); + void slotActionAnnotate(); + void slotActionAddBinary(); + void slotActionRemove(); + void slotActionRemoveSticky(); + void slotActionLog(); + void slotActionDiff(); + void slotActionTag(); + void slotActionUnTag(); + void slotActionAddToIgnoreList(); + void slotActionRemoveFromIgnoreList(); + + // Cvs operations (context menu) + void slotCommit(); + void slotUpdate(); + void slotEditors(); + void slotEdit(); + void slotUnEdit(); + void slotAdd(); + void slotAnnotate(); + void slotAddBinary(); + void slotRemove(); + void slotRemoveSticky(); + void slotLog(); + void slotDiff(); + void slotTag(); + void slotUnTag(); + void slotAddToIgnoreList(); + void slotRemoveFromIgnoreList(); + + void slotProjectOpened(); + void slotProjectClosed(); + + void slotAddFilesToProject(const QStringList &); + void slotRemovedFilesFromProject(const QStringList &); + + /** Adds a configuration widget (for properly configuring CVS command-line options) + * and adds it to @p dlg. + */ + void projectConfigWidget( KDialogBase *dlg ); + + //! Called when the user wishes to stop an operation. + void slotStopButtonClicked( KDevPlugin* ); + +private slots: + void init(); + +private: + void setupActions(); + //! Returns the KURL for the currently focused document, if there is any + bool urlFocusedDocument( KURL &url ); + + //! A list of KURLs of the files to be "operated" on (to be committed, added, removed, ...) + KURL::List m_urls; + + /** This is a pointer to the d->form used for collecting data about CVS project creation (used + * by the ApplicationWizard in example) + */ + QGuardedPtr<CvsForm> m_cvsConfigurationForm; + + // Actions + KAction *actionCommit, + *actionDiff, + *actionLog, + *actionAnnotate, + *actionAdd, + *actionAddBinary, + *actionRemove, + *actionUpdate, + *actionRemoveSticky, + *actionEdit, + *actionEditors, + *actionUnEdit, + *actionAddToIgnoreList, + *actionRemoveFromIgnoreList, + *actionTag, + *actionUnTag, + *actionLogin, + *actionLogout; + + CvsServicePartImpl *m_impl; +}; + +#endif |