┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kfileitemlistview.cpp17
-rw-r--r--src/kitemviews/kfileitemlistview.h2
-rw-r--r--src/kitemviews/kfileitemlistwidget.cpp29
-rw-r--r--src/kitemviews/kfileitemlistwidget.h2
-rw-r--r--src/kitemviews/kitemlistview.cpp8
-rw-r--r--src/kitemviews/kitemlistview.h12
-rw-r--r--src/kitemviews/kitemlistwidget.cpp10
-rw-r--r--src/kitemviews/kitemlistwidget.h12
-rw-r--r--src/views/dolphinitemlistcontainer.cpp4
-rw-r--r--src/views/dolphinitemlistcontainer.h8
-rw-r--r--src/views/dolphinview.cpp13
11 files changed, 37 insertions, 80 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp
index d9742945a..c1d98c810 100644
--- a/src/kitemviews/kfileitemlistview.cpp
+++ b/src/kitemviews/kfileitemlistview.cpp
@@ -141,10 +141,8 @@ QSizeF KFileItemListView::itemSizeHint(int index) const
// For each row exactly one role is shown. Calculate the maximum required width that is necessary
// to show all roles without horizontal clipping.
qreal maximumRequiredWidth = 0.0;
- QHashIterator<QByteArray, int> it(visibleRoles());
- while (it.hasNext()) {
- it.next();
- const QByteArray& role = it.key();
+
+ foreach (const QByteArray& role, visibleRoles()) {
const QString text = values[role].toString();
const qreal requiredWidth = option.fontMetrics.width(text);
maximumRequiredWidth = qMax(maximumRequiredWidth, requiredWidth);
@@ -178,13 +176,8 @@ QHash<QByteArray, QSizeF> KFileItemListView::visibleRoleSizes() const
const int itemCount = model()->count();
for (int i = 0; i < itemCount; ++i) {
- QHashIterator<QByteArray, int> it(visibleRoles());
- while (it.hasNext()) {
- it.next();
- const QByteArray& visibleRole = it.key();
-
+ foreach (const QByteArray& visibleRole, visibleRoles()) {
QSizeF maxSize = sizes.value(visibleRole, QSizeF(0, 0));
-
const QSizeF itemSize = visibleRoleSizeHint(i, visibleRole);
maxSize = maxSize.expandedTo(itemSize);
sizes.insert(visibleRole, maxSize);
@@ -274,7 +267,7 @@ void KFileItemListView::onOffsetChanged(qreal current, qreal previous)
triggerVisibleIndexRangeUpdate();
}
-void KFileItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous)
+void KFileItemListView::onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous)
{
Q_UNUSED(previous);
@@ -283,7 +276,7 @@ void KFileItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& curr
// KFileItemModel does not distinct between "visible" and "invisible" roles.
// Add all roles that are mandatory for having a working KFileItemListView:
- QSet<QByteArray> keys = current.keys().toSet();
+ QSet<QByteArray> keys = current.toSet();
QSet<QByteArray> roles = keys;
roles.insert("iconPixmap");
roles.insert("iconName");
diff --git a/src/kitemviews/kfileitemlistview.h b/src/kitemviews/kfileitemlistview.h
index 1fb7bf352..0f0c5e85a 100644
--- a/src/kitemviews/kfileitemlistview.h
+++ b/src/kitemviews/kfileitemlistview.h
@@ -72,7 +72,7 @@ protected:
virtual void onScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous);
virtual void onItemSizeChanged(const QSizeF& current, const QSizeF& previous);
virtual void onOffsetChanged(qreal current, qreal previous);
- virtual void onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
+ virtual void onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
virtual void onStyleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
virtual void onTransactionBegin();
virtual void onTransactionEnd();
diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp
index d9a1cbfd1..a9193fbc7 100644
--- a/src/kitemviews/kfileitemlistwidget.cpp
+++ b/src/kitemviews/kfileitemlistwidget.cpp
@@ -199,7 +199,7 @@ void KFileItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current
QSet<QByteArray> dirtyRoles;
if (roles.isEmpty()) {
- dirtyRoles = visibleRoles().keys().toSet();
+ dirtyRoles = visibleRoles().toSet();
dirtyRoles.insert("iconPixmap");
dirtyRoles.insert("iconName");
} else {
@@ -213,33 +213,12 @@ void KFileItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current
}
}
-void KFileItemListWidget::visibleRolesChanged(const QHash<QByteArray, int>& current,
- const QHash<QByteArray, int>& previous)
+void KFileItemListWidget::visibleRolesChanged(const QList<QByteArray>& current,
+ const QList<QByteArray>& previous)
{
KItemListWidget::visibleRolesChanged(current, previous);
+ m_sortedVisibleRoles = current;
m_dirtyLayout = true;
-
- // Cache the roles sorted into m_sortedVisibleRoles:
- const int visibleRolesCount = current.count();
- m_sortedVisibleRoles.clear();
- m_sortedVisibleRoles.reserve(visibleRolesCount);
- for (int i = 0; i < visibleRolesCount; ++i) {
- m_sortedVisibleRoles.append(QByteArray());
- }
-
- QHashIterator<QByteArray, int> it(current);
- while (it.hasNext()) {
- it.next();
-
- const int index = it.value();
- if (index < 0 || index >= visibleRolesCount || !m_sortedVisibleRoles.at(index).isEmpty()) {
- kWarning() << "The visible roles have an invalid sort order.";
- break;
- }
-
- const QByteArray& role = it.key();
- m_sortedVisibleRoles[index] = role;
- }
}
void KFileItemListWidget::visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current,
diff --git a/src/kitemviews/kfileitemlistwidget.h b/src/kitemviews/kfileitemlistwidget.h
index 50e746fad..4f1cf1133 100644
--- a/src/kitemviews/kfileitemlistwidget.h
+++ b/src/kitemviews/kfileitemlistwidget.h
@@ -72,7 +72,7 @@ protected:
QPixmap overlay() const;
virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
- virtual void visibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
+ virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
virtual void hoveredChanged(bool hovered);
diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp
index 991551485..7b73bc616 100644
--- a/src/kitemviews/kitemlistview.cpp
+++ b/src/kitemviews/kitemlistview.cpp
@@ -180,9 +180,9 @@ qreal KItemListView::maximumOffset() const
return m_layouter->maximumOffset();
}
-void KItemListView::setVisibleRoles(const QHash<QByteArray, int>& roles)
+void KItemListView::setVisibleRoles(const QList<QByteArray>& roles)
{
- const QHash<QByteArray, int> previousRoles = m_visibleRoles;
+ const QList<QByteArray> previousRoles = m_visibleRoles;
m_visibleRoles = roles;
QHashIterator<int, KItemListWidget*> it(m_visibleItems);
@@ -201,7 +201,7 @@ void KItemListView::setVisibleRoles(const QHash<QByteArray, int>& roles)
updateLayout();
}
-QHash<QByteArray, int> KItemListView::visibleRoles() const
+QList<QByteArray> KItemListView::visibleRoles() const
{
return m_visibleRoles;
}
@@ -476,7 +476,7 @@ void KItemListView::onOffsetChanged(qreal current, qreal previous)
Q_UNUSED(previous);
}
-void KItemListView::onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous)
+void KItemListView::onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous)
{
Q_UNUSED(current);
Q_UNUSED(previous);
diff --git a/src/kitemviews/kitemlistview.h b/src/kitemviews/kitemlistview.h
index a2fa23f3e..17db18b31 100644
--- a/src/kitemviews/kitemlistview.h
+++ b/src/kitemviews/kitemlistview.h
@@ -83,12 +83,8 @@ public:
qreal maximumOffset() const;
- /**
- * Sets the visible roles to \p roles. The integer-value defines
- * the order of the visible role: Smaller values are ordered first.
- */
- void setVisibleRoles(const QHash<QByteArray, int>& roles);
- QHash<QByteArray, int> visibleRoles() const;
+ void setVisibleRoles(const QList<QByteArray>& roles);
+ QList<QByteArray> visibleRoles() const;
/**
* If set to true an automatic scrolling is done as soon as the
@@ -198,7 +194,7 @@ protected:
virtual void onScrollOrientationChanged(Qt::Orientation current, Qt::Orientation previous);
virtual void onItemSizeChanged(const QSizeF& current, const QSizeF& previous);
virtual void onOffsetChanged(qreal current, qreal previous);
- virtual void onVisibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
+ virtual void onVisibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
virtual void onStyleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
virtual void onTransactionBegin();
@@ -327,7 +323,7 @@ private:
QSizeF m_itemSize;
KItemListController* m_controller;
KItemModelBase* m_model;
- QHash<QByteArray, int> m_visibleRoles;
+ QList<QByteArray> m_visibleRoles;
QHash<QByteArray, QSizeF> m_visibleRolesSizes;
KItemListWidgetCreatorBase* m_widgetCreator;
KItemListGroupHeaderCreatorBase* m_groupHeaderCreator;
diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp
index 86febed97..476031777 100644
--- a/src/kitemviews/kitemlistwidget.cpp
+++ b/src/kitemviews/kitemlistwidget.cpp
@@ -141,14 +141,14 @@ void KItemListWidget::paint(QPainter* painter, const QStyleOptionGraphicsItem* o
painter->setOpacity(opacity);
}
-void KItemListWidget::setVisibleRoles(const QHash<QByteArray, int>& roles)
+void KItemListWidget::setVisibleRoles(const QList<QByteArray>& roles)
{
- const QHash<QByteArray, int> previousRoles = m_visibleRoles;
+ const QList<QByteArray> previousRoles = m_visibleRoles;
m_visibleRoles = roles;
visibleRolesChanged(roles, previousRoles);
}
-QHash<QByteArray, int> KItemListWidget::visibleRoles() const
+QList<QByteArray> KItemListWidget::visibleRoles() const
{
return m_visibleRoles;
}
@@ -269,8 +269,8 @@ void KItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& current,
update();
}
-void KItemListWidget::visibleRolesChanged(const QHash<QByteArray, int>& current,
- const QHash<QByteArray, int>& previous)
+void KItemListWidget::visibleRolesChanged(const QList<QByteArray>& current,
+ const QList<QByteArray>& previous)
{
Q_UNUSED(current);
Q_UNUSED(previous);
diff --git a/src/kitemviews/kitemlistwidget.h b/src/kitemviews/kitemlistwidget.h
index e3f3cb578..2229948a3 100644
--- a/src/kitemviews/kitemlistwidget.h
+++ b/src/kitemviews/kitemlistwidget.h
@@ -59,12 +59,8 @@ public:
*/
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
- /**
- * Sets the visible roles to \p roles. The integer-value defines
- * the order of the visible role: Smaller values are ordered first.
- */
- void setVisibleRoles(const QHash<QByteArray, int>& roles);
- QHash<QByteArray, int> visibleRoles() const;
+ void setVisibleRoles(const QList<QByteArray>& roles);
+ QList<QByteArray> visibleRoles() const;
void setVisibleRolesSizes(const QHash<QByteArray, QSizeF> rolesSizes);
QHash<QByteArray, QSizeF> visibleRolesSizes() const;
@@ -115,7 +111,7 @@ public:
protected:
virtual void dataChanged(const QHash<QByteArray, QVariant>& current, const QSet<QByteArray>& roles = QSet<QByteArray>());
- virtual void visibleRolesChanged(const QHash<QByteArray, int>& current, const QHash<QByteArray, int>& previous);
+ virtual void visibleRolesChanged(const QList<QByteArray>& current, const QList<QByteArray>& previous);
virtual void visibleRolesSizesChanged(const QHash<QByteArray, QSizeF>& current, const QHash<QByteArray, QSizeF>& previous);
virtual void styleOptionChanged(const KItemListStyleOption& current, const KItemListStyleOption& previous);
virtual void currentChanged(bool current);
@@ -143,7 +139,7 @@ private:
bool m_current;
bool m_hovered;
QHash<QByteArray, QVariant> m_data;
- QHash<QByteArray, int> m_visibleRoles;
+ QList<QByteArray> m_visibleRoles;
QHash<QByteArray, QSizeF> m_visibleRolesSizes;
KItemListStyleOption m_styleOption;
diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp
index 404b1d92b..e1be814c0 100644
--- a/src/views/dolphinitemlistcontainer.cpp
+++ b/src/views/dolphinitemlistcontainer.cpp
@@ -126,13 +126,13 @@ bool DolphinItemListContainer::previewsShown() const
return m_fileItemListView->previewsShown();
}
-void DolphinItemListContainer::setVisibleRoles(const QHash<QByteArray, int>& roles)
+void DolphinItemListContainer::setVisibleRoles(const QList<QByteArray>& roles)
{
m_fileItemListView->setVisibleRoles(roles);
updateGridSize();
}
-QHash<QByteArray, int> DolphinItemListContainer::visibleRoles() const
+QList<QByteArray> DolphinItemListContainer::visibleRoles() const
{
return m_fileItemListView->visibleRoles();
}
diff --git a/src/views/dolphinitemlistcontainer.h b/src/views/dolphinitemlistcontainer.h
index 2b00380a9..9cf4bff3f 100644
--- a/src/views/dolphinitemlistcontainer.h
+++ b/src/views/dolphinitemlistcontainer.h
@@ -51,12 +51,8 @@ public:
void setPreviewsShown(bool show);
bool previewsShown() const;
- /**
- * Sets the visible roles to \p roles. The integer-value defines
- * the order of the visible role: Smaller values are ordered first.
- */
- void setVisibleRoles(const QHash<QByteArray, int>& roles);
- QHash<QByteArray, int> visibleRoles() const;
+ void setVisibleRoles(const QList<QByteArray>& roles);
+ QList<QByteArray> visibleRoles() const;
void setZoomLevel(int level);
int zoomLevel() const;
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp
index db546fe95..2fa9196bf 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -163,9 +163,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
connect(m_dirLister, SIGNAL(itemsDeleted(KFileItemList)), this, SIGNAL(itemCountChanged()));
m_container = new DolphinItemListContainer(m_dirLister, this);
- QHash<QByteArray, int> visibleRoles;
- visibleRoles.insert("name", 0);
- m_container->setVisibleRoles(visibleRoles);
+ m_container->setVisibleRoles(QList<QByteArray>() << "name");
KItemListController* controller = m_container->controller();
controller->setSelectionBehavior(KItemListController::MultiSelection);
@@ -1194,13 +1192,12 @@ void DolphinView::applyAdditionalInfoListToView()
{
const AdditionalInfoAccessor& infoAccessor = AdditionalInfoAccessor::instance();
- QHash<QByteArray, int> visibleRoles;
- visibleRoles.insert("name", 0);
+ QList<QByteArray> visibleRoles;
+ visibleRoles.reserve(m_additionalInfoList.count() + 1);
+ visibleRoles.append("name");
- int index = 1;
foreach (AdditionalInfo info, m_additionalInfoList) {
- visibleRoles.insert(infoAccessor.role(info), index);
- ++index;
+ visibleRoles.append(infoAccessor.role(info));
}
m_container->setVisibleRoles(visibleRoles);