[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kexi
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2010-08-24 21:10:09
Message-ID: 20100824211009.5A345AC871 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1167543 by piggz:

Implemented 'addItem' for the project model.
TODO: model/view needs sorting
CCMAIL: staniek@kde.org

 M  +1 -1      main/KexiMainWindow.cpp  
 M  +28 -13    widget/KexiProjectModel.cpp  
 M  +5 -4      widget/KexiProjectModel.h  
 M  +19 -0     widget/KexiProjectModelItem.cpp  
 M  +1 -0      widget/KexiProjectModelItem.h  


--- trunk/koffice/kexi/main/KexiMainWindow.cpp #1167542:1167543
@@ -2195,7 +2195,7 @@
         
     }
     connect(d->prj, SIGNAL(newItemStored(KexiPart::Item&)), d->nav, \
                SLOT(addItem(KexiPart::Item&)));
-    connect(d->prj, SIGNAL(newItemStored(KexiPart::Item&)), d->nav2, \
SLOT(slotAddItem(KexiPart::Item&))); //TODO new navigator +    connect(d->prj, \
SIGNAL(newItemStored(KexiPart::Item&)), d->nav2->model(), \
SLOT(slotAddItem(KexiPart::Item&))); //TODO new navigator  d->nav->setFocus();
 
     if (d->forceShowProjectNavigatorOnCreation) {
--- trunk/koffice/kexi/widget/KexiProjectModel.cpp #1167542:1167543
@@ -240,7 +240,7 @@
     return m_itemsPartClass;
 }
 
-KexiProjectModelItem *KexiProjectModel::addGroup(KexiPart::Info& info, \
KexiProjectModelItem *p) +KexiProjectModelItem \
*KexiProjectModel::addGroup(KexiPart::Info& info, KexiProjectModelItem *p) const  {
     if (!info.isVisibleInNavigator())
         return 0;
@@ -249,19 +249,27 @@
     return item;
 }
 
-KexiProjectModelItem* KexiProjectModel::slotAddItem(KexiPart::Item& item)
+void KexiProjectModel::slotAddItem(KexiPart::Item& item)
 {
+    kDebug() << item.name();
+    QModelIndex idx;
 
-//    KexiProjectModelItem *parent = modelItemFromItem(item.partClass());
+    KexiProjectModelItem *parent = modelItemFromName(item.partClass());
 
-    //part object for this item    
-//    KexiProjectModelItem *parent = item.partClass().isEmpty()
-//                              ? 0 : m_baseItems.value(item.partClass().toLower());
-//    return addItem(item, parent, parent->partInfo());
-    return 0;
+    if (parent) {
+        kDebug() << "Got Parent" << parent->data(0);
+        idx = indexFromItem(parent);
+        beginInsertRows(idx, 0,0);
+        KexiProjectModelItem *itm = new KexiProjectModelItem(*(parent->partInfo()), \
item, parent); +        if (itm) {
+            kDebug() << "Appending";
+            parent->appendChild(itm);
 }
+        endInsertRows();
+    }
+}
 
-KexiProjectModelItem* KexiProjectModel::addItem(KexiPart::Item &item, KexiPart::Info \
&info, KexiProjectModelItem *p) +KexiProjectModelItem* \
KexiProjectModel::addItem(KexiPart::Item &item, KexiPart::Info &info, \
KexiProjectModelItem *p) const  {
     return new KexiProjectModelItem(info, item, p);;
 }
@@ -289,16 +297,23 @@
 
 QModelIndex KexiProjectModel::indexFromItem(KexiProjectModelItem* item) const
 {
+    kDebug();
     if (item && item->parent()) {
         int row = item->row();
-        //dbgUI << "Node index in image: " << index << ", parent has " << rowCount + \
1 << " rows, inverted index becomes " << row; +        kDebug() << row;
         return createIndex(row, 0, (void*)item);
-    } else {
+    } 
             return QModelIndex();
     }
-}
 
-KexiProjectModelItem* KexiProjectModel::modelItemFromItem(const KexiPart::Item& \
item) +KexiProjectModelItem* KexiProjectModel::modelItemFromItem(const \
KexiPart::Item& item) const  {
     return m_rootItem->modelItemFromItem(item);
 }
+
+KexiProjectModelItem* KexiProjectModel::modelItemFromName(const QString& name) const
+{
+    kDebug() << name;
+    return m_rootItem->modelItemFromName(name);
+}
+
--- trunk/koffice/kexi/widget/KexiProjectModel.h #1167542:1167543
@@ -45,20 +45,21 @@
     virtual Qt::ItemFlags flags(const QModelIndex& index) const;
 
 public slots:
-    KexiProjectModelItem* slotAddItem(KexiPart::Item& item);
+    void slotAddItem(KexiPart::Item& item);
     void slotRemoveItem(const KexiPart::Item &item);
     
 private:
     void clear();
 
     QModelIndex indexFromItem(KexiProjectModelItem *item) const;
-    KexiProjectModelItem *modelItemFromItem(const KexiPart::Item &item);
+    KexiProjectModelItem *modelItemFromItem(const KexiPart::Item &item) const;
+    KexiProjectModelItem *modelItemFromName(const QString &name) const;
     
     //!Part class to display
     QString m_itemsPartClass;
 
-    KexiProjectModelItem* addGroup(KexiPart::Info& info, KexiProjectModelItem*);
-    KexiProjectModelItem* addItem(KexiPart::Item& item, KexiPart::Info& info, \
KexiProjectModelItem*); +    KexiProjectModelItem* addGroup(KexiPart::Info& info, \
KexiProjectModelItem*) const; +    KexiProjectModelItem* addItem(KexiPart::Item& \
item, KexiPart::Info& info, KexiProjectModelItem*) const;  
     KexiProjectModelItem *m_rootItem;
 
--- trunk/koffice/kexi/widget/KexiProjectModelItem.cpp #1167542:1167543
@@ -130,8 +130,10 @@
 {
      if (m_parentItem)
      {
+         //kDebug() << m_parentItem->m_childItems << this << data(0);;
          return m_parentItem->m_childItems.indexOf(this);
      }
+     kDebug() << "No parent item!";
      return 0;
 }
 
@@ -189,3 +191,20 @@
     }
     return itm;
 }
+
+KexiProjectModelItem* KexiProjectModelItem::modelItemFromName(const QString& name) \
const +{
+    KexiProjectModelItem* itm = 0;
+
+        foreach(KexiProjectModelItem *child, m_childItems) {
+            if (!itm) {
+                if ((child->m_item && child->m_item->name() == name) || \
(child->m_info && child->m_info->partClass() == name) || (child->m_groupName == \
name)) { +                        itm = child;
+                } else {
+                     itm = child->modelItemFromName(name);
+                }
+            }
+        }
+    return itm;
+}
+
--- trunk/koffice/kexi/widget/KexiProjectModelItem.h #1167542:1167543
@@ -82,6 +82,7 @@
     void debugPrint();
 
     KexiProjectModelItem* modelItemFromItem(const KexiPart::Item &item) const;
+    KexiProjectModelItem* modelItemFromName(const QString& name) const;
 
  private:
     QList<KexiProjectModelItem*> m_childItems;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic