diff options
| author | Tom Lin <[email protected]> | 2022-01-16 14:01:32 +0000 |
|---|---|---|
| committer | Felix Ernst <[email protected]> | 2022-01-16 14:01:32 +0000 |
| commit | d3839617193e92463806580699caa595c892b8a6 (patch) | |
| tree | 9819ace996bc994dd047206669eaa2869471a79b /src/views | |
| parent | a286506405550fe299e1f4a5fd73543e642655a0 (diff) | |
Full row highlight implementation
This commit implements full-row selection and hover highlights for the
details view mode.
This commit also contains fixes for 444680, 444753, both uncovered
during this change.
BUG: 181438
BUG: 444680
BUG: 444753
FIXED-IN: 22.04
Diffstat (limited to 'src/views')
| -rw-r--r-- | src/views/dolphinitemlistview.cpp | 1 | ||||
| -rw-r--r-- | src/views/dolphinview.cpp | 17 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 1 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp index 864d180c8..923589246 100644 --- a/src/views/dolphinitemlistview.cpp +++ b/src/views/dolphinitemlistview.cpp @@ -73,6 +73,7 @@ void DolphinItemListView::readSettings() beginTransaction(); setEnabledSelectionToggles(GeneralSettings::showSelectionToggle()); + setHighlightEntireRow(DetailsModeSettings::leadingPadding()); setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout())); updateFont(); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 0cd38c9eb..0a9783fe1 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -8,6 +8,7 @@ #include "dolphinview.h" #include "dolphin_generalsettings.h" +#include "dolphin_detailsmodesettings.h" #include "dolphinitemlistview.h" #include "dolphinnewfilemenuobserver.h" #include "draganddrophelper.h" @@ -201,6 +202,8 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) : this, &DolphinView::slotRoleEditingCanceled); connect(m_view->header(), &KItemListHeader::columnWidthChangeFinished, this, &DolphinView::slotHeaderColumnWidthChangeFinished); + connect(m_view->header(), &KItemListHeader::leadingPaddingChanged, + this, &DolphinView::slotLeadingPaddingWidthChanged); KItemListSelectionManager* selectionManager = controller->selectionManager(); connect(selectionManager, &KItemListSelectionManager::selectionChanged, @@ -1117,6 +1120,10 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos) QActionGroup* widthsGroup = new QActionGroup(menu); const bool autoColumnWidths = props.headerColumnWidths().isEmpty(); + QAction* toggleLeadingPaddingAction = menu->addAction(i18nc("@action:inmenu", "Leading Column Padding")); + toggleLeadingPaddingAction->setCheckable(true); + toggleLeadingPaddingAction->setChecked(view->header()->leadingPadding() > 0); + QAction* autoAdjustWidthsAction = menu->addAction(i18nc("@action:inmenu", "Automatic Column Widths")); autoAdjustWidthsAction->setCheckable(true); autoAdjustWidthsAction->setChecked(autoColumnWidths); @@ -1147,6 +1154,8 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos) } props.setHeaderColumnWidths(columnWidths); header->setAutomaticColumnResizing(false); + } else if (action == toggleLeadingPaddingAction) { + header->setLeadingPadding(toggleLeadingPaddingAction->isChecked() ? 20 : 0); } else { // Show or hide the selected role const QByteArray selectedRole = action->data().toByteArray(); @@ -1199,6 +1208,13 @@ void DolphinView::slotHeaderColumnWidthChangeFinished(const QByteArray& role, qr props.setHeaderColumnWidths(columnWidths); } +void DolphinView::slotLeadingPaddingWidthChanged(qreal width) +{ + ViewProperties props(viewPropertiesUrl()); + DetailsModeSettings::setLeadingPadding(int(width)); + m_view->writeSettings(); +} + void DolphinView::slotItemHovered(int index) { const KFileItem item = m_model->fileItem(index); @@ -1992,6 +2008,7 @@ void DolphinView::applyViewProperties(const ViewProperties& props) } else { header->setAutomaticColumnResizing(true); } + header->setLeadingPadding(DetailsModeSettings::leadingPadding()); } m_view->endTransaction(); diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 8566bc100..e93ca4fa0 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -635,6 +635,7 @@ private Q_SLOTS: void slotViewContextMenuRequested(const QPointF& pos); void slotHeaderContextMenuRequested(const QPointF& pos); void slotHeaderColumnWidthChangeFinished(const QByteArray& role, qreal current); + void slotLeadingPaddingWidthChanged(qreal width); void slotItemHovered(int index); void slotItemUnhovered(int index); void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); |
