[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [Konversation] f2e95f6: Nicks Online is now a tabbed panel,
From: Gary Cramblitt <garycramblitt () comcast ! net>
Date: 2010-07-01 13:27:17
Message-ID: 20100701132717.1D00DBB557A () projects ! kde ! org
[Download RAW message or body]
commit f2e95f6fba6214eed362ad993e80956ad789d865
Author: Gary Cramblitt <garycramblitt@comcast.net>
Date: Tue Jan 13 20:47:46 2004 +0000
Nicks Online is now a tabbed panel, rather than separate window.
svn path=/trunk/kdeextragear-2/konversation/; revision=279467
diff --git a/ChangeLog b/ChangeLog
index 3ef970a..1fcbaab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,7 @@ Changes from 0.13 to 0.14
- Added patch by Gary Cramblitt to select custom web browser command (thanks!)
- When the server goes offline, now all associated tabs get crossed out
- Added a multi line pasting editor
+- Nicks Online is now a tabbed panel, rather than separate window.
Changes from 0.12 to 0.13
- Added an option to hide hostmasks in channel nick lists
diff --git a/TODO b/TODO
index 25443eb..9ac1f72 100644
--- a/TODO
+++ b/TODO
@@ -70,5 +70,5 @@ Compute md5sum over DCCs and send / display the hash after transfer
Import notify list from .ircrc
Notify with more than 500 characters
Stats for server lag, words per session per person / channel, quits etc.
-"Open Nicks online window on startup" option
-Make nicks online a panel, show stats like "last spoken" "last seen"
+"Open Nicks online panel on startup" option
+In Nicks Online panel, show stats like "last spoken" "last seen"
diff --git a/konversation/chatwindow.h b/konversation/chatwindow.h
index cd3f548..da502bf 100644
--- a/konversation/chatwindow.h
+++ b/konversation/chatwindow.h
@@ -51,7 +51,8 @@ class ChatWindow : public QVBox
SNotice,
ChannelList,
Konsole,
- UrlCatcher
+ UrlCatcher,
+ NicksOnline
};
void setServer(Server* newServer);
diff --git a/konversation/konversationapplication.cpp \
b/konversation/konversationapplication.cpp index 36700cf..c7bb321 100644
--- a/konversation/konversationapplication.cpp
+++ b/konversation/konversationapplication.cpp
@@ -191,8 +191,8 @@ void KonversationApplication::connectToAnotherServer(int id)
connect(mainWindow,SIGNAL (startNotifyTimer(int)),newServer,SLOT \
(startNotifyTimer(int)) ); connect(mainWindow,SIGNAL (quitServer()),newServer,SLOT \
(quitServer()) );
- connect(newServer,SIGNAL (nicksNowOnline(Server*,const \
QStringList&)),mainWindow,SLOT (setOnlineList(Server*,const \
QStringList&)) );
-
+ connect(newServer,SIGNAL (nicksNowOnline(Server*,const \
QStringList&,bool)),mainWindow,SLOT (setOnlineList(Server*,const QStringList&,bool)) \
); +
connect(newServer,SIGNAL (deleted(Server*)),this,SLOT (removeServer(Server*)) );
connect(newServer, SIGNAL(multiServerCommand(const QString&, const QString&)),
diff --git a/konversation/konversationmainwindow.cpp \
b/konversation/konversationmainwindow.cpp index c81f4e4..8de2d8f 100644
--- a/konversation/konversationmainwindow.cpp
+++ b/konversation/konversationmainwindow.cpp
@@ -71,7 +71,7 @@ KonversationMainWindow::KonversationMainWindow() : KMainWindow()
dccTransferHandler=new DccTransferHandler(this);
- nicksOnlineWindow=0;
+ nicksOnlinePanel=0;
viewContainer=new LedTabWidget(this,"main_window_tab_widget");
updateTabPlacement();
@@ -101,7 +101,7 @@ KonversationMainWindow::KonversationMainWindow() : KMainWindow()
new KAction(i18n("Server List"), 0, 0, this, SLOT(openServerList()), \
actionCollection(), "open_server_list");
- new KAction(i18n("Watched Nicks Online"), 0, 0, this, \
SLOT(openNicksOnlineWindow()), actionCollection(), "open_nicksonline_window"); + new \
KAction(i18n("Watched Nicks Online"), 0, 0, this, SLOT(openNicksOnlinePanel()), \
actionCollection(), "open_nicksonline_window"); new KAction(i18n("Open Logfile"), 0, \
0, this, SLOT(openLogfile()), actionCollection(), "open_logfile");
new KAction(i18n("Channel List"), 0, 0, this, SLOT(openChannelList()), \
actionCollection(), "open_channel_list"); @@ -170,8 +170,6 @@ \
KonversationMainWindow::KonversationMainWindow() : KMainWindow()
KonversationMainWindow::~KonversationMainWindow()
{
- if(nicksOnlineWindow) nicksOnlineWindow->closeButton();
-
deleteDccPanel();
if(dccTransferHandler) delete dccTransferHandler;
}
@@ -303,6 +301,7 @@ void KonversationMainWindow::closeView(QWidget* viewToClose)
else if(viewType==ChatWindow::DccPanel) closeDccPanel();
else if(viewType==ChatWindow::Konsole) closeKonsolePanel(view);
else if(viewType==ChatWindow::UrlCatcher) closeUrlCatcher();
+ else if(viewType==ChatWindow::NicksOnline) closeNicksOnlinePanel();
/*
else if(viewType==ChatWindow::Notice);
@@ -600,30 +599,30 @@ void KonversationMainWindow::quitProgram()
close();
}
-void KonversationMainWindow::openNicksOnlineWindow()
+void KonversationMainWindow::openNicksOnlinePanel()
{
- if(!nicksOnlineWindow)
+ if(!nicksOnlinePanel)
{
- nicksOnlineWindow=new \
NicksOnline(KonversationApplication::preferences.getNicksOnlineSize());
-
- connect(nicksOnlineWindow,SIGNAL (editClicked()),this,SLOT (openNotify()) );
- connect(nicksOnlineWindow,SIGNAL (closeClicked(QSize)),this,SLOT \
(closeNicksOnlineWindow(QSize)) ); +
+ nicksOnlinePanel=new NicksOnline(getViewContainer());
+ addView(nicksOnlinePanel, 2, i18n("Nicks Online"), true);
- connect(nicksOnlineWindow,SIGNAL (doubleClicked(const QString&,const \
QString&)),this,SLOT (notifyAction(const QString&,const QString&)) ); + \
connect(nicksOnlinePanel,SIGNAL (editClicked()),this,SLOT (openNotify()) ); + \
connect(nicksOnlinePanel,SIGNAL (closeClicked(QSize)),this,SLOT \
(closeNicksOnlinePanel()) );
- connect(this,SIGNAL (nicksNowOnline(const QString&,const \
QStringList&)),nicksOnlineWindow,SLOT (setOnlineList(const QString&,const \
QStringList&)) ); + connect(nicksOnlinePanel,SIGNAL (doubleClicked(const \
QString&,const QString&)),this,SLOT (notifyAction(const QString&,const QString&)) ); \
- nicksOnlineWindow->show();
+ connect(this,SIGNAL (nicksNowOnline(const QString&,const \
QStringList&,bool)),nicksOnlinePanel,SLOT (setOnlineList(const QString&,const \
QStringList&,bool)) ); }
}
-void KonversationMainWindow::closeNicksOnlineWindow(QSize newSize)
+void KonversationMainWindow::closeNicksOnlinePanel()
{
- KonversationApplication::preferences.setNicksOnlineSize(newSize);
- emit prefsChanged();
-
- delete nicksOnlineWindow;
- nicksOnlineWindow=0;
+ if ( nicksOnlinePanel )
+ {
+ delete nicksOnlinePanel;
+ nicksOnlinePanel=0;
+ }
}
void KonversationMainWindow::openServerList()
@@ -637,9 +636,10 @@ void KonversationMainWindow::openNotify()
}
// TODO: Let an own class handle notify things
-void KonversationMainWindow::setOnlineList(Server* notifyServer,const QStringList& \
list) +void KonversationMainWindow::setOnlineList(Server* notifyServer,const \
QStringList& list, bool changed) {
- emit nicksNowOnline(notifyServer->getServerName(),list);
+ emit nicksNowOnline(notifyServer->getServerName(),list,changed);
+ if (changed && nicksOnlinePanel) newText(nicksOnlinePanel, QString::null, true);
}
void KonversationMainWindow::notifyAction(const QString& serverName,const QString& \
nick)
diff --git a/konversation/konversationmainwindow.h \
b/konversation/konversationmainwindow.h index d4ce636..ff67087 100644
--- a/konversation/konversationmainwindow.h
+++ b/konversation/konversationmainwindow.h
@@ -72,7 +72,7 @@ class KonversationMainWindow : public KMainWindow
void openPrefsDialog();
void openPrefsDialog(Preferences::Pages page);
void quitServer();
- void nicksNowOnline(const QString& serverName,const QStringList& list);
+ void nicksNowOnline(const QString& serverName,const QStringList& list,bool \
changed); void closeTab(int id);
void startNotification(QWidget*);
void endNotification(QWidget*);
@@ -87,7 +87,7 @@ class KonversationMainWindow : public KMainWindow
void updateLag(Server* lagServer,int msec);
void tooLongLag(Server* lagServer,int msec);
void channelPrefsChanged();
- void setOnlineList(Server* notifyServer,const QStringList& list);
+ void setOnlineList(Server* notifyServer,const QStringList& list, bool changed);
void updateTrayIcon();
void serverQuit(Server* server);
void setShowTabBarCloseButton(bool s);
@@ -99,8 +99,8 @@ class KonversationMainWindow : public KMainWindow
void openChannelList();
void openNotify();
void openLogfile();
- void openNicksOnlineWindow();
- void closeNicksOnlineWindow(QSize newSize);
+ void openNicksOnlinePanel();
+ void closeNicksOnlinePanel();
// it seems that moc does not honor #ifs in compile so we create an
// empty slot in our .cpp file rather than #if this slot out
void openNotifications();
@@ -163,7 +163,7 @@ class KonversationMainWindow : public KMainWindow
KToggleAction* showStatusBarAction;
KToggleAction* showMenuBarAction;
- NicksOnline* nicksOnlineWindow;
+ NicksOnline* nicksOnlinePanel;
QStringList nicksOnlineList;
DccTransferHandler* dccTransferHandler;
diff --git a/konversation/nicksonline.cpp b/konversation/nicksonline.cpp
index 435de94..662a33a 100644
--- a/konversation/nicksonline.cpp
+++ b/konversation/nicksonline.cpp
@@ -24,10 +24,11 @@
#include "nicksonline.h"
-NicksOnline::NicksOnline(const QSize& newSize)
+NicksOnline::NicksOnline(QWidget* parent): ChatWindow(parent)
{
- setCaption(i18n("Watched Nicks Online"));
-
+ setName(i18n("Watched Nicks Online"));
+ setType(ChatWindow::NicksOnline);
+
nickListView=new KListView(this);
nickListView->addColumn(i18n("Nickname"));
@@ -46,8 +47,6 @@ NicksOnline::NicksOnline(const QSize& newSize)
connect(editButton,SIGNAL (clicked()),SIGNAL (editClicked()) );
connect(closeButton,SIGNAL (clicked()),this,SLOT (closeButton()) );
connect(nickListView,SIGNAL \
(doubleClicked(QListViewItem*)),this,SLOT(processDoubleClick(QListViewItem*)));
-
- resize(newSize);
}
NicksOnline::~NicksOnline()
@@ -55,19 +54,22 @@ NicksOnline::~NicksOnline()
delete nickListView;
}
-void NicksOnline::setOnlineList(const QString& serverName,const QStringList& list)
+void NicksOnline::setOnlineList(const QString& serverName,const QStringList& \
list,bool changed) {
QListViewItem* serverRoot=nickListView->findItem(serverName,0);
- delete serverRoot;
-
- if(list.count())
+ // If server is not in our list, or if the list changed, then display the new \
list. + if ( (serverRoot == 0) || changed)
{
- KListViewItem* newServerRoot=new KListViewItem(nickListView,serverName);
- for(unsigned int i=list.count();i!=0;i--)
+ delete serverRoot;
+ if(list.count())
{
- new KListViewItem(newServerRoot,list[i-1]);
+ KListViewItem* newServerRoot=new KListViewItem(nickListView,serverName);
+ for(unsigned int i=list.count();i!=0;i--)
+ {
+ new KListViewItem(newServerRoot,list[i-1]);
+ }
+ newServerRoot->setOpen(true);
}
- newServerRoot->setOpen(true);
}
}
@@ -89,4 +91,8 @@ void NicksOnline::processDoubleClick(QListViewItem* item)
emit doubleClicked(item->parent()->text(0),item->text(0));
}
+void NicksOnline::adjustFocus()
+{
+}
+
#include "nicksonline.moc"
diff --git a/konversation/nicksonline.h b/konversation/nicksonline.h
index b1e024e..809feca 100644
--- a/konversation/nicksonline.h
+++ b/konversation/nicksonline.h
@@ -17,18 +17,20 @@
#include <qvbox.h>
+#include "chatwindow.h"
+
/*
@author Dario Abatianni
*/
class KListView;
-class NicksOnline : public QVBox
+class NicksOnline : public ChatWindow
{
Q_OBJECT
public:
- NicksOnline(const QSize& newSize);
+ NicksOnline(QWidget* parent);
~NicksOnline();
signals:
@@ -37,8 +39,9 @@ class NicksOnline : public QVBox
void closeClicked(QSize size);
public slots:
- void setOnlineList(const QString& serverName,const QStringList& list);
+ void setOnlineList(const QString& serverName,const QStringList& list,bool \
changed); void closeButton();
+ virtual void adjustFocus();
protected slots:
void processDoubleClick(QListViewItem* item);
diff --git a/konversation/server.cpp b/konversation/server.cpp
index 7b8b06e..9ea8171 100644
--- a/konversation/server.cpp
+++ b/konversation/server.cpp
@@ -184,7 +184,7 @@ Server::~Server()
{
// clear nicks online
- emit nicksNowOnline(this,QStringList());
+ emit nicksNowOnline(this,QStringList(),true);
// Make sure no signals get sent to a soon to be dying Server Window
serverSocket.blockSignals(true);
// Send out the last messages (usually the /QUIT)
@@ -399,7 +399,7 @@ void Server::broken(int state)
kdDebug() << "Connection broken (Socket fd " << serverSocket.fd() << ") " << state \
<< "!" << endl;
// clear nicks online
- emit nicksNowOnline(this,QStringList());
+ emit nicksNowOnline(this,QStringList(),true);
// TODO: Close all queries and channels!
// Or at least make sure that all gets reconnected properly
@@ -504,12 +504,14 @@ void Server::notifyResponse(const QString& nicksOnline)
QStringList nickList=QStringList::split(' ',nicksOnline);
// Create a lower case nick list from the notification reply
QStringList nickLowerList=QStringList::split(' ',nicksOnline.lower());
+ bool nicksOnlineChanged = false;
// Did some new nicks appear in our notify?
for(unsigned int index=0;index<nickLowerList.count();index++)
{
if(notifyLowerCache.find(nickLowerList[index])==notifyLowerCache.end())
{
+ nicksOnlineChanged = true;
getMainWindow()->appendToFrontmost(i18n("Notify"),i18n("%1 is online \
(%2).").arg(nickList[index]).arg(getServerName()),statusView);
#ifdef USE_KNOTIFY
@@ -524,6 +526,7 @@ void Server::notifyResponse(const QString& nicksOnline)
{
if(nickLowerList.find(notifyLowerCache[index])==nickLowerList.end())
{
+ nicksOnlineChanged = true;
getMainWindow()->appendToFrontmost(i18n("Notify"),i18n("%1 went offline. \
(%2)").arg(notifyCache[index]).arg(getServerName()),statusView);
#ifdef USE_KNOTIFY
@@ -535,7 +538,7 @@ void Server::notifyResponse(const QString& nicksOnline)
// Finally copy the new ISON list with correct case to our notify cache
notifyCache=nickList;
- emit nicksNowOnline(this,nickList);
+ emit nicksNowOnline(this,nickList,nicksOnlineChanged);
}
// Next round
startNotifyTimer();
diff --git a/konversation/server.h b/konversation/server.h
index 93ad169..357b750 100644
--- a/konversation/server.h
+++ b/konversation/server.h
@@ -137,7 +137,7 @@ class Server : public QObject
void serverLag(Server* server,int msec); // will be connected to \
KonversationMainWindow::updateLag()
void tooLongLag(Server* server, int msec); // will be connected to \
KonversationMainWindow::updateLag() void resetLag();
- void nicksNowOnline(Server* server,const QStringList& list); // Will be emitted \
when new 303 came in + void nicksNowOnline(Server* server,const QStringList& \
list,bool changed); // Will be emitted when new 303 came in void addDccPanel(); // \
will be connected to MainWindow::addDccPanel()
void addKonsolePanel(); // will be connected to MainWindow::addKonsolePanel()
void closeDccPanel(); // will be connected to MainWindow::closeDccPanel()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic