telepathy-qt4 0.2.1 (2009-12-04)
================================

The "all you want, only better" release.

Fixes:

* fd.o #25058: reduce the scope of our workaround for Qt 4.5 bug
  <http://qt.gitorious.org/qt/qt/merge_requests/1657>, fixing compilation
  against Qt versions >= 4.6 beta, where this bug has been fixed (smcv)

* Avoid the installed AccountManager (if any) being service-activated during
  distcheck under some circumstances (smcv)

* Compile with symbols hidden by default, explicitly export a few
  symbols that were mistakenly not exported, and improve the code generation
  tools to be more correct about their exports (smcv)

* Improve the code-generation tools to cope with UTF-8 in the spec (wjt, smcv)

* Enable Automake 1.11 silent building (./configure --enable-silent-rules
  to enable this) (wjt)

Code generation release notes:

* qt4-types-gen.py and qt4-client-gen.py previously forced the generated
  classes to be exported, in a way that's not actually correct for code outside
  telepathy-qt4 (the TELEPATHY_QT4_EXPORT macro).
  
  They now use a macro set by --visibility, defaulting to nothing; if you're
  building a shared library with -fvisibility=hidden, or supporting Windows,
  you may need to use --visibility=YOUR_LIB_EXPORT when running these scripts.

  See TelepathyQt4/global.h or QtDBus/qdbusmacros.h for an example of setting
  up such a macro (unfortunately, the only correct way to do this seems to be
  for each shared library to define its own).

telepathy-qt4 0.2.0 (2009-11-10)
================================

The "I Shot the Sheriff" release.

API changes:

* Connection: Changed status/statusReason/statusChanged to use enums
  Tp::Connection::Status and ConnectionStatusReason.
* Connection: Renamed getContactAttributes method to contactAttributes.

Fixes:

* fd.o#23370: Make better use of telepathy-spec 0.17.27 errors.
* fd.o#24422: Account removal should be represented by
  TELEPATHY_QT4_ERROR_OBJECT_REMOVED.

telepathy-qt4 0.1.12 (2009-11-05)
================================

The "an enzyme that breaks down tigers" release.

New API:

* TextChannel: Added ChatState interface support.

API changes:

* TextChannel: send() methods now receive a flags parameter, so we proper
  support delivery reports.

Fixes:

* pkgconfig: Added missing QtNetwork dependency.

telepathy-qt4 0.1.11 (2009-10-08)
================================

The "on more to go" release.

New API:

* FileTransferChannel: Added methods to access FileTransfer interface
  properties.
* IncomingFileTransferChannel: Added specialized class for handling incoming
  file transfers.
* OutgoingFileTransferChannel: Added specialized class for handling outgoing
  file transfers.
* CapabilitiesBase: Added base class to represent contact/connection
  capabilities.
* ContactCapabilities: Added specialized class that inherits CapabilitiesBase to
  represent contact capabilities.
* ConnectionCapabilities: Added specialized class that inherits CapabilitiesBase
  to represent connection capabilities.
* Contact: Added ContactCapabilities interface support.
* Connection: Added capabilities (RequestableChannelClasses) support.
* Account: Added ensureAudio/VideoCall methods that make use of
  InitialAudio/Video properties when creating StreamedMedia channels.
* Channel: Added streamTubeInterface/tubeInterface methods.
  (Patch from Abner Silva <abner.silva@collabora.co.uk>).
* PendingVariant: Added pending operation helper class for D-Bus methods that
  return a variant as result.

API changes:

* Renamed PendingVoidMethodCall to PendingVoid.
* Changed PendingVoid/Success/Failure constructor to receive parent as last
  parameter.

Enhancements:

* Added examples for handling incoming/outgoing file transfers,
  examples/file-transfer/
* Added C++ visibility support.
* Updated to 0.18.0 spec.

Fixes:

* fd.o #24324: Account::create/ensureXXX should receive a const QDateTime & for
  userActionTime
* Explicitly use uint for TargetHandleType.

telepathy-qt4 0.1.10 (2009-08-25)
================================

The "not yet stable" release.

New API:

* StreamedMediaChannel: Added Hold and DTMF interface support.

Enhancements:

* Moved OptionalInterfaceFactory::InterfaceSupportedChecking docs from DBusProxy
  to OptionalInterfaceFactory.
* Use struct Private instead of class Private for consistence.
* Removed cli/Client from header guards.

Fixes:

* fd.o #20269: Channel's Contact objects should initially have no features.
* fd.o #21335: Implement Group self-handle removal reasons.
* fd.o #23040: Running connection managers appear twice in
  ConnectionManager::listNames result.
* fd.o #23282: Channel should update ReadinessHelper with the supported
  interfaces.

telepathy-qt4 0.1.9 (2009-07-23)
================================

The "never too late" release.

New API:

* OptionalInterfaceFactory: Added methods interfaces and optionalInterface
  and removed duplicated code in all OptionalInterfaceFactory subclasses.
* Added ContactManager allKnownGroups, addGroup, removeGroup, groupContacts,
  addContactsToGroup and removeContactsFromGroup methods.
* Added ContactManager groupAdded, groupRemoved and groupMembersChanged signals.
* Added Contact groups, addToGroup and removeFromGroup methods.
* Added Contact addedToGroup and removedFromGroup signals.

API changes:

* Changed ProtocolParameter requiredForRegistration method to
  isRequiredForRegistration to make it consistent with other bool returning
  getters.

Enhancements:

* Changed all classes to follow coding-style.
* Moved documentation to source file for all classes.
* Standardize class definition in all classes:
  * Moved public xxxInterface methods definition to the end of the public
    methods declaration.
  * Added friend struct Private declaration.
  * Added Q_DISABLE_COPY(xxx) to all classes that can not be copied.
  * Moved Q_DISABLE_COPY(xxx) declaration to the top of the class definition,
    before the public keyword.
  * Reorder public, protected, SIGNALS declaration as follows:
     public
     public Q_SLOTS
     Q_SIGNALS
     protected
     protected Q_SLOTS
     private Q_SLOTS
     private
  * Moved friend class xxx definitions to be placed right bellow private keyword.
* ChannelDispatchOperation: Emit invalidated with
  TELEPATHY_QT4_ERROR_OBJECT_REMOVED when ChannelDispatchOperation.Finished is
  received.
* Added/Improved some documentation.

Fixes:

* ClientApproverAdaptor: Use the dbus fully qualified name to get the connection
  property (Patch from George Kiagiadakis <kiagiadakis.george@gmail.com>).
* Fixed bug 20268: Connection's selfContact object should initially have no
  features.
* Fixed bug 20080: KeyFile: ";" as a list may be mis-parsed.
* Fixed bug 20082: KeyFile: double (and other types?) not correctly tested.
* Fixed bug 20353: No d-pointer in Channel::GroupMemberChangeDetails.
* Fixed bug 20033: Contact / ContactList Group integration.

telepathy-qt4 0.1.8 (2009-06-16)
================================

The "Every Good Boy Deserves Frontalot" release.

New API:

* Added PendingChannelRequest class to be used when requesting channels using
  ChannelDispatcher through Account.
* Added Account methods to request/create channels using ChannelDispatcher
  (ensureTextChat, ensureTextChatroom, ensureMediaCall, createChannel and
  ensureChannel)

Enhancements:

* Updated to telepathy-spec 0.17.26

Fixes:

* ChannelDispatchOperation: Read Channels property instead of incorrectly
  reading ChannelDetailsList (Patch from George Kiagiadakis
  <kiagiadakis.george@gmail.com>).

telepathy-qt4 0.1.7 (2009-06-02)
================================

The "approver" release.

New API:

* Added Client Approver support.
* Added ChannelDispatchOperation high-level class.

Bugfixes:

* Fixed bug 21988: Channel does not work properly if the parent
  connection object is not ready
* Fixed bug 21993: TextChannel does not become ready until first message is
  received if FeatureMessageQueue is enabled.

telepathy-qt4 0.1.6 (2009-05-28)
================================

The "So hot, I have a fever" release.

New API:

* Added Channel::immutableProperties public method.

Enhancements:

* Added ChannelFactory, internal class to create channels based on
  their types.
* PendingChannel: Use ChannelFactory to create channels.

Bugfixes:

* Proper define AbstractClientPtr.
* ClientRegistrar: Fixed Observer adaptor introspection data.
* ClientRegistrar: Use ChannelFactory to create Channels.

telepathy-qt4 0.1.5 (2009-05-19)
================================

The "do not look at the conductor" release.

New API:

* Added Client support (Handler, Observer).
  * Added ClientRegistrar, class responsible for registering clients and proper
    exporting their D-Bus interfaces.
  * Added AbstractClientObserver, AbstractClientApprover (skeleton) and
    AbstractClientHandler. Clients should inherit one or some combination of
    these, by using multiple inheritance, and register themselves using
    ClientRegistrar::registerClient() in order to become a Client.

* Added ChannelRequest high-level class.

telepathy-qt4 0.1.4 (2009-05-08)
================================

The "global military-industrial complex is subsidising your iPod" release.

Dependencies:

* Creating accounts, and possibly updating their parameters, now requires an
  AccountManager implementing telepathy-spec 0.17.24, such as
  telepathy-mission-control >= 5.0.beta70 (in particular, beta 69 won't work,
  and the KWallet-based account manager will also need updating)

API changes:

* Renamed SharedData header file to RefCounted to follow class name.

New API:

* Update to telepathy-spec 0.17.24, breaking some D-Bus APIs:
  * fd.o #21619: Account::updateParameters() returns a PendingStringList of
    the parameters that won't be changed until reconnection takes place
  * Account::reconnect() added (newer MC versions don't violate telepathy-spec
    by reconnecting automatically when parameters are changed)
  * AccountManager::supportedAccountProperties() added
  * AccountManager::createAccount() takes an optional dict of properties
    (the valid keys are in supportedAccountProperties())

* Enhance PendingStringList to have a constructor from a QDBusPendingCall

Bugfixes:

* Don't try to run Python tests unless we have the gobject module (the tests
  use it)

telepathy-qt4 0.1.3 (2009-04-22)
================================

The "what are you scared of?" release.

Dependencies:

* Full regression tests now require telepathy-glib >= 0.7.28 (telepathy-glib
  is still optional)

API changes:

* Namespace simplification: Telepathy::Client::Channel (etc.) are now
  Tp::Channel, similar to telepathy-glib's TpChannel. Auto-generated client
  classes like Telepathy::Client::ChannelInterface are now
  Tp::Client::ChannelInterface.

* AccountManager, Account, ConnectionManager, Connection, Channel and Channel
  subclasses now inherit from Tp::RefCounted and are used together with
  Tp::SharedPtr/Tp::WeakPtr, shared and weak pointer classes using ideas from
  Qt, glibmm, Boost and WebKit. The constructor is now protected (in order to
  support custom classes) and a public create method that returns a SharedPtr
  was added. This is an attempt to avoid memory leaks as much as possible, see
  http://lists.freedesktop.org/archives/telepathy/2009-March/003218.html for
  more details.

* Instead of forward-declaring Telepathy::Client::Channel and using
  a variable of type Telepathy::Client::Channel *, you should now include
  <TelepathyQt4/Types> and use either Tp::ChannelPtr, which is a
  reference-counted shared pointer, or Tp::WeakPtr<Tp::Channel>, which is the
  weak counterpart.
* Header simplification: the public headers now look like
  <TelepathyQt4/Channel>, i.e. without the Client subdirectory.

* PendingHandles now finish successfully on non fatal errors (InvalidArgument,
  InvalidHandle, NotAvailable). PendingHandles::invalidNames/invalidHandles
  should be used to check if a non-fatal error occurred and some handle could
  not be acquired.

Enhancements:

* Updated to telepathy-spec 0.17.23

* TelepathyQt4Farsight is a new mini-library with glue code to connect
  telepathy-farsight to Telepathy-Qt4. Handlers for streamed media channels
  with media signalling can #include <TelepathyQt4/Farsight/Channel> and pass
  their Tp::StreamedMediaChannel to Tp::createFarsightChannel, then hook up
  the resulting TfChannel to a GStreamer pipeline of their choice.

* StreamedMediaChannel has a new handlerStreamingRequired method so you can
  check whether the handler needs to carry out the streaming

* fd.o #21336: Channels now indicate whether a message is expected when
  doing various Group operations

* fd.o #21337: Account supports the new HasBeenOnline property

Fixes:

* fd.o #20583: Contact objects don't work without the Contacts interface.

* fd.o #20584: Contact object creation doesn't survive bad IDs or handles.

telepathy-qt4 0.1.2 (2009-03-23)
================================

The "robotic automatic hoover" release.

Dependencies:

* Full regression tests now require telepathy-glib >= 0.7.27 (telepathy-glib
  is still optional)

* telepathy-farsight >= 0.0.4 is a new optional dependency

API changes:

* AccountManager, Account, ConnectionManager, Connection, Channel
  now inherit QSharedData and are used together with
  QExplicitlySharedDataPointer.
  This is needed so we can create shared pointers based on the object itself,
  instead of doing hacks to find the shared pointer related to a given object.
  See http://lists.freedesktop.org/archives/telepathy/2009-March/003168.html for
  more details.

* Channel Features are now Feature objects, not integers

* The Feature class is now in its own header, <TelepathyQt4/Feature>

Enhancements:

* The skeletal StreamedMediaChannel class from 0.1.0 has been expanded to
  cover all the functionality of the Telepathy StreamedMedia interface

* PendingConnection, PendingAccount etc. have busName and objectPath
  methods where necessary, so that objects of custom classes can be
  constructed

* Features can now be considered critical, meaning that failure to set them up
  leads to failure of becomeReady() - this should only be used for features
  that should never fail unless the service is buggy, like Connection and
  Channel core functionality

* examples/call/ is an example of how to use StreamedMediaChannel, which can
  make and receive XMPP Jingle calls using telepathy-gabble
  (this feature requires telepathy-farsight and GStreamer)

Fixes:

* When introspection of a Feature fails, the D-Bus error is propagated as the
  failure reason of becomeReady()

* Fix a memory leak in TextChannel

telepathy-qt4 0.1.1 (2009-03-05)
================================

The "PresencePublicationAuthorizationRequestRejection" release.

API changes:

* PendingReadyAccount, PendingReadyAccountManager, PendingReadyConnection,
  PendingReadyConnectionManager have all been replaced by the PendingReady
  class

* Account, AccountManager, Connection and ConnectionManager features are now
  QSet<uint>, not bitfields

* Plural contacts are generally represented by a QSet<QSharedPointer<Contact> >
  instead of a QList<QSharedPointer<Contact> > (with a new typedef,
  Telepathy::Client::Contacts, which must be used in signal/slot connections)

Enhancements:

* Added Connection::FeatureRoster, which, when enabled, adds contact list
  (a.k.a. roster/buddy list) functionality to the ContactManager and
  Contact objects

* Improved maintainability of Account, AccountManager, Connection and
  ConnectionManager becoming ready

* A QSharedPointer<Contact> is now hashable with qHash, meaning contacts can
  be QSet or QHash members

* Added a trivial contact list user interface, examples/roster/roster

Fixes:

* The client library no longer attempts to enforce group add/remove flags:
  whatever change the user requests is passed on to the connection manager
  (which might reject it)

* PendingReady objects returned by Connection::becomeReady() have the
  Connection as parent, rather than an internal object that isn't useful
  to library users

telepathy-qt4 0.1.0 (2009-02-26)
================================

The "pending operation" release.

This first release of telepathy-qt4 features high-level API for the following:

* Manipulating accounts on a Telepathy AccountManager implementation as
  described by telepathy-spec 0.17.x, such as Mission Control 5 (beta versions
  currently available)

* Manipulating Telepathy connection managers via the ConnectionManager and
  Connection core API

* Setting your own presence on a connection manager supporting the
  SimplePresence interface

* Requesting channels from a connection manager supporting the Requests
  interface

* Reading contacts' aliases etc. on a connection manager supporting the
  Contacts interface

* Sending and receiving messages on Text channels, with or without the
  Messages interface

In addition, lower-level auto-generated accessors are provided for all the
functionality of telepathy-spec version 0.17.19.

Notable functionality that is currently missing, but will be added soon,
includes:

* Manipulating a server-stored contact list

* Controlling VoIP calls in StreamedMedia channels
