From a9702ad0cc47bcc3adeccba449d67d387209c97d Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Mon, 22 Feb 2010 18:22:12 +0000 Subject: [PATCH] Use the full width of the "Name" column of the Details View for renaming items inline. BUG: 226666 svn path=/trunk/KDE/kdebase/apps/; revision=1094416 --- src/dolphindetailsview.cpp | 16 ++++++++++++++++ src/dolphindetailsview.h | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 8292db8aa..80e90d670 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -454,6 +454,10 @@ void DolphinDetailsView::currentChanged(const QModelIndex& current, const QModel if (m_keyPressed) { setCurrentIndex(current); } + + // If folders are expanded, the width which is available for editing may have changed + // because it depends on the level of the current item in the folder hierarchy. + adjustMaximumSizeForEditing(current); } bool DolphinDetailsView::eventFilter(QObject* watched, QEvent* event) @@ -681,6 +685,8 @@ void DolphinDetailsView::slotHeaderSectionResized(int logicalIndex, int oldSize, if ((QApplication::mouseButtons() & Qt::LeftButton) && header()->underMouse()) { disableAutoResizing(); } + + adjustMaximumSizeForEditing(currentIndex()); } void DolphinDetailsView::slotActivationChanged(bool active) @@ -914,6 +920,10 @@ void DolphinDetailsView::setFoldersExpandable(bool expandable) settings->setExpandableFolders(expandable); setRootIsDecorated(expandable); setItemsExpandable(expandable); + + // The width of the space which is available for editing has changed + // because of the (dis)appearance of the expanding toggles + adjustMaximumSizeForEditing(currentIndex()); } void DolphinDetailsView::slotExpanded(const QModelIndex& index) @@ -1062,6 +1072,12 @@ bool DolphinDetailsView::isAboveExpandingToggle(const QPoint& pos) const return false; } +void DolphinDetailsView::adjustMaximumSizeForEditing(const QModelIndex& index) +{ + // Make sure that the full width of the "Name" column is available for "Rename Inline" + m_extensionsFactory->fileItemDelegate()->setMaximumSize(QTreeView::visualRect(index).size()); +} + DolphinDetailsView::ElasticBand::ElasticBand() : show(false), origin(), diff --git a/src/dolphindetailsview.h b/src/dolphindetailsview.h index ddf47bfc3..47af2f55d 100644 --- a/src/dolphindetailsview.h +++ b/src/dolphindetailsview.h @@ -214,6 +214,11 @@ private: */ 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; -- 2.47.3