3.1.1/3.0.3 ----------- - General - Fixed configure script's default imports and qml directories - Added missing namespace macros to the QML plugins - IrcCore - Added missing enums to Irc::registerMetaTypes() - IrcModel - Fixed IrcChannel::isChannel() for namespaced builds 3.1.0 ----- - General - IrcUtil now depends on IrcModel - IrcCore - Added IrcConnection::userData - Added IrcConnection::saveState() - Added IrcConnection::restoreState() - Added IrcConnection::channelKeyRequired() [signal] - Added IrcConnection::nickNameRequired() [signal] - Deprecated IrcConnection::nickNameReserved() [signal] - Added IrcMessage::tags - Added IrcModeMessage::arguments() - Introduced IrcWhoReplyMessage - IrcModel - Added IrcBufferModel::empty - Added IrcBufferModel::saveState() - Added IrcBufferModel::restoreState() - Added IrcBufferModel::persistent - Added IrcChannel::key - Added IrcChannel::join(QString key) - Added IrcBuffer::userData - Added IrcBuffer::close() - Added IrcUserModel::empty - Added IrcUser::away - Added IrcUser::servOp - IrcUtil - Introduced IrcCompleter - Added IrcTextFormat::spanFormat - Improved IrcTextFormat::toHtml() performance on Qt 5 (QRegularExpression) - Examples - Made the QtQuick example remember connection settings (requires Qt 5.2) 3.0.2 ----- - General - Added missing QML plugin type info files - IrcCore - Fix login when SASL enabled but not available - Fixed RPL_ISUPPORT handling when server sends ERR_NOMOTD - IrcModel - Fixed IrcBufferModel to not block IrcBuffer signals on destruction/removal - Fixed IrcBufferModel to deliver own echoed messages to the target buffer - IrcUtil - Fixed IrcTextFormat::toHtml() to not percent encode comma in URLs 3.0.1 ----- - IrcCore - Fixed IrcConnection::open() to bail out when already active - Fixed IrcModeMessage::kind() for modes with arguments - IrcModel - Added missing IrcUserModel::channelChanged() to docs - Fixed a potential crash in IrcUserModel sorting - Fixed IrcChannel::isActive() on quit - Fixed IrcBufferModel to deliver messages only to active buffers - Fixed IrcUser mode & prefix sorting in the "ranking" order - IrcUtil - Added missing export macro to IrcPalette - Fixed IrcTextFormat::toHtml() to percent encode special characters in URLs 3.0.0 ----- - General - Modularized: IrcCore, IrcModel & IrcUtil - Added namespace support - Full QML support & restored the QML plugin - Renamed all COMMUNI_XXX macros to IRC_XXX - Made uchardet the default encoding detection backend - IrcCore - Added Irc::registerMetaTypes() - Renamed Irc::toString() to Irc::codeToString() - Added Irc::nick/ident/hostFromPrefix() - Renamed IrcSessionInfo to IrcNetwork - Renamed IrcSession to IrcConnection - Added IrcConnection::network - Added IrcConnection::enabled - Added IrcConnection::status - Added IrcConnection::displayName - Added IrcConnection::reconnectDelay - Replaced IrcConnection::password signal with a property - Added IrcConnection::saslMechanism & supportedSaslMechanisms - Added IrcConnection(host, parent) convenience constructor - Made IrcConnection::sendCommand() queue when inactive - Introduced IrcCommandFilter - Removed IrcSender - Replaced IrcMessage::sender with IrcMessage::(prefix|nick|ident|host) - Added IrcMessage::network - Added IrcPrivate/NoticeMessage::private property - Replaced IrcNickMessage::nick with oldNick & newNick - Renamed IrcPrivate/NoticeMessage::message to content - Replaced IrcMessage::fromCommand() with IrcCommand::toMessage() - IrcModel - Added IrcUserModel::sortOrder & sortMethod - Added IrcUserModel::indexOf(IrcUser*) - Added IrcUserModel::clear() - Added IrcUser::title - Renamed IrcUserModel::user(QString) to find(QString) - Added IrcBufferModel::network - Added IrcBufferModel::sortOrder & sortMethod - Added IrcBufferModel::add(IrcBuffer*) - Added IrcBufferModel::indexOf(IrcBuffer*) - Added IrcBufferModel::remove(IrcBuffer*) - Added IrcBufferModel::buffer/channelPrototype - Split IrcBufferModel::create() to createBuffer() & createChannel() - Renamed IrcBufferModel::user(QString) to find(QString) - Removed IrcBufferModel::destroy() - Added IrcBuffer::persistent - Added IrcBuffer::sticky - Added IrcBuffer::network - Added IrcBuffer::receiveMessage() - IrcUtil - Added IrcCommandParser::tolerant - Renamed IrcCommandParser::currentTarget to target - Replaced IrcCommandParser::prefix with triggers - Added details for IrcCommandParser::syntax() - Added IrcPalette color name properties - Examples - Added a minimal example - connect, join & message in 8 lines of code - Added a Qt Quick based GUI client example - Added a bot example written in QML 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