Cleaning up the code was proving to be more difficult than I initially
thought. I have decided to rewrite the gui to make it less intimidating
and more easily modified.
Tracking two different versions for Ocarina and libsaria was too much
work. From now on, Ocarina and libsaria will have the same version.
Ocarina's version string will be set based on libsaria.
The ocarina package can track the startup time better than the launcher
script. Tracking it in the package will also make startup time
available to other callers.
Libsaria and Ocarina have a __vers__ variable. This contains a string
with the official version (eg. "Ocarina 4.1-dev" or "Libsaria 1.1").
"-dev" means that there have been changes since the last official
version.
We should only ever have one instance of the main window, so there is no
reason for it to be a class. I have turned it into a set of functions
that do the same thing.
We only have one instance of the main tabs, so there is no reason for it
to be a class. I have changed this into a set of functions that do
everything the old class did.
The main tabs now have a generic TabPage class that contains the content
added to the tab. This TabPage will control visibility of the content
and make it easier to find a page with specific content (no looping
through gtk boxes!)
Libsaria events now support starting specific callback functions in a
background thread. This replaces starting a specific event in the
background.
I have a library tab that is added to the main window through use of the
ocarina.add_tab function.
I have new tests for walking the tree and running multiple threads with
locks.
The web radio plugin can load pandora and grooveshark. This happens
when a web radio tab is selected. After the web document is loaded,
playing music will be paused.
I have begun creating the Ocarina 4.1 gui. So far, I can create and
resize a window. After a resize, the new size is saved and used again
when Ocarina is next started. I am also investigating drag and drop for
use with plugin loading.
I revised the Ocarina 4.0 map class so it will hopefully have better
performance. I also began working on a new testing system so testing
specific changes should be easier than with Ocarina 4.0