[mythtv] Issue with new jumppoints (& keybindings?)

Joseph A. Caputo jcaputo1 at comcast.net
Tue Dec 9 12:48:19 EST 2003


On Monday 08 December 2003 21:19, J. Donavan Stanley wrote:
> Joseph A. Caputo wrote:
> >(1) disallow using valid text-editing keys as jumppoint bindings or
> >other keybindings (includes all alphanumerics, cursor keys, PgUp/Dn,
> >Home/End, Insert/Delete, Backspace, etc...)
> >
> >I don't like this option at all; basically I wouldn't even consider
> >it... I don't know why I bothered to mention it :-)
>
> Personaly I prefer that method.  It's the only way to give consistant
> behavior.  "Why doesn't MythTV swtich to the DVD player when I hit
> the DVD button on my remote?" "Because you happened to have the focus
> on the wrong type of control.  What you SHOULD have done was hit
> down, down, DVD to go to the DVD player!".  If all jump buttons are
> forced to be either function keys or keys qualified via ALT or CTRL
> you get clean consistant behavior across the board.  But then, I'm
> looking at controlling MythTV by remote 99.99% of the time.  For
> those oddball times I need to enter text I'll use an on-screen
> keyboard.


Hmmm, good point... I guess for now I'll just define my jumppoints to be 
bound to F1-12 or Ctrl-/Alt- keys.  Might be a good idea to come up 
with a default set of bindings that conforms to that.

On another note, I was trying to work out an optimal set of keybindings 
for the new mechanism in combination with my remote, and I think it 
would be a good idea to split the 'TV Playback' context into 'LiveTV 
Playback' and 'TV RecordedPlayback', to better maximize the 
reuseability of keys. There are currently actions in the TV Playback 
context that are only applicable in one mode or the other, taking up a 
keybinding that could otherwise be used elsewhere.

As it stands now, the action(s) determined for a key are determined by 
creating a list of the action(s) for the current context + the 
action(s) for the Global context.  Using this approach, in order to 
split the 'TV Playback' context, we would need to duplicate any common 
actions into each of the new contexts.  Not a problem, but what if...

...what if we had the concept of hierarchical or 'sub'-contexts?  Then 
an action list could be built from: action(s) for current context + 
action(s) for parent context + ... + actions for Nth ancestor context 
+ ... + action(s) for global context.  Realistically, the hierarchy 
wouldn't be more than 3 levels deep, vs. the 2 we have now.  Under this 
scheme, we could do:

Global
|
->TV Playback Common
	|
	->LiveTV
	|
	->Recorded

Any actions/binding combinations common to both 'LiveTV' and 'Recorded' 
could live in 'TV Playback Common'.  As long as a binding isn't 
overridden in one of the sub-contexts, it will be handled by the 
parent.  This could probably be accomplished simply by adding a 
'parentcontext' column to the 'keybindings' table; a NULL value in the 
column would indicate that the parent is 'Global'.

Isaac, do you think this would be a Good Idea(tm), and if so, would it 
require modification to anything other than 
MythMainWindow::TranslateKeyPress and dbcheck ?  If it's really that 
simple, I'll code it up.

-JAC



More information about the mythtv-dev mailing list