/** Copyright (C) 2003-2005 Mickael Marchand 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; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef __SUBVERSION_CORE_H__ #define __SUBVERSION_CORE_H__ #include #include #include #include #include #include "subversion_fileinfo.h" #include "subversion_global.h" class KDevProject; class subversionPart; class subversionWidget; class TDEApplication; class SvnBlameHolder; class SvnLogHolder; class SvnLogViewWidget; // class subversionCore : public TQObject, public DCOPObject class subversionCore : public TQObject { Q_OBJECT // K_DCOP public: subversionCore(subversionPart *part); ~subversionCore(); subversionWidget *processWidget() const; // SvnLogViewWidget *processWidget() const; void update( const KURL::List&); void commit( const KURL::List&, bool recurse, bool keeplocks ); void svnLog( const KURL::List& list, int revstart, TQString revKindStart, int revend, TQString revKindEnd, bool discorverChangedPath, bool strictNodeHistory ); void blame( const KURL &url, SvnGlobal::UrlMode mode, int revstart, TQString revKindStart, int revend, TQString revKindEnd ); void add( const KURL::List&); void del( const KURL::List&); void diff( const KURL::List&, const TQString& where); void diffAsync( const KURL &pathOrUrl1, const KURL &pathOrUrl2, int rev1, TQString revKind1, int rev2, TQString revKind2, bool recurse, bool pegdiff = false ); void revert( const KURL::List&); void resolve( const KURL::List&); void checkout(); void switchTree( const KURL &path, const KURL &repositUrl, int revNum, const TQString &revKind, bool recurse ); void switchRelocate( const KURL &path, const KURL ¤tUrl, const KURL &newUrl, bool recurse ); void svnCopy( const KURL &src, int srcRev, const TQString &srcRevKind, const KURL &dest ); void merge( const KURL &src1, int rev1, TQString revKind1, const KURL &src2, int rev2, TQString revKind2, const KURL &wc_path, bool recurse, bool ignore_ancestry, bool force, bool dry_run ); // This is blocking function. But the GUI is not blocked. // Information will be pulled solely from the working copy.Thus no network connections will be made. // Parameter holderMap is the map to be filled out by this method. Callers should preallocate this object. // Return true on success. Otherwise return false. bool clientInfo( KURL path_or_url, bool recurse, TQMap< KURL, SvnGlobal::SvnInfoHolder> &holderMap ); void createNewProject( const TQString& dirName, const KURL& importURL, bool init ); KDevVCSFileInfoProvider *fileInfoProvider() const; void initProcessDlg( KIO::Job *job, const TQString &src, const TQString &dest ); // k_dcop: // void notification( const TQString&, int,int, const TQString&, int,int ,long int, const TQString& ); private slots: void slotEndCheckout( KIO::Job * job ); void slotResult( KIO::Job * job ); void slotLogResult( KIO::Job * job ); void slotBlameResult( KIO::Job * job ); void slotDiffResult( KIO::Job * job ); signals: void checkoutFinished( TQString dir ); private: TQGuardedPtr m_widget; subversionPart *m_part; TQString wcPath; SVNFileInfoProvider *m_fileInfoProvider; TQStringList diffresult; //for diff commands ;) // be nice about tmp diff files: delete all of them when exiting. KTempDir* diffTmpDir; }; #endif