summaryrefslogtreecommitdiffstats
path: root/buildtools/autotools/tdefilednddetailview.h
diff options
context:
space:
mode:
Diffstat (limited to 'buildtools/autotools/tdefilednddetailview.h')
-rw-r--r--buildtools/autotools/tdefilednddetailview.h137
1 files changed, 137 insertions, 0 deletions
diff --git a/buildtools/autotools/tdefilednddetailview.h b/buildtools/autotools/tdefilednddetailview.h
new file mode 100644
index 00000000..95f7d663
--- /dev/null
+++ b/buildtools/autotools/tdefilednddetailview.h
@@ -0,0 +1,137 @@
+/***************************************************************************
+* tdefilednddetailview.h - description
+* -------------------
+* begin : Wed Nov 1 2000
+* copyright : (C) 2000 by Björn Sahlström
+* email : kbjorn@users.sourceforge.net
+***************************************************************************/
+
+/***************************************************************************
+* *
+* 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 KFILEDNDDETAILVIEW_H
+#define KFILEDNDDETAILVIEW_H
+
+//////////////////////////////////////////////////////////////////////
+// TQt specific include files
+#include <tqwidget.h>
+#include <tqtimer.h>
+//////////////////////////////////////////////////////////////////////
+// KDE specific include files
+#include <tdefiledetailview.h>
+#include <kurldrag.h>
+
+
+/**
+ *This is a fileview inherited from @ref KFileDetailView.
+ *It adds "drag and drop" handling to the view suitable for a @ref KFileDetailView.
+ * No special setup is needed, just connect to the @ref dropped signals
+ * and the view will take care of the rest.
+ *@short "Drag and drop" aware @ref KFileDetailView
+ *@author Björn Sahlström
+ */
+
+class KFileDnDDetailView : public KFileDetailView
+{
+ Q_OBJECT
+
+public:
+ /** */
+ KFileDnDDetailView( TQWidget *parent = 0, const char *name = 0 );
+ /** */
+ virtual ~KFileDnDDetailView();
+ /**
+ * Set this to true if Drag'n drop should be enabled or not, default is enabled
+ */
+ void setDnDEnabled( bool );
+ /**
+ * @returns wether DnD is enabled or not.
+ */
+ bool isDnDEnabled() const
+ {
+ return m_dndEnabled;
+ }
+ /**
+ *Sets the auto open time, which means the time that will
+ *elapse before a directory is automatically opened after entered by DnD.
+ *Only need to call this if you want to change the predefined time that is 750 ms.
+ *This also calls @ref #useAutoOpenTimer so no need to call this to.
+ */
+ void setAutoOpenTime( const int& time );
+ /**
+ *Set this to true if you want the view to use it's auto open functionallity otherwhise set it to false.
+ *By default this is turned ON.
+ */
+ void useAutoOpenTimer( bool on = true );
+ /**
+ *@returns true if auto open functionallity is turned ON (default), otherwhise false
+ *@see #useAutoOpenTimer
+ *@see #setAutoOpenTime
+ */
+ bool isAutoOpening() const
+ {
+ return m_useAutoOpenTimer;
+ }
+ /** */
+ virtual void readConfig( TDEConfig*, const TQString& group = TQString() );
+ /** */
+ virtual void writeConfig( TDEConfig*, const TQString& group = TQString() );
+signals: // Signals
+ /**
+ * Emitted whenever an decodable item is dropped in the view.
+ * Note: The @ref TQDropEvent contains a @ref KURLDrag object.
+ */
+ void dropped( TQDropEvent* );
+ /**
+ * Emitted whenever an decodable item is dropped in the view
+ * Note: The @ref TQDropEvent contains a @ref KURLDrag object.
+ */
+ void dropped( KFileView*, TQDropEvent* );
+ /**
+ * Emitted whenever an decodable item is dropped in the view.
+ *@param urls contains a list of all dropped @ref KURL
+ */
+ void dropped( KFileView*, KURL::List& urls );
+protected slots: // Protected slots
+ /**
+ * Called when the auto timer times out. Open the current folder.
+ */
+ void slotOpenFolder();
+protected: //Protected Methods
+ /** */
+ virtual void contentsDragEnterEvent( TQDragEnterEvent *e );
+ /** */
+ virtual void contentsDragMoveEvent( TQDragMoveEvent *e );
+ /** */
+ virtual void contentsDragLeaveEvent( TQDragLeaveEvent *e );
+ /** */
+ virtual void contentsDropEvent( TQDropEvent* e );
+ /**
+ * Create dragobject encoding the current selection and starts the drag
+ */
+ virtual void startDrag();
+ /**
+ * @returns the dragObject
+ */
+ virtual TQDragObject* dragObject() const;
+ /**
+ * @returns true if we can decode the drag and support the action
+ */
+ virtual bool acceptDrag( TQDropEvent* event ) const;
+protected: // Private attributes
+ TQTimer m_autoOpenTimer;
+ int m_autoOpenTime;
+ bool m_useAutoOpenTimer;
+ TQListViewItem* m_dropItem;
+ KURLDrag* m_dragObject;
+ bool m_dndEnabled;
+};
+
+#endif
+// kate: indent-mode csands; tab-width 4;