summaryrefslogtreecommitdiffstats
path: root/src/gvcore/filedetailview.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gvcore/filedetailview.h')
-rw-r--r--src/gvcore/filedetailview.h133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/gvcore/filedetailview.h b/src/gvcore/filedetailview.h
new file mode 100644
index 0000000..12313f6
--- /dev/null
+++ b/src/gvcore/filedetailview.h
@@ -0,0 +1,133 @@
+// vim: set tabstop=4 shiftwidth=4 noexpandtab
+/* This file is based on kfiledetailview.h v1.30 from the KDE libs. Original
+ copyright follows.
+*/
+/* This file is part of the KDE libraries
+ Copyright (C) 1997 Stephan Kulow <coolo@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+*/
+
+#ifndef FILEDETAILVIEW_H
+#define FILEDETAILVIEW_H
+
+class KFileItem;
+class QWidget;
+class QKeyEvent;
+
+// Qt includes
+#include <qdir.h>
+
+// KDE includes
+#include <klistview.h>
+#include <kmimetyperesolver.h>
+
+// Our includes
+#include "fileviewbase.h"
+namespace Gwenview {
+
+class FileDetailViewItem;
+
+class FileDetailView : public KListView, public FileViewBase
+{
+ Q_OBJECT
+
+ friend class FileDetailViewItem;
+
+public:
+ FileDetailView(QWidget* parent, const char* name);
+ virtual ~FileDetailView();
+
+ virtual QWidget* widget() { return this; }
+ virtual void clearView();
+
+ virtual void updateView( bool );
+ virtual void updateView(const KFileItem*);
+ virtual void removeItem( const KFileItem* );
+ virtual void listingCompleted();
+
+ virtual void setSelected(const KFileItem* , bool);
+ virtual bool isSelected(const KFileItem* i) const;
+ virtual void clearSelection();
+ virtual void selectAll();
+ virtual void invertSelection();
+
+ virtual void setCurrentItem( const KFileItem* );
+ virtual KFileItem* currentFileItem() const;
+ virtual KFileItem* firstFileItem() const;
+ virtual KFileItem* nextItem( const KFileItem* ) const;
+ virtual KFileItem* prevItem( const KFileItem* ) const;
+
+ virtual void insertItem( KFileItem* i );
+
+ // implemented to get noticed about sorting changes (for sortingIndicator)
+ virtual void setSorting( QDir::SortSpec );
+
+ void ensureItemVisible( const KFileItem* );
+
+ // for KMimeTypeResolver
+ void mimeTypeDeterminationFinished();
+ void determineIcon( FileDetailViewItem* item );
+ QScrollView* scrollWidget() { return this; }
+
+ void setShownFileItem(KFileItem* fileItem);
+
+signals:
+ void dropped(QDropEvent* event, KFileItem* item);
+ void sortingChanged(QDir::SortSpec);
+
+protected:
+ virtual bool acceptDrag(QDropEvent*) const;
+ virtual void contentsDropEvent(QDropEvent*);
+ virtual void keyPressEvent(QKeyEvent*);
+
+ int mSortingCol;
+
+protected slots:
+ void slotSelectionChanged();
+
+private slots:
+ void slotSortingChanged( int );
+ void selected( QListViewItem* item );
+ void slotActivate( QListViewItem* item );
+ void highlighted( QListViewItem* item );
+ void slotActivateMenu ( QListViewItem* item, const QPoint& pos );
+
+private:
+ bool mBlockSortingSignal;
+ KMimeTypeResolver<FileDetailViewItem,FileDetailView>* mResolver;
+
+ virtual void insertItem(QListViewItem* i) { KListView::insertItem(i); }
+ virtual void setSorting(int i, bool b) { KListView::setSorting(i, b); }
+ virtual void setSelected(QListViewItem* i, bool b) { KListView::setSelected(i, b); }
+
+ FileDetailViewItem* viewItem( const KFileItem* item ) const {
+ if (item) return (FileDetailViewItem*)item->extraData(this);
+ return 0L;
+ }
+
+ void setSortingKey(FileDetailViewItem* item, const KFileItem* i);
+
+ void startDrag();
+
+ QPixmap mShownItemSelectedPixmap;
+ QPixmap mShownItemUnselectedPixmap;
+};
+
+
+} // namespace
+#endif
+