From: Shane Synan Date: Tue, 7 Jun 2016 15:05:55 +0000 (-0400) Subject: Sync caps, use signal/slot, CAP NEW/DEL, polish X-Git-Tag: travis-deploy-test~470^2~6 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=dccbef488a2299cf08146cdfc11933a8fe28a387;hp=dccbef488a2299cf08146cdfc11933a8fe28a387 Sync caps, use signal/slot, CAP NEW/DEL, polish Expose IRCv3 capabilities in the synced Network object. In testing, this works fine with older/newer cores/clients. Migrate capability negotiation to Qt Slots/Signals (events), allowing easier future scriptability and general reacting to IRCv3. In the future, the client could detect if IrcCap::SASL is present and in the settings UI recommend SASL over NickServ, it could warn if IrcCap::SaslMech::EXTERNAL is not available, etc. Handle CAP NEW and CAP DEL, to comply with cap-notify and IRCv3.2 requirements. Might make ZNC users happier, too. Show available, requested, and successful capabilities during capability negotiation. Move IRCv3 list of capabilities and SASL handling to new header, irccap.h This reduces clutter in network.h, and via new QString constants typos are now compile-time errors. Update CMakeLists.txt for automoc and Qt Creator to know of the new file. Preliminary test results on Ubuntu: > New core, new client - works fine > New core, old client - client prints warnings to console but works (Complains of no matching slot for sync call. Old client doesn't need the new information, though, so it shouldn't cause issues.) > New client, old core - works fine, simply assuming no IRCv3 (Quassel didn't support IRCv3 cap negotiation before now, so that's a safe assumption to make) > New core, Quasseldroid alpha - works fine, warnings in debug log ---