Hi readers! This is my first real post to the KMess blog.. I want today to let you know about the improvement to our beloved client that I’ve worked on in the past week or so.
This, lo and behold, is the first custom emoticon ever sent by a KMess client
I’ve worked really hard on this improvement – I’m an emoticon junkie. I can’t resist. I put emoticons on almost every message I write. I find them very useful to clarify the tone of what you’re writing, and the standard MSN emoticons – even the KMess ones! – just can’t beat the expressivity of an animated picture chosen by yourself!
It allows the user to have a custom set of emoticons for every account. So, for example, you can have an account for your work contacts with serious custom emoticons, and one for your friends and family, with a lot of funny emoticons.
Right now it’s fairly complete: but there still are a couple things that have need of a good ol’ revision before I can “consider it done”. So please, take everything I say and every image you’ll see below, as only work-in-progress drafts. No guarantee that this will be the final look of it – nor even the way it’ll work!
Managing the current emoticons is a breeze. Here’s the Emoticon Settings dialog:
Look Ma! I’ve got a ton of them!
You can rename in place the emoticons, and remove them by selecting and clicking the Remove button. Couldn’t be easier, isn’t it! I was really surprised to find out how simple had been to create the whole dialog, and to make it work.. in like, 10 minutes?, i had read the documentation and written the first code down. And it worked. Flawlessly. I swear, never saw anything simple as Qt.
But let’s go on… There’s an “Add new…” button, too, right? Here’s what appears when you click it:
The dialog is live, so you’ll know you’ve inserted a valid image because it will be showed in the area with the KMess logo. The Ok button will enable only when it’s all ready to go, with an image and a shortcut for it. This was a little harder to realize how to make it. Thanks a lot to the KDE documentation team!
Finally, there’s the chat window. This will probably suffer the most modifications, since it’s more than a draft. it’s a pre-pre-pre-alpha ok? You’ve been warned. ^__^
Very very ugly, very very alpha chat window
It’s a mess. I’m still trying to find a better way to put the custom emoticons panel in… and there’s also the issue of that stupid sidebar which doesn’t have a scrollbar… the most annoying thing currently in KMess, I say. As a relative newbie to programming, I couldn’t find a way to make it work (yet).
Now that I’ve let you have a sneak peek at the mere looks of it, let’s talk about the internal gears and pinions which compose the emoticons system in KMess. Feel free to skip this part
Internally KMess works out the emoticon themes as other clients (most notably Kopete) do, that is, with XML definition files. They contain the picture file names of the emoticons, and for each one of them, they also contain the shortcuts which translate into it.
As with the current versions of KMess, the standard emoticons set gets updated if you choose another one; you can select a Kopete theme and only the MSN icons that the new theme contains will replace the standard KMess theme. I’ve replicated this feature so it continues work notwithstanding the fact that the underlying code is almost completely changed
In related news, that now you can also load themes with GIF, MNG, JPG images. But be warned, it’s quite certain that Windows Live Messenger won’t be able to view your shiny MNG animated emoticons. Sorry
Also, a new emoticon manager takes care of exchanging, loading, modifying emoticon sets at your command, and will automatically guess the file type of your images. Getting that system to work was the most challenging task. Three classes define emoticons (Emoticon), collections of emoticons (EmoticonTheme), and emoticon management (EmoticonManager); i find them to be working well, though I’m still waiting for Diederik’s opinion There are *without any doubt* still some bugs or things that will need rewriting.. but it’s a matter of time!
Gotta go now.. I’ll probably post again about this new feature, so check back here sometimes