forked from communi/libcommuni
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
330 lines (308 loc) · 11.7 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
3.1.0
-----
- General
- IrcUtil now depends on IrcModel
- IrcCore
- Added IrcConnection::saveState()
- Added IrcConnection::restoreState()
- Added IrcModeMessage::arguments()
- IrcModel
- Added IrcBufferModel::saveState()
- Added IrcBufferModel::restoreState()
- Added IrcChannel::key
- Added IrcChannel::join(QString key)
- Added IrcBuffer::data()
- IrcUtil
- Introduced IrcCompleter
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