Mime part viewers, support for PGP, ICS files and others



Hi there,

I'm adding Chris Lord (Dates) and Nate Nielsen (Seahorse) to CC.

I'm planning to quote design unquote the support for various mime-parts,
in the tinymail framework, using a "MimePartView" type. This will be a
type that plays a view in a MVC (model view controller) story. The model
being the mime-part instance, the view being the new type. The
controller being whatever component you'll put in between for both
adapting the model and using it from the view.

Examples of mime-part-views will be:

o. a mime-part view that shows a normal mime-part being an attachment. A
file attachment like a .txt or a .png file.

o. a mime-part view that shows and deals with .ics files being calendar
or todo items. The integration with softwares like Dates will happen via
the implementation of this mime-part view.

o. a mime-part view that shows and deals with PGP mime-parts being
security keys. The integration with frameworks like Seahorse will happen
via the implementation of this mime-part view.

http://tinymail.org/trac/tinymail/wiki/HelpMimePartView

An idea is to next to support for TnySaveStrategy in the TnyMsgView
implementations, let the TnyMimePartView reuse the same strategy for in
case you want to save a specific mime-part. Whereas the save strategy
for the TnyMsgView will save the entire message.

The entire message inherits from TnyMimePart, so that's why it can also
be used as a mime-part by itself, and why the TnyMsgView needs support
for the TnySaveStrategy.

Another idea is to rename TnySaveStrategy to TnyMimePartSaveStrategy and
let it handle both saving a TnyMsg (which inherits TnyMimePart) and a
TnyMimePart.


SO

This means that

o. Viewing (and handling) a mime-part is supported if an implementation
for it is registered to the message-viewer

o. Saving a mime-part is supported via a save strategy that is reused
between all components that know that they 'can' save a mime-part of
whatever they are viewing (a message view and a mime-part view)

o. Viewing is an abstract concept. It can mean "handling the mime-part"
for integrating with other softwares.

FOR example. One such viewer could have a simple button with the text
"register this calendar item with Dates". Pressing that button would use
the libecal API to store the ".ics" attachment in eds, and Dates would
then be notified to update it's own view.

Another such viewer might actually show the ".ics" file in a "Dates
widget". This is up to the implementer of the mime-part viewer.

Another example will be a PGP mime-part. The action to handle (viewing
it) the PGP mime-part might simply be asking Seahorse whether or not the
PGP key is a valid one. And if not, Seahorse would probably return
something bad so that the view can show a red label telling the user
that no, the key is not okay. Or a green label telling the user yes, the
key is okay.

And in future when whatever-company invents whatever-new mime-part which
they start attaching to E-mails, a whatever-new mime-part viewer can be
implemented and attached (as a plugin) to all the existing message view
implementations.




Right ... so, I'm interested in opinions, suggestions, etc etc


-- 
Philip Van Hoof, software developer at x-tend 
home: me at pvanhoof dot be 
gnome: pvanhoof at gnome dot org 
work: vanhoof at x-tend dot be 
http://www.pvanhoof.be - http://www.x-tend.be




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]