mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 08:21:22 +00:00
assure that the width of the name-column cannot get too small when decreasing the width of the viewport
CCMAIL: ereslibre@gmail.com svn path=/trunk/KDE/kdebase/apps/; revision=717258
This commit is contained in:
parent
8df41dd006
commit
89a12482f7
|
@ -297,6 +297,39 @@ void DolphinDetailsView::keyPressEvent(QKeyEvent* event)
|
|||
}
|
||||
}
|
||||
|
||||
void DolphinDetailsView::resizeEvent(QResizeEvent* event)
|
||||
{
|
||||
QTreeView::resizeEvent(event);
|
||||
|
||||
// assure that the width of the name-column does not get too small
|
||||
const int minWidth = 120;
|
||||
QHeaderView* headerView = header();
|
||||
bool useFixedWidth = (headerView->sectionSize(KDirModel::Name) <= minWidth)
|
||||
&& (headerView->resizeMode(0) != QHeaderView::Fixed);
|
||||
if (useFixedWidth) {
|
||||
// the current width of the name-column is too small, hence
|
||||
// use a fixed size
|
||||
headerView->setResizeMode(QHeaderView::Interactive);
|
||||
headerView->setResizeMode(0, QHeaderView::Fixed);
|
||||
headerView->resizeSection(KDirModel::Name, minWidth);
|
||||
} else if (headerView->resizeMode(0) != QHeaderView::Stretch) {
|
||||
// check whether there is enough available viewport width
|
||||
// to automatically resize the columns
|
||||
const int availableWidth = viewport()->width();
|
||||
|
||||
int headerWidth = 0;
|
||||
const int count = headerView->count();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
headerWidth += headerView->sectionSize(i);
|
||||
}
|
||||
|
||||
if (headerWidth < availableWidth) {
|
||||
headerView->setResizeMode(QHeaderView::ResizeToContents);
|
||||
headerView->setResizeMode(0, QHeaderView::Stretch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting)
|
||||
{
|
||||
QHeaderView* headerView = header();
|
||||
|
@ -368,6 +401,16 @@ void DolphinDetailsView::zoomOut()
|
|||
}
|
||||
}
|
||||
|
||||
void DolphinDetailsView::slotItemActivated(const QModelIndex& index)
|
||||
{
|
||||
if (index.isValid() && (index.column() == KDirModel::Name)) {
|
||||
m_controller->triggerItem(index);
|
||||
} else {
|
||||
clearSelection();
|
||||
m_controller->emitItemEntered(index);
|
||||
}
|
||||
}
|
||||
|
||||
bool DolphinDetailsView::isZoomInPossible() const
|
||||
{
|
||||
DetailsModeSettings* settings = DolphinSettings::instance().detailsModeSettings();
|
||||
|
@ -422,14 +465,4 @@ static bool isValidNameIndex(const QModelIndex& index)
|
|||
return index.isValid() && (index.column() == KDirModel::Name);
|
||||
}
|
||||
|
||||
void DolphinDetailsView::slotItemActivated(const QModelIndex& index)
|
||||
{
|
||||
if (!isValidNameIndex(index)) {
|
||||
clearSelection();
|
||||
m_controller->emitItemEntered(index);
|
||||
} else {
|
||||
m_controller->triggerItem(index);
|
||||
}
|
||||
}
|
||||
|
||||
#include "dolphindetailsview.moc"
|
||||
|
|
|
@ -57,6 +57,7 @@ protected:
|
|||
virtual void dropEvent(QDropEvent* event);
|
||||
virtual void paintEvent(QPaintEvent* event);
|
||||
virtual void keyPressEvent(QKeyEvent* event);
|
||||
virtual void resizeEvent(QResizeEvent* event);
|
||||
|
||||
private slots:
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue