PATCH: Keyboard navigation features
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Exaile |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
Ticket description
==================
The functionality for navigating the GUI with the keyboard is poor. There should be shotcuts starting, stopping playback, adjusting volume, seeking, giving focus to different GUI parts.
Version: v0.3.2.2
Revision number: 3898
Patch description
=================
Addition of keyboard navigation functionality
Made on revision number: 3898
Installed from repro, branch: lp:exaile
Tested on Ubuntu 11.10
Changes
=======
* Accelerator keys added in .ui files.
For English and Swedish language.
* Switch focus between panels:
focus() method added on Panel class and some subclasses.
Key combos added to switch to the different panels.
* Switch active playlist tab:
Methods added on PlaylistNotebock for this.
Alt+#, to a specific tab
Ctrl+PgUp/Down to next/prev.
* Keyboard shortcuts for seeking in tracks:
Methods added to player/_base.py for logic for this, instead of in gui.
Settings added (in file, not in gui).
* Keyboard volume change:
modify_volume added to player/_base.py
* Keyboard context menu (right click):
Added support to open with menu key, in files panel and playlist.
Still does not work on the playlist name tab, I didnt find a way to do it.
* Handle key actions in files panel on press instead of on release.
(This seems like the reasonably way to do it)
* Play/Pause-toggle key shortcut added. (Ctrl+P)
Notes
=====
I apologise for the size of this patch. It should have been delivered in smaller pieces, but it grew organically in many places at the same time. I unfortunately don't have time right now to take it apart. If you don't want to include everything I can try to take the time to take that away.
I was a little confused about when to add the glib.idle_add(...) calls. I think they are for switching to the GUI thread when handling events generated by other threads. Since my additions are always triggered by keyboard input, they are already on the GUI thread, so I have not used glib.idle_add(...).
There's a hack in ExailePlayer.
Related branches
summary: |
- Keyboard navigation features + PATCH: Keyboard navigation features |
Changed in exaile: | |
status: | Fix Committed → Fix Released |
This is a good idea. It's on my list of things to integrate to exaile, I don't think it'll quite work with the current trunk.