You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdesvn/src/svnfrontend/tdesvnfilelist.h

245 lines
8.6 KiB

/***************************************************************************
* Copyright (C) 2005-2007 by Rajko Albrecht *
* ral@alwins-world.de *
* *
* 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 TDESVNFILELIST_H
#define TDESVNFILELIST_H
#include "itemdisplay.h"
#include "filelistviewitem.h"
#include "status.h"
#include "client.h"
#include <tdelistview.h>
#include <kurl.h>
#include <ktrader.h>
#include <tqmap.h>
#include <tqptrlist.h>
#include <tqevent.h>
class TDEAction;
class TDEActionMenu;
class TDEActionCollection;
class KDialog;
class KDialogBase;
class KdesvnFileListPrivate;
class SvnActions;
namespace TDEIO {
class Job;
}
namespace svn {
class Revision;
}
/**
@author Rajko Albrecht
*/
class tdesvnfilelist : public TDEListView,public ItemDisplay
{
TQ_OBJECT
friend class FileListViewItem;
public:
tdesvnfilelist(TDEActionCollection*,TQWidget *parent = 0, const char *name = 0);
virtual ~tdesvnfilelist();
virtual bool openURL( const KURL &url,bool noReinit=false );
virtual SvnItem*SelectedOrMain();
virtual SvnItem*Selected();
virtual void SelectionList(SvnItemList*target);
virtual TQWidget*realWidget();
TDEActionCollection*filesActions();
bool refreshItem(FileListViewItem*);
protected:
const svn::Revision& remoteRevision()const;
bool m_deletePerfect;
TQMap<TQString,bool> m_Dirsread;
TDEActionCollection* m_filesAction;
TDEAction*m_BlameAction,*m_BlameRangeAction,*m_CatAction,*m_MkdirAction;
TDEAction*m_InfoAction,*m_commitAction,*m_UpdateHead,*m_UpdateRev;
TDEAction*m_AddCurrent,*m_DelCurrent,*m_CheckoutAction,*m_CheckoutCurrentAction,*m_RevertAction;
TDEAction*m_changeToRepository,*m_switchRepository,*m_ExportAction,*m_ExportCurrentAction;
TDEAction*m_CleanupAction,*m_ResolvedAction,*m_ImportDirsIntoCurrent,*m_RefreshViewAction,*m_MergeRevisionAction;
TDEAction*m_RenameAction,*m_CopyAction;
TDEAction*m_LockAction,*m_UnlockAction,*m_IgnoreAction;
SvnActions*m_SvnWrapper;
/* the parent entry must removed from list before */
void insertDirs(FileListViewItem * _parent,svn::StatusEntries&);
bool checkDirs(const TQString&,FileListViewItem * _parent);
void setupActions();
svn::Client*svnclient();
FileListViewItem* singleSelected();
FileListViewItemList* allSelected();
template<class T> KDialogBase* createDialog(T**ptr,
const TQString&_head,
bool OkCancel=false,
const char*name="dialog",
bool showHelp=false
);
FileListViewItemList* m_SelectedItems;
FileListViewItem* findEntryItem(const TQString&,FileListViewItem*startAt=0);
virtual bool refreshRecursive(FileListViewItem*,bool down=true);
virtual void updateParents(FileListViewItem*);
virtual void checkUnversionedDirs( FileListViewItem * _parent );
/**
* Overridden virtuals for TQt drag 'n drop (XDND)
*/
virtual void contentsDragEnterEvent( TQDragEnterEvent* );
virtual void contentsDragLeaveEvent( TQDragLeaveEvent* );
virtual void contentsDragMoveEvent( TQDragMoveEvent* );
virtual void contentsDropEvent( TQDropEvent* );
virtual bool acceptDrag(TQDropEvent *event)const;
//virtual void startDrag();
virtual TQDragObject* dragObject();
void dispDummy();
void reinitItems(FileListViewItem*_item = 0);
KURL::List selectedUrls();
virtual void contentsMouseMoveEvent( TQMouseEvent *e );
virtual void contentsMousePressEvent(TQMouseEvent*e);
virtual void contentsMouseReleaseEvent(TQMouseEvent*e);
virtual void contentsWheelEvent( TQWheelEvent * e );
virtual void leaveEvent(TQEvent*e);
virtual void rescanIconsRec(FileListViewItem*_parent=0,bool checkNewer=false,bool no_update=false);
TDETrader::OfferList offersList(SvnItem*item,bool execOnly=false);
private:
KdesvnFileListPrivate*m_pList;
void cleanHighLighter();
bool validDropEvent(TQDropEvent*event,TQListViewItem*&item);
void copy_move(bool move);
protected slots:
virtual void slotSelectBrowsingRevision();
virtual void slotItemRead(TQListViewItem*);
virtual void slotContextMenuRequested(TQListViewItem *, const TQPoint &, int);
virtual void slotSelectionChanged();
virtual void slotClientException(const TQString&);
virtual void slotNotifyMessage(const TQString&);
virtual void slotDirAdded(const TQString&,FileListViewItem*);
virtual void slotReinitItem(SvnItem*);
virtual void slotItemDoubleClicked(TQListViewItem*);
virtual void slotImportIntoCurrent(bool);
virtual void slotImportDirsIntoCurrent();
virtual void slotImportIntoDir(const KURL&,const TQString&,bool);
/* subversion slots */
virtual void slotChangeToRepository();
virtual void slotCleanupAction();
virtual void slotResolved();
virtual void slotTryResolve();
virtual void slotMergeRevisions();
virtual void slotMerge();
virtual void slotDropped(TQDropEvent *,TQListViewItem*);
virtual void viewportPaintEvent(TQPaintEvent *);
virtual void slotRename();
virtual void slotCopy();
virtual void slotCat();
virtual void slotDelete();
virtual void slotDisplayLastDiff();
/* callback slots */
virtual void slotCopyFinished( TDEIO::Job *);
virtual void slotDeleteFinished(TDEIO::Job*);
virtual void _openURL(const TQString&);
virtual void _dirwatchTimeout();
virtual void _propListTimeout();
/* internal slots */
virtual void readSupportData();
virtual void slotUpdateLogCache();
virtual void enableActions();
signals:
void sigLogMessage(const TQString&);
void changeCaption(const TQString&);
void sigShowPopup(const TQString&,TQWidget**);
void sigUrlOpend(bool);
void sigSwitchUrl(const KURL&);
void sigUrlChanged(const TQString&);
void sigProplist(const svn::PathPropertiesMapListPtr&,bool,const TQString&);
void sigListError();
void sigCacheStatus(TQ_LONG,TQ_LONG);
public slots:
virtual void refreshCurrentTree();
virtual void refreshCurrent(SvnItem*);
virtual void closeMe();
virtual void slotMkdir();
virtual void slotMkBaseDirs();
virtual void slotSettingsChanged();
virtual void slotChangeProperties(const svn::PropertiesMap&,const TQValueList<TQString>&,const TQString&);
protected slots:
virtual void slotLock();
virtual void slotUnlock();
virtual void slotIgnore();
virtual void slotBlame();
virtual void slotRangeBlame();
virtual void slotSimpleHeadDiff();
virtual void slotSimpleBaseDiff();
virtual void slotDiffRevisions();
virtual void slotDiffPathes();
virtual void slotRevisionCat();
virtual void slotCheckUpdates();
virtual void slotInfo();
virtual void slotDirItemCreated(const TQString&);
virtual void slotDirItemDirty(const TQString&);
virtual void slotDirItemDeleted(const TQString&);
virtual void slotRelocate();
virtual void slotRescanIcons(bool);
virtual void slotCheckNewItems();
virtual void slotMakeRangeLog();
virtual void slotMakeLog();
virtual void slotMakeTree();
virtual void slotMakePartTree();
virtual void slotInternalDrop();
virtual void slotOpenWith();
virtual void slotDisplayProperties();
virtual void slotUnfoldTree();
virtual void slotFoldTree();
private slots:
void gotPreview( const KFileItem*, const TQPixmap& );
void gotPreviewResult();
protected:
virtual bool uniqueTypeSelected();
virtual void dispProperties(bool);
};
#endif