More fine tuning and refactoring of seahorse



I've spent a bit of time going over seahorse (mostly over the weekend)
and fine tuning various aspects of it:

UI COMMANDS

For a while now each module (pgp, gkr, ssh, pkcs11) have registered
command handlers for their various types of objects. This has been fine
tuned, and now revolves around the use of predicates (ie:
SeahorseObjectPredicate) which controls which objects apply to a command.

See seahorse_view_register_commands() and seahorse_view_register_ui().

This allows us to implement hiding of UI commands that don't apply to
any selected objects. We also intelligently highlight the objects being
operated on. For example if you have SSH keys, try this: Ctrl-A, then
right click, "Configure computer for secure shell"

Deletes and exports are also more intelligent, with each different
object type being deleted in an individual batch. Objects not
deletable/exportable will be skipped, and those commands will be
disabled if no such objects are selected.

Also I've generalized the strings in UI so they're not all 'key' related
if they apply to other types of objects.


KEYS FROM SERVERS

Keys from servers are now no longer implemented using gpgme_key_t. There
is a whole suite of GObject based classes that represent UIDs,
signatures, etc... and these are used to assemble keys objects when they
arrive from the servers.

Actual stuff related to GPGME is all named SeahorseGpgme* in the pgp
module. SeahorseGpgmeKey derives from SeahorsePgpKey and fills in
information from GPGME, and the same basic idea for SeahorseGpgmePhoto,
SeahorseGpgmeUid, SeahorseGpgmeSubkey.

The various GPGME key operations are now only callable with appropriate
SeahorseGpgme* objects, since they don't make sense for any keys that
didn't come from GPGME.

The upshot of this is that we can now have PGP keys from various
sources, perhaps even in the future parsed directly? Or perhaps directly
from gnupg rather than GPGME (a nice challenging project for someone so
inclined).


TONS OF OTHER FIXES

I went through the PGP dialogs and fixed tons of problems and errors,
and I hope all of this gives us a solid base to work from in the future.


Cheers,

Stef



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