Tech-note 7db4235fc6
Tech-note [c520d9b307] at [2015-03-30 21:11:14] entered by user mario on [2015-04-05 16:57:32]:
Restructuring (plugin scheme, pyz package, gtk state properties)
The upcoming release 2.1.5 will be slightly restructured.
Plugin meta data is now utilized fully.
- Configuration data and built-in .title attributes will no longer reside in plugins as code.
- Plugin priority: fields are used for defaults on first startup.
Channel/plugin lookup code will use introspect/pkgutil.
- ST2 no longer depends on a fixed global path. The /usr/bin loader is now just a slim wrapper.
- Long term ST2 may become a proper Python package in itself even.
- And this opens up the possibility to use local plugins in ~/.config/streamtuner2/plugins/ later.
It's planned to package it up as standalone PYZ (Python ZIP) application. (As alternative to DEB/RPM builds).
- Works pretty well already.
- Also the GtkBuilder UI file is now compressed.
- The logo/banner is now builtin. Channel icons are embedded in meta comment blocks (albeit that wasn't necessary, just looks tidier.)
State variables (
.current_channel
,,.channel_names
.channel().current
,.default
,.row()
) will partly be replaced by direct Gtk properties or lookups. In particular after initialization the mapping hasn't always be reliable.- For now only the channel enumeration is dynamic. (Allowed the reordering per GUI already).
- The initialization woes, namely
.first_show()
, still need some rework. (State variables are not completely avoidable, as Gtk events usually fire before the widget state properties become usable.)