CvsServicePart Class Reference
This is an experimental attempt to integrate Cervisia HEAD's cvsservice into kdevelop (read FAQ). More...
#include <cvspart.h>
Inheritance diagram for CvsServicePart:

Public Member Functions | |
CvsServicePart (QObject *parent, const char *name, const QStringList &) | |
Standard constructor. | |
virtual | ~CvsServicePart () |
Destructor. | |
virtual QWidget * | newProjectWidget (QWidget *parent) |
Returns the configuration widget (for properly configuring the project to use CVS), child of parent . | |
virtual void | createNewProject (const QString &dir) |
Setup a directory tree for use with CVS. | |
virtual bool | fetchFromRepository () |
Fetch a module from remote repository, so it can be used for importing. | |
virtual KDevVCSFileInfoProvider * | fileInfoProvider () const |
virtual bool | isValidDirectory (const QString &dirPath) const |
Private Slots | |
void | contextMenu (QPopupMenu *popup, const Context *context) |
Add menu items binded to cvs operations' slots to popup , using data in context . | |
void | slotActionLogin () |
void | slotActionLogout () |
void | slotActionCommit () |
void | slotActionUpdate () |
void | slotActionAdd () |
void | slotActionAddBinary () |
void | slotActionRemove () |
void | slotActionRemoveSticky () |
void | slotActionLog () |
void | slotActionDiff () |
void | slotActionTag () |
void | slotActionUnTag () |
void | slotActionAddToIgnoreList () |
void | slotActionRemoveFromIgnoreList () |
void | slotCommit () |
void | slotUpdate () |
void | slotAdd () |
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 &) |
void | projectConfigWidget (KDialogBase *dlg) |
Adds a configuration widget (for properly configuring CVS command-line options) and adds it to dlg . | |
void | slotStopButtonClicked (KDevPlugin *) |
Called when the user wishes to stop an operation. | |
Private Member Functions | |
void | init () |
void | setupActions () |
bool | urlFocusedDocument (KURL &url) |
Returns the KURL for the currently focused document, if there is any. | |
Private Attributes | |
KURL::List | m_urls |
A list of KURLs of the files to be "operated" on (to be committed, added, removed, ...). | |
QGuardedPtr< CvsForm > | m_cvsConfigurationForm |
This is a pointer to the d->form used for collecting data about CVS project creation (used by the ApplicationWizard in example). | |
KAction * | actionCommit |
KAction * | actionDiff |
KAction * | actionLog |
KAction * | actionAdd |
KAction * | actionAddBinary |
KAction * | actionRemove |
KAction * | actionUpdate |
KAction * | actionRemoveSticky |
KAction * | actionAddToIgnoreList |
KAction * | actionRemoveFromIgnoreList |
KAction * | actionTag |
KAction * | actionUnTag |
KAction * | actionLogin |
KAction * | actionLogout |
CvsServicePartImpl * | m_impl |
Detailed Description
This is an experimental attempt to integrate Cervisia HEAD's cvsservice into kdevelop (read FAQ).
This part _does_ require cvsservice being installed on your system: the configure script in the main source directory should autodetect the presence of Cervisia and build it. If Cervisia wasn't installed in $KDEDIR than you need to specify paths for lib and include files, for example: --with-extra-libs=$HOME/kde/lib --with-extra-includes=$HOME/kde/include
(where $HOME/kde is where I install my own kde stuff so I don't mess with working kde installation)
WARNING: So, if you have already compiled kdevelop *without* cvsservice and have now installed cervisia to try this nice piece of software, you need to re-run configure so it can detect cervisia installation and enable compilation for vcs/cvsservice.
WARNING: Keep in mind that there are incoming changes in cvsservice architecture which could make this part quite subject to heavy modifications.
WARNING2: If it doesn't compile try to update your cvsservice.
Implementation of this component is done by:
- class CvsServicePart, which does provide integration within kdevelop, set-up GUI integration, forward cvs commands to the implementation (m_impl). It does also intercepts signals like "new files added to project" and "... removed from ...".
- class CvsServicePartImpl implements the actual feature: more general speaking functions (like checking for whether files are in repository, provide checks on file lists, ...).
- class CvsProcessWidget provides output wrapping for commands (ok, it is useful for debugging too ;-). It simply starts a DCOP job and awaits notification for its termination.
- class CvsOptions* provide info about the user preferences when executing commands: settings are stored in myprj.kdevses file, loaded when project is opened and saved when project is closed.
- There is a bunch of dialog classes for collecting useful data about the operations one wants to perform: exception to this are the cvslog* classes which do start cvs jobs independently archiving parallelism with the CvsProcesssWidget.
- CVSDir and CVSEntry provide abstraction for accessing to local CVS information
- CVSFileInfoProvider is an implementation of KDevVCSFileInfoProvider interface and collects data about files stats: for CVS, both synch (fetch data from local sandbox) and asynch (fetch from repository server) are working with some minor bugs in the parsing of 'cvs status' output for the latter. (Sync means that information are collected from local CVS dirs which do not provide much information; async mean that a "cvs status <dir-name>" request is launched, output parsed and information returned to the client in _different_ times). Obviously this stuff requires the client (actually only the FileTree viewer) to be aware of this feature (see parts/fileview for additional info).
- Todo:
- Fix the "cvs update" function which behave strangely for sub-directories of the main project dir.
- (> 3.0) Replace the menu entries text with shorter ones
- (> 3.0) Add a new state & color enntry for 'Needs Patch' CVS state :-/
- Fix bugs on bugs.kde.org ;-)
Test with SSH repositories!
Share a common outputview between VCS: CvsProcessWidget should be reworked :-/
Additional slots for more complex stuff as status, revert, patch creation, ...
- Feature(s):
- All that provided by parts/cvs
it is possible to 'add as binary' files to repository
checkout from remote repository ability added to the appwizard/importdlg
should handle :ext: repositories thanks to cvsservice
can tag / un-tag files
can revert and diff between specific releases
can do multiple diff from a common cvs log output text
- Requirement(s):
- CVS >= 1.10.6
Cervisia >= 2.1 (from kdesdk package included in KDE >= 3.2)
- F.A.Q.:
- Does cvsservicepart support login with :pserver: or :ext: ? Well, I dunno ;-) I have no ssh repositories to test so feel free to provide feedback on the subject :-)
Definition at line 38 of file cvspart.h.
Constructor & Destructor Documentation
|
Standard constructor.
|
|
Destructor.
Definition at line 105 of file cvspart.cpp. References m_cvsConfigurationForm, and m_impl. |
Member Function Documentation
|
Add menu items binded to cvs operations' slots to
Not that Definition at line 275 of file cvspart.cpp. References actionAdd, actionAddBinary, actionAddToIgnoreList, actionCommit, actionDiff, actionLog, actionRemove, actionRemoveFromIgnoreList, actionRemoveSticky, actionTag, actionUnTag, actionUpdate, contextMenu(), URLUtil::dump(), endl(), Context::hasType(), kdDebug(), m_urls, slotAdd(), slotAddBinary(), slotAddToIgnoreList(), slotCommit(), slotDiff(), slotLog(), slotRemove(), slotRemoveFromIgnoreList(), slotRemoveSticky(), slotTag(), slotUnTag(), slotUpdate(), KAction::text, EditorContext::url(), and FileContext::urls(). Referenced by contextMenu(), and init(). |
|
Setup a directory tree for use with CVS.
Reimplemented from KDevVersionControl. Definition at line 234 of file cvspart.cpp. References CvsServicePartImpl::createNewProject(), createNewProject(), endl(), g_projectWasJustCreated, kdDebug(), m_cvsConfigurationForm, and m_impl. Referenced by createNewProject(). |
|
Fetch a module from remote repository, so it can be used for importing.
Reimplemented from KDevVersionControl. Definition at line 219 of file cvspart.cpp. References CvsServicePartImpl::checkout(), and m_impl. |
|
Reimplemented from KDevVersionControl. Definition at line 227 of file cvspart.cpp. References CvsServicePartImpl::fileInfoProvider(), and m_impl. |
|
Definition at line 113 of file cvspart.cpp. References contextMenu(), KDevPlugin::core(), KDevMainWindow::embedOutputView(), m_impl, CvsServicePartImpl::m_widget, KDevPlugin::mainWindow(), CvsServicePartImpl::processWidget(), projectConfigWidget(), setupActions(), slotProjectClosed(), slotProjectOpened(), and slotStopButtonClicked(). |
|
Reimplemented from KDevVersionControl. Definition at line 363 of file cvspart.cpp. References CvsServicePartImpl::isValidDirectory(), isValidDirectory(), and m_impl. Referenced by isValidDirectory(), slotProjectClosed(), and slotProjectOpened(). |
|
Returns the configuration widget (for properly configuring the project to use CVS), child of
Reimplemented from KDevVersionControl. Definition at line 267 of file cvspart.cpp. References m_cvsConfigurationForm, and newProjectWidget(). Referenced by newProjectWidget(). |
|
Adds a configuration widget (for properly configuring CVS command-line options) and adds it to
Definition at line 258 of file cvspart.cpp. References KDialogBase::addVBoxPage(), and projectConfigWidget(). Referenced by init(), and projectConfigWidget(). |
|
|
Definition at line 406 of file cvspart.cpp. References CvsServicePartImpl::add(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 417 of file cvspart.cpp. References CvsServicePartImpl::add(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 494 of file cvspart.cpp. References CvsServicePartImpl::addToIgnoreList(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 384 of file cvspart.cpp. References CvsServicePartImpl::commit(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 461 of file cvspart.cpp. References CvsServicePartImpl::diff(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 450 of file cvspart.cpp. References CvsServicePartImpl::log(), m_impl, and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 370 of file cvspart.cpp. References CvsServicePartImpl::login(), and m_impl. Referenced by setupActions(). |
|
Definition at line 377 of file cvspart.cpp. References CvsServicePartImpl::logout(), and m_impl. Referenced by setupActions(). |
|
Definition at line 428 of file cvspart.cpp. References m_impl, CvsServicePartImpl::remove(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 505 of file cvspart.cpp. References m_impl, CvsServicePartImpl::removeFromIgnoreList(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 439 of file cvspart.cpp. References m_impl, CvsServicePartImpl::removeStickyFlag(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 472 of file cvspart.cpp. References m_impl, CvsServicePartImpl::tag(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 483 of file cvspart.cpp. References m_impl, CvsServicePartImpl::unTag(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 395 of file cvspart.cpp. References m_impl, CvsServicePartImpl::update(), and urlFocusedDocument(). Referenced by setupActions(). |
|
Definition at line 530 of file cvspart.cpp. References CvsServicePartImpl::add(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 537 of file cvspart.cpp. References CvsServicePartImpl::add(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 610 of file cvspart.cpp. References CvsServicePartImpl::addFilesToProject(), m_impl, and slotAddFilesToProject(). Referenced by slotAddFilesToProject(), slotProjectClosed(), and slotProjectOpened(). |
|
Definition at line 586 of file cvspart.cpp. References CvsServicePartImpl::addToIgnoreList(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 516 of file cvspart.cpp. References CvsServicePartImpl::commit(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 565 of file cvspart.cpp. References CvsServicePartImpl::diff(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 558 of file cvspart.cpp. References CvsServicePartImpl::log(), m_impl, and m_urls. Referenced by contextMenu(). |
|
Definition at line 652 of file cvspart.cpp. References endl(), CvsOptions::instance(), isValidDirectory(), kdDebug(), KDevPlugin::project(), CvsOptions::save(), slotAddFilesToProject(), and slotRemovedFilesFromProject(). Referenced by init(). |
|
Definition at line 624 of file cvspart.cpp. References endl(), g_projectWasJustCreated, CvsOptions::instance(), isValidDirectory(), kdDebug(), CvsOptions::load(), KDevPlugin::project(), CvsOptions::save(), slotAddFilesToProject(), and slotRemovedFilesFromProject(). Referenced by init(). |
|
Definition at line 544 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::remove(). Referenced by contextMenu(). |
|
Definition at line 617 of file cvspart.cpp. References m_impl, CvsServicePartImpl::removedFilesFromProject(), and slotRemovedFilesFromProject(). Referenced by slotProjectClosed(), slotProjectOpened(), and slotRemovedFilesFromProject(). |
|
Definition at line 593 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::removeFromIgnoreList(). Referenced by contextMenu(). |
|
Definition at line 551 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::removeStickyFlag(). Referenced by contextMenu(). |
|
Called when the user wishes to stop an operation.
Definition at line 600 of file cvspart.cpp. References CvsServicePartImpl::flushJobs(), m_impl, and slotStopButtonClicked(). Referenced by init(), and slotStopButtonClicked(). |
|
Definition at line 572 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::tag(). Referenced by contextMenu(). |
|
Definition at line 579 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::unTag(). Referenced by contextMenu(). |
|
Definition at line 523 of file cvspart.cpp. References m_impl, m_urls, and CvsServicePartImpl::update(). Referenced by contextMenu(). |
|
Returns the KURL for the currently focused document, if there is any.
Definition at line 342 of file cvspart.cpp. References KParts::PartManager::activePart(), endl(), KURL::isLocalFile(), kdDebug(), KDevPlugin::partController(), KParts::ReadOnlyPart::url(), and urlFocusedDocument(). Referenced by slotActionAdd(), slotActionAddBinary(), slotActionAddToIgnoreList(), slotActionCommit(), slotActionDiff(), slotActionLog(), slotActionRemove(), slotActionRemoveFromIgnoreList(), slotActionRemoveSticky(), slotActionTag(), slotActionUnTag(), slotActionUpdate(), and urlFocusedDocument(). |
Member Data Documentation
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
Definition at line 141 of file cvspart.h. Referenced by contextMenu(), and setupActions(). |
|
This is a pointer to the d->form used for collecting data about CVS project creation (used by the ApplicationWizard in example).
Definition at line 138 of file cvspart.h. Referenced by createNewProject(), newProjectWidget(), and ~CvsServicePart(). |
|
|
A list of KURLs of the files to be "operated" on (to be committed, added, removed, ...).
Definition at line 133 of file cvspart.h. Referenced by contextMenu(), slotAdd(), slotAddBinary(), slotAddToIgnoreList(), slotCommit(), slotDiff(), slotLog(), slotRemove(), slotRemoveFromIgnoreList(), slotRemoveSticky(), slotTag(), slotUnTag(), and slotUpdate(). |
The documentation for this class was generated from the following files:
- vcs/cvsservice/cvspart.h
- vcs/cvsservice/cvspart.cpp