]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Change signature of setVisibleRoles()
authorPeter Penz <peter.penz19@gmail.com>
Tue, 20 Sep 2011 13:19:11 +0000 (15:19 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 20 Sep 2011 13:20:16 +0000 (15:20 +0200)
Simply use a QList<QByteArray> instead of QHash<QByteArray, int>.

src/kitemviews/kfileitemlistview.cpp
src/kitemviews/kfileitemlistview.h
src/kitemviews/kfileitemlistwidget.cpp
src/kitemviews/kfileitemlistwidget.h
src/kitemviews/kitemlistview.cpp
src/kitemviews/kitemlistview.h
src/kitemviews/kitemlistwidget.cpp
src/kitemviews/kitemlistwidget.h
src/views/dolphinitemlistcontainer.cpp
src/views/dolphinitemlistcontainer.h
src/views/dolphinview.cpp

index d9742945a18c03bfb47304388297f35f15616f99..c1d98c810fa31181d98fdadaa8dce443ea1130ca 100644 (file)
@@ -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");
index 1fb7bf35232f0ca1f2fb2c7e838356818854d571..0f0c5e85a52a2f13a3de5bd517b48f93f1a2f4cf 100644 (file)
@@ -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();
index d9a1cbfd1ca7d5baefb3c279f9c5edcc2a410881..a9193fbc75a4b729381bcc67ca982a65902f2216 100644 (file)
@@ -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,
index 50e746fad63ada02a40bbca13d5d62b5ccd49f43..4f1cf1133b50af43497d4fc5489fd2cb65205e96 100644 (file)
@@ -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);
index 991551485ab5891fee93b6d481afd92c18ffc962..7b73bc616ab6292112ae083fc40e529478780392 100644 (file)
@@ -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);
index a2fa23f3e83f8cfbdd5fcfd7afa5f514a0581548..17db18b31a1950192e05bc1d4facfcc1fb4d0be8 100644 (file)
@@ -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;
index 86febed97c71b1666a8be53c234a20f7b1dc0c27..476031777f1b29c379cb75ccae6b7c6f23a78b8f 100644 (file)
@@ -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);
index e3f3cb5788fa186d55c3c0edf8991a3b8a2e2397..2229948a3704a814242395a898df9e4386865ade 100644 (file)
@@ -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;
 
index 404b1d92b73350f4ed3965056f65e557cbe15b61..e1be814c03ba776ccf54e1454f46cfd7d81519c2 100644 (file)
@@ -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();
 }
index 2b00380a905acff463bb7a082a6fbacaeefe0702..9cf4bff3fe96fe2be8f98b799dc8030e06e06f1b 100644 (file)
@@ -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;
index db546fe95d177a043120db7c68775a749bb8b801..2fa9196bfa9a0ad1c0c1e82e0fa3fada0f95369b 100644 (file)
@@ -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);