diff --git a/src/filewidgets/kdiroperatordetailview.cpp b/src/filewidgets/kdiroperatordetailview.cpp --- a/src/filewidgets/kdiroperatordetailview.cpp +++ b/src/filewidgets/kdiroperatordetailview.cpp @@ -34,7 +34,7 @@ KDirOperatorDetailView::KDirOperatorDetailView(QWidget *parent) : QTreeView(parent), - m_resizeColumns(true), m_hideDetailColumns(false) + m_hideDetailColumns(false) { setRootIsDecorated(false); setSortingEnabled(true); @@ -50,22 +50,6 @@ { } -void KDirOperatorDetailView::setModel(QAbstractItemModel *model) -{ - QTreeView::setModel(model); - - if (model->rowCount() == 0) { - // The model is empty. Assure that the columns get automatically resized - // until the loading has been finished. - QAbstractProxyModel *proxyModel = static_cast(model); - KDirModel *dirModel = static_cast(proxyModel->sourceModel()); - connect(dirModel->dirLister(), SIGNAL(completed()), - this, SLOT(resetResizing())); - } else { - resetResizing(); - } -} - bool KDirOperatorDetailView::setViewMode(KFile::FileView viewMode) { bool tree = false; @@ -100,7 +84,9 @@ { if (event->type() == QEvent::Polish) { QHeaderView *headerView = header(); - headerView->setSectionResizeMode(QHeaderView::Interactive); + headerView->setSectionResizeMode(0, QHeaderView::Stretch); + headerView->setSectionResizeMode(1, QHeaderView::ResizeToContents); + headerView->setSectionResizeMode(2, QHeaderView::ResizeToContents); headerView->setStretchLastSection(false); headerView->setSectionsMovable(false); @@ -127,12 +113,6 @@ } } -void KDirOperatorDetailView::resizeEvent(QResizeEvent *event) -{ - QTreeView::resizeEvent(event); - expandNameColumn(); -} - void KDirOperatorDetailView::mousePressEvent(QMouseEvent *event) { QTreeView::mousePressEvent(event); @@ -150,32 +130,3 @@ { QTreeView::currentChanged(current, previous); } - -void KDirOperatorDetailView::resetResizing() -{ - connect(model(), &QAbstractItemModel::layoutChanged, this, &KDirOperatorDetailView::expandNameColumn, - Qt::UniqueConnection); - - expandNameColumn(); - m_resizeColumns = false; -} - -void KDirOperatorDetailView::expandNameColumn() -{ - if (m_resizeColumns) { - QHeaderView *headerView = header(); - headerView->resizeSections(QHeaderView::ResizeToContents); - - int notNameWidth = 0; - const int count = headerView->count(); - for (int i = 1; i < count; ++i) { - notNameWidth += headerView->sectionSize(i); - } - - // try to stretch the name column if enough width is available - const int oldNameColumnWidth = headerView->sectionSize(KDirModel::Name); - const int nameColumnWidth = qMax(oldNameColumnWidth, viewport()->width() - notNameWidth); - headerView->resizeSection(KDirModel::Name, nameColumnWidth); - } -} - diff --git a/src/filewidgets/kdiroperatordetailview_p.h b/src/filewidgets/kdiroperatordetailview_p.h --- a/src/filewidgets/kdiroperatordetailview_p.h +++ b/src/filewidgets/kdiroperatordetailview_p.h @@ -36,7 +36,6 @@ public: KDirOperatorDetailView(QWidget *parent = nullptr); virtual ~KDirOperatorDetailView(); - void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE; /** * Displays either Detail, Tree or DetailTree modes. @@ -46,16 +45,10 @@ protected: bool event(QEvent *event) Q_DECL_OVERRIDE; void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE; void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE; void currentChanged(const QModelIndex ¤t, const QModelIndex &previous) Q_DECL_OVERRIDE; -private Q_SLOTS: - void resetResizing(); - void expandNameColumn(); - private: - bool m_resizeColumns; bool m_hideDetailColumns; };