Ticket #5759: mythtv-5759-add_support_for_manage_rules.patch

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

Add a new screen for managing recording rules

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