00001 #include "sr_items.h"
00002 #include "sr_root.h"
00003
00004 RootSRGroup::RootSRGroup(ScheduledRecording *_rec,ManagedList* _parentList, QObject* _parent)
00005 : ManagedListGroup( "rootGroup", NULL, _parentList, _parent, "rootGroup"),
00006 schedRec(_rec)
00007 {
00008 cancelItem = new DialogDoneListItem( QString("[ %1 ]").arg(QObject::tr("Cancel")), MythDialog::Rejected, NULL,
00009 _parentList, this, "cancel");
00010 cancelItem->setState(MLS_BOLD);
00011 addItem(cancelItem);
00012
00013 recType = new SRRecordingType(schedRec, _parentList, this);
00014 addItem(recType->getItem(), -1);
00015 connect(recType->getItem(), SIGNAL(changed(ManagedListItem*)), this, SLOT(itemChanged(ManagedListItem*)));
00016
00017 schedOptions = new SRSchedOptionsGroup(_rec, _parentList, this, this);
00018 addItem(schedOptions, -1);
00019
00020 storageOptions = new SRStorageOptionsGroup(_rec, _parentList, this, this);
00021 addItem(storageOptions, -1);
00022
00023 jobQueue = new SRJobQueueGroup(_rec, _parentList, this, this);
00024 addItem(jobQueue, -1);
00025
00026 schedInfo = new SRSchedInfoGroup(_rec, _parentList, this, this);
00027 addItem(schedInfo, -1);
00028
00029 testButton = new ManagedListItem(QObject::tr("Preview schedule changes"),
00030 _parentList, this, "test");
00031 addItem(testButton, -1);
00032 connect(testButton, SIGNAL(selected(ManagedListItem*)), _rec, SLOT(testRecording()));
00033
00034 recordAsShownItem = new DialogDoneListItem(QString("[ %1 ]").arg(QObject::tr("Save these settings")),
00035 MythDialog::Accepted, NULL, _parentList, this, "recordAsShown");
00036 recordAsShownItem->setState(MLS_BOLD);
00037 addItem(recordAsShownItem);
00038 }
00039
00040 void RootSRGroup::setDialog(MythDialog* dlg)
00041 {
00042 cancelItem->setDialog(dlg);
00043 recordAsShownItem->setDialog(dlg);
00044 }
00045
00046 void RootSRGroup::itemChanged(ManagedListItem*)
00047 {
00048 bool multiEpisode = true;
00049 bool isScheduled = true;
00050 int rtype = recType->getValue().toInt();
00051
00052 switch(rtype)
00053 {
00054 case kNotRecording:
00055 case kDontRecord:
00056 isScheduled = false;
00057 break;
00058
00059 case kSingleRecord:
00060 case kFindOneRecord:
00061 case kOverrideRecord:
00062 multiEpisode = false;
00063 break;
00064 }
00065
00066 if (isScheduled || rtype == kDontRecord)
00067 {
00068 recordAsShownItem->setText(QString("[ %1 ]").arg(QObject::tr("Save these settings")));
00069 recordAsShownItem->setState(MLS_BOLD);
00070 recordAsShownItem->setEnabled(true);
00071 }
00072 else
00073 {
00074 if (schedRec->getRecordID() > 0)
00075 {
00076 recordAsShownItem->setState(MLS_BOLD);
00077 }
00078 else
00079 {
00080 recordAsShownItem->setEnabled(false);
00081 recordAsShownItem->setState(MLS_NORMAL);
00082 }
00083 }
00084
00085 schedOptions->setEnabled(isScheduled, multiEpisode);
00086 storageOptions->setEnabled(isScheduled, multiEpisode);
00087 jobQueue->setEnabled(isScheduled);
00088 }