[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] cc2ccbd: More NickInfo tracking. Uncomment define
From: Gary Cramblitt <garycramblitt () comcast ! net>
Date: 2010-07-01 13:27:21
Message-ID: 20100701132721.A3ED3BB55B3 () projects ! kde ! org
[Download RAW message or body]
commit cc2ccbd6e06d35deab33495f594277636c87c797
Author: Gary Cramblitt <garycramblitt@comcast.net>
Date: Mon Feb 9 00:08:16 2004 +0000
More NickInfo tracking. Uncomment define USE_NICKINFO in server.h if u want to \
experiment with this.
svn path=/trunk/kdeextragear-2/konversation/; revision=286305
diff --git a/konversation/konversationapplication.cpp \
b/konversation/konversationapplication.cpp index bb0b9b0..e2108a0 100644
--- a/konversation/konversationapplication.cpp
+++ b/konversation/konversationapplication.cpp
@@ -948,4 +948,7 @@ Konversation::Sound* KonversationApplication::sound()
return m_sound;
}
+// Returns list of pointers to Servers.
+const QPtrList<Server> KonversationApplication::getServerList() { return serverList; \
} +
#include "konversationapplication.moc"
diff --git a/konversation/konversationapplication.h \
b/konversation/konversationapplication.h index bf1a7fe..75f8050 100644
--- a/konversation/konversationapplication.h
+++ b/konversation/konversationapplication.h
@@ -60,6 +60,9 @@ class KonversationApplication : public KApplication
OSDWidget* osd;
Konversation::Sound* sound();
+
+ // Returns list of pointers to Servers.
+ const QPtrList<Server> getServerList();
signals:
void catchUrl(const QString& who,const QString& url);
diff --git a/konversation/nicksonline.cpp b/konversation/nicksonline.cpp
index 52f1970..0d9b92a 100644
--- a/konversation/nicksonline.cpp
+++ b/konversation/nicksonline.cpp
@@ -36,10 +36,16 @@ NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
setType(ChatWindow::NicksOnline);
nickListView=new KListView(this);
-
+
+#ifdef USE_NICKINFO
+ nickListView->addColumn(i18n("Server/Nickname/Channel"));
+ nickListView->addColumn(i18n("Additional Information"));
+ nickListView->setFullWidth(false);
+#else
nickListView->addColumn(i18n("Server/Nickname"));
- nickListView->setRootIsDecorated(false);
nickListView->setFullWidth(true);
+#endif
+ nickListView->setRootIsDecorated(false);
setMargin(KDialog::marginHint());
setSpacing(KDialog::spacingHint());
@@ -52,34 +58,41 @@ NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
connect(editButton,SIGNAL (clicked()),SIGNAL (editClicked()) );
connect(nickListView,SIGNAL \
(doubleClicked(QListViewItem*)),this,SLOT(processDoubleClick(QListViewItem*))); +
+#ifdef USE_NICKINFO
+ // Display info for all currently-connected servers.
+ refreshAllServerOnlineLists();
+ // Connect and start refresh timer.
+ timer = new QTimer(this, "nicksOnlineTimer");
+ connect(timer, SIGNAL (timeout()), this, SLOT(timerFired()));
+ // TODO: User preference for refresh interval.
+ timer->start(8000);
+#endif
}
NicksOnline::~NicksOnline()
{
+#ifdef USE_NICKINFO
+ timer->stop();
+ delete timer;
+#endif
delete nickListView;
}
-void NicksOnline::setOnlineList(const QString& serverName,const QStringList& \
list,bool changed)
-{
#ifdef USE_NICKINFO
+void NicksOnline::updateServerOnlineList(Server* server, bool changed)
+{
+ QString serverName = server->getServerName();
QListViewItem* serverRoot=nickListView->findItem(serverName,0);
// If server is not in our list, or if the list changed, then display the new \
list. if ( true )
{
delete serverRoot;
- if (nickListView->columns() == 1)
- {
- nickListView->addColumn(i18n("Additional Information"));
- nickListView->setColumnText(0, i18n("Server/Nickname/Channel"));
- }
KListViewItem* newServerRoot=new KListViewItem(nickListView,serverName);
// Get a green LED for flagging of joined channels.
Images leds;
QIconSet currentLeds = leds.getGreenLed(false);
QPixmap joinedLed = currentLeds.pixmap(QIconSet::Automatic, QIconSet::Active, \
QIconSet::On);
- // Get the server object corresponding to the server name.
- KonversationApplication *konvApp=static_cast<KonversationApplication \
*>(KApplication::kApplication());
- Server* server = konvApp->getServerByName(serverName);
// List online nicknames.
const NickInfoList* nickInfoList = server->getNicksOnline();
NickInfoListIterator itOnline(*nickInfoList);
@@ -148,7 +161,36 @@ void NicksOnline::setOnlineList(const QString& serverName,const \
QStringList& lis nickListView->adjustColumn(0);
nickListView->adjustColumn(1);
}
+}
+#else
+void NicksOnline::updateServerOnlineList(Server*, bool) {}
+#endif
+void NicksOnline::refreshAllServerOnlineLists()
+{
+ // Display info for all currently-connected servers.
+ nickListView->clear();
+ KonversationApplication *konvApp=static_cast<KonversationApplication \
*>(KApplication::kApplication()); + QPtrList<Server> serverList = \
konvApp->getServerList(); + Server* server;
+ for ( server = serverList.first(); server; server = serverList.next() )
+ {
+ updateServerOnlineList(server, true);
+ }
+}
+
+void NicksOnline::timerFired()
+{
+ refreshAllServerOnlineLists();
+}
+
+void NicksOnline::setOnlineList(const QString& serverName,const QStringList& \
list,bool changed) +{
+#ifdef USE_NICKINFO
+ // Get the server object corresponding to the server name.
+ KonversationApplication *konvApp=static_cast<KonversationApplication \
*>(KApplication::kApplication()); + Server* server = \
konvApp->getServerByName(serverName); + updateServerOnlineList(server, changed);
#else
QListViewItem* serverRoot=nickListView->findItem(serverName,0);
diff --git a/konversation/nicksonline.h b/konversation/nicksonline.h
index da29245..805fabb 100644
--- a/konversation/nicksonline.h
+++ b/konversation/nicksonline.h
@@ -43,9 +43,14 @@ class NicksOnline : public ChatWindow
protected slots:
void processDoubleClick(QListViewItem* item);
+ void timerFired();
protected:
+ void updateServerOnlineList(Server* server, bool changed);
+ void refreshAllServerOnlineLists();
+
KListView* nickListView;
+ QTimer* timer;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic