Currently any GtkAction in MidoriBrowser is recognized as a command,
no arguments are supported. Commands affect either a newly run
instance or a currently running one.
This socket code makes single instance a mandatory feature assuming
if libunique is not available we can use sockets.
A bit of refactoring of MidoriApp is involved to make the command
logic independant of the nature of the instance handling.
If Midori is built with support for multiple instances and a
config folder is specified a new instance bound to that
folder is created.
The new "name" property in MidoriApp implements this.
There is hardly a practical need for the application
to be a singleton, it's cleaner and it prevents
extensions from reaching out for it before activation.
We want to be able to keep extensions in a state where
they don't actually do anything but merely provide
context information. Therefore don't pass the MidoriApp.
As soon as we want to use extensions, we activate them.
Extensions are now saved in an array in MidoriApp.
Property name localization is only useful if the
strings are meant to be used in a user interface,
such as is the case with WebSettings, or for
graphical interface builders, which are not of
our concern, since we don't use Glade and friends
and nobody else is going to use our widgets.
In short, make translation work much easier.
Something in the stack seems to magically turn
empty strings into about:blank, which is a problem
if we want to be able to start typing right away
when opening blank tabs.
We simply enforce the desired behaviour now.
The implementation relies on KatzeArray for the
most part and only does the storage with sqlite
behind the scenes. The change includes a working
History panel. Changes to the database are
committed in realtime.