setDragDropMode(QAbstractItemView::DragDrop);
setDropIndicatorShown(false);
setAlternatingRowColors(true);
+ setItemsExpandable(false);
setMouseTracking(true);
viewport()->setAttribute(Qt::WA_Hover);
{
if (event->type() == QEvent::Polish) {
QHeaderView* headerView = header();
- headerView->setResizeMode(QHeaderView::Fixed);
+ headerView->setResizeMode(QHeaderView::Interactive);
headerView->setMovable(false);
updateColumnVisibility();
m_dragging = false;
} else {
m_dragging = true;
- if (itemForIndex(index).isDir()) {
+ const KFileItem item = itemForIndex(index);
+ if (!item.isNull() && item.isDir()) {
m_dropRect = visualRect(index);
} else {
m_dropRect.setSize(QSize()); // set as invalid
void DolphinDetailsView::resizeEvent(QResizeEvent* event)
{
QTreeView::resizeEvent(event);
- resizeColumns();
+
+ // TODO: There seems to be no easy way to find out whether the resize event
+ // has been triggered because of resizing the window or by adjusting the column-width
+ // by a left mouse-click (the columns should only be resized automatically when the window
+ // size is adjusted). The following workaround works well, but it should be
+ // considered solving this in a more transparent way.
+ if (!(QApplication::mouseButtons() & Qt::LeftButton)) {
+ resizeColumns();
+ }
}
void DolphinDetailsView::closeEvent(QCloseEvent* event)