[mythtv] Ticket #1480: Fix discrepancies in asFileNotFound handling in PlaybackBox
Michael T. Dean
mtdean at thirdcontact.com
Thu Mar 9 01:00:17 UTC 2006
On 03/08/06 19:55, MythTV wrote:
>#1480: Fix discrepancies in asFileNotFound handling in PlaybackBox
>
> The attached patch fixes discrepancies in the handling of non-existent
> recordings (as described in http://www.gossamer-
> threads.com/lists/mythtv/users/188566#188566) in the !PlaybackBox (version
> 0.19 and SVN trunk).
>
Way too many details/implementation decisions for the bug database, but
sending for the record...
As discussed in the thread "Missing Files" (
http://www.gossamer-threads.com/lists/mythtv/users/188566#188566 ),
there's a discrepancy with the way Myth handles missing files.
Basically, the issue is that until a ProgramInfo's availableStatus has
been set to asFileNotFound (technically, as long as it's
asAvailable--the default), users are able to display the ActionPopup for
the recording. Once the available status has been updated to reflect
the fact that the file is missing, the user can *only* get the
AvailablePopup when asking for the ActionPopup (hitting INFO or using
cursorRight with arrow key accelerators enabled).
So, there are (at least) 3 possible approaches we could take to make the
behavior more consistent (listed from least- to most-invasive).
1) Always allow the user to show the ActionPopup for asFileNotFound
programs (possibly showing the AvailablePopup first and then the
ActionPopup)
2) Identify earlier that the file is not available, so the user can
never pop up the ActionPopup (instead only getting the AvailablePopup),
thereby only allowing the user to delete the recording with the DELETE
key (which many users may not have mapped on their remotes)
3) Identify earlier that the file is not available and if the user
requests the ActionPopup, display it but with some options disabled/missing.
Until I started thinking about how to create a patch, it never seemed
wrong to me to allow the ActionPopup to display for a recording whose
file does not exist because selecting invalid actions (like Play) would
be handled later. However, making them available if they don't apply
seems wrong. Therefore, I'm thinking that 1) is not a valid approach as
it provides no feedback to the user without the AvailablePopup and is
annoying with the AvailablePopup (which may be triggered again by
selecting actions like Play). Also, 2) seems like a cop-out and reduces
usability, so I felt 3) is the best approach.
Leaving off the unavailable actions made for a cleaner UI than providing
a "normal" ActionPopup with some actions disabled. However, to ensure
the user has feedback explaining why he/she is getting a different
Action popup, I provided a message saying that the file was not found.
Because of the extent of differences, it seemed better to create a new
showFileNotFoundActionPopup() function than to use conditionals in
showActionPopup(). Doing so also prevents the accidental addition of
functionality to the FileNotFoundAction popup (which could happen if a
conditional is forgotten when new functionality is added to the Action
popup).
I considered requesting feedback on which Actions should apply to
non-existent recordings, but decided to start small and add new ones if
requested. Below are the possible Actions that can be taken from the
full fledged Action popup. Those marked "N/A" do not apply, those
marked "Y" do apply, and those marked "?" could be made to apply or not.
If anyone feels strongly that some of the others should be added to the
FileNotFoundPopup, please let me know.
Thanks,
Mike (the extra-wordy guy who's trying to help)
- Play|Play from... (N/A--Won't work without file)
- (Remove from|Add to) Playlist (?--Could be useful for deleting a
bunch of recordings, but would allow access to job options and since
it's as easy to just delete recordings one-by-one than to add files one
by one to the playlist, I left it out. The user can still add a group
of recordings to the playlist--even if some/all are non-existent)
- Stop Recording (N/A--Is it even possible for recstatus to be
rsRecording if availableStatus is asFileNotFound? Since stopping a
recording with a non-existent file is functionaly identical to Deleting
an in-progress recording with no file, I left it off.)
- { (Dis|En)able Auto Expire (N/A--autoexpire will not delete a
non-existent recording.) or
- Storage Options (N/A)
- (Dis|En)able Auto Expire (N/A--Autoexpire will not delete a
non-existent recording.)
- (Do not p|P)reserve this episode (N/A--There's nothing to
preserve.) }
- Recording Options (?)
- Edit Recording Schedule (?)
- Show Program Details (Y--May be useful in helping determine
whether to delete recording.)
- Change Recording Group (?-Could be useful to put non-existent
recordings into a group that can be added to a playlist for deletion.)
- Change Recording Title (?)
- Change Playback Group (?--Probably not too useful since we can't
play it back until we find the file.)
- Job Options (N/A)
- (Stop|Begin) Transcoding (N/A--won't work without file)
- (Stop|Begin) Commercial Flagging (N/A--won't work without file)
- (Stop|Begin) user jobX (N/A--won't work without file)
- Delete (Y--The main reason to have a FileNotFoundAction popup.)
More information about the mythtv-dev
mailing list