diff options
Diffstat (limited to 'src/kitemviews')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 9 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodel.h | 2 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodelrolesupdater.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.cpp | 12 | ||||
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.h | 37 | ||||
| -rw-r--r-- | src/kitemviews/kitemmodelbase.cpp | 7 | ||||
| -rw-r--r-- | src/kitemviews/kitemmodelbase.h | 6 | ||||
| -rw-r--r-- | src/kitemviews/private/kitemlistheaderwidget.cpp | 5 |
8 files changed, 38 insertions, 42 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index fd0a88fb6..7c7abe9a7 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -304,6 +304,9 @@ QString KFileItemModel::roleDescription(const QByteArray& role) const int count = 0; const RoleInfoMap* map = rolesInfoMap(count); for (int i = 0; i < count; ++i) { + if (!map[i].roleTranslation) { + continue; + } description.insert(map[i].role, i18nc(map[i].roleTranslationContext, map[i].roleTranslation)); } } @@ -786,7 +789,7 @@ void KFileItemModel::onGroupedSortingChanged(bool current) m_groups.clear(); } -void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArray& previous) +void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems) { Q_UNUSED(previous); m_sortRole = typeForRole(current); @@ -797,7 +800,9 @@ void KFileItemModel::onSortRoleChanged(const QByteArray& current, const QByteArr setRoles(newRoles); } - resortAllItems(); + if (resortItems) { + resortAllItems(); + } } void KFileItemModel::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) diff --git a/src/kitemviews/kfileitemmodel.h b/src/kitemviews/kfileitemmodel.h index a931a28cc..3266a49f9 100644 --- a/src/kitemviews/kfileitemmodel.h +++ b/src/kitemviews/kfileitemmodel.h @@ -260,7 +260,7 @@ signals: protected: void onGroupedSortingChanged(bool current) override; - void onSortRoleChanged(const QByteArray& current, const QByteArray& previous) override; + void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true) override; void onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) override; private slots: diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 1d45e44c5..f078bc4e4 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -710,6 +710,8 @@ void KFileItemModelRolesUpdater::applyChangedBalooRoles(const QString& file) return; } applyChangedBalooRolesForItem(item); +#else + Q_UNUSED(file); #endif } diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index bde2bb26c..d3dbeb35c 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -210,18 +210,6 @@ bool KItemListController::singleClickActivationEnforced() const return m_singleClickActivationEnforced; } -bool KItemListController::showEvent(QShowEvent* event) -{ - Q_UNUSED(event); - return false; -} - -bool KItemListController::hideEvent(QHideEvent* event) -{ - Q_UNUSED(event); - return false; -} - bool KItemListController::keyPressEvent(QKeyEvent* event) { int index = m_selectionManager->currentItem(); diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h index 2f84a6c2c..b21e50735 100644 --- a/src/kitemviews/kitemlistcontroller.h +++ b/src/kitemviews/kitemlistcontroller.h @@ -40,10 +40,8 @@ class QGraphicsSceneDragDropEvent; class QGraphicsSceneMouseEvent; class QGraphicsSceneResizeEvent; class QGraphicsSceneWheelEvent; -class QHideEvent; class QInputMethodEvent; class QKeyEvent; -class QShowEvent; class QTransform; /** @@ -136,24 +134,7 @@ public: void setSingleClickActivationEnforced(bool singleClick); bool singleClickActivationEnforced() const; - virtual bool showEvent(QShowEvent* event); - virtual bool hideEvent(QHideEvent* event); - virtual bool keyPressEvent(QKeyEvent* event); - virtual bool inputMethodEvent(QInputMethodEvent* event); - virtual bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); - virtual bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); - virtual bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); - virtual bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); - virtual bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); - virtual bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); - virtual bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); - virtual bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); - virtual bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); - virtual bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); - virtual bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); - virtual bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform); - virtual bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform); - virtual bool processEvent(QEvent* event, const QTransform& transform); + bool processEvent(QEvent* event, const QTransform& transform); signals: /** @@ -307,6 +288,22 @@ private: */ void updateExtendedSelectionRegion(); + bool keyPressEvent(QKeyEvent* event); + bool inputMethodEvent(QInputMethodEvent* event); + bool mousePressEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); + bool mouseMoveEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); + bool mouseReleaseEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); + bool mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform); + bool dragEnterEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); + bool dragLeaveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); + bool dragMoveEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); + bool dropEvent(QGraphicsSceneDragDropEvent* event, const QTransform& transform); + bool hoverEnterEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); + bool hoverMoveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); + bool hoverLeaveEvent(QGraphicsSceneHoverEvent* event, const QTransform& transform); + bool wheelEvent(QGraphicsSceneWheelEvent* event, const QTransform& transform); + bool resizeEvent(QGraphicsSceneResizeEvent* event, const QTransform& transform); + private: bool m_singleClickActivationEnforced; bool m_selectionTogglePressed; diff --git a/src/kitemviews/kitemmodelbase.cpp b/src/kitemviews/kitemmodelbase.cpp index 47db1f86d..7f7877555 100644 --- a/src/kitemviews/kitemmodelbase.cpp +++ b/src/kitemviews/kitemmodelbase.cpp @@ -63,12 +63,12 @@ bool KItemModelBase::groupedSorting() const return m_groupedSorting; } -void KItemModelBase::setSortRole(const QByteArray& role) +void KItemModelBase::setSortRole(const QByteArray& role, bool resortItems) { if (role != m_sortRole) { const QByteArray previous = m_sortRole; m_sortRole = role; - onSortRoleChanged(role, previous); + onSortRoleChanged(role, previous, resortItems); emit sortRoleChanged(role, previous); } } @@ -152,10 +152,11 @@ void KItemModelBase::onGroupedSortingChanged(bool current) Q_UNUSED(current); } -void KItemModelBase::onSortRoleChanged(const QByteArray& current, const QByteArray& previous) +void KItemModelBase::onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems) { Q_UNUSED(current); Q_UNUSED(previous); + Q_UNUSED(resortItems); } void KItemModelBase::onSortOrderChanged(Qt::SortOrder current, Qt::SortOrder previous) diff --git a/src/kitemviews/kitemmodelbase.h b/src/kitemviews/kitemmodelbase.h index 257872f9c..f1945de06 100644 --- a/src/kitemviews/kitemmodelbase.h +++ b/src/kitemviews/kitemmodelbase.h @@ -85,8 +85,9 @@ public: * Sets the sort-role to \a role. The method KItemModelBase::onSortRoleChanged() will be * called so that model-implementations can react on the sort-role change. Afterwards the * signal sortRoleChanged() will be emitted. + * The implementation should resort only if \a resortItems is true. */ - void setSortRole(const QByteArray& role); + void setSortRole(const QByteArray& role, bool resortItems = true); QByteArray sortRole() const; /** @@ -266,8 +267,9 @@ protected: * Usually the most efficient way is to emit a * itemsRemoved() signal for all items, reorder the items internally and to emit a * itemsInserted() signal afterwards. + * The implementation should resort only if \a resortItems is true. */ - virtual void onSortRoleChanged(const QByteArray& current, const QByteArray& previous); + virtual void onSortRoleChanged(const QByteArray& current, const QByteArray& previous, bool resortItems = true); /** * Is invoked if the sort order has been changed by KItemModelBase::setSortOrder(). Allows diff --git a/src/kitemviews/private/kitemlistheaderwidget.cpp b/src/kitemviews/private/kitemlistheaderwidget.cpp index a994f69c8..a3f3f521f 100644 --- a/src/kitemviews/private/kitemlistheaderwidget.cpp +++ b/src/kitemviews/private/kitemlistheaderwidget.cpp @@ -220,10 +220,11 @@ void KItemListHeaderWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) // Change the sort role and reset to the ascending order const QByteArray previous = m_model->sortRole(); const QByteArray current = m_columns[m_pressedRoleIndex]; - m_model->setSortRole(current); + const bool resetSortOrder = m_model->sortOrder() == Qt::DescendingOrder; + m_model->setSortRole(current, !resetSortOrder); emit sortRoleChanged(current, previous); - if (m_model->sortOrder() == Qt::DescendingOrder) { + if (resetSortOrder) { m_model->setSortOrder(Qt::AscendingOrder); emit sortOrderChanged(Qt::AscendingOrder, Qt::DescendingOrder); } |
