[mythtv] [mythtv-commits] mythtv/master commit: 0e84bfed2 by Michael T. Dean (sphery)

Michael T. Dean mtdean at thirdcontact.com
Sat Sep 17 22:32:09 UTC 2011

On 09/17/2011 05:27 PM, George Nassas wrote:
> On 2011-09-16, at 3:41 PM, Robert McNamara wrote:
>> For the record, we're not taking a vote
> Still, it's odd that it took nine days before someone even obliquely 
> admitted that the blunder was intentional. Hmph.

Well, somebody has been busy with real life and knew he wouldn't have 
time to have this argument--again.  And, in truth, all the complaining 
on the list about a topic that's been discussed to death has really 
sapped any motivation I would have had to work on MythTV in the short 
term, anyway.

I still don't have time for an argument, so I'll quickly rehash what 
reasons I can think of now for this change.  Feel free to search the 
lists for all the other arguments in all the other threads from the past.

a) Hard-coding a mapping of LEFT=BACK and RIGHT=SELECT into the code 
ignores the flexibility of UI creation in MythUI.  This is why arrow key 
acceleration doesn't work in Terra and any other horizontally-arranged 
themes.  This means that different themes will work 
differently--regardless of user key mappings--due to different layouts.
b) The partial support we had for arrow key acceleration meant that 
LEFT/RIGHT worked in some places and not in others--even to the extent 
that it worked for only some controls in some dialogs.***
c) Even if we try to query the dialog or menu to determine whether it's 
using a horizontal or vertical layout (and then use LEFT/RIGHT or 
UP/DOWN--whichever doesn't move to the next item--as substitutes for 
BACK/SELECT), this means that we can't have any arrow-key acceleration 
in themes that use grid layouts.
d) This matches the approach we're using in the rest of the UI, where 
we're undoing hard-coded "accelerator" bindings and requiring users to 
manually bind keys to appropriate actions.  For example, the use of 
number keys to quickly access various actions is being removed.
e) Many, many more reasons that I can't think of right now why Arrow-key 
accelerator functionality was /already/ removed from the rest of 
MythTV.  (Note that this change only removes the last vestiges of the 
functionality--things that were left in place, likely because no one 
else wanted to have this argument, again.)

(Please) See, also, all the (many) threads going back to the 0.21-0.22 
development time for more posts where these issues were discussed and 
the many proposed solutions were found to be insufficient (which is why 
most of the arrow-key acceleration had already been removed).

So, if you really want it back, feel free to write code to add support 
for QtScript scripting into mythui themes.  Then, if after testing the 
code, we're convinced that the implementation has more benefits (my 
thumb doesn't have to move as much) than disadvantages (navigation and 
crontrol of different themes work differently depending on the theme 
designer's whims, and regardless of the user's defined key mappings), we 
can include the capability that will allow themers to create advanced UI 
controls.  (And, really, even if the QtScript support doesn't get used 
to allow themers to control navigation, it will still be useful for 
other things, such as animations and even advanced, custom EPG layouts.)

I'll admit that the OSD menu is not ideal, now, because we're not using 
a screen stack for the OSD, like we do in the rest of MythTV, so when we 
pop up a "sub-menu" and you hit BACK, the entire OSD is 
dismissed--rather than the most recent item in the stack.  Therefore, I 
will be converting the OSD to use a screen stack, which will allow 
normal SELECT/BACK navigation--the same as we use in all the rest of 
MythTV.  Once complete, you will be able to enter a sub-menu with SELECT 
(as you can now), but you will also be able to dismiss /only/ that 
sub-menu with BACK (rather than dismissing the entire OSD--including the 
sub-menu, the menu, and any other OSD containers on screen, such as 
INFO, etc.).  In other words, the changes in master are not done--it's 
unstable and in development.  :)  That said, I'll be extremely busy with 
work for the next 5 weeks, so won't have it complete for at least 4 
weeks--assuming what little free time I'll have is spent working on 
MythTV code and not arguing on the list.


***  This was the most annoying part for me, recently--and the reason I 
finally pushed this change.  I have actually always enabled the 
Arrow-key accelerators setting ever since I began using MythTV, and I 
felt it was generally useful.  However, lately, I will bring up dialogs 
and try to use LEFT/RIGHT, only to find they won't work in this dialog 
or on this item, only to have to then use SELECT or BACK (meaning I've 
now spent >2x the time, and hit 2x the keys to perform an action).  The 
fact that I--a MythTV developer, and frequent MythTV user--can't 
remember where LEFT/RIGHT work and where they don't work as a 
replacement for SELECT/BACK says to me that the UX is broken.  We need 
consistency, and since there's currently no other plan that will give us 
consistency across the entire UI and across all themes (regardless of 
layout), we're starting, here, with a consistent lack of any kind of 
support for it.

More information about the mythtv-dev mailing list