Switch configuration logic from a custom structure to
fully rely on MidoriWebSettings. This includes revamping
the preferences dialog. The old logic is not yet
replaced completely, this will follow soon, thus several
settings will have no effect right now.
A lot of new properties are added, which are going to
be the basis of the coming configuration replacement.
Also a little cleanup is done in a few places.
The menu items were sensitive in reversed logic and the Stop item
had the icon and accelerator of the Reload item.
Now the sensitivity is fixed and the Stop item is Stop again.
Based on the implementation of localization via Gettext
contributed by Enrico Tröger, a few adjustments were made
to allow Midori to be properly localized. Initially
German is fully supported.
Add the actions UndoTabClose, BookmarkNew, SaveAs, SourceView and Print
to the context menu. Also add UndoTabClose to the Go menu, remove
STOCK_SOURCE_VIEW and remove ui.h which is obsolete.
The 'browser' struct is superseded by MidoriBrowser, which actually
represents a window that holds pages, i.e. tabs. The tabs are currently
of the type MidoriWebView, which is a slightly enhanced WebView. Also
MidoriWebSettings is introduced to hold additional settings that Midori
needs.
The other two new classes are MidoriTrash, representing closed tabs and
windows and MidoriPanel, representing the side panel.
The refactoring allows for several features to be much more easily
implemented, such as full support for multiple windows and instant
saving of modified files, such as bookmarks or the session. Regressions
are expected and not everything is done yet.
A new menuitem toggles Fullscreen mode, which means that the
menubar is hidden, the window is maximized and window manager
decoration is removed. A new button appears in the navibar
which reverts this process.
Fullscreen relies entirely on the window manager, which has the
advantage that window manager keybindings have the same effect
as activating the Fullscreen menuitem. At the same time this
means that Fullscreen won't work at all without it.
Add default font name and size, minimum font size and encoding
preferences. And implement Middle click goto with a preference.
Also the preferences dialog is a bit cleaned up.
Initially new bookmarks can be added. The panel gains a small
toolbar to Add, Edit and Delete items.
Besides a serious bug in the XBEL implementation is fixed and
a number of error checks is added..
The bookmarks panel can display a tree of bookmarks and allows
editing and deleting of bookmarks via a context menu.
The XBEL implementation has been altered to work with a
reference count model to allow panels to update on their own.
If the window is maximized the effective size matches the available
screen size, thus after restarting the browser we end up with a
window the size of the screen in normal state.
It is often useful to have multiple browser windows opening at once,
and having them open on top of each other is counterproductive.
Most window managers, on the other hand, have code to decide where
to place a window so that it is accessible by the user.