Planet maemo: category "feed:43af5b2374081abdd0dbc4ba26a0b54c"

Philip Van Hoof

I just released TMut 1.0.0. I recommend using TMut with what you’ll find in Tinymail’s Subversion repository. It has been tested with Tinymail’s pre release 0.0.4 too.

In pre release 0.0.4 there’s one known bug about moving folders that has been fixed in trunk.

This version of TMut doesn’t come with an account wizard or account management screen. You’ll have to configure TMut using GConf if you want to use it on your GNOME desktop. TMut’s target devices are for example phones and other mobile devices.

gconftool-2 -s /apps/tinymail/cache_dir -t string .tmut
gconftool-2 -s /apps/tinymail/accounts/count -t int 1
gconftool-2 -s /apps/tinymail/accounts/0/name -t string "My GMail account"
gconftool-2 -s /apps/tinymail/accounts/0/proto -t string imap
gconftool-2 -s /apps/tinymail/accounts/0/type -t string store
gconftool-2 -s /apps/tinymail/accounts/0/user -t string user.name
gconftool-2 -s /apps/tinymail/accounts/0/hostname -t string imap.gmail.com
gconftool-2 -s /apps/tinymail/accounts/0/options -t list --list-type=string '[use_ssl=wrapped]'

Or just use this GConf dump. And change “user.name” to your user name on GMail (or change the hostname to your IMAP server etc etc). This dump comes with GMail’s SMTP server configured too (then you can also send E-mails).

gconftool-2 --load tmut.gmail.gconfdump
Categories: Informatics and programming
Philip Van Hoof

Tinymail’s pre-release 0.0.4

2007-11-08 00:22 UTC  by  Philip Van Hoof
0
0

I decided to do another Tinymail pre release. I haven’t yet run out of numbers, so this is pre-release v0.0.4.

Now that TMut is more or less (basic) feature complete, I’m thinking about doing a TMut 1.0.0 too. I don’t know when Modest will be released but I do think it’s almost the time of the Tny E-mail clients. If not Modest then I’ll make a few other E-mail client flavours … like TMut.

There are (probably) still small problems here and there in Tinymail. Mostly the kind of problems that can only be found by putting the code in the hands of users. There have been two or three API changes so the Python bindings are not synchronized (Python developers who started using Tinymail might want to stick with pre-release 0.0.3 until this is fixed).

Oh. I was taking a look at QAbstractItemModel recently. I think it’s doable to make a TnyList that also implements QAbstractItemModel in C++. Having convenient models for views like GtkComboBox and GtkTreeView is more or less what most of libtinymailui-gtk is about. Doing the same thing for QTreeView and QComboBox sounds like a doable idea to me.

I also identified all uses of the GMainLoop in Tinymail. I can easily abstract that (although I know the people at Qt are interested in having GMainLoop integration too).

If you want me to make Tinymail as easy to use with Qt as with Gtk+, fund me and I will :-). Technically it’s perfectly possible and not really hard.

Categories: Informatics and programming
Philip Van Hoof

TMut video demo

2007-11-06 18:12 UTC  by  Philip Van Hoof
0
0

Yet another video demo of TMut. This time I’m consuming most of the operations. Like creating, moving, renaming and deleting folders, sending an E-mail to a GMail account. Then seeing that E-mail arrive on the GMail IMAP server, utilizing the support for IDLE, making a reply and a forward, using a local Maildir folder, moving messages. Stuff.

The video demo also shows the recent new TMutFolderView that reuses Modest’s GtkCellRenderers in the GtkTreeView. These cell renderer reduces space and shows the E-mail header line in the folder summary in two rows.

All this TMut code is still hot, fresh and new. Be careful not to burn your fingers.

Categories: Informatics and programming
Philip Van Hoof

Throwing it together

2007-11-05 22:21 UTC  by  Philip Van Hoof
0
0

While I was not searching for a new project, I have been throwing TMut together. After six quick sessions of working on it, I made TMut:

  • Support multiple accounts simultaneously
  • Open and display text/plain and text/html E-mail
  • Open and display IMAP folders
  • Open and display the INBOX of a POP account
  • Delete IMAP and Maildir folders
  • Create IMAP and Maildir folders
  • Move IMAP and Maildir folders
  • Copy IMAP, POP and Maildir folders
  • Rename IMAP and Maildir folders
  • Delete messages from IMAP folders
  • Delete messages from POP folders
  • Move messages from one folder to another
  • Put the connection in IDLE on IMAP and receive notifications
  • Create new messages
  • Create a reply of a message
  • Create a forward of a message, as attachment
  • Have accurate progress information

Not unimportant but because Tinymail comes with this support I also made TMut:

  • Do CONDSTORE on IMAP
  • Do QRESYNC on IMAP
  • Do BINARY on IMAP
  • Do IDLE on IMAP
  • Do various SSL and TLS encrypting
  • Do various authentication methods

I’m planning to fine tune all this a little bit, then do a GPEPhone port of it. This will include overriding some of the virtual methods that are right now creating a more or less standard user interface for a GNOME desktop.

I also have to make some sort of optional account editor. Optional because some device vendors have the account editing done by a web page and then uploaded to the device via an SMS (this is not uncommon on for example Nokia phones). I just remember I still have to make a little bit UI for adding and removing attachments from a new message too. When forwarding the forwared message is right now added as an attachment already.

Once all that is finished I of course have to prepare a video demo of running code. I guess the VMWare image will help me a lot with that. After that demo, I will most likely do a release of TMut. Perhaps at the same time release a first Tinymail version too? I’m not sure of that yet. Perhaps I will do a few more pre-releases in stead. It has to be perfect.

I think TMut is ready for contributors now. If you want to join and hack together your favourite E-mail client feature, just get on the Tinymail mailing list and post me your great patches. I also have to document the code of TMut a bit more. And make TMut’s wiki page a bit better too.

The joy of starting yet another cute little project starts …

Categories: Informatics and programming
Philip Van Hoof

Allow me to explain …

2007-11-03 22:52 UTC  by  Philip Van Hoof
0
0

As in the world of mobile and embedded aggressive changes in technology and devices’ capabilities occur at a high frequency, I decided to make Tinymail’s API very flexible or adaptive.

Yet I wanted to provide a certain functionality, which means a message view component that also shows the typical message headers.

What if the developer wants to wrap the message view in a scrolled window, have a message viewer as a new window or put the thing that displays the header in an expander? On a mobile device with a limited screen height it is a waste of space to show four or five lines of information. If the user wants this info, he can decide to expand it.

Imagine the same software vendor want to adjust the E-mail client for another device? However, nowadays software development must be fast. The change is something that should not destabilize everything that was already working. It must be easy to develop a new version of the message view component that perhaps behaves in a new way. Who knows what the screen will be capable of?

This diagram shows the flexibility of Tinymail’s types. I’m using the decorator pattern here. Decorator is also used by the streams API of Java, .NET and GVFS. I explained Tinne about decorator by simply referring to a painting and its borders. When decorating a painting with borders, you can still look at the painting. Nothing about its functionality really changes, but you add things to it, you decorate it.

In stead of subclassing TnyGtkMsgView, I decided to decorate it with a new implementation of the TnyMsgView interface. This one wraps the TnyGtkMsgView instance (it makes a composition with it). I did the same thing for TnyGtkHeaderView that implements the TnyHeaderView interface.

Because TnyGtkMsgView’s method for creating its TnyHeaderView is abstract, I inherited it as TMutTnyGtkMsgView (which will be the type that we’ll decorate). The TnyGtkHeaderView is decorated by TMutHeaderView. This TMutHeaderView is then created by the TMutTnyGtkMsgView.

TMutHeaderView decorates TnyGtkHeaderView by surrounding it with a GtkExpander. TMutMsgView decorates TnyGtkMsgView (TMutTnyGtkMsgView, actually) by surrounding it with a GtkScrolledWindow.

Categories: Informatics and programming
Philip Van Hoof

Coding some more on TMut

2007-10-29 23:30 UTC  by  Philip Van Hoof
0
0

I know Tinymail has been a far-from-my-bed show for a lot of people. Especially since Modest hasn’t yet been released, it’s taking ages for me to do a first Tinymail release, etc etc.

Click to read 1174 more words
Categories: Informatics and programming
Philip Van Hoof

Chances are high that a project that was being planned will be canceled or at least delayed for weeks. This of course means that I will have to find myself something else to do with my time. Since finding another project usually takes a few weeks, I started with putting together that TMut thingy.

Click to read 1232 more words
Categories: Informatics and programming