[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