┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp9
-rw-r--r--src/kitemviews/kfileitemmodel.h2
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp2
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp12
-rw-r--r--src/kitemviews/kitemlistcontroller.h37
-rw-r--r--src/kitemviews/kitemmodelbase.cpp7
-rw-r--r--src/kitemviews/kitemmodelbase.h6
-rw-r--r--src/kitemviews/private/kitemlistheaderwidget.cpp5
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);
}