Connect up RPL_LISTEND to notify channellistpanel when it's at the end of the list.
authorTravis John McHenry <wordsizzle@gmail.com>
Sun, 19 Jul 2009 11:05:13 +0000 (11:05 -0000)
committerTravis John McHenry <wordsizzle@gmail.com>
Sun, 19 Jul 2009 11:05:13 +0000 (11:05 -0000)
commit09a4c684fb0f0b805df68f31b1927f577de6362a
tree9ea8e14f66f89bf3d67c2032a54c4b5d4ca1c104
parent10c89aa77da779e2ea1310de2b74f4da0733efc6
Connect up RPL_LISTEND to notify channellistpanel when it's at the end of the list.

Convert channellistpanel to a model/view approach using qsortfilterproxy/qabstractlistmodel
On refresh we create a new ChannelListModel (qabstractlistmodel) and load it up, then attach it to the qsortfilterproxy, instead of redoing the existing ChannelListModel.
This saves LOTS of time and ugliness. and results in a very fast refresh.

Since qsortfilterproxy seems to filter pretty fast I chose to get rid of the applyFilter button and attach all filter changes to a 300ms singleshot timer.

Change it so we disable the refreshlist button onClick instead of on firstRun to avoid multiple refresh triggers, but also put it on a 3000ms timer to re-enable.
On addToChannelList's firstRun the timer gets disabled if active.
This allows for a server load error or other problem.
If the list happens to get sent after the timer is up, addToChannelList will disable the button again and all is well.

Also, change the topicLabel's channel context menu to mimic the changes to the ircview's.

svn path=/trunk/extragear/network/konversation/; revision=999155
src/irc/channellistpanel.cpp
src/irc/channellistpanel.h
src/irc/channellistpanelui.ui
src/irc/inputfilter.cpp
src/irc/inputfilter.h
src/irc/server.cpp
src/viewer/topiclabel.cpp