Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: MythTV: Dev

Issue with new jumppoints (& keybindings?)

 

 

MythTV dev RSS feed   Index | Next | Previous | View Threaded


jcaputo1 at comcast

Dec 8, 2003, 9:05 AM

Post #1 of 3 (1030 views)
Permalink
Issue with new jumppoints (& keybindings?)

So, I upgraded to CVS on Friday and decided to check out the new
jumppoints. I put in a jumppoint for the Guide Grid for the 'M' key
(seemed logical, since that's the key it had been using in LiveTV mode
anyway). Everything was working fine until I went to rip a CD and
wanted to hand-edit the track titles using my wireless keyboard... as
soon as I started to type a track name with an 'M' in it, I exited
MythMusic and was taken to the guide grid!

Obviously we need something more here for screens which contain various
types of basic control widgets (text fields, spinboxes, etc)... here
are two possibilities:

(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 :-)

(2) Create a new keybinding context called QtWidget or MythWidget, which
is active whenever an appropriate widget has keyboard focus, and in
that context pass all or most actions to the widget; only if the widget
doesn't handle them do they get passed to the parent or global context
or jumppoint mechanism. I haven't really looked at the new jumppoint &
keybinding code, so I'm a little fuzzy on the specifics of how this
would work... are the keybinding contexts hierarchical (i.e., can a
context have a 'sub-context', with actions propagating up through
contexts until they get to 'Global'), or is it just always either
'current context' or 'global' ?

Any other ideas?

-JAC


jdonavan at gorpe

Dec 8, 2003, 7:19 PM

Post #2 of 3 (963 views)
Permalink
Re: Issue with new jumppoints (& keybindings?) [In reply to]

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.


jcaputo1 at comcast

Dec 9, 2003, 10:48 AM

Post #3 of 3 (998 views)
Permalink
Re: Issue with new jumppoints (& keybindings?) [In reply to]

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

MythTV dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.