fixes to the TreeModel and Client
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 22:20:24 +0000 (22:20 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 18 Feb 2008 22:20:24 +0000 (22:20 +0000)
src/client/client.cpp
src/client/treemodel.cpp
version.inc

index e3a9281..d57678d 100644 (file)
@@ -280,7 +280,7 @@ void Client::setConnectedToCore(QIODevice *sock, AccountId id) {
 }
 
 void Client::setSyncedToCore() {
 }
 
 void Client::setSyncedToCore() {
-    // create buffersyncer
+  // create buffersyncer
   Q_ASSERT(!_bufferSyncer);
   _bufferSyncer = new BufferSyncer(this);
   connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &)));
   Q_ASSERT(!_bufferSyncer);
   _bufferSyncer = new BufferSyncer(this);
   connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &)));
@@ -293,6 +293,9 @@ void Client::setSyncedToCore() {
 }
 
 void Client::disconnectFromCore() {
 }
 
 void Client::disconnectFromCore() {
+  if(!isConnected())
+    return;
+  
   if(socket) {
     socket->close();
     socket->deleteLater();
   if(socket) {
     socket->close();
     socket->deleteLater();
@@ -304,8 +307,10 @@ void Client::disconnectFromCore() {
   emit coreConnectionStateChanged(false);
 
   // Clear internal data. Hopefully nothing relies on it at this point.
   emit coreConnectionStateChanged(false);
 
   // Clear internal data. Hopefully nothing relies on it at this point.
-  _bufferSyncer->deleteLater();
-  _bufferSyncer = 0;
+  if(_bufferSyncer) {
+    _bufferSyncer->deleteLater();
+    _bufferSyncer = 0;
+  }
   _networkModel->clear();
 
   QHash<BufferId, Buffer *>::iterator bufferIter =  _buffers.begin();
   _networkModel->clear();
 
   QHash<BufferId, Buffer *>::iterator bufferIter =  _buffers.begin();
index 960f7e8..9a01abf 100644 (file)
@@ -83,13 +83,17 @@ void AbstractTreeItem::removeAllChilds() {
   
   AbstractTreeItem *child;
 
   
   AbstractTreeItem *child;
 
-  QList<AbstractTreeItem *>::iterator childIter = _childItems.begin();
+  QList<AbstractTreeItem *>::iterator childIter;
+
+  childIter = _childItems.begin();
   while(childIter != _childItems.end()) {
     child = *childIter;
     child->removeAllChilds();
   while(childIter != _childItems.end()) {
     child = *childIter;
     child->removeAllChilds();
+    childIter++;
   }
 
   emit beginRemoveChilds(0, numChilds - 1);
   }
 
   emit beginRemoveChilds(0, numChilds - 1);
+  childIter = _childItems.begin();
   while(childIter != _childItems.end()) {
     child = *childIter;
     childIter = _childItems.erase(childIter);
   while(childIter != _childItems.end()) {
     child = *childIter;
     childIter = _childItems.erase(childIter);
index 32c4a21..528b199 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-18";
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-18";
-  quasselBuild = 544;
+  quasselBuild = 545;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;