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
This commit is contained in:
Frank Reininghaus 2010-02-22 18:22:12 +00:00
parent 642062284c
commit a9702ad0cc
2 changed files with 21 additions and 0 deletions

View file

@ -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(),

View file

@ -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;