Changed QVariant::fromValue() to qVariantFromValue, since MSVC6 supposedly cannot...
[quassel.git] / src / client / treemodel.cpp
index ec6ce7a..10baa07 100644 (file)
@@ -102,7 +102,7 @@ AbstractTreeItem *AbstractTreeItem::child(int row) const {
   return child(defaultColumn(), row);
 }
 
-AbstractTreeItem *AbstractTreeItem::childById(int column, const uint &id) const {
+AbstractTreeItem *AbstractTreeItem::childById(int column, const quint64 &id) const {
   if(!_childHash.contains(column)
      || !_childHash[column].contains(id))
     return 0;
@@ -110,7 +110,7 @@ AbstractTreeItem *AbstractTreeItem::childById(int column, const uint &id) const
     return _childHash[column].value(id);
 }
 
-AbstractTreeItem *AbstractTreeItem::childById(const uint &id) const {
+AbstractTreeItem *AbstractTreeItem::childById(const quint64 &id) const {
   return childById(defaultColumn(), id);
 }
 
@@ -147,7 +147,7 @@ int AbstractTreeItem::row() const {
     return _parentItem->_childItems[column()].indexOf(const_cast<AbstractTreeItem*>(this));
 }
 
-AbstractTreeItem *AbstractTreeItem::parent() {
+AbstractTreeItem *AbstractTreeItem::parent() const {
   return _parentItem;
 }
 
@@ -282,7 +282,7 @@ QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) con
     return QModelIndex();
 }
 
-QModelIndex TreeModel::indexById(uint id, const QModelIndex &parent) const {
+QModelIndex TreeModel::indexById(quint64 id, const QModelIndex &parent) const {
   AbstractTreeItem *parentItem; 
   
   if(!parent.isValid())
@@ -380,14 +380,20 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int rol
 
 void TreeModel::itemDataChanged(int column) {
   AbstractTreeItem *item = qobject_cast<AbstractTreeItem *>(sender());
-  QModelIndex itemIndex;
+  QModelIndex leftIndex, rightIndex;
 
-  if(item == rootItem) 
-    itemIndex = QModelIndex();
-  else
-    itemIndex = createIndex(item->row(), column, item);
+  if(item == rootItem)
+    return;
+
+  if(column == -1) {
+    leftIndex = createIndex(item->row(), 0, item);
+    rightIndex = createIndex(item->row(), item->columnCount()-1, item);
+  } else {
+    leftIndex = createIndex(item->row(), column, item);
+    rightIndex = leftIndex;
+  }
 
-  emit dataChanged(itemIndex, itemIndex);
+  emit dataChanged(leftIndex, rightIndex);
 }
 
 void TreeModel::appendChild(AbstractTreeItem *parent, AbstractTreeItem *child) {