[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] 978353d: Use QTimer instead of processEvents()... will
From: Peter Simonsson <peter.simonsson () gmail ! com>
Date: 2010-07-01 13:28:01
Message-ID: 20100701132801.26A9BBB573E () projects ! kde ! org
[Download RAW message or body]
commit 978353d94b097c2cad372f8e7cc95c6fd70506e6
Author: Peter Simonsson <peter.simonsson@gmail.com>
Date: Tue Aug 17 22:20:48 2004 +0000
Use QTimer instead of processEvents()... will break if USE_NICKINFO is undefined
svn path=/trunk/kdeextragear-2/konversation/; revision=338730
diff --git a/konversation/channel.cpp b/konversation/channel.cpp
index dea76fc..a24e4cd 100644
--- a/konversation/channel.cpp
+++ b/konversation/channel.cpp
@@ -68,6 +68,7 @@ Channel::Channel(QWidget* parent) : ChatWindow(parent)
#endif
{
// init variables
+ m_processingTimer = 0;
nicks=0;
ops=0;
completionPosition=0;
@@ -1853,7 +1854,7 @@ void Channel::changeNickname(const QString& newNickname)
}
#ifdef USE_NICKINFO
-void Channel::addPendingNickList(ChannelNickList pendingChannelNickList)
+void Channel::addPendingNickList(const ChannelNickList& pendingChannelNickList)
#else
void Channel::addPendingNickList(const QStringList& newNickList)
#endif
@@ -1864,10 +1865,16 @@ void Channel::addPendingNickList(const QStringList& newNickList)
setPendingNicks(true);
}
- int opsToAdd=0;
+ m_opsToAdd = 0;
+
+ if(!m_processingTimer) {
+ m_processingTimer = new QTimer(this);
+ connect(m_processingTimer, SIGNAL(timeout()), this, SLOT(processPendingNicks()));
+ }
- nicknameListView->setUpdatesEnabled(false);
+// nicknameListView->setUpdatesEnabled(false);
#ifdef USE_NICKINFO
+/*
ChannelNickList::iterator it;
int count = 0;
for( it = pendingChannelNickList.begin(); it != pendingChannelNickList.end(); it++,count++)
@@ -1883,6 +1890,9 @@ void Channel::addPendingNickList(const QStringList& newNickList)
}
adjustNicks(pendingChannelNickList.count());
+*/
+ m_pendingChannelNickList = pendingChannelNickList;
+ m_listIterator = m_pendingChannelNickList.begin();
#else
unsigned int mode;
@@ -1910,12 +1920,17 @@ void Channel::addPendingNickList(const QStringList& newNickList)
adjustNicks(newNickList.count());
#endif
+/*
// should have been done already, but you never know ...
nicknameListView->setUpdatesEnabled(true);
nicknameListView->sort();
nicknameList.sort();
adjustOps(opsToAdd);
+*/
+ if(m_listIterator != m_pendingChannelNickList.end()) {
+ m_processingTimer->start(0);
+ }
}
void Channel::setPendingNicks(bool state)
@@ -2047,6 +2062,28 @@ void Channel::showTopic(bool show)
}
}
+void Channel::processPendingNicks()
+{
+ fastAddNickname(*m_listIterator);
+
+ if((*m_listIterator)->isAdmin() || (*m_listIterator)->isOwner() ||
+ (*m_listIterator)->isOp() || (*m_listIterator)->isHalfOp())
+ {
+ m_opsToAdd++;
+ }
+
+ ++m_listIterator;
+
+ if(m_listIterator == m_pendingChannelNickList.end()) {
+ m_processingTimer->stop();
+ nicknameListView->sort();
+ nicknameList.sort();
+ adjustOps(m_opsToAdd);
+ adjustNicks(m_pendingChannelNickList.count());
+ m_pendingChannelNickList.clear();
+ }
+}
+
//
// NickList
//
diff --git a/konversation/channel.h b/konversation/channel.h
index 8476b7e..a420daf 100644
--- a/konversation/channel.h
+++ b/konversation/channel.h
@@ -77,7 +77,7 @@ class Channel : public ChatWindow
void kickNick(ChannelNickPtr channelNick, const ChannelNick &kicker, const QString &reason);
void addNickname(ChannelNickPtr channelNick);
void nickRenamed(const QString &oldNick, const NickInfo& channelnick);
- void addPendingNickList(ChannelNickList pendingChannelNickList);
+ void addPendingNickList(const ChannelNickList& pendingChannelNickList);
#else
void joinNickname(const QString& nickname,const QString& hostname);
void addNickname(const QString& nickname,const QString& hostmask,
@@ -161,6 +161,8 @@ class Channel : public ChatWindow
void closeYourself(ChatWindow* view); // USE_MDI
void serverQuit(const QString& reason); // USE_MDI
+
+ void processPendingNicks();
protected:
void showEvent(QShowEvent* event);
@@ -228,6 +230,11 @@ class Channel : public ChatWindow
QTimer userhostTimer;
bool m_allowNotifications;
+
+ ChannelNickList::iterator m_listIterator;
+ ChannelNickList m_pendingChannelNickList;
+ int m_opsToAdd;
+
+ QTimer* m_processingTimer;
};
-
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic