From: Marcus Eggenberger Date: Wed, 23 Jan 2008 18:18:14 +0000 (+0000) Subject: implemented TreeModel::setData() which haven't been needed yet X-Git-Tag: 0.2.0-alpha1~202 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=6610ec52272c9cb9d30a992267331379ccbee77c implemented TreeModel::setData() which haven't been needed yet --- diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 0dc19b77..e9cf7d1e 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -232,10 +232,22 @@ SimpleTreeItem::~SimpleTreeItem() { } QVariant SimpleTreeItem::data(int column, int role) const { - if(role == Qt::DisplayRole && column < _itemData.count()) + if(column >= columnCount() || role != Qt::DisplayRole) + return QVariant(); + else return _itemData[column]; +} + +bool SimpleTreeItem::setData(int column, const QVariant &value, int role) { + if(column > columnCount() || role != Qt::DisplayRole) + return false; + + if(column == columnCount()) + _itemData.append(value); else - return QVariant(); + _itemData[column] = value; + + return true; } int SimpleTreeItem::columnCount() const { @@ -262,15 +274,19 @@ PropertyMapItem::~PropertyMapItem() { } QVariant PropertyMapItem::data(int column, int role) const { - if(column >= columnCount()) - return QVariant(); - - if(role != Qt::DisplayRole) + if(column >= columnCount() || role != Qt::DisplayRole) return QVariant(); return property(_propertyOrder[column].toAscii()); } +bool PropertyMapItem::setData(int column, const QVariant &value, int role) { + if(column >= columnCount() || role != Qt::DisplayRole) + return false; + + return setProperty(_propertyOrder[column].toAscii(), value); +} + int PropertyMapItem::columnCount() const { return _propertyOrder.count(); } @@ -402,10 +418,18 @@ QVariant TreeModel::data(const QModelIndex &index, int role) const { if(!index.isValid()) return QVariant(); - AbstractTreeItem *item = static_cast(index.internalPointer()); + AbstractTreeItem *item = static_cast(index.internalPointer()); return item->data(index.column(), role); } +bool TreeModel::setData(const QModelIndex &index, const QVariant &value, int role) { + if(!index.isValid()) + return false; + + AbstractTreeItem *item = static_cast(index.internalPointer()); + return item->setData(index.column(), value, role); +} + Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const { AbstractTreeItem *item; if(!index.isValid()) diff --git a/src/client/treemodel.h b/src/client/treemodel.h index 6439233f..f7159fd4 100644 --- a/src/client/treemodel.h +++ b/src/client/treemodel.h @@ -63,6 +63,7 @@ public: virtual int columnCount() const = 0; virtual QVariant data(int column, int role) const = 0; + virtual bool setData(int column, const QVariant &value, int role) = 0; virtual Qt::ItemFlags flags() const; virtual void setFlags(Qt::ItemFlags); @@ -99,7 +100,10 @@ class SimpleTreeItem : public AbstractTreeItem { public: SimpleTreeItem(const QList &data, AbstractTreeItem *parent = 0); virtual ~SimpleTreeItem(); + virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); + virtual int columnCount() const; private: @@ -119,6 +123,8 @@ public: virtual ~PropertyMapItem(); virtual QVariant data(int column, int role) const; + virtual bool setData(int column, const QVariant &value, int role); + virtual int columnCount() const; void appendProperty(const QString &property); @@ -138,7 +144,9 @@ public: TreeModel(const QList &, QObject *parent = 0); virtual ~TreeModel(); - QVariant data(const QModelIndex &index, int role) const; + virtual QVariant data(const QModelIndex &index, int role) const; + virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + virtual Qt::ItemFlags flags(const QModelIndex &index) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; diff --git a/version.inc b/version.inc index e8cf8959..4c2b80db 100644 --- a/version.inc +++ b/version.inc @@ -4,8 +4,8 @@ { using namespace Global; quasselVersion = "0.2.0-pre"; - quasselDate = "2008-01-22"; - quasselBuild = 377; + quasselDate = "2008-01-23"; + quasselBuild = 378; //! Minimum client build number the core needs clientBuildNeeded = 358;