[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Konversation] 8e30f31: Channel list now sorts correctly when number
From:       Dario Abatianni <eisfuchs () tigress ! com>
Date:       2010-07-01 13:26:49
Message-ID: 20100701132649.24F52BB544B () projects ! kde ! org
[Download RAW message or body]


	A	 konversation/channellistviewitem.h	 [License: UNKNOWN]


	A	 konversation/channellistviewitem.cpp	 [License: UNKNOWN]

commit 8e30f31d0cb0178640330737286bdd4335d5d703
Author: Dario Abatianni <eisfuchs@tigress.com>
Date:   Mon Sep 1 12:47:00 2003 +0000

    Channel list now sorts correctly when number column is clicked
    
    svn path=/trunk/kdeextragear-2/konversation/; revision=247545

diff --git a/ChangeLog b/ChangeLog
index 1252fcc..b960310 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,7 @@ Changes from 0.12 to 0.13
 - Added system tray icon patch by Frauke Oster (thanks!)
 - Channel list update is now more CPU friendly
 - Tell the user why the channel list could not be opened
+- Channel list now sorts correctly when number column is clicked
 
 Changes from 0.11 to 0.12
 - Now handles multi server mode in one single window
diff --git a/konversation/Makefile.am b/konversation/Makefile.am
index e2f5707..3225b4f 100644
--- a/konversation/Makefile.am
+++ b/konversation/Makefile.am
@@ -3,7 +3,7 @@ bin_PROGRAMS = konversation
 
 ## INCLUDES were found outside kdevelop specific part
 
-konversation_SOURCES = konviface.skel konversationmainwindow.cpp \
valuelistviewitem.cpp urlcatcher.cpp searchdialog.cpp prefspagehighlight.cpp \
scriptlauncher.cpp rawlog.cpp prefspagenotify.cpp prefspagedialogs.cpp \
prefspagecolorsimages.cpp prefspagebuttons.cpp konvdcop.cpp channellistpanel.cpp \
konsolepanel.cpp dcctransferhandler.cpp prefspageignore.cpp ircresolver.cpp \
identity.cpp statuspanel.cpp prefspageappearance.cpp dccrecipientdialog.cpp \
topiccombobox.cpp prefspagegeneralsettings.cpp prefspagelog.cpp \
prefspagedccsettings.cpp prefspagescripts.cpp nicksonline.cpp prefspageidentity.cpp \
prefspage.cpp prefspageserverlist.cpp dccpanel.cpp dcctransfer.cpp \
ledlistviewitem.cpp highlight.cpp highlightviewitem.cpp nickchangedialog.cpp \
modebutton.cpp ignorelistviewitem.cpp ignorecheckbox.cpp ignore.cpp nicklistview.cpp \
ircinput.cpp ledtabbar.cpp ledtab.cpp ledtabwidget.cpp images.cpp \
editserverdialog.cpp serverlistitem.cpp serverentry.cpp prefsdialog.cpp \
quickbutton.cpp preferences.  cpp chatwindow.cpp outputfilter.cpp query.cpp \
konversationapplication.cpp nick.cpp inputfilter.cpp channel.cpp ircview.cpp \
server.cpp ircserversocket.cpp main.cpp prefspageirccolorsui.ui \
prefspageirccolors.cpp irccolorchooserui.ui irccolorchooser.cpp prefspagealiases.cpp \
+konversation_SOURCES = konviface.skel konversationmainwindow.cpp \
valuelistviewitem.cpp urlcatcher.cpp searchdialog.cpp prefspagehighlight.cpp \
scriptlauncher.cpp rawlog.cpp prefspagenotify.cpp prefspagedialogs.cpp \
prefspagecolorsimages.cpp prefspagebuttons.cpp konvdcop.cpp channellistpanel.cpp \
konsolepanel.cpp dcctransferhandler.cpp prefspageignore.cpp ircresolver.cpp \
identity.cpp statuspanel.cpp prefspageappearance.cpp dccrecipientdialog.cpp \
topiccombobox.cpp prefspagegeneralsettings.cpp prefspagelog.cpp \
prefspagedccsettings.cpp prefspagescripts.cpp nicksonline.cpp prefspageidentity.cpp \
prefspage.cpp prefspageserverlist.cpp dccpanel.cpp dcctransfer.cpp \
ledlistviewitem.cpp highlight.cpp highlightviewitem.cpp nickchangedialog.cpp \
modebutton.cpp ignorelistviewitem.cpp ignorecheckbox.cpp ignore.cpp nicklistview.cpp \
ircinput.cpp ledtabbar.cpp ledtab.cpp ledtabwidget.cpp images.cpp \
editserverdialog.cpp serverlistitem.cpp serverentry.cpp prefsdialog.cpp \
quickbutton.cpp preferences.  cpp chatwindow.cpp outputfilter.cpp query.cpp \
konversationapplication.cpp nick.cpp inputfilter.cpp channel.cpp ircview.cpp \
server.cpp ircserversocket.cpp main.cpp prefspageirccolorsui.ui \
prefspageirccolors.cpp irccolorchooserui.ui irccolorchooser.cpp prefspagealiases.cpp \
channellistviewitem.h channellistviewitem.cpp  konversation_LDADD   = -lkio -lm \
$(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) $(LIBSOCKET)  
 
diff --git a/konversation/channellistpanel.cpp b/konversation/channellistpanel.cpp
index 32dd80b..562d83d 100644
--- a/konversation/channellistpanel.cpp
+++ b/konversation/channellistpanel.cpp
@@ -31,6 +31,7 @@
 #include <kmessagebox.h>
 
 #include "channellistpanel.h"
+#include "channellistviewitem.h"
 #include "server.h"
 
 ChannelListPanel::ChannelListPanel(QWidget* parent) :
@@ -233,9 +234,7 @@ void ChannelListPanel::joinChannelClicked()
 
 void ChannelListPanel::addToChannelList(const QString& channel,int users,const \
QString& topic)  {
-  pendingChannels.append(channel+" "+users+" "+topic);
-
-//  new KListViewItem(channelListView,channel,QString::number(users),topic);
+  pendingChannels.append(channel+" "+QString::number(users)+" "+topic);
 
   // set internal numbers of channels and users, display will be updated by a timer
   setNumChannels(getNumChannels()+1);
@@ -266,7 +265,7 @@ void ChannelListPanel::updateDisplay()
       // if it's the last one of this batch, update the widget
       if(index==pendingChannels.count()-1) channelListView->setUpdatesEnabled(true);
       // add channel line to list view
-      new KListViewItem(channelListView,channel,users,topic);
+      new ChannelListViewItem(channelListView,channel,users,topic);
     }
     // clear list of pending inserts
     pendingChannels.clear();
diff --git a/konversation/channellistpanel.h b/konversation/channellistpanel.h
index 9a80e1f..8edc275 100644
--- a/konversation/channellistpanel.h
+++ b/konversation/channellistpanel.h
@@ -26,6 +26,7 @@ class QStringList;
 class QTimer;
 
 class KListView;
+class ChannelListViewItem;
 
 class ChannelListPanel : public ChatWindow
 {
diff --git a/konversation/channellistviewitem.cpp \
b/konversation/channellistviewitem.cpp new file mode 100644
index 0000000..1a08efd
--- /dev/null
+++ b/konversation/channellistviewitem.cpp
@@ -0,0 +1,41 @@
+/*
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+*/
+
+/*
+  channellistviewitem.cpp  -  item in the channel list
+  begin:     Die Apr 29 2003
+  copyright: (C) 2003 by Dario Abatianni
+  email:     eisfuchs@tigress.com
+*/
+
+#include <kdebug.h>
+
+#include "channellistviewitem.h"
+
+ChannelListViewItem::ChannelListViewItem(KListView* parent,QString channel,QString \
users,QString topic) +                         : \
KListViewItem(parent,channel,users,topic) +{
+}
+
+ChannelListViewItem::~ChannelListViewItem()
+{
+}
+
+int ChannelListViewItem::compare(QListViewItem* item, int col, bool ascending) const
+{
+  if(col==1)
+  {
+    bool ok;
+    int i=text(col).toInt(&ok);
+    if(ok)
+    {
+      int j=item->text(col).toInt(&ok);
+      if(ok) return (i<j) ? -1 : (i>j) ? 1 : 0;
+    }
+  }
+  return KListViewItem::compare(item,col,ascending);
+}
diff --git a/konversation/channellistviewitem.h b/konversation/channellistviewitem.h
new file mode 100644
index 0000000..7ca5290
--- /dev/null
+++ b/konversation/channellistviewitem.h
@@ -0,0 +1,31 @@
+/*
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+*/
+
+/*
+  channellistviewitem.h  -  item in the channel list
+  begin:     Die Apr 29 2003
+  copyright: (C) 2003 by Dario Abatianni
+  email:     eisfuchs@tigress.com
+*/
+
+#ifndef CHANNELLISTVIEWITEM_H
+#define CHANNELLISTVIEWITEM_H
+
+#include <qstring.h>
+
+#include <klistview.h>
+
+class ChannelListViewItem : public KListViewItem
+{
+  public:
+    ChannelListViewItem(KListView* parent,QString channel,QString users,QString \
topic); +    ~ChannelListViewItem();
+
+    int compare(QListViewItem* item, int col, bool ascending) const;
+};
+
+#endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic