X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8d0e873f670cab8e7bc8df902abed6ebc17dd09d..d6488887ecf69d7f192b94de8dce34fae0b7eb76:/src/dolphindetailsview.h diff --git a/src/dolphindetailsview.h b/src/dolphindetailsview.h index da3f2ec90..1b21690c0 100644 --- a/src/dolphindetailsview.h +++ b/src/dolphindetailsview.h @@ -27,7 +27,6 @@ #include class DolphinController; -class QRubberBand; /** * @brief Represents the details view which shows the name, size, @@ -52,8 +51,15 @@ protected: 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 resizeEvent(QResizeEvent* event); + virtual void closeEvent(QCloseEvent* event); private slots: /** @@ -85,14 +91,35 @@ private slots: void slotEntered(const QModelIndex& index); /** - * Updates the geometry of the rubberband dependent from the current - * mouse position and the starting origin \a m_origin. + * Updates the destination \a m_elasticBandDestination from + * the elastic band to the current mouse position and triggers + * an update. */ - void updateRubberBandGeometry(); + void updateElasticBand(); + + /** + * Returns the rectangle for the elastic band dependent from the + * origin \a m_elasticBandOrigin, the current destination + * \a m_elasticBandDestination and the viewport position. + */ + QRect elasticBandRect() const; void zoomIn(); void zoomOut(); + /** + * Called by QTreeView when an item is activated (clicked or double-clicked) + */ + void triggerItem(const QModelIndex& index); + + /** + * Opens a context menu at the position \a pos and allows to + * configure the visibility of the header columns. + */ + void configureColumns(const QPoint& pos); + + void updateColumnVisibility(); + private: bool isZoomInPossible() const; bool isZoomOutPossible() const; @@ -108,12 +135,27 @@ private: /** Return the upper left position in pixels of the viewport content. */ QPoint contentsPos() const; + KFileItem itemForIndex(const QModelIndex& index) const; + + KFileItemDelegate::Information infoForColumn(int columnIndex) const; + + /** + * Resizes all columns in a way to use the whole available width of the view. + */ + void resizeColumns(); + private: DolphinController* m_controller; QStyleOptionViewItem m_viewOptions; - QRubberBand* m_rubberBand; - QPoint m_origin; + bool m_clearAdditionalInfo; + + bool m_dragging; // TODO: remove this property when the issue #160611 is solved in Qt 4.4 + QRect m_dropRect; // TODO: remove this property when the issue #160611 is solved in Qt 4.4 + + bool m_showElasticBand; + QPoint m_elasticBandOrigin; + QPoint m_elasticBandDestination; }; #endif