m_font = KGlobalSettings::generalFont();
} else {
m_font = QFont(settings->fontFamily(),
- settings->fontSize(),
+ qRound(settings->fontSize()),
settings->fontWeight(),
settings->italicFont());
+ m_font.setPointSizeF(settings->fontSize());
}
setVerticalScrollMode(QTreeView::ScrollPerPixel);
return m_expandedUrls;
}
-QRegion DolphinDetailsView::visualRegionForSelection(const QItemSelection &selection) const
+QRegion DolphinDetailsView::visualRegionForSelection(const QItemSelection& selection) const
{
// We have to make sure that the visualRect of each model index is inside the region.
// QTreeView::visualRegionForSelection does not do it right because it assumes implicitly
bool DolphinDetailsView::event(QEvent* event)
{
- if (event->type() == QEvent::Polish) {
+ switch (event->type()) {
+ case QEvent::Polish:
header()->setResizeMode(QHeaderView::Interactive);
updateColumnVisibility();
+ break;
+
+ case QEvent::FocusOut:
+ // If a key-press triggers an action that e. g. opens a dialog, the
+ // widget gets no key-release event. Assure that the pressed state
+ // is reset to prevent accidently setting the current index during a selection.
+ m_keyPressed = false;
+ break;
+
+ default:
+ break;
}
return QTreeView::event(event);
void DolphinDetailsView::wheelEvent(QWheelEvent* event)
{
- const int height = m_decorationSize.height();
- const int step = (height >= KIconLoader::SizeHuge) ? height / 10 : (KIconLoader::SizeHuge - height) / 2;
+ const int step = m_decorationSize.height();
verticalScrollBar()->setSingleStep(step);
QTreeView::wheelEvent(event);
}
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)
if ((QApplication::mouseButtons() & Qt::LeftButton) && header()->underMouse()) {
disableAutoResizing();
}
+
+ adjustMaximumSizeForEditing(currentIndex());
}
void DolphinDetailsView::slotActivationChanged(bool active)
return;
}
}
- }
- else {
+ } else {
// This is the only piece of optimization data that needs to be explicitly
// discarded.
m_band.lastSelectionOrigin = QPoint();
currIndex = nextIndex;
} while (!allItemsInBoundDone);
+
selectionModel()->select(itemsToToggle, QItemSelectionModel::Toggle);
m_band.lastSelectionOrigin = m_band.origin;
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)
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(),