-QVariant NetworkConnection::state() const {
- IrcUser *me = network()->ircUser(network()->myNick());
- if(!me) return QVariant(); // this shouldn't really happen, I guess
- return me->channels();
+void NetworkConnection::sendPerform() {
+ BufferInfo statusBuf = Core::bufferInfo(coreSession()->user(), network()->networkId(), BufferInfo::StatusBuffer);
+ // do auto identify
+ if(network()->useAutoIdentify() && !network()->autoIdentifyService().isEmpty() && !network()->autoIdentifyPassword().isEmpty()) {
+ userInputHandler()->handleMsg(statusBuf, QString("%1 IDENTIFY %2").arg(network()->autoIdentifyService(), network()->autoIdentifyPassword()));
+ }
+ // send perform list
+ foreach(QString line, network()->perform()) {
+ if(!line.isEmpty()) userInput(statusBuf, line);
+ }
+
+ // rejoin channels we've been in
+ QStringList channels, keys;
+ foreach(QString chan, network()->persistentChannels().keys()) {
+ QString key = network()->persistentChannels()[chan];
+ if(!key.isEmpty()) {
+ channels.prepend(chan); keys.prepend(key);
+ } else {
+ channels.append(chan);
+ }
+ }
+ userInputHandler()->handleJoin(statusBuf, QString("%1 %2").arg(channels.join(",")).arg(keys.join(",")));