| Summary: | Nick list takes long time to show with "show hostmasks" turned on | ||
|---|---|---|---|
| Product: | [Applications] konversation | Reporter: | DrSlony <bugs> |
| Component: | general | Assignee: | Konversation Bugs <konversation-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 1.3.1 | ||
| Target Milestone: | --- | ||
| Platform: | Gentoo Packages | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
DrSlony
2010-08-08 17:10:33 UTC
commit aeb686f9aa3f908fcc17020ac495b71a907e0d01 Author: Peter Simonsson <peter.simonsson@gmail.com> Date: Mon Aug 9 14:59:40 2010 +0200 Fix slowness of showing nicks in nicklist when hostmasks is shown. BUG:247072 diff --git a/src/irc/channel.cpp b/src/irc/channel.cpp index 9b8d332..85b8c9d 100644 --- a/src/irc/channel.cpp +++ b/src/irc/channel.cpp @@ -300,9 +300,6 @@ Channel::Channel(QWidget* parent, QString _name) : ChatWindow(parent) connect(&userhostTimer,SIGNAL (timeout()),this,SLOT (autoUserhost())); - // every few seconds try to get more userhosts - userhostTimer.start(10000); - m_whoTimer.setSingleShot(true); connect(&m_whoTimer,SIGNAL (timeout()),this,SLOT (autoWho())); @@ -2556,12 +2553,10 @@ void Channel::autoUserhost() if(!nickString.isEmpty()) m_server->requestUserhost(nickString); } - // Resize columns if needed (on regular basis) - if (m_nicknameListViewTextChanged & (1 << Nick::NicknameColumn)) - nicknameListView->resizeColumnToContents(Nick::NicknameColumn); - if (m_nicknameListViewTextChanged & (1 << Nick::HostmaskColumn)) - nicknameListView->resizeColumnToContents(Nick::HostmaskColumn); - m_nicknameListViewTextChanged = 0; + if(!nicknameList.isEmpty()) + { + resizeNicknameListViewColumns(); + } } void Channel::setAutoUserhost(bool state) @@ -2772,6 +2767,9 @@ void Channel::processPendingNicks() m_processingTimer->stop(); sortNickList(); nicknameListView->setUpdatesEnabled(true); + + if (Preferences::self()->autoUserhost()) + resizeNicknameListViewColumns(); } } @@ -3007,6 +3005,17 @@ void Channel::updateChannelNicks(const QString& channel) } } +void Channel::resizeNicknameListViewColumns() +{ + // Resize columns if needed (on regular basis) + if (m_nicknameListViewTextChanged & (1 << Nick::NicknameColumn)) + nicknameListView->resizeColumnToContents(Nick::NicknameColumn); + if (m_nicknameListViewTextChanged & (1 << Nick::HostmaskColumn)) + nicknameListView->resizeColumnToContents(Nick::HostmaskColumn); + m_nicknameListViewTextChanged = 0; +} + + // // NickList // diff --git a/src/irc/channel.h b/src/irc/channel.h index 967cca7..25ca6fc 100644 --- a/src/irc/channel.h +++ b/src/irc/channel.h @@ -147,6 +147,8 @@ class Channel : public ChatWindow void adjustOps(int value); virtual void emitUpdateInfo(); + void resizeNicknameListViewColumns(); + protected slots: void purgeNicks(); void processPendingNicks(); |