Last update: 27 december 2006.

This is a non-exhaustive guide to porting code from Kopete >= 0.11 (based on KDE3.x) to Kopete4 (based on KDE 4.x).

Libkopete changes
-----------------
*) Kopete::Account
   - contacts() now return a const QHash<QString,Contact*>&
   - setOnlineStatus() reason optional parameter use Kopete::StatusMessage.
   - NEW: setStatusMessage() which take a Kopete::StatusMessage.

*) Kopete::AccountManager
   - accounts() now return a QList<Account*>.

*) KopeteAwayDialog
   - removed. KopeteAwayAction should be used instead

*) Kopete::ChatSessionManager
   - sessions() now return a QList<ChatSession*>

*) kopetecommandlist.h
   - CommandList is now a QMultiHash<QString, Command*>

*) Kopete::Contact
   - NEW: setStatusMessage() and statusMessage().

*) kopetecontactproperty.h
   - Removed bool flags from constructor. Use ContactPropertyOption enum instead.
     First bool parameter -> Kopete::ContactPropertyTmpl::PersistentProperty
     Second bool parameter -> Kopete::ContactPropertyTmpl::RichTextProperty
     Third bool parameter -> Kopete::ContactProperyTmpl::PrivateProperty

*) kopeteglobal.h
   - Renamed Kopete::Global::Properties::awayMessage() to statusMessage()

*) Kopete::MetaContact
   - photo() is now deprecated. Use picture().image() instead.

*) Kopete::Message
   - asXML() no longer exist (removed in 0.12)

*) Kopete::OnlineStatusManager
   - HasAwayMessage enum value was renamed to HasStatusMessage.

*) NEW: Kopete::StatusMessage
   Class that encapsulate normal status message and status metadata(like Now Listening metadata)

*) kopeteproperties.h
   - Replaced PortingDict, now a QMultiHash<QByteArray, PropertyData
   - Replaced all const char * parameters with const QByteArray &

*) KopetePrefs
   - Removed. Use the new settings classes (see entry below).

*) kopetexsl.h
   - Was removed in 0.12 version.


-kopetemessagemanager.h and kopetemessagemanagerfactory.h has been removed. Use kopetechatsession.h and kopetechatsessionmanager.h

*) Configuration/Settings classes changes. 

KopetePrefs is deprecated and will be removed soon. Please use the new settings classes generated by KConfigXT.
-Kopete::AppearanceSettings is for settings related to appearance like fonts, colors and enabled visual items
-Kopete::BehaviorSetting is for settings related to Kopete's behavior.
-Kopete::Config was renamed to Kopete::GeneralSettings.

See related .kcfg files for possible entries.

Other changes
-------------
If you get problems with UI files that fuck because of some KDE widgets,
add those lines to the .ui file (open it as text). Note that it's just a exemple.

<customwidgets>
    <customwidget>
       <class>KHistoryCombo</class>
       <header>kcombobox.h</header>
    </customwidget>
    <customwidget>
       <class>KPasswordEdit</class>
       <header>kpassdlg.h</header>
    </customwidget>
</customwidgets>
