[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