┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphindetailsview.h
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-10-09 09:45:56 +0000
committerPeter Penz <[email protected]>2010-10-09 09:45:56 +0000
commit7e864a72b19b72be58d1924264b72bb2f203dda9 (patch)
tree4ea5cded01ef8759c5cb7e5f1402bb0735a93a97 /src/views/dolphindetailsview.h
parent69d235fb48549d382fcbf432ce019f8aa5a2269e (diff)
Move the generic hover- and selection-adjustments from DolphinsDetailsView into the new base class DolphinTreeView.
Background info: QTreeView does not respect the width of a cell for the hover-feedback and the selections. This has been adjusted in DolphinDetailsView already, but the required code for this is quite large. This made it tricky to maintain the really Dolphin-specific parts in DolphinDetailsView. svn path=/trunk/KDE/kdebase/apps/; revision=1184152
Diffstat (limited to 'src/views/dolphindetailsview.h')
-rw-r--r--src/views/dolphindetailsview.h83
1 files changed, 5 insertions, 78 deletions
diff --git a/src/views/dolphindetailsview.h b/src/views/dolphindetailsview.h
index 8b76cbc36..67f7f2e3e 100644
--- a/src/views/dolphindetailsview.h
+++ b/src/views/dolphindetailsview.h
@@ -1,6 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006 by Peter Penz ([email protected]) *
- * Copyright (C) 2008 by Simon St. James ([email protected]) *
+ * Copyright (C) 2006-2010 by Peter Penz <[email protected]> *
* *
* 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 *
@@ -21,6 +20,7 @@
#ifndef DOLPHINDETAILSVIEW_H
#define DOLPHINDETAILSVIEW_H
+#include "dolphintreeview.h"
#include <QTreeView>
#include <libdolphin_export.h>
#include <views/dolphinview.h>
@@ -37,7 +37,7 @@ class ViewExtensionsFactory;
* that full available width of the view is used by stretching the width
* of the name column.
*/
-class LIBDOLPHINPRIVATE_EXPORT DolphinDetailsView : public QTreeView
+class LIBDOLPHINPRIVATE_EXPORT DolphinDetailsView : public DolphinTreeView
{
Q_OBJECT
@@ -62,32 +62,22 @@ public:
*/
QSet<KUrl> expandedUrls() const;
- virtual QRegion visualRegionForSelection(const QItemSelection& selection) const;
-
protected:
virtual bool event(QEvent* event);
virtual QStyleOptionViewItem viewOptions() const;
virtual void contextMenuEvent(QContextMenuEvent* event);
virtual void mousePressEvent(QMouseEvent* event);
- virtual void mouseMoveEvent(QMouseEvent* event);
- virtual void mouseReleaseEvent(QMouseEvent* event);
virtual void startDrag(Qt::DropActions supportedActions);
virtual void dragEnterEvent(QDragEnterEvent* event);
- virtual void dragLeaveEvent(QDragLeaveEvent* event);
virtual void dragMoveEvent(QDragMoveEvent* event);
virtual void dropEvent(QDropEvent* event);
- virtual void paintEvent(QPaintEvent* event);
virtual void keyPressEvent(QKeyEvent* event);
- virtual void keyReleaseEvent(QKeyEvent* event);
virtual void resizeEvent(QResizeEvent* event);
virtual void wheelEvent(QWheelEvent* event);
virtual void currentChanged(const QModelIndex& current, const QModelIndex& previous);
virtual bool eventFilter(QObject* watched, QEvent* event);
- virtual QModelIndex indexAt (const QPoint& point) const;
virtual QRect visualRect(const QModelIndex& index) const;
- virtual void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags command);
- virtual void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible);
-
+ virtual bool acceptsDrop(const QModelIndex& index) const;
protected slots:
virtual void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
@@ -121,20 +111,6 @@ private slots:
*/
void slotEntered(const QModelIndex& index);
- /**
- * Updates the destination \a destination from
- * the elastic band to the current mouse position and triggers
- * an update.
- */
- void updateElasticBand();
-
- /**
- * Returns the rectangle for the elastic band dependent from the
- * origin \a origin, the current destination
- * \a destination and the viewport position.
- */
- QRect elasticBandRect() const;
-
void setZoomLevel(int level);
void slotShowPreviewChanged();
@@ -184,13 +160,6 @@ private slots:
void slotGlobalSettingsChanged(int category);
/**
- * If the elastic band is currently shown, update the elastic band based on
- * the current mouse position and ensure that the selection is the set of items
- * intersecting it.
- */
- void updateElasticBandSelection();
-
- /**
* If \a expandable is true, the details view acts as tree view.
* The current expandable state is remembered in the settings.
*/
@@ -220,21 +189,12 @@ private:
KFileItemDelegate::Information infoForColumn(int columnIndex) const;
/**
- * Returns true, if \a pos is within the expanding toggle of a tree.
- */
- bool isAboveExpandingToggle(const QPoint& pos) const;
-
- /**
* Sets the maximum size available for editing in the delegate.
*/
void adjustMaximumSizeForEditing(const QModelIndex& index);
private:
- bool m_autoResize : 1; // if true, the columns are resized automatically to the available width
- bool m_expandingTogglePressed : 1;
- bool m_keyPressed : 1; // true if a key is pressed currently; info used by currentChanged()
- bool m_useDefaultIndexAt : 1; // true, if QTreeView::indexAt() should be used
- bool m_ignoreScrollTo : 1; // true if calls to scrollTo(...) should do nothing.
+ bool m_autoResize; // if true, the columns are resized automatically to the available width
DolphinViewController* m_dolphinViewController;
const ViewModeController* m_viewModeController;
@@ -249,39 +209,6 @@ private:
QFont m_font;
QSize m_decorationSize;
-
- QRect m_dropRect;
-
- struct ElasticBand
- {
- ElasticBand();
-
- // Elastic band origin and destination coordinates are relative to t
- // he origin of the view, not the viewport.
- bool show;
- QPoint origin;
- QPoint destination;
-
- // Optimization mechanisms for use with elastic band selection.
- // Basically, allow "incremental" updates to the selection based
- // on the last elastic band shape.
- QPoint lastSelectionOrigin;
- QPoint lastSelectionDestination;
-
- // If true, compute the set of selected elements from scratch (slower)
- bool ignoreOldInfo;
-
- // Edges of the filenames that are closest to the edges of oldSelectionRect.
- // Used to decide whether horizontal changes in the elastic band are likely
- // to require us to re-check which items are selected.
- int outsideNearestLeftEdge;
- int outsideNearestRightEdge;
- int insideNearestLeftEdge;
- int insideNearestRightEdge;
- // The set of items that were selected at the time this band was shown.
- // NOTE: Unless CTRL was pressed when the band was created, this is always empty.
- QItemSelection originalSelection;
- } m_band;
};
#endif