OSDN Git Service

QmlDesigner.componentView: cleaning up
authorThomas Hartmann <Thomas.Hartmann@nokia.com>
Thu, 9 Jun 2011 09:34:13 +0000 (11:34 +0200)
committerThomas Hartmann <Thomas.Hartmann@nokia.com>
Thu, 9 Jun 2011 09:35:36 +0000 (11:35 +0200)
There was some dead code I removed.
I also refactored the node removal and made it more robust.

Change-Id: I3bd566011302968c1d798689fcca3b4a3880b306
Reviewed-on: http://codereview.qt.nokia.com/417
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
src/plugins/qmldesigner/components/integration/componentview.cpp
src/plugins/qmldesigner/components/integration/componentview.h

index afaadc4..461b03b 100644 (file)
@@ -45,7 +45,6 @@ namespace QmlDesigner {
 ComponentView::ComponentView(QObject *parent)
   : AbstractView(parent),
     m_standardItemModel(new QStandardItemModel(this)),
-    m_listChanged(false),
     m_componentAction(new ComponentAction(this))
 {
 }
@@ -54,11 +53,7 @@ ComponentView::ComponentView(QObject *parent)
 
 void ComponentView::nodeAboutToBeRemoved(const ModelNode &removedNode)
 {
-    for (int index = 1; index < m_standardItemModel->rowCount(); index++) {
-        QStandardItem *item = m_standardItemModel->item(index);
-        if (item->data(ModelNodeRole).value<ModelNode>() == removedNode)
-            m_standardItemModel->removeRow(index);
-    }
+    removeSingleNodeFromList(removedNode);
     searchForComponentAndRemoveFromList(removedNode);
 }
 
@@ -85,6 +80,14 @@ void ComponentView::appendWholeDocumentAsComponent()
     m_standardItemModel->appendRow(item);
 }
 
+void ComponentView::removeSingleNodeFromList(const ModelNode &node)
+{
+    for (int row = 0; row < m_standardItemModel->rowCount(); row++) {
+        if (m_standardItemModel->item(row)->data(ModelNodeRole).value<ModelNode>() == node)
+            m_standardItemModel->removeRow(row);
+    }
+}
+
 void ComponentView::modelAttached(Model *model)
 {
     if (AbstractView::model() == model)
@@ -133,6 +136,7 @@ void ComponentView::searchForComponentAndAddToList(const ModelNode &node)
                 QStandardItem *item = new QStandardItem(node.id());
                 item->setData(QVariant::fromValue(node), ModelNodeRole);
                 item->setEditable(false);
+                removeSingleNodeFromList(node); //remove node if already present
                 m_standardItemModel->appendRow(item);
             } else {
                 QString description;
@@ -146,12 +150,9 @@ void ComponentView::searchForComponentAndAddToList(const ModelNode &node)
                 QStandardItem *item = new QStandardItem(description);
                 item->setData(QVariant::fromValue(node), ModelNodeRole);
                 item->setEditable(false);
+                removeSingleNodeFromList(node); //remove node if already present
                 m_standardItemModel->appendRow(item);
             }
-        } else if (node.metaInfo().isValid() && node.metaInfo().isComponent() && !m_componentList.contains(node.type())) {
-            m_componentList.append(node.type());
-            m_componentList.sort();
-            m_listChanged = true;
         }
     }
 }
@@ -169,16 +170,7 @@ void ComponentView::searchForComponentAndRemoveFromList(const ModelNode &node)
 
     foreach (const ModelNode &childNode, nodeList) {
         if (childNode.nodeSourceType() == ModelNode::ComponentSource) {
-            if (!childNode.id().isEmpty()) {
-                for (int row = 0; row < m_standardItemModel->rowCount(); row++) {
-                    if (m_standardItemModel->item(row)->text() == childNode.id())
-                        m_standardItemModel->removeRow(row);
-                }
-            }
-        } else if (node.metaInfo().isComponent() && !m_componentList.contains(childNode.type())) {
-            m_componentList.append(childNode.type());
-            m_componentList.sort();
-            m_listChanged = true;
+            removeSingleNodeFromList(childNode);
         }
     }
 }
index 17b5175..f2cf5eb 100644 (file)
@@ -113,11 +113,10 @@ private: //functions
     void searchForComponentAndAddToList(const ModelNode &node);
     void searchForComponentAndRemoveFromList(const ModelNode &node);
     void appendWholeDocumentAsComponent();
+    void removeSingleNodeFromList(const ModelNode &node);
 
 private:
-    QStringList m_componentList;
     QStandardItemModel *m_standardItemModel;
-    bool m_listChanged;
     ComponentAction *m_componentAction;
 };