Internet radio browser GUI for music/video streams from various directory services.

⌈⌋ ⎇ branch:  streamtuner2


History of uikit.py of 39304eb90b41f27d

History of the file that is called uikit.py at checkin 39304eb90b41f27d

2020-12-12
17:30
Reimplement combobox.parse_options for builtin/unprocessed record_flags, also make quicksearch not expand vertically anymore for Gtk3. file: [41c79be167] check-in: [d9dcff66f3] user: mario, branch: trunk, size: 29979 [annotate] [blame] [check-ins using] [diff]
15:12
Set normal_bg="", and let pygtk yield warnings again file: [7af8488fcd] check-in: [74823cf40c] user: mario, branch: trunk, size: 29908 [annotate] [blame] [check-ins using] [diff]
15:10
Add uikit.get_bg_color() for TreeView search, but keep #ffffff for Gtk2 file: [23eda88d68] check-in: [2956305120] user: mario, branch: trunk, size: 29890 [annotate] [blame] [check-ins using] [diff]
2020-10-31
16:59
select: is now preparsed in pluginconf (but configwin/combobox expected tuple-list instead of dict till now; might need further changes) file: [42b5afa6c8] check-in: [8d130efe89] user: mario, branch: trunk, size: 29490 [annotate] [blame] [check-ins using] [diff]
2018-12-31
11:33
Release as 2.2.1 file: [d6b56fa41f] check-in: [2877d4a4bb] user: mario, branch: trunk, size: 29456 [annotate] [blame] [check-ins using] [diff]
2017-01-09
16:04
failed attempt to make config tables resizeable file: [12f5bb606e] check-in: [83f54d5ffd] user: mario, branch: trunk, size: 29105 [annotate] [blame] [check-ins using] [diff]
2016-12-31
14:14
Fetch meta["title"] instead of ["id"] for About dialog file: [c3a8703c77] check-in: [576bac1d25] user: mario, branch: trunk, size: 29021 [annotate] [blame] [check-ins using] [diff]
2016-12-17
10:51
fix .save_formats reference for file dialog file: [974ce2f9f3] check-in: [440ac1977d] user: mario, branch: trunk, size: 29030 [annotate] [blame] [check-ins using] [diff]
2016-12-11
19:16
Support file open dialog file: [bd76b93be8] check-in: [fdc2e9e4c4] user: mario, branch: trunk, size: 29029 [annotate] [blame] [check-ins using] [diff]
2016-12-03
14:47
Introduce Gtk theme switching again. file: [bb85fd7f1b] check-in: [303e1c8e48] user: mario, branch: trunk, size: 28934 [annotate] [blame] [check-ins using] [diff]
2016-11-09
15:15
Strip carriage return from plugin meta block, which causes field reading to fail on Windows. And use `empty_pixbuf` as fallback for uikit.pixbuf() in case the content isn't valid base64 still. file: [ce679bb712] check-in: [730e6dc9f1] user: mario, branch: trunk, size: 28907 [annotate] [blame] [check-ins using] [diff]
2016-10-31
21:52
Python3 compatibility: can't use len() on TreeModelRow (Gtk3 doesn't return ListStore row). So use simpler but less exact try/except block to probe for our dict-ListStore and its pixbuf column. file: [2f76cfbd7b] check-in: [e667190902] user: mario, branch: trunk, size: 28763 [annotate] [blame] [check-ins using] [diff]
2016-10-28
23:18
bump minor versions file: [ffdf4878d3] check-in: [1478740ada] user: mario, branch: trunk, size: 28720 [annotate] [blame] [check-ins using] [diff]
23:12
Enable `list`/`array`/`table` config schemes in addition to `dict`. Currently unused, just added because it's little more code. No custom value="x,x,x|y,y,y" parser yet. Not for `dict` either, as it's only used by specbuttons with a predefined list. file: [26d04e8c56] check-in: [50c68197c7] user: mario, branch: trunk, size: 28720 [annotate] [blame] [check-ins using] [diff]
18:11
Move liststore_edit() and app_bin_check() from configwin. to uikit.

Allow ListStore for config_play/_record/_specbuttons without `editable` row [2], which is now a property of the CellRenderers (instead of a cell-attribute).

Specialized uikit.config_treeview() builds a custom two-column TreeView now. file: [1647517a84] check-in: [d90db23c73] user: mario, branch: trunk, size: 28574 [annotate] [blame] [check-ins using] [diff]

2016-10-27
16:42
Introduce `dict` configuration type, prepare TreeView in uikit (similar to record/play config table). file: [22fa63b417] check-in: [095de3353f] user: mario, branch: trunk, size: 27170 [annotate] [blame] [check-ins using] [diff]
2015-05-24
08:52
Introduce channel.fixed_size=[24,24] to constrain favicon CellRendererPixbuf. Works in conjunction to .img_resize= attribute for favicon/img converter. Set expand:False in default datamap[] for favicon cell. file: [a196775096] check-in: [39304eb90b] user: mario, branch: trunk, size: 26313 [annotate] [blame] [check-ins using] [diff]
2015-05-14
00:05
Resize logo together with toolbar buttons. file: [b587b433a7] check-in: [edc282b52b] user: mario, branch: trunk, size: 26346 [annotate] [blame] [check-ins using] [diff]
2015-05-12
20:01
Split up post-proccessing filters (run after load/update_streams), use filter callback list now. Separate prepare display filters as well (so to hook dedicated favicon callback into). Move conf.show_favicons option into uikit.columns() signature. file: [fe56c2beaf] check-in: [475f736d5d] user: mario, branch: trunk, size: 26345 [annotate] [blame] [check-ins using] [diff]
2015-05-09
21:36
Return ListStore, rowmap and pix_entry from uikit.columns() file: [9362b926ba] check-in: [8b187d699a] user: mario, branch: trunk, size: 26307 [annotate] [blame] [check-ins using] [diff]
2015-05-06
00:07
Use Gtk3/gdk.Color.parse() as fallback to .get_colormap(), get rid of style copying (was only necessary with the previous theming support IIRC). file: [1f0ba0b7e4] check-in: [ae1d856e69] user: mario, branch: trunk, size: 26345 [annotate] [blame] [check-ins using] [diff]
2015-05-03
20:26
Add some version: bumps and add a few versions to depends: references. file: [baec4be4e9] check-in: [beebec9c76] user: mario, branch: trunk, size: 26464 [annotate] [blame] [check-ins using] [diff]
14:29
Catch invalid image files when creating pixbuf in uikit.columns() file: [38277dba47] check-in: [61c264fdcb] user: mario, branch: trunk, size: 26464 [annotate] [blame] [check-ins using] [diff]
14:08
Add .wrap() from configdialog for general use. file: [1e617e4da1] check-in: [1ad0b9e76b] user: mario, branch: trunk, size: 26248 [annotate] [blame] [check-ins using] [diff]
2015-05-02
05:44
Stub category tree building main[] in case of wrapped primary group. Add uikit.bg on STATE_ACTIVE, skip existing EventBox widgets. file: [c6a56b517d] check-in: [6bf4c5e61e] user: mario, branch: trunk, size: 25426 [annotate] [blame] [check-ins using] [diff]
2015-04-28
17:35
Move `state.json` and .current restoration into GenericChannel.gui(). Current category is reselected by TreeView traversal on instantion now. Previous state now load through config.state() for channels/__init__, not in main/init_app_state anymore (just row:expand / winsizes now). Disable .currentcat() overwriting, redundant now in display_categories(). Still need to avoid second .select_current() call in first_show(). file: [6f3acc5193] check-in: [ffaf262c43] user: mario, branch: trunk, size: 25356 [annotate] [blame] [check-ins using] [diff]
2015-04-27
16:32
Fix uikit.do spool appending with len(idle_tasks) instead of -1. Unpack window state treepath tuple conversion into 1:2:3 strings. file: [33d6c42a98] check-in: [9930020237] user: mario, branch: trunk, size: 25354 [annotate] [blame] [check-ins using] [diff]
2015-04-26
22:21
Fixed gtk.main_iteration() extraneous parameter in gui_startup. file: [80c9deb8b2] check-in: [748d2aaed8] user: mario, branch: trunk, size: 25323 [annotate] [blame] [check-ins using] [diff]
15:35
Cover most catched exceptions with log messages. file: [09bab8deb1] check-in: [363dce5eb9] user: mario, branch: trunk, size: 25328 [annotate] [blame] [check-ins using] [diff]
2015-04-24
21:54
Add spacing for config dialog options (indented per plugin). Narrower labels, icons now show up. Undo newline-removal for Gtk3 tooltips (work with preformatted text instead). file: [0b23e6b513] check-in: [c02e9a3ec0] user: mario, branch: trunk, size: 25284 [annotate] [blame] [check-ins using] [diff]
05:01
Add .desktop and .url to export format file extensions probing and SaveAs dialog. file: [36c3fef689] check-in: [a35c889740] user: mario, branch: trunk, size: 25285 [annotate] [blame] [check-ins using] [diff]
00:00
Add conf.nothreads flag and --nt cmdline flag, to prevent Gtk3 idle update race conditions if need be. (Still flaky for initial startups.) file: [cf9953748a] check-in: [ce0e9149db] user: mario, branch: trunk, size: 25263 [annotate] [blame] [check-ins using] [diff]
2015-04-23
18:57
Make uikit.do() manage a task spool itself. Run new tasks immediately if invoked already within gtk_idle callback. Move uikit.tree column creation into separate function, for immediate use through GenericChannel.gui() - instead of destroying+repopulating it on category-list reloads. file: [2a34911ea4] check-in: [7f51022370] user: mario, branch: trunk, size: 25102 [annotate] [blame] [check-ins using] [diff]
01:08
Add TreePath() abstractions for app_state/restore. file: [025a11079e] check-in: [655dd9f19c] user: mario, branch: trunk, size: 24232 [annotate] [blame] [check-ins using] [diff]
2015-04-21
06:05
Replace old __print__/dbg.XYZ references with new log.XYZ() wrapper. file: [14781849fd] check-in: [ebae9e51ac] user: mario, branch: trunk, size: 23811 [annotate] [blame] [check-ins using] [diff]
2015-04-19
16:31
Simplify uikit.do() callback for GUI updates from within threads. Search plugin led to a memory corruption due to not using it for updates. file: [59736bfdc8] check-in: [aa264c28e2] user: mario, branch: trunk, size: 23894 [annotate] [blame] [check-ins using] [diff]
2015-04-17
21:07
Tested fixed-width for pixbuf cellrenderer in stream lists; little effect. Set .module attribute for auxiliary windows (unused). file: [ef50a93d22] check-in: [b434d63e4e] user: mario, branch: trunk, size: 23868 [annotate] [blame] [check-ins using] [diff]
2015-04-11
16:09
Give up. Just use embedded PNG for transparent empty_pixbif. file: [d93cf9191f] check-in: [c4adfede4a] user: mario, branch: trunk, size: 23769 [annotate] [blame] [check-ins using] [diff]
01:20
Initialize with empty station TreeView again. Make bookmarks channel not override the behaviour. (This sort of works around the .current category mismatch after startup.) file: [88cac9ca23] check-in: [6109a1a671] user: mario, branch: trunk, size: 23850 [annotate] [blame] [check-ins using] [diff]
2015-04-10
17:36
Move appstate restoration into init function. Implemented "quit" hook for action.cleanup_tmp_files, fixed app_restore `w.set_current_page` bug. file: [ef2af84135] check-in: [8622bed197] user: mario, branch: trunk, size: 23699 [annotate] [blame] [check-ins using] [diff]
16:40
Finalize allowed filename extensions for exporting. Normalize Python3 string decoding (errors='ignore' per default). Update XSPF and SMIL export. Use row={} template now, instead of just carrying over title= to rewritten playlists. file: [913007a2bb] check-in: [e136a78c73] user: mario, branch: action-mapfmts, size: 23699 [annotate] [blame] [check-ins using] [diff]
13:50
Implement filename update in SaveAs dialog on changing FileFilter (.m3u, .pls, .xspf) extension. file: [6ca85da059] check-in: [0a9cb60b3a] user: mario, branch: action-mapfmts, size: 23688 [annotate] [blame] [check-ins using] [diff]
2015-04-09
21:57
Figured out how to use standard confirm-overwrite dialog (buttons were defined, but no actions associated). Removed custom msg box. file: [f012e456ad] check-in: [5539fcccc2] user: mario, branch: action-mapfmts, size: 23071 [annotate] [blame] [check-ins using] [diff]
14:50
Still some parameter renaming in action module to do. Optional support for row={} parameter in play/record calls, in case .pls/.m3u needs to be constructed (to retain title=). Adapt action playlist exporting to wrapper object, which preconverts plain URL lists or [rows] list, can itself call convert_playlist(), and optionalized file writing. Rewrite main save() and exportcat.save() to utilize new save_playlist(). Implement overwrite confirmation for Save-as dialog. file: [5abf53dbd8] check-in: [b784d408c1] user: mario, branch: action-mapfmts, size: 23117 [annotate] [blame] [check-ins using] [diff]
2015-04-07
19:49
Split up Extensions› submenus. Register major plugins (timer, myoggradio, radiotray) as direct menu entries, but complex extensions (exportcat) as subentry still. file: [0158bdc6ec] check-in: [a872fb7d36] user: mario, branch: trunk, size: 22450 [annotate] [blame] [check-ins using] [diff]
2015-04-06
18:55
Add workaround for ArgumentParser, which tries to map config: descriptors onto AP.add_argument(*yikes) params. file: [594d66e076] check-in: [24a5fe69a1] user: mario, branch: trunk, size: 22352 [annotate] [blame] [check-ins using] [diff]
2015-04-05
14:08
Manually register addon widget signals. Otherwise main keeps bugging with GtkWarnings when timer plugin is disabled. file: [c920bbe1ed] check-in: [33e106bce5] user: mario, branch: trunk, size: 22358 [annotate] [blame] [check-ins using] [diff]
2015-04-04
06:06
Compress gtkBuilder file with zlib for distribution. (gzip not usable without workarounds in Python2) file: [f968e46470] check-in: [780f0ca590] user: mario, branch: trunk, size: 22122 [annotate] [blame] [check-ins using] [diff]
2015-04-03
20:46
Removed Gtk `theme` configuration options. (Didn't work anymore.) -- Addendum: If anyone has been using this, please drop me a line; it could become a plugin now.. file: [e7bfffdeb1] check-in: [ad852f14fe] user: mario, branch: trunk, size: 22072 [annotate] [blame] [check-ins using] [diff]
20:43
Made channel tabs reorderable. Now kept in config/window.json as `tab_order` and current page saved as `tab_current` instead of pageno. Disabled progressbar changes for ahttp, made search_server search run in a thread so status can be shown. file: [2c0d4193cf] check-in: [6fab0e7170] user: mario, branch: trunk, size: 22387 [annotate] [blame] [check-ins using] [diff]
2015-04-02
15:29
Adapted uikit.hbox to allow left or right column to be expanded/filled. file: [efa7474e76] check-in: [f3f635ba8d] user: mario, branch: trunk, size: 21658 [annotate] [blame] [check-ins using] [diff]
2015-04-01
17:39
Add conf.get_data() alias, which automatically fetches resource relative to config module (that is, works on the global path, or within pyzip archive). Move module_list() from channels. into config, as it combines plugins and config management anyway. file: [37cbc8f921] check-in: [07d2a291cd] user: mario, branch: trunk, size: 21585 [annotate] [blame] [check-ins using] [diff]
15:42
More PixbufLoader workarounds for Gtk3, and get_data() casting for Python 3. file: [e359ed9045] check-in: [f5d46dca11] user: mario, branch: trunk, size: 21665 [annotate] [blame] [check-ins using] [diff]
11:15
Remove gtk/visibility setting in favour of show_all(). Fix pixbuf creation, b64decode ignoring non-base64 data. file: [048bd8afa3] check-in: [1786e24701] user: mario, branch: trunk, size: 21402 [annotate] [blame] [check-ins using] [diff]
2015-03-31
19:24
Moved load_theme() into uikit. file: [cbea8fe804] check-in: [964bb06ce1] user: mario, branch: trunk, size: 21287 [annotate] [blame] [check-ins using] [diff]
16:17
Added pixbuf() creation method (from base64 stringified PNG to gdk.Pixbuf) file: [a2be3b7a05] check-in: [7b1ee3b5a6] user: mario, branch: trunk, size: 20972 [annotate] [blame] [check-ins using] [diff]
2015-03-30
17:40
Use plugin meta data for about dialog. file: [b71d7199bb] check-in: [2040a91410] user: mario, branch: trunk, size: 21950 [annotate] [blame] [check-ins using] [diff]
2015-03-29
14:43
Renamed mygtk.py → uikit.py. Rename `mygtk` to `uikit`. Move AuxiliaryWindow and About dialog from main. file: [9c82dd0573] check-in: [b9cadd6925] user: mario, branch: trunk, size: 21992 [annotate] [blame] [check-ins using] [diff]
2015-03-28
07:25
Disable some debugging, move gui_startup() to mygtk collection, allow markup for mygtk.label() text. file: [dec662c44d] check-in: [164043075d] user: mario, branch: trunk, size: 20322 [annotate] [blame] [check-ins using] [diff]
2014-08-15
00:46
Make channel tab positions configurable. file: [2d60af2beb] check-in: [395935d038] user: mario, branch: trunk, size: 19005 [annotate] [blame] [check-ins using] [diff]
2014-05-31
23:32
less debug output file: [e851df07e7] check-in: [898d5ecf64] user: mario, branch: trunk, size: 18752 [annotate] [blame] [check-ins using] [diff]
2014-05-28
01:33
Prevent ComboBoxText in settings dialog to take focus when scrolling over per mousewheel. file: [d1f99661a1] check-in: [0d8e75189e] user: mario, branch: trunk, size: 18727 [annotate] [blame] [check-ins using] [diff]
2014-05-25
16:36
Allow to supply ordered (key,value) list[] to mygtk.ComboBoxText. Config specifiers can use ID=abc|XY=xyz|... now. file: [7b64057ace] check-in: [7b5b2a40e8] user: mario, branch: trunk, size: 18487 [annotate] [blame] [check-ins using] [diff]
11:57
Use mygtk.ComboBoxText also for theme switcher button. Moved .vbox and .label creating into mygtk, ComboBoxText.set_default() now automatically adds non-predeclated/custom value at end of liststore. file: [aef1299a5d] check-in: [9ad64ad53a] user: mario, branch: trunk, size: 17701 [annotate] [blame] [check-ins using] [diff]
00:41
Add custom ComboBoxText for [select] list plugin config options. file: [f12cb00871] check-in: [bcbd6a4624] user: mario, branch: trunk, size: 16968 [annotate] [blame] [check-ins using] [diff]
2014-05-12
20:10
Enable empty entries=[] display in mygtk.columns (empty channels/categories/bookmarks) file: [eafa93f0f3] check-in: [fa410c856a] user: mario, branch: trunk, size: 15992 [annotate] [blame] [check-ins using] [diff]
2014-04-10
04:31
* Fixed gtk_list_store_get_value: assertion `column < list_store->n_columns' by removing {width:20} reference from treeview datamap. * row.setdefault() for absent search_col/set and deleted state * More __print__/dbg colorization * Disabled pson.filter_data in favour of str casting in mygtk.columns() * Removed streamactions.popup PY2/PY3 workaround with named args * More .iteritems() removal file: [2fdc371b2a] check-in: [1beab0563e] user: mario, branch: py3, size: 15956 [annotate] [blame] [check-ins using] [diff]
2014-04-09
00:23
Temporary fix for Gtk undefined color warnings, workaround for changed GtkMenu.popup() signature in Gtk3. Debug colors for mygtk.columns() creation. file: [f90aa065b1] check-in: [489da08a74] user: mario, branch: py3, size: 15642 [annotate] [blame] [check-ins using] [diff]
2014-04-08
22:16
Add unicode() vs str() to compat2and3 file: [3b0c65b63e] check-in: [0458e0e0d1] user: mario, branch: py3, size: 15500 [annotate] [blame] [check-ins using] [diff]
21:16
rename http to ahttp to avoid conflict with Python3 modules, change .iteritems and xrange, remove same remaining plain print statements file: [91f32ed114] check-in: [d3b1418bc6] user: mario, branch: py3, size: 15499 [annotate] [blame] [check-ins using] [diff]
2014-04-07
00:33
Move __print__ into config, add unified dbg.COLOR codes file: [98fa2cab88] check-in: [7ef1553f61] user: mario, branch: trunk, size: 15327 [annotate] [blame] [check-ins using] [diff]
2014-04-06
02:16
rename ui.xml to gtk2.xml for parity with gtk3.xml; Gtk3 suddenly works with gi 1.33 (well, lots of errors still, but main window ok) file: [74d7664de2] check-in: [e7a0fb24c8] user: mario, branch: trunk, size: 15363 [annotate] [blame] [check-ins using] [diff]
2014-01-06
22:45
prepare for gtk3 file: [42f942998a] check-in: [c0702405f8] user: mario, branch: trunk, size: 15130 [annotate] [blame] [check-ins using] [diff]
2014-01-05
01:23
fix Pixbuf has_alpha bug due to redundant typecast prior liststore appending file: [29ba27c9de] check-in: [caee086b9c] user: mario, branch: trunk, size: 14615 [annotate] [blame] [check-ins using] [diff]
2012-01-09
03:45
Added: 2.0.8.5 file: [8d9a2e155e] check-in: [ea81d1ad5d] user: mario, branch: trunk, size: 14511 [annotate] [blame] [check-ins using]