projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed custom Views
[quassel.git]
/
src
/
client
/
treemodel.cpp
diff --git
a/src/client/treemodel.cpp
b/src/client/treemodel.cpp
index
52439af
..
c113b28
100644
(file)
--- a/
src/client/treemodel.cpp
+++ b/
src/client/treemodel.cpp
@@
-1,11
+1,11
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-07 by
The Quassel Team
*
+ * Copyright (C) 2005-07 by
the Quassel IRC Team
*
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option)
any later version.
*
+ * (at your option)
version 3.
*
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
@@
-18,7
+18,6
@@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#include "global.h"
#include "treemodel.h"
/*****************************************
#include "treemodel.h"
/*****************************************
@@
-26,65
+25,70
@@
*****************************************/
TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
: QObject(parent),
*****************************************/
TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
: QObject(parent),
- parentItem(parent),
itemData(data),
itemData(data),
- _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled)
+ _parentItem(parent),
+ _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled)
{
}
{
}
-TreeItem::TreeItem(TreeItem *parent) {
- itemData = QList<QVariant>();
- parentItem = parent;
+TreeItem::TreeItem(TreeItem *parent)
+ : QObject(parent),
+ itemData(QList<QVariant>()),
+ _parentItem(parent),
+ _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled)
+{
}
TreeItem::~TreeItem() {
}
TreeItem::~TreeItem() {
- qDeleteAll(childItems);
+ qDeleteAll(
_
childItems);
}
}
-
uint
TreeItem::id() const {
- return (
uint
)this;
+
quint64
TreeItem::id() const {
+ return (
quint64
)this;
}
void TreeItem::appendChild(TreeItem *item) {
}
void TreeItem::appendChild(TreeItem *item) {
- childItems.append(item);
- childHash[item->id()] = item;
+ _childItems.append(item);
+ _childHash[item->id()] = item;
+ connect(item, SIGNAL(destroyed()),
+ this, SLOT(childDestroyed()));
}
void TreeItem::removeChild(int row) {
}
void TreeItem::removeChild(int row) {
- if(row >= childItems.size())
+ if(row >=
_
childItems.size())
return;
return;
- TreeItem *treeitem = childItems.value(row);
- childItems.removeAt(row);
-
childHash.remove(
childHash.key(treeitem));
+ TreeItem *treeitem =
_
childItems.value(row);
+
_
childItems.removeAt(row);
+
_childHash.remove(_
childHash.key(treeitem));
}
TreeItem *TreeItem::child(int row) const {
}
TreeItem *TreeItem::child(int row) const {
- if(row < childItems.size())
- return childItems.value(row);
+ if(row <
_
childItems.size())
+ return
_
childItems.value(row);
else
return 0;
}
TreeItem *TreeItem::childById(const uint &id) const {
else
return 0;
}
TreeItem *TreeItem::childById(const uint &id) const {
- if(childHash.contains(id))
- return childHash.value(id);
+ if(
_
childHash.contains(id))
+ return
_
childHash.value(id);
else
return 0;
}
int TreeItem::childCount() const {
else
return 0;
}
int TreeItem::childCount() const {
- return childItems.count();
+ return
_
childItems.count();
}
int TreeItem::row() const {
}
int TreeItem::row() const {
- if(parentItem)
- return
parentItem->
childItems.indexOf(const_cast<TreeItem*>(this));
+ if(
_
parentItem)
+ return
_parentItem->_
childItems.indexOf(const_cast<TreeItem*>(this));
else
return 0;
}
TreeItem *TreeItem::parent() {
else
return 0;
}
TreeItem *TreeItem::parent() {
- return parentItem;
+ return
_
parentItem;
}
int TreeItem::columnCount() const {
}
int TreeItem::columnCount() const {
@@
-99,7
+103,6
@@
QVariant TreeItem::data(int column, int role) const {
}
Qt::ItemFlags TreeItem::flags() const {
}
Qt::ItemFlags TreeItem::flags() const {
- // some sane defaults
return _flags;
}
return _flags;
}
@@
-107,6
+110,12
@@
void TreeItem::setFlags(Qt::ItemFlags flags) {
_flags = flags;
}
_flags = flags;
}
+void TreeItem::childDestroyed() {
+ TreeItem *item = static_cast<TreeItem*>(sender());
+ removeChild(item->row());
+}
+
+
/*****************************************
* TreeModel
/*****************************************
* TreeModel
@@
-159,7
+168,7
@@
QModelIndex TreeModel::parent(const QModelIndex &index) const {
return QModelIndex();
TreeItem *childItem = static_cast<TreeItem*>(index.internalPointer());
return QModelIndex();
TreeItem *childItem = static_cast<TreeItem*>(index.internalPointer());
- TreeItem *parentItem =
childItem->parent(
);
+ TreeItem *parentItem =
static_cast<TreeItem*>(childItem->parent()
);
if(parentItem == rootItem)
return QModelIndex();
if(parentItem == rootItem)
return QModelIndex();
@@
-169,9
+178,6
@@
QModelIndex TreeModel::parent(const QModelIndex &index) const {
int TreeModel::rowCount(const QModelIndex &parent) const {
TreeItem *parentItem;
int TreeModel::rowCount(const QModelIndex &parent) const {
TreeItem *parentItem;
- if(parent.column() > 0)
- return 0;
-
if(!parent.isValid())
parentItem = rootItem;
else
if(!parent.isValid())
parentItem = rootItem;
else
@@
-254,4
+260,5
@@
bool TreeModel::removeRows(int row, int count, const QModelIndex &parent) {
void TreeModel::clear() {
removeRows(0, rowCount());
void TreeModel::clear() {
removeRows(0, rowCount());
+ reset();
}
}