Ticket #5759: mythtv-5759-add_support_for_manage_rules.5.patch

File mythtv-5759-add_support_for_manage_rules.5.patch, 30.4 KB (added by sphery <mtdean@…>, 16 years ago)

Updated patch, uses constructor to pass the object name and uses object name to determine which window to load.

Line 
1Index: mythtv/programs/mythfrontend/programrecpriority.cpp
2===================================================================
3--- mythtv.orig/programs/mythfrontend/programrecpriority.cpp 2009-07-22 21:41:54.000000000 -0400
4+++ mythtv/programs/mythfrontend/programrecpriority.cpp 2009-07-22 22:00:07.000000000 -0400
5@@ -10,6 +10,7 @@
6 #include "scheduledrecording.h"
7 #include "customedit.h"
8 #include "proglist.h"
9+#include "storagegroup.h"
10
11 #include "mythdb.h"
12 #include "mythverbose.h"
13@@ -28,7 +29,8 @@
14 ProgramInfo(),
15 recTypeRecPriority(0), recType(kNotRecording),
16 matchCount(0), recCount(0),
17- avg_delay(0), autoRecPriority(0)
18+ avg_delay(0), autoRecPriority(0),
19+ profile("")
20 {
21 }
22
23@@ -40,7 +42,8 @@
24 matchCount(other.matchCount),
25 recCount(other.recCount),
26 avg_delay(other.avg_delay),
27- autoRecPriority(other.autoRecPriority)
28+ autoRecPriority(other.autoRecPriority),
29+ profile(other.profile)
30 {
31 // TODO CHECK: should last_record be initialized too? -- dtk 22-12-2008
32 }
33@@ -61,6 +64,7 @@
34 last_record = QDateTime();
35 avg_delay = 0;
36 autoRecPriority = 0;
37+ profile = "";
38 #endif
39
40 return *this;
41@@ -317,12 +321,16 @@
42
43 ////////////////////////////////////////////////////////
44
45-ProgramRecPriority::ProgramRecPriority(MythScreenStack *parent)
46- : MythScreenType(parent, "ProgramRecPriority")
47+ProgramRecPriority::ProgramRecPriority(MythScreenStack *parent,
48+ const QString &name)
49+ : MythScreenType(parent, name)
50 {
51 m_sortType = (SortType)gContext->GetNumSetting("ProgramRecPrioritySorting",
52 (int)byTitle);
53 m_reverseSort = gContext->GetNumSetting("ProgramRecPriorityReverse", 0);
54+ m_formatShortDate = gContext->GetSetting("ShortDateFormat", "M/d");
55+ m_formatLongDate = gContext->GetSetting("DateFormat", "ddd MMMM d");
56+ m_formatTime = gContext->GetSetting("TimeFormat", "h:mm AP");
57 }
58
59 ProgramRecPriority::~ProgramRecPriority()
60@@ -331,17 +339,32 @@
61
62 bool ProgramRecPriority::Create()
63 {
64- if (!LoadWindowFromXML("schedule-ui.xml", "programrecpriority", this))
65+ QString window_name = "programrecpriority";
66+ if (objectName() == "ManageRecRules")
67+ window_name = "managerecrules";
68+
69+ if (!LoadWindowFromXML("schedule-ui.xml", window_name, this))
70 return false;
71
72 m_programList = dynamic_cast<MythUIButtonList *> (GetChild("programs"));
73
74+ m_descriptionText = dynamic_cast<MythUIText *> (GetChild("description"));
75+ m_categoryText = dynamic_cast<MythUIText *> (GetChild("category"));
76 m_schedInfoText = dynamic_cast<MythUIText *> (GetChild("scheduleinfo"));
77 m_rectypePriorityText = dynamic_cast<MythUIText *>
78 (GetChild("rectypepriority"));
79 m_recPriorityText = dynamic_cast<MythUIText *> (GetChild("recpriority"));
80 m_recPriorityBText = dynamic_cast<MythUIText *> (GetChild("recpriorityb"));
81 m_finalPriorityText = dynamic_cast<MythUIText *> (GetChild("finalpriority"));
82+ m_recGroupText = dynamic_cast<MythUIText *> (GetChild("recordinggroup"));
83+ m_storageGroupText = dynamic_cast<MythUIText *> (GetChild("storagegroup"));
84+ m_lastRecordedText = dynamic_cast<MythUIText *> (GetChild("lastrecorded"));
85+ m_lastRecordedDateText = dynamic_cast<MythUIText *> (GetChild("lastrecordeddate"));
86+ m_lastRecordedTimeText = dynamic_cast<MythUIText *> (GetChild("lastrecordedtime"));
87+ m_channameText = dynamic_cast<MythUIText *> (GetChild("channel"));
88+ m_channumText = dynamic_cast<MythUIText *> (GetChild("channum"));
89+ m_callsignText = dynamic_cast<MythUIText *> (GetChild("callsign"));
90+ m_recProfileText = dynamic_cast<MythUIText *> (GetChild("recordingprofile"));
91
92 if (!m_programList)
93 {
94@@ -1067,7 +1090,7 @@
95
96 MSqlQuery result(MSqlQuery::InitCon());
97 result.prepare("SELECT recordid, title, chanid, starttime, startdate, "
98- "type, inactive, last_record, avg_delay "
99+ "type, inactive, last_record, avg_delay, profile "
100 "FROM record;");
101
102 if (!result.exec())
103@@ -1088,6 +1111,7 @@
104 int inactive = result.value(6).toInt();
105 QDateTime lastrec = result.value(7).toDateTime();
106 int avgd = result.value(8).toInt();
107+ QString profile = result.value(9).toString();
108
109 // find matching program in m_programData and set
110 // recTypeRecPriority and recType
111@@ -1107,6 +1131,7 @@
112 progInfo->recCount = m_recMatch[progInfo->recordid];
113 progInfo->last_record = lastrec;
114 progInfo->avg_delay = avgd;
115+ progInfo->profile = profile;
116
117 if (autopriority)
118 progInfo->autoRecPriority =
119@@ -1315,8 +1340,56 @@
120 progInfo->ToMap(infoMap);
121 item->SetTextFromMap(infoMap, state);
122
123+ item->SetText(progInfo->description, "description", state);
124+ item->SetText(progInfo->category, "category", state);
125 item->SetText(QString::number(progRecPriority), "progpriority", state);
126 item->SetText(QString::number(finalRecPriority), "finalpriority", state);
127+
128+ QString recgroup = progInfo->recgroup;
129+ if (recgroup == "Default")
130+ recgroup = tr("Default");
131+ item->SetText(recgroup, "recordinggroup", state);
132+ QString storagegroup = progInfo->storagegroup;
133+ if (storagegroup == "Default")
134+ storagegroup = tr("Default");
135+ else if (StorageGroup::kSpecialGroups.contains(storagegroup))
136+ storagegroup = tr(storagegroup.toLatin1().constData());
137+ item->SetText(storagegroup, "storagegroup", state);
138+
139+ QString tempDateTime = (progInfo->last_record).toString(m_formatLongDate + ' ' + m_formatTime);
140+ item->SetText(tempDateTime, "lastrecorded", state);
141+ QString tempDate = (progInfo->last_record).toString(m_formatShortDate);
142+ item->SetText(tempDate, "lastrecordeddate", state);
143+ QString tempTime = (progInfo->last_record).toString(m_formatTime);
144+ item->SetText(tempTime, "lastrecordedtime", state);
145+
146+ QString channame = progInfo->channame;
147+ if ((progInfo->recType == kAllRecord) ||
148+ (progInfo->recType == kFindOneRecord) ||
149+ (progInfo->recType == kFindDailyRecord) ||
150+ (progInfo->recType == kFindWeeklyRecord))
151+ channame = tr("Any");
152+ item->SetText(channame, "channel", state);
153+ QString channum = progInfo->chanstr;
154+ if ((progInfo->recType == kAllRecord) ||
155+ (progInfo->recType == kFindOneRecord) ||
156+ (progInfo->recType == kFindDailyRecord) ||
157+ (progInfo->recType == kFindWeeklyRecord))
158+ channum = tr("Any");
159+ item->SetText(channum, "channum", state);
160+ QString callsign = progInfo->chansign;
161+ if ((progInfo->recType == kAllRecord) ||
162+ (progInfo->recType == kFindOneRecord) ||
163+ (progInfo->recType == kFindDailyRecord) ||
164+ (progInfo->recType == kFindWeeklyRecord))
165+ callsign = tr("Any");
166+ item->SetText(callsign, "callsign", state);
167+
168+ QString profile = progInfo->profile;
169+ if ((profile == "Default") || (profile == "Live TV") ||
170+ (profile == "High Quality") || (profile == "Low Quality"))
171+ profile = tr(profile.toLatin1().constData());
172+ item->SetText(profile, "recordingprofile", state);
173 item->DisplayState(state, "status");
174
175 if (m_currentItem == progInfo)
176@@ -1374,6 +1447,12 @@
177 pgRecInfo->ToMap(infoMap);
178 SetTextFromMap(infoMap);
179
180+ if (m_descriptionText)
181+ m_descriptionText->SetText(pgRecInfo->description);
182+
183+ if (m_categoryText)
184+ m_categoryText->SetText(pgRecInfo->category);
185+
186 if (m_schedInfoText)
187 m_schedInfoText->SetText(subtitle);
188
189@@ -1397,6 +1476,84 @@
190 if (m_finalPriorityText)
191 m_finalPriorityText->SetText(QString::number(finalRecPriority));
192
193+ if (m_recGroupText)
194+ {
195+ QString recgroup = pgRecInfo->recgroup;
196+ if (recgroup == "Default")
197+ recgroup = tr("Default");
198+ m_recGroupText->SetText(recgroup);
199+ }
200+
201+ if (m_storageGroupText)
202+ {
203+ QString storagegroup = pgRecInfo->storagegroup;
204+ if (storagegroup == "Default")
205+ storagegroup = tr("Default");
206+ else if (StorageGroup::kSpecialGroups.contains(storagegroup))
207+ storagegroup = tr(storagegroup.toLatin1().constData());
208+ m_storageGroupText->SetText(storagegroup);
209+ }
210+
211+ if (m_lastRecordedText)
212+ {
213+ QString tempDateTime = (pgRecInfo->last_record).toString(m_formatLongDate + ' ' + m_formatTime);
214+ m_lastRecordedText->SetText(tempDateTime);
215+ }
216+
217+ if (m_lastRecordedDateText)
218+ {
219+ QString tempDate = (pgRecInfo->last_record).toString(m_formatShortDate);
220+ m_lastRecordedDateText->SetText(tempDate);
221+ }
222+
223+ if (m_lastRecordedTimeText)
224+ {
225+ QString tempTime = (pgRecInfo->last_record).toString(m_formatTime);
226+ m_lastRecordedTimeText->SetText(tempTime);
227+ }
228+
229+ if (m_channameText)
230+ {
231+ QString channame = pgRecInfo->channame;
232+ if ((pgRecInfo->rectype == kAllRecord) ||
233+ (pgRecInfo->rectype == kFindOneRecord) ||
234+ (pgRecInfo->rectype == kFindDailyRecord) ||
235+ (pgRecInfo->rectype == kFindWeeklyRecord))
236+ channame = tr("Any");
237+ m_channameText->SetText(channame);
238+ }
239+
240+ if (m_channumText)
241+ {
242+ QString channum = pgRecInfo->chanstr;
243+ if ((pgRecInfo->rectype == kAllRecord) ||
244+ (pgRecInfo->rectype == kFindOneRecord) ||
245+ (pgRecInfo->rectype == kFindDailyRecord) ||
246+ (pgRecInfo->rectype == kFindWeeklyRecord))
247+ channum = tr("Any");
248+ m_channumText->SetText(channum);
249+ }
250+
251+ if (m_callsignText)
252+ {
253+ QString callsign = pgRecInfo->chansign;
254+ if ((pgRecInfo->rectype == kAllRecord) ||
255+ (pgRecInfo->rectype == kFindOneRecord) ||
256+ (pgRecInfo->rectype == kFindDailyRecord) ||
257+ (pgRecInfo->rectype == kFindWeeklyRecord))
258+ callsign = tr("Any");
259+ m_callsignText->SetText(callsign);
260+ }
261+
262+ if (m_recProfileText)
263+ {
264+ QString profile = pgRecInfo->profile;
265+ if ((profile == "Default") || (profile == "Live TV") ||
266+ (profile == "High Quality") || (profile == "Low Quality"))
267+ profile = tr(profile.toLatin1().constData());
268+ m_recProfileText->SetText(profile);
269+ }
270+
271 }
272
273 void ProgramRecPriority::RemoveItemFromList(MythUIButtonListItem *item)
274Index: mythtv/programs/mythfrontend/programrecpriority.h
275===================================================================
276--- mythtv.orig/programs/mythfrontend/programrecpriority.h 2009-07-22 21:41:54.000000000 -0400
277+++ mythtv/programs/mythfrontend/programrecpriority.h 2009-07-22 21:53:23.000000000 -0400
278@@ -27,13 +27,14 @@
279 QDateTime last_record;
280 int avg_delay;
281 int autoRecPriority;
282+ QString profile;
283 };
284
285 class ProgramRecPriority : public MythScreenType
286 {
287 Q_OBJECT
288 public:
289- ProgramRecPriority(MythScreenStack *parent);
290+ ProgramRecPriority(MythScreenStack *parent, const QString &name);
291 ~ProgramRecPriority();
292
293 bool Create(void);
294@@ -85,11 +86,26 @@
295
296 MythUIButtonList *m_programList;
297
298+ QString m_formatShortDate;
299+ QString m_formatLongDate;
300+ QString m_formatTime;
301+
302+ MythUIText *m_categoryText;
303+ MythUIText *m_descriptionText;
304 MythUIText *m_schedInfoText;
305 MythUIText *m_rectypePriorityText;
306 MythUIText *m_recPriorityText;
307 MythUIText *m_recPriorityBText;
308 MythUIText *m_finalPriorityText;
309+ MythUIText *m_recGroupText;
310+ MythUIText *m_storageGroupText;
311+ MythUIText *m_lastRecordedText;
312+ MythUIText *m_lastRecordedDateText;
313+ MythUIText *m_lastRecordedTimeText;
314+ MythUIText *m_channameText;
315+ MythUIText *m_channumText;
316+ MythUIText *m_callsignText;
317+ MythUIText *m_recProfileText;
318
319 ProgramRecPriorityInfo *m_currentItem;
320
321Index: mythtv/themes/default/schedule-ui.xml
322===================================================================
323--- mythtv.orig/themes/default/schedule-ui.xml 2009-07-22 21:41:54.000000000 -0400
324+++ mythtv/themes/default/schedule-ui.xml 2009-07-22 21:42:11.000000000 -0400
325@@ -811,6 +811,147 @@
326
327 </window>
328
329+ <window name="managerecrules">
330+
331+ <textarea name="pagetitle" from="basetextarea">
332+ <area>20,5,410,40</area>
333+ <font>baselarge</font>
334+ <value>Manage Recording Rules</value>
335+ </textarea>
336+
337+ <imagetype name="filler">
338+ <filename>rk-background.png</filename>
339+ <position>0,35</position>
340+ </imagetype>
341+
342+ <imagetype name="showinglines">
343+ <filename>rk-lines.png</filename>
344+ <position>0,35</position>
345+ </imagetype>
346+
347+ <textarea name="callsignlabel" from="basetextarea">
348+ <area>440,15,100,40</area>
349+ <value>Channel</value>
350+ </textarea>
351+
352+ <textarea name="lastrecordedlabel" from="basetextarea">
353+ <area>550,15,150,40</area>
354+ <value>Last Recorded</value>
355+ <align>right</align>
356+ </textarea>
357+
358+ <textarea name="prioritylabel" from="basetextarea">
359+ <area>710,15,95,40</area>
360+ <value>Priority</value>
361+ </textarea>
362+
363+ <buttonlist name="programs" from="basebuttonlist2">
364+ <area>20,59,760,370</area>
365+ <buttonarea>0,0,760,340</buttonarea>
366+ <statetype name="buttonitem">
367+ <state name="active">
368+ <textarea name="rectype" from="buttontext">
369+ <area>30,1,20,24</area>
370+ <align>hcenter</align>
371+ </textarea>
372+ <textarea name="title" from="buttontext">
373+ <area>60,1,350,24</area>
374+ </textarea>
375+ <textarea name="callsign" from="buttontext">
376+ <area>420,1,100,24</area>
377+ </textarea>
378+ <textarea name="lastrecordeddate" from="buttontext">
379+ <area>530,1,150,24</area>
380+ <align>right</align>
381+ </textarea>
382+ <textarea name="finalpriority" from="buttontext">
383+ <area>690,1,60,24</area>
384+ <align>right</align>
385+ </textarea>
386+ </state>
387+ <state name="selected" from="active" />
388+ <state name="inactive" from="active" />
389+ </statetype>
390+ <statetype name="upscrollarrow">
391+ <position>710,340</position>
392+ </statetype>
393+ <statetype name="downscrollarrow">
394+ <position>740,340</position>
395+ </statetype>
396+ </buttonlist>
397+
398+ <textarea name="title" from="basetextarea">
399+ <area>30,400,740,40</area>
400+ <font>basemedium</font>
401+ </textarea>
402+
403+ <textarea name="recordingtype" from="basetextarea">
404+ <area>30,440,430,30</area>
405+ </textarea>
406+
407+ <textarea name="scheduleinfo" from="basetextarea">
408+ <area>30,470,740,30</area>
409+ </textarea>
410+
411+ <textarea name="finalprioritylabel" from="basetextarea">
412+ <area>630,440,90,30</area>
413+ <value>Priority:</value>
414+ <align>right</align>
415+ </textarea>
416+
417+ <textarea name="finalpriority" from="basetextarea">
418+ <area>730,440,40,30</area>
419+ <align>right</align>
420+ </textarea>
421+
422+ <textarea name="recordinggrouplabel" from="basetextarea">
423+ <area>30,500,190,30</area>
424+ <value>Recording Group:</value>
425+ <align>right</align>
426+ </textarea>
427+
428+ <textarea name="recordinggroup" from="basetextarea">
429+ <area>230,500,160,30</area>
430+ </textarea>
431+
432+ <textarea name="categorylabel" from="basetextarea">
433+ <area>30,530,190,30</area>
434+ <value>Category:</value>
435+ <align>right</align>
436+ </textarea>
437+
438+ <textarea name="category" from="basetextarea">
439+ <area>230,530,160,30</area>
440+ </textarea>
441+
442+ <textarea name="storagegrouplabel" from="basetextarea">
443+ <area>400,500,190,30</area>
444+ <value>Storage Group:</value>
445+ <align>right</align>
446+ </textarea>
447+
448+ <textarea name="storagegroup" from="basetextarea">
449+ <area>600,500,160,30</area>
450+ </textarea>
451+
452+ <textarea name="recordingprofilelabel" from="basetextarea">
453+ <area>400,530,190,30</area>
454+ <value>Recording Profile:</value>
455+ <align>right</align>
456+ </textarea>
457+
458+ <textarea name="recordingprofile" from="basetextarea">
459+ <area>600,530,160,30</area>
460+ </textarea>
461+
462+ <textarea name="keyinstr">
463+ <area>0,570,800,30</area>
464+ <value>(1) Title (2) Priority (4) Type</value>
465+ <align>allcenter</align>
466+ </textarea>
467+
468+ </window>
469+
470 <window name="custompriority">
471
472 <textarea name="pagetitle" from="basetextarea">
473Index: mythtv/themes/defaultmenu/manage_recordings.xml
474===================================================================
475--- mythtv.orig/themes/defaultmenu/manage_recordings.xml 2009-07-22 21:41:54.000000000 -0400
476+++ mythtv/themes/defaultmenu/manage_recordings.xml 2009-07-22 21:42:11.000000000 -0400
477@@ -33,28 +33,11 @@
478 </button>
479
480 <button>
481- <type>TV_RECPRIORITIES</type>
482- <text>Set Priorities</text>
483- <text lang="DE">PrioritÀten</text>
484- <text lang="IS">Setja forgang</text>
485- <text lang="FR">Fixer les priorités</text>
486- <text lang="NL">Prioriteiten Instellen</text>
487- <text lang="SV">Prioriteter</text>
488- <text lang="JA">録画優å…
489ˆé †äœ</text>
490- <text lang="FI">Aseta Prioriteetteja</text>
491- <text lang="ZH_TW">錄圱優å…
492ˆæ¬¡åº</text>
493- <text lang="SL">Nastavitve prioritet</text>
494- <text lang="ET">Prioriteetide muutmine</text>
495- <text lang="NB">Velg prioriteringer</text>
496- <text lang="DA">SÊt prioriteter</text>
497- <text lang="ES">Fijar Prioridades</text>
498- <text lang="PT">Definir Prioridades</text>
499- <text lang="CS">Nastavit priority</text>
500- <text lang="RU">УстаМПвка прОПрОтетПв</text>
501- <text lang="PL">Ustaw priorytety</text>
502- <text lang="HE">הגדךת קדימויות</text>
503- <description>Prioritize some shows over others</description>
504- <action>TV_SET_RECPRIORITIES</action>
505+ <type>TV_RECORDING_RULES</type>
506+ <text>Recording Rules</text>
507+ <alttext>Manage Rules</alttext>
508+ <description>Edit or delete any recording rule</description>
509+ <action>TV_MANAGE_RECORDING_RULES</action>
510 </button>
511
512 <button>
513@@ -143,4 +126,29 @@
514 <action>TV_PREVIOUS</action>
515 </button>
516
517+ <button>
518+ <type>TV_RECPRIORITIES</type>
519+ <text>Set Priorities</text>
520+ <text lang="DE">PrioritÀten</text>
521+ <text lang="IS">Setja forgang</text>
522+ <text lang="FR">Fixer les priorités</text>
523+ <text lang="NL">Prioriteiten Instellen</text>
524+ <text lang="SV">Prioriteter</text>
525+ <text lang="JA">録画優å…
526ˆé †äœ</text>
527+ <text lang="FI">Aseta Prioriteetteja</text>
528+ <text lang="ZH_TW">錄圱優å…
529ˆæ¬¡åº</text>
530+ <text lang="SL">Nastavitve prioritet</text>
531+ <text lang="ET">Prioriteetide muutmine</text>
532+ <text lang="NB">Velg prioriteringer</text>
533+ <text lang="DA">SÊt prioriteter</text>
534+ <text lang="ES">Fijar Prioridades</text>
535+ <text lang="PT">Definir Prioridades</text>
536+ <text lang="CS">Nastavit priority</text>
537+ <text lang="RU">УстаМПвка прОПрОтетПв</text>
538+ <text lang="PL">Ustaw priorytety</text>
539+ <text lang="HE">הגדךת קדימויות</text>
540+ <description>Prioritize some shows over others</description>
541+ <action>TV_SET_RECPRIORITIES</action>
542+ </button>
543+
544 </mythmenu>
545Index: mythtv/programs/mythfrontend/main.cpp
546===================================================================
547--- mythtv.orig/programs/mythfrontend/main.cpp 2009-07-22 21:41:54.000000000 -0400
548+++ mythtv/programs/mythfrontend/main.cpp 2009-07-22 21:53:58.000000000 -0400
549@@ -286,7 +286,21 @@
550 {
551 MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
552
553- ProgramRecPriority *progRecPrior = new ProgramRecPriority(mainStack);
554+ ProgramRecPriority *progRecPrior = new ProgramRecPriority(mainStack,
555+ "ProgramRecPriority");
556+
557+ if (progRecPrior->Create())
558+ mainStack->AddScreen(progRecPrior);
559+ else
560+ delete progRecPrior;
561+}
562+
563+void startManageRecordingRules(void)
564+{
565+ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
566+
567+ ProgramRecPriority *progRecPrior = new ProgramRecPriority(mainStack,
568+ "ManageRecRules");
569
570 if (progRecPrior->Create())
571 mainStack->AddScreen(progRecPrior);
572@@ -439,6 +453,8 @@
573 startManaged();
574 else if (sel == "tv_set_recpriorities")
575 startProgramRecPriorities();
576+ else if (sel == "tv_manage_recording_rules")
577+ startManageRecordingRules();
578 else if (sel == "tv_progfind")
579 startFinder();
580 else if (sel == "tv_search_title")
581@@ -871,6 +887,7 @@
582 REG_JUMPLOC("Manage Recordings / Fix Conflicts", "", "",
583 startManaged, "VIEWSCHEDULED");
584 REG_JUMP("Program Recording Priorities", "", "", startProgramRecPriorities);
585+ REG_JUMP("Manage Recording Rules", "", "", startManageRecordingRules);
586 REG_JUMP("Channel Recording Priorities", "", "", startChannelRecPriorities);
587 REG_JUMP("TV Recording Playback", "", "", startPlayback);
588 REG_JUMP("TV Recording Deletion", "", "", startDelete);
589Index: mythtv/themes/classic/tv_schedule.xml
590===================================================================
591--- mythtv.orig/themes/classic/tv_schedule.xml 2009-07-22 21:41:54.000000000 -0400
592+++ mythtv/themes/classic/tv_schedule.xml 2009-07-22 21:42:11.000000000 -0400
593@@ -170,6 +170,42 @@
594 </button>
595
596 <button>
597+ <type>TV_RECORDING_RULES</type>
598+ <text>Recording Rules</text>
599+ <alttext>Manage Rules</alttext>
600+ <description>Edit or delete any recording rule</description>
601+ <action>TV_MANAGE_RECORDING_RULES</action>
602+ </button>
603+
604+ <button>
605+ <type>TV_CONFLICTS</type>
606+ <text>Upcoming Recordings</text>
607+ <text lang="IT">Correggi i conflitti</text>
608+ <text lang="ES">Resolver conflictos</text>
609+ <text lang="CA">Resoldre Conflictes</text>
610+ <text lang="NL">Geplande Opnames</text>
611+ <text lang="FR">Gestion des conflits</text>
612+ <text lang="DE">Aufnahmeplan</text>
613+ <text lang="DA">LÞs konflikter</text>
614+ <text lang="PT">Resolver Conflitos</text>
615+ <text lang="SV">Kommande inspelningar</text>
616+ <text lang="JA">これからの録画</text>
617+ <text lang="FI">Tulevat Nauhoitukset</text>
618+ <text lang="ZH_TW">修正預蚭錄圱衝突</text>
619+ <text lang="SL">Prihajajoča snemanja</text>
620+ <text lang="ET">Tulevased salvestamised</text>
621+ <text lang="RU">БуЎущОе запОсО</text>
622+ <text lang="PL">Rozwią
623Ō konflikty</text>
624+ <text lang="HE">ההקלטות הבאות</text>
625+ <alttext lang="SV">Kommande</alttext>
626+ <alttext lang="ET">Tulevased</alttext>
627+ <alttext lang="ES">Conflictos</alttext>
628+ <alttext lang="PL">Konflikty</alttext>
629+ <description>VCR-like recording scheduler</description>
630+ <action>TV_FIX_CONFLICTS</action>
631+ </button>
632+
633+ <button>
634 <type>TV_RECPRIORITIES</type>
635 <text>Recording Priorities</text>
636 <text lang="IT">Priorità Registrazioni</text>
637@@ -201,32 +237,4 @@
638 <action>TV_SET_RECPRIORITIES</action>
639 </button>
640
641- <button>
642- <type>TV_CONFLICTS</type>
643- <text>Upcoming Recordings</text>
644- <text lang="IT">Correggi i conflitti</text>
645- <text lang="ES">Resolver conflictos</text>
646- <text lang="CA">Resoldre Conflictes</text>
647- <text lang="NL">Geplande Opnames</text>
648- <text lang="FR">Gestion des conflits</text>
649- <text lang="DE">Aufnahmeplan</text>
650- <text lang="DA">LÞs konflikter</text>
651- <text lang="PT">Resolver Conflitos</text>
652- <text lang="SV">Kommande inspelningar</text>
653- <text lang="JA">これからの録画</text>
654- <text lang="FI">Tulevat Nauhoitukset</text>
655- <text lang="ZH_TW">修正預蚭錄圱衝突</text>
656- <text lang="SL">Prihajajoča snemanja</text>
657- <text lang="ET">Tulevased salvestamised</text>
658- <text lang="RU">БуЎущОе запОсО</text>
659- <text lang="PL">Rozwią
660Ō konflikty</text>
661- <text lang="HE">ההקלטות הבאות</text>
662- <alttext lang="SV">Kommande</alttext>
663- <alttext lang="ET">Tulevased</alttext>
664- <alttext lang="ES">Conflictos</alttext>
665- <alttext lang="PL">Konflikty</alttext>
666- <description>See what will be recorded next</description>
667- <action>TV_FIX_CONFLICTS</action>
668- </button>
669-
670 </mythmenu>
671Index: mythtv/themes/default-wide/schedule-ui.xml
672===================================================================
673--- mythtv.orig/themes/default-wide/schedule-ui.xml 2009-07-22 21:41:54.000000000 -0400
674+++ mythtv/themes/default-wide/schedule-ui.xml 2009-07-22 21:42:11.000000000 -0400
675@@ -1400,4 +1400,136 @@
676
677 </window>
678
679+ <window name="managerecrules">
680+
681+ <textarea name="pagetitle" from="basetextarea">
682+ <area>20,5,650,40</area>
683+ <font>baselarge</font>
684+ <value>Manage Recording Rules</value>
685+ </textarea>
686+
687+ <imagetype name="filler">
688+ <filename>cr-background.png</filename>
689+ <area>0,39,1280,420</area>
690+ </imagetype>
691+
692+ <textarea name="callsignlabel" from="basetextarea">
693+ <area>680,15,100,40</area>
694+ <value>Channel</value>
695+ <align>right</align>
696+ </textarea>
697+ <textarea name="lastrecordedlabel" from="basetextarea">
698+ <area>790,15,290,40</area>
699+ <value>Last Recorded</value>
700+ <align>right</align>
701+ </textarea>
702+
703+ <textarea name="prioritylabel" from="basetextarea">
704+ <area>1090,15,95,40</area>
705+ <value>Priority</value>
706+ <align>right</align>
707+ </textarea>
708+
709+ <buttonlist name="programs" from="basebuttonlist2">
710+ <area>20,59,760,370</area>
711+ <buttonarea>0,0,760,340</buttonarea>
712+ <statetype name="buttonitem">
713+ <state name="active">
714+ <textarea name="rectype" from="buttontext">
715+ <area>30,1,20,24</area>
716+ <align>hcenter</align>
717+ </textarea>
718+ <textarea name="title" from="buttontext">
719+ <area>60,1,590,24</area>
720+ </textarea>
721+ <textarea name="callsign" from="buttontext">
722+ <area>660,1,100,24</area>
723+ <align>right</align>
724+ </textarea>
725+ <textarea name="lastrecorded" from="buttontext">
726+ <area>770,1,290,24</area>
727+ <align>right</align>
728+ </textarea>
729+ <textarea name="finalpriority" from="buttontext">
730+ <area>1130,1,40,24</area>
731+ <align>right</align>
732+ </textarea>
733+ </state>
734+ <state name="selected" from="active" />
735+ <state name="inactive" from="active" />
736+ </statetype>
737+ </buttonlist>
738+
739+ <textarea name="title" from="basetextarea">
740+ <area>30,450,740,40</area>
741+ <font>basemedium</font>
742+ </textarea>
743+
744+ <textarea name="recordingtype" from="basetextarea">
745+ <area>30,490,430,30</area>
746+ </textarea>
747+
748+ <textarea name="scheduleinfo" from="basetextarea">
749+ <area>30,520,740,30</area>
750+ </textarea>
751+
752+ <textarea name="finalprioritylabel" from="basetextarea">
753+ <area>1110,490,90,30</area>
754+ <value>Priority:</value>
755+ <align>right</align>
756+ </textarea>
757+
758+ <textarea name="finalpriority" from="basetextarea">
759+ <area>1210,490,40,30</area>
760+ <align>right</align>
761+ </textarea>
762+
763+ <textarea name="recordinggrouplabel" from="basetextarea">
764+ <area>30,550,190,30</area>
765+ <value>Recording Group:</value>
766+ <align>right</align>
767+ </textarea>
768+
769+ <textarea name="recordinggroup" from="basetextarea">
770+ <area>230,550,160,30</area>
771+ </textarea>
772+
773+ <textarea name="categorylabel" from="basetextarea">
774+ <area>30,580,190,30</area>
775+ <value>Category:</value>
776+ <align>right</align>
777+ </textarea>
778+
779+ <textarea name="category" from="basetextarea">
780+ <area>230,580,160,30</area>
781+ </textarea>
782+
783+ <textarea name="storagegrouplabel" from="basetextarea">
784+ <area>640,550,190,30</area>
785+ <value>Storage Group:</value>
786+ <align>right</align>
787+ </textarea>
788+
789+ <textarea name="storagegroup" from="basetextarea">
790+ <area>840,550,160,30</area>
791+ </textarea>
792+
793+ <textarea name="recordingprofilelabel" from="basetextarea">
794+ <area>640,580,190,30</area>
795+ <value>Recording Profile:</value>
796+ <align>right</align>
797+ </textarea>
798+
799+ <textarea name="recordingprofile" from="basetextarea">
800+ <area>840,580,160,30</area>
801+ </textarea>
802+
803+ <textarea name="keyinstr">
804+ <area>0,660,1280,30</area>
805+ <value>(1) Title (2) Priority (4) Type</value>
806+ <align>allcenter</align>
807+ </textarea>
808+
809+ </window>
810+
811 </mythuitheme>