diff options
| author | Peter Penz <[email protected]> | 2010-10-09 09:45:56 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2010-10-09 09:45:56 +0000 |
| commit | 7e864a72b19b72be58d1924264b72bb2f203dda9 (patch) | |
| tree | 4ea5cded01ef8759c5cb7e5f1402bb0735a93a97 /src/views/dolphindetailsview.h | |
| parent | 69d235fb48549d382fcbf432ce019f8aa5a2269e (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.h | 83 |
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 |
