2.2.0 ----- - Implemented SASL support (http://freenode.net/sasl) - Introduced IrcBufferModel, IrcUserModel and IrcCommandParser - Added new IrcSession convenience signals - void xxxMessageReceived(IrcXxxMessage* message) - void nickNameReserved(QString* alternate) - Added bool IrcSession::secure property - Added IrcSession::quit() slot for convenience - Allowed constructing an invalid IrcSessionInfo - Added IrcSessionInfo::channelModes(A|B|C|D) - Added IrcModeMessage::Kind { Channel, User } - Added IrcTopicMessage::isReply() and IrcModeMessage::isReply() - NOTE: Notice that there is no need to catch RPL_TOPIC, RPL_NOTOPIC or RPL_CHANNELMODEIS anymore. These numeric replies are now composed to IrcTopicMessage and IrcModeMessage. - Made IrcLagTimer::session a writable property - Improved submodule support: https://github.com/communi/libcommuni/wiki/Submodule - Overall documentation improvements 2.1.1 ----- - Add missing docs for IrcMessage::Motd/Names enum values - Enable using communi as a static lib & git submodule - Fixed a memory leak in IrcProtocol - Other cosmetic docs & build system cleanups and improvements 2.1.0 ----- - Introduced IrcMessageFilter and IrcLagTimer - Added IrcSessionInfo::availableCapabilities() and activeCapabilities() - Added QDebug stream operators for IrcSender - Added QDataStream operators for IrcPalette and IrcTextFormat - Added comparison operators for IrcSender, IrcPalette and IrcTextFormat - Added IrcCommand::createPing() - Added IrcMotdMessage and IrcNamesMessage - Made IrcSession::sendCommand() only delete parentless commands - Fixes and improvements to the congigure script 2.0.1 ----- - Fixed IrcMessage::toData() - Fixed identify-msg capability handling - Fixed ICU linking on 64-bit Windows - Fixed IrcSession::close() to abort connecting 2.0.0 ----- - Focus on easy deployment - Removed all plugins - Better support for static builds and including(src.pri) - Removed Symbian support - The default FALLBACK encoding changed from UTF-8 to ISO-8859-15 - UTF-8 did not make much sense as the default fallback encoding, since the fallback is only used when the message is detected NOT to be valid UTF-8 and the auto-detection fails - Radically simplified examples - Removed all deprecated classes and methods - API changes: - Added: - IrcPalette - IrcTextFormat - IrcSessionInfo - IrcMessage::session - IrcMessage::timeStamp - IrcCommand::Type & IrcCommand::createXxx() for: - admin/info/knock/list/motd/stats/time/trace/users/version/who - Removed: - IrcUtil - use IrcTextFormat & IrcPalette instead - IrcCodecPlugin - use qmake -config icu or -config uchardet instead - IrcMessage::isOwn - use IrcMessage::flags() & IrcMessage::Own instead - IrcMessage::toString() - use IrcMessage::toData() instead - IrcMessage::fromString() - use IrcMessage::fromData/Command/Parameters() instead 1.2.2 ----- - Qt 5.0.0 final specific build fixes - Fixed CTCP reply handling - Fixed SSL connections 1.2.1 ----- - Fixed #24: IrcSessionPrivate::_q_error() is too verbose - Fixed #25: IrcSessionPrivate::processLine() should not respond to CTCP requests - Qt 5 specific build fixes - Made the default fallback encoding ISO-8859-1 - Fixed a performance bottleneck in IrcDecoder::setEncoding() 1.2.0 ----- - Qt 5 support - Implemented support for IRC capabilities as specified at http://www.leeh.co.uk/draft-mitchell-irc-capabilities-02.html - Implemented support for the "identify-msg" capability - Pluginized the message decoder - The default message decoder plugin is based on uchardet, which is built into the plugin, making it available on all platforms - An alternative message decoder plugin based on ICU is available in src/plugins/icu must be enabled/built by hand. It requires the presence of ICU (modify icu.pri if necessary) that is not available for all Communi supported platforms - The used message decoder plugin may be controlled by setting the COMMUNI_CODEC_PLUGIN (values: uchardet,icu) environment variable - In conjuction with the standard QT_PLUGIN_PATH, plugin paths may be controlled by setting the COMMUNI_PLUGIN_PATH environment variable - API changes: - Added IrcCodecPlugin - Added QByteArray IrcMessage::encoding [property] - Added IrcMessage::Flags and IrcMessage::flags() - None, Own, Identified, Unidentified - Added IrcMessage::Capability and IrcCapabilityMessage - Added IrcCommand::Capability and IrcCommand::createCapability() - Facelifted the desktop example 1.1.2 ----- - Docs: - Fixed IrcMessage::Private enum value to appear - Examples: - Fixed settings to be remembered - Fixed a performance issue in channel message nick highlighting 1.1.1 ----- - Various build system fixes and improvements - Fixed shadow builds - Configure: improved qmake(-qt4) detection & added error handling - Fixed plugins, examples and tests to link to the local built libs instead of the installed ones whether they happen to exist - Added a 'no_rpath' qmake config - Examples: fixed message formatting clash with nick names & URLs 1.1.0 ----- - Introduced a configure script - Added a Symbian (QML) example - Significantly revised the desktop example - Added dock icon badge, topic label & channel user list - Made it possible to emded parts into another app - Replaced ICU with uchardet as the encoding detection engine - ICU is not available on all platforms, whereas uchardet is built into Communi and therefore available on all platforms - IrcUtil::messageToHtml() to handle mIRC style background colors - Detect message encoding part by part, instead of for the whole line - Changed the semantics of IrcSession::encoding to a fallback encoding - API changes: - Added bool IrcMessage::own [property] - Added IrcMessage::fromData() - deprecated IrcMessage::fromString() - Added IrcMessage::toData() - deprecated IrcMessage::toString() - Added QByteArray IrcCommand::encoding [property] - Added bool IrcSession::sendData(const QByteArray& data) 1.0.0 ----- - Renamed Communi (was LibIrcClient-Qt) - Underwent a major rewrite - Split the monolithic IrcSession class - New event/message & property based IrcSession API - Removed the problematic buffer concept - New public classes: IrcCommand and IrcMessage & subclasses - Improved QML compatibility - QObject based messages & commands - Used properties, signals, slots and invokables - Provided a declarative plugin: import Communi 1.0 - Environment variable COMMUNI_DEBUG=1 to help debugging - log socket state changes and received messages to the debug output - Added desktop (QWidgets) & MeeGo (QML) examples 0.5.0 ----- - Irc::Session API additions: - addBuffer() and buffers() for buffer management - welcomed() signal, emitted when 001 is received - Added IRC capability support - Implemented IDENTIFY-MSG capability - Fixed "icu.pri: Unescaped backslashes are deprecated" - Remove buffer upon parting a channel - Fixed Session::raw()'s check of written bytes - Fixed #3 An incorrect buffer is created when StripNicks is off and EchoMessages - Improved building on Mac - Make a difference between frameworks and standard dylibs (depending on Qt's installation style) - Set INSTALL_NAME correctly 0.4.1 ----- - Added support for static builds (qmake -config static) - Fixed qmake project messages output only once - Fixed MOC_DIR in release mode - Added default MacPorts paths for ICU - Fixed notices and messages from "real host" vs. "connected host" to get directed to the same buffer - Fixed CTCP requests not to create a new buffer 0.4.0 ----- - Introduced Irc::Buffer - the concept of server/channel/query specific buffers - Deprecated buffer-specific functionality in Irc::Session - Fixed tabs not to cause underlined text - Added a version number to the library - Added Irc::Rfc::toString() - Fixed euIRC connection problems 0.3.2 ----- - Fixed problems with "unknown" messages - Fixed Irc::Session::connectSlotsByName() not to try to establish a connection when the parameter types don't match - Code improvements 0.3.1 ----- - Fixed compilation on Mac - Fixed Irc::Session::connected() and disconnected() to be emitted correctly - Fixed Irc::Session::connectSlotsByName() not to establish multiple connections when a slot exists multiple times (reimplemented) - Made Irc::Session::cmdMessage(), cmdNotice() and cmdCtcpAction() to emit own messages, notices and actions. This simplifies client implementation - Started working on auto tests and added code coverage support - Added a workaround for older Qt versions that don't have the QT_FORWARD_DECLARE_CLASS() macro defined 0.3.0 ----- - Added SSL support - Quality & compatibility - no_keywords - QT_NO_CAST_FROM_ASCII - QT_NO_CAST_TO_ASCII - Bug fixes & code improvements 0.2.0 ----- - The first fully Qt-based version 0.1.1 ----- - Added support for optional encoding detection with ICU 0.1.0 ----- - The first internal release