[mythtv] [Patch] Set Recording Time dialog

Dan Schwarz mythtv-dev@snowman.net
Thu, 05 Dec 2002 22:13:32 -0500


This is a multi-part message in MIME format.
--------------090107090107050800030807
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

1I've been working on this one for a while.  Now you can resolve 
recording conflicts by adjusting a recording's start/stop times. So if 
you have program A that runs from 2:00 PM to 3:00 PM and Program B that 
runs from 2:55 PM to 3:30PM,  you can adjust program B to start 
recording 5 minutes late, or program A to stop recording 5 minutes early.

Consider this a first draft of the feature -  not polished, but it's a 
start.

The feature is activated by going to Fix Scheduling Conflicts, select a 
program that is in conflict (red) and you will be taken to a new dialog 
where you can choose to resolve the conflict by adjusting the recording 
time, or the usual way (pick one program vs. another)   I do not like 
this user interface to activate the feature., but it was the most 
straightforward place to put it at the moment.

Problems with the current implementation/TODOs.

- I don't like the way it's activated. There may be a better way to 
interface this with the scheduling conflict dialog. Perhaps there should 
be a way to activate it from the Program Guide grid as well.
- The Set Recording Time dialog uses the QDateTimeEdit control which has 
several limitations (at least with the QT header files I was using). The 
UI is a bit weird, I'm not sure if it's very usable with a remote 
control.  I can't find a way to set the QDateTimeEdit control to use 12 
hour time with AM/PM indicators. I can't turn off the seconds 
adjustment.  The layout isn't giving quite enough space to the time 
portion of the edit control, perhaps someone with more proficiency with 
the QT layout grids can fix this for me.  All these problems leave me 
looking for an alternate implementation of the QDateTimeEdit control, 
but so far I haven't found a better one.
- Right now you can adjust the recording start/stop times for single 
recordings and "record program in this timeslot every day/week" 
recordings. You can't adjust "record this program on any channel" or 
"record this program anytime it appears on this channel" recordings.
- When dealing with repeating recordings of any kind, the right thing to 
do would be to ask the user if the change should apply to "just this 
occurrance" or "every occurance" of the program.   In the case that it 
applies only to this instance,  we should create a new single recording 
entry in the database with the right times, and deactivate the 
particular occurrance of the repeating entry (so we don't conflict with 
ourselves!)
- The Set Recording Time dialog uses a listbox for a reason that is not 
apparent at the moment. There will be several more options in the dialog 
(to be written) and they will go in the listbox.  
- It's not obvious that you have to tab off the QDateTimeEdit controls 
(and onto the listbox item) before you can press return/space to accept 
the changes
- Changes made are not immediately reflected in the Scheduling Conflict 
dialog when you return to it. You must exit the dialog and re-enter for 
it to have your updated changes.
- The SetRecTime.cpp code might want to live in libmyth instead of 
mythfrontend?
- The programinfo.cpp changes to update the start/stop time in the 
database would have been a lot simpler if the database tables used a 
primary key that was unique and meaningless (i.e. not based on the 
recording channel + start time).  I'd like to see that changed, anyone 
else agree?

Despite all the above issues,  I hope this code will get committed to 
CVS so others can contribute and build on it.

Sorry about the gzipped diff file, otherwise it's over 21K and difficult 
to paste in this message

Regards,

Dan Schwarz


--------------090107090107050800030807
Content-Type: application/gzip;
 name="diffout.txt.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="diffout.txt.gz"

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
uu1i4MKa+28h+rg7WPsPNeXJKx5TAAA=
--------------090107090107050800030807--