Opened 12 years ago

Closed 12 years ago

#4451 closed defect (fixed)

Add keys to jump to top, middle, and bottom of Recorded Programs

Reported by: anonymous Owned by: cpinkham
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords: jump middle top bottom keys
Cc: Ticket locked: no

Description

The attached patch (written against 0.20.2), inspired by #3703, adds the following keys and abilities to Recorded Programs in mythfrontend:

  • "2" jumps to the top of the focused list, whether for groups (for which this means the category title) or episodes.
  • "5" jumps to the middle.
  • "8" jumps to the bottom. For the group list it acts the same as "2"; I could have had it jump to the "bottom," but it'd have been pointless given the list's design.

The patch also adds a description of the keys to keys.txt.

I wrote the patch because, with almost 1,100 recordings, it takes about 15 seconds to scroll by pagedown from the top to the bottom!

Attachments (2)

patch-pagekeys.cpp (3.2 KB) - added by ylee@… 12 years ago.
patch-pagekeys21.cpp (2.6 KB) - added by Yeechang Lee <ylee@…> 12 years ago.
Patch updated against r16237

Download all attachments as: .zip

Change History (10)

Changed 12 years ago by ylee@…

Attachment: patch-pagekeys.cpp added

comment:1 Changed 12 years ago by ylee@…

Adding my address added to the CC: list as SVN ate it when I created the ticket.

comment:2 Changed 12 years ago by cpinkham

Owner: changed from Isaac Richards to cpinkham
Status: newassigned

comment:3 Changed 12 years ago by cpinkham

Resolution: fixed
Status: assignedclosed

(In [15413]) Add keybindings for jumping to the top, middle, and bottom of the title and recordings lists on the Watch Recordings screen.

The patch in ticket #4451 hardcoded these actions to 2, 5, and 8 respectively, but I have modified it to allow the user to bind these actions to any key. The keybindings are PAGETOP, PAGEMIDDLE, and PAGEBOTTOM.

Closes #4451 by applying a modified patch from Yeechang Lee.

comment:4 Changed 12 years ago by Yeechang Lee <ylee@…>

Resolution: fixed
Status: closednew

I have the dubious honor of reporting a bug for code that I (originally) wrote. The PAGEBOTTOM and PAGEMIDDLE bindings don't work in the "virtual list" Watch List, Categories, Recording Groups, or Searches. They only work in vanilla recording lists, where iterating progIndex from 0 to (progLists[titleList[titleIndex]].count() -1) always points to a recording that appears in the list.

I did not discover the bug earlier as a) the patch was originally written against 0.20, which doesn't have Watch List, and b) in 0.21 I normally don't turn anything in Group View on except Titles and Watch List. I presume no one else has yet reported the bug because of reason b) and because PAGETOP, PAGEMIDDLE, and PAGEBOTTTOM don't have default keybindings so most people haven't discovered them yet.

Unfortunately, I don't yet understand how the virtual lists are constructed--writing the original patch tested the limits of my C++ skills, such as they are--so I hope someone else can fix the issue.

comment:5 in reply to:  4 Changed 12 years ago by Yeechang Lee <ylee@…>

Replying to Yeechang Lee <ylee@pobox.com>:

I have the dubious honor of reporting a bug for code that I (originally) wrote . . . I hope someone else can fix the issue.

Never mind! Fixed the issue myself after all. Attached patch seems to do the trick in my testing.

On a separate note, also added default keybindings for PAGETOP, PAGEMIDDLE, and PAGEBOTTOM, and documentation in keys.txt.

Changed 12 years ago by Yeechang Lee <ylee@…>

Attachment: patch-pagekeys21.cpp added

Patch updated against r16237

comment:6 Changed 12 years ago by cpinkham

Milestone: unknown0.21
Status: newaccepted
Version: 0.20.2head

comment:7 Changed 12 years ago by cpinkham

Type: enhancementdefect

comment:8 Changed 12 years ago by cpinkham

Resolution: fixed
Status: acceptedclosed

(In [16286]) Bugfix from Yeechang Lee to the PageTop/Middle/Bottom? code in PlaybackBox?.

This commit still doesn't add default keybindings for these since we have been trying not to add new defaults for optional items such as this because of the large number of existing actions and jumppoints that already exist. We prefer to leave optional actions like this up to the user to bind rather than risk potential conflict with an existing binding which the user may have configured.

Closes #4451.

Note: See TracTickets for help on using tickets.