summaryrefslogtreecommitdiffstats
path: root/src/svnfrontend/kdesvnfilelist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/svnfrontend/kdesvnfilelist.h')
-rw-r--r--src/svnfrontend/kdesvnfilelist.h243
1 files changed, 243 insertions, 0 deletions
diff --git a/src/svnfrontend/kdesvnfilelist.h b/src/svnfrontend/kdesvnfilelist.h
new file mode 100644
index 0000000..55ac7d3
--- /dev/null
+++ b/src/svnfrontend/kdesvnfilelist.h
@@ -0,0 +1,243 @@
+/***************************************************************************
+ * 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 KDESVNFILELIST_H
+#define KDESVNFILELIST_H
+
+#include "itemdisplay.h"
+#include "filelistviewitem.h"
+#include "src/svnqt/status.hpp"
+#include "src/svnqt/client.hpp"
+
+#include <klistview.h>
+#include <kurl.h>
+#include <ktrader.h>
+#include <qmap.h>
+#include <qptrlist.h>
+#include <qevent.h>
+
+class KAction;
+class KActionMenu;
+class KActionCollection;
+class KDialog;
+class KDialogBase;
+class KdesvnFileListPrivate;
+class SvnActions;
+
+namespace KIO {
+ class Job;
+}
+
+namespace svn {
+ class Revision;
+}
+/**
+@author Rajko Albrecht
+*/
+class kdesvnfilelist : public KListView,public ItemDisplay
+{
+ Q_OBJECT
+ friend class FileListViewItem;
+public:
+ kdesvnfilelist(KActionCollection*,QWidget *parent = 0, const char *name = 0);
+ virtual ~kdesvnfilelist();
+
+ virtual bool openURL( const KURL &url,bool noReinit=false );
+ virtual SvnItem*SelectedOrMain();
+ virtual SvnItem*Selected();
+ virtual void SelectionList(SvnItemList*target);
+
+ virtual QWidget*realWidget();
+
+ KActionCollection*filesActions();
+ bool refreshItem(FileListViewItem*);
+
+protected:
+ const svn::Revision& remoteRevision()const;
+ bool m_deletePerfect;
+ QMap<QString,bool> m_Dirsread;
+
+ KActionCollection* m_filesAction;
+ KAction*m_BlameAction,*m_BlameRangeAction,*m_CatAction,*m_MkdirAction;
+ KAction*m_InfoAction,*m_commitAction,*m_UpdateHead,*m_UpdateRev;
+ KAction*m_AddCurrent,*m_DelCurrent,*m_CheckoutAction,*m_CheckoutCurrentAction,*m_RevertAction;
+ KAction*m_changeToRepository,*m_switchRepository,*m_ExportAction,*m_ExportCurrentAction;
+ KAction*m_CleanupAction,*m_ResolvedAction,*m_ImportDirsIntoCurrent,*m_RefreshViewAction,*m_MergeRevisionAction;
+ KAction*m_RenameAction,*m_CopyAction;
+ KAction*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 QString&,FileListViewItem * _parent);
+ void setupActions();
+ svn::Client*svnclient();
+
+
+ FileListViewItem* singleSelected();
+ FileListViewItemList* allSelected();
+
+ template<class T> KDialogBase* createDialog(T**ptr,
+ const QString&_head,
+ bool OkCancel=false,
+ const char*name="dialog",
+ bool showHelp=false
+ );
+
+ FileListViewItemList* m_SelectedItems;
+ FileListViewItem* findEntryItem(const QString&,FileListViewItem*startAt=0);
+
+ virtual bool refreshRecursive(FileListViewItem*,bool down=true);
+ virtual void updateParents(FileListViewItem*);
+ virtual void checkUnversionedDirs( FileListViewItem * _parent );
+
+ /**
+ * Overridden virtuals for Qt drag 'n drop (XDND)
+ */
+ virtual void contentsDragEnterEvent( QDragEnterEvent* );
+ virtual void contentsDragLeaveEvent( QDragLeaveEvent* );
+ virtual void contentsDragMoveEvent( QDragMoveEvent* );
+ virtual void contentsDropEvent( QDropEvent* );
+ virtual bool acceptDrag(QDropEvent *event)const;
+ //virtual void startDrag();
+ virtual QDragObject* dragObject();
+
+ void dispDummy();
+ void reinitItems(FileListViewItem*_item = 0);
+ KURL::List selectedUrls();
+
+ virtual void contentsMouseMoveEvent( QMouseEvent *e );
+ virtual void contentsMousePressEvent(QMouseEvent*e);
+ virtual void contentsMouseReleaseEvent(QMouseEvent*e);
+ virtual void contentsWheelEvent( QWheelEvent * e );
+ virtual void leaveEvent(QEvent*e);
+ virtual void rescanIconsRec(FileListViewItem*_parent=0,bool checkNewer=false,bool no_update=false);
+
+ KTrader::OfferList offersList(SvnItem*item,bool execOnly=false);
+
+private:
+ KdesvnFileListPrivate*m_pList;
+ void cleanHighLighter();
+ bool validDropEvent(QDropEvent*event,QListViewItem*&item);
+ void copy_move(bool move);
+
+protected slots:
+ virtual void slotSelectBrowsingRevision();
+ virtual void slotItemRead(QListViewItem*);
+ virtual void slotContextMenuRequested(QListViewItem *, const QPoint &, int);
+ virtual void slotSelectionChanged();
+ virtual void slotClientException(const QString&);
+ virtual void slotNotifyMessage(const QString&);
+ virtual void slotDirAdded(const QString&,FileListViewItem*);
+ virtual void slotReinitItem(SvnItem*);
+ virtual void slotItemDoubleClicked(QListViewItem*);
+ virtual void slotImportIntoCurrent(bool);
+ virtual void slotImportDirsIntoCurrent();
+ virtual void slotImportIntoDir(const KURL&,const QString&,bool);
+
+ /* subversion slots */
+ virtual void slotChangeToRepository();
+ virtual void slotCleanupAction();
+ virtual void slotResolved();
+ virtual void slotTryResolve();
+ virtual void slotMergeRevisions();
+ virtual void slotMerge();
+ virtual void slotDropped(QDropEvent *,QListViewItem*);
+ virtual void viewportPaintEvent(QPaintEvent *);
+ virtual void slotRename();
+ virtual void slotCopy();
+ virtual void slotCat();
+ virtual void slotDelete();
+ virtual void slotDisplayLastDiff();
+
+ /* callback slots */
+ virtual void slotCopyFinished( KIO::Job *);
+ virtual void slotDeleteFinished(KIO::Job*);
+ virtual void _openURL(const QString&);
+ virtual void _dirwatchTimeout();
+ virtual void _propListTimeout();
+
+ /* internal slots */
+ virtual void readSupportData();
+ virtual void slotUpdateLogCache();
+
+ virtual void enableActions();
+
+signals:
+ void sigLogMessage(const QString&);
+ void changeCaption(const QString&);
+ void sigShowPopup(const QString&,QWidget**);
+ void sigUrlOpend(bool);
+ void sigSwitchUrl(const KURL&);
+ void sigUrlChanged(const QString&);
+ void sigProplist(const svn::PathPropertiesMapListPtr&,bool,const QString&);
+ void sigListError();
+ void sigCacheStatus(Q_LONG,Q_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 QValueList<QString>&,const QString&);
+
+
+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 QString&);
+ virtual void slotDirItemDirty(const QString&);
+ virtual void slotDirItemDeleted(const QString&);
+ 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 QPixmap& );
+ void gotPreviewResult();
+protected:
+ virtual bool uniqueTypeSelected();
+ virtual void dispProperties(bool);
+};
+
+#endif