Fix notification lifecycle
Fix displaying multiple notifications in hints and freedesktop_notify
Enable emoticons plugin by default
freedesktop_notify: check if notification has details before taking last element of the list
Fix indicator_docking plugin after Notification interface changes
history_migration: Fix uninitialized variable read (clang static analyzer)

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
Fix some errors pointed out by clang

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
build: Add more useful flags in developer build

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
Compile with -Wnon-virtual-dtor

None of the added d-tors fixes a real problem (at least Clang didn't
find real problems here, though it might be wrong), though each of them
could cause bugs in future code.

And these deleted methods were just useless, they were already inherited
from the template classes.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
jabber: Fix memory leaks and crashes in JabberConnectionService

Memory leaks are obvious (Stream and Connector). And crashes were caused
by the following sequence of calls:

   connectToServer()
   disconnectFromServer()
   // immediately after the above:
   connectToServer()
   // and now QTimer::singleShot() from disconnectFromServer() triggers:
   cleanUp()
   // now bad things happen, pointers are reset, and we don't check for
   // them everywhere

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
jabber: Fix more crashes in JabberConnectionService

Now it seems pretty stable for me.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
spellchecker: Perform some trivial code rearragements

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
spellchecker: Switch to using C enchant API

The C++ enchant API isn't any better than the C API, it actually only
gives us overhead. And we did not even have correct implementation of
it, as enchant::Dict::check() could throw and we did not hadle it.

Also, now we don't use exceptions anywhere in Kadu, so I'll be able to
disable them.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
spellchecker: Remove unneeded QTextCoded usage from aspell code

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
spellchecker: Delete AspellConfig instance after AspellSpeller instances

AspellSpeller depends on AspellConfig. Maybe previous code was safe,
I don't know aspell, but now it is safe for sure.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
build: Compile without exceptions support

It reduces kadu executable size by 13.7% in Release mode when compiling
with GCC 4.6.3 on GNU/Linux x86_64.

We could reduce binaries sizes even further by compiling with -fno-rtti.
But for that we first need to completely migrate from dynamic_cast to
qobject_cast.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
configuration: Sync configuration file before QApplication::exec() returns

Code after QApplication::exec() is not guaranteed to be executed
on Windows.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
spellchecker: Fix reading uninitialized variables (valgrind)

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
emoticons: Initialize EmoticonLength (valgrind)

It was never initialized, so the whether the code worked was a roulette.

Signed-off-by: Bartosz Brachaczek <b.brachaczek@gmail.com>
Config window: 'general' tab reorganized