void ProgLister::ClearCurrentProgramInfo(void) { InfoMap infoMap; ProgramInfo pginfo; pginfo.ToMap(infoMap); ResetMap(infoMap); if (m_positionText) m_positionText->Reset(); }
void ViewScheduleDiff::updateInfo(MythUIButtonListItem *item) { if (!item) return; ProgramInfo *pginfo = qVariantValue<ProgramInfo*> (item->GetData()); if (pginfo) { InfoMap infoMap; pginfo->ToMap(infoMap); SetTextFromMap(infoMap); } }
void ViewScheduled::updateInfo(MythUIButtonListItem *item) { if (!item) return; ProgramInfo *pginfo = qVariantValue<ProgramInfo*> (item->GetData()); if (pginfo) { InfoMap infoMap; pginfo->ToMap(infoMap); SetTextFromMap(infoMap); MythUIStateType *ratingState = dynamic_cast<MythUIStateType*> (GetChild("ratingstate")); if (ratingState) { QString rating = QString::number(pginfo->GetStars(10)); ratingState->DisplayState(rating); } } }
void ProgLister::HandleSelected(MythUIButtonListItem *item) { if (!item) { ClearCurrentProgramInfo(); return; } ProgramInfo *pginfo = qVariantValue<ProgramInfo*> (item->GetData()); if (!pginfo) { ClearCurrentProgramInfo(); return; } InfoMap infoMap; pginfo->ToMap(infoMap); SetTextFromMap(infoMap); if (m_positionText) { m_positionText->SetText( tr("%1 of %2", "Current position in list where %1 is the " "position, %2 is the total count") .arg(m_progList->GetCurrentPos()) .arg(m_progList->GetCount())); } MythUIStateType *ratingState = dynamic_cast<MythUIStateType*> (GetChild("ratingstate")); if (ratingState) { QString rating = QString::number(pginfo->GetStars(10)); ratingState->DisplayState(rating); } }
void IdleScreen::UpdateScreen(void) { if (m_currentRecordings) { m_currentRecordings->Reset(); m_currentRecordings->SetCanTakeFocus(false); } if (m_nextRecordings) { m_nextRecordings->Reset(); m_nextRecordings->SetCanTakeFocus(false); } if (m_conflictingRecordings) { m_conflictingRecordings->Reset(); m_conflictingRecordings->SetCanTakeFocus(false); } if (m_conflictWarning) m_conflictWarning->SetVisible(m_hasConflicts); // update scheduled if (!m_scheduledList.empty()) { ProgramList::iterator pit = m_scheduledList.begin(); MythUIButtonListItem *item; while (pit != m_scheduledList.end()) { ProgramInfo *progInfo = *pit; if (progInfo) { MythUIButtonList *list = nullptr; const RecStatus::Type recstatus = progInfo->GetRecordingStatus(); switch(recstatus) { case RecStatus::Recording: case RecStatus::Tuning: case RecStatus::Failing: list = m_currentRecordings; break; case RecStatus::WillRecord: case RecStatus::Pending: list = m_nextRecordings; break; case RecStatus::Conflict: list = m_conflictingRecordings; break; default: list = nullptr; break; } if (list != nullptr) { item = new MythUIButtonListItem(list,"", qVariantFromValue(progInfo)); InfoMap infoMap; progInfo->ToMap(infoMap); item->SetTextFromMap(infoMap, ""); } } ++pit; } } UpdateStatus(); }
void WelcomeDialog::updateScreen(void) { QString status; if (!gCoreContext->IsConnectedToMaster()) { m_recording_text->SetText(tr("Cannot connect to server!")); m_scheduled_text->SetText(tr("Cannot connect to server!")); m_warning_text->SetVisible(false); } else { // update recording if (m_isRecording && !m_tunerList.empty()) { if (m_screenTunerNo >= m_tunerList.size()) m_screenTunerNo = 0; TunerStatus tuner = m_tunerList[m_screenTunerNo]; if (tuner.isRecording) { status = QObject::tr("Tuner %1 is recording:\n") .arg(tuner.id); status += tuner.channame; status += "\n" + tuner.title; if (!tuner.subtitle.isEmpty()) status += "\n("+tuner.subtitle+")"; status += "\n" + QObject::tr("%1 to %2", "Time period, 'starttime to endtime'") .arg(MythDate::toString(tuner.startTime, MythDate::kTime)) .arg(MythDate::toString(tuner.endTime, MythDate::kTime)); } else { status = QObject::tr("Tuner %1 is not recording") .arg(tuner.id); } if (m_screenTunerNo < m_tunerList.size() - 1) m_screenTunerNo++; else m_screenTunerNo = 0; } else status = tr("There are no recordings currently taking place"); status.detach(); m_recording_text->SetText(status); // update scheduled if (!m_scheduledList.empty()) { if (m_screenScheduledNo >= m_scheduledList.size()) m_screenScheduledNo = 0; ProgramInfo progInfo = m_scheduledList[m_screenScheduledNo]; InfoMap infomap; progInfo.ToMap(infomap); //status = QString("%1 of %2\n").arg(m_screenScheduledNo + 1) // .arg(m_scheduledList.size()); status = infomap["channame"] + "\n"; status += infomap["title"]; if (!infomap["subtitle"].isEmpty()) status += "\n(" + infomap["subtitle"] + ")"; status += "\n" + infomap["timedate"]; if (m_screenScheduledNo < m_scheduledList.size() - 1) m_screenScheduledNo++; else m_screenScheduledNo = 0; } else status = tr("There are no scheduled recordings"); m_scheduled_text->SetText(status); } // update status message if (m_statusList.empty()) status = tr("Please Wait..."); else { if ((int)m_statusListNo >= m_statusList.count()) m_statusListNo = 0; status = m_statusList[m_statusListNo]; if (m_statusList.count() > 1) status += "..."; m_status_text->SetText(status); if ((int)m_statusListNo < m_statusList.count() - 1) m_statusListNo++; else m_statusListNo = 0; } m_updateScreenTimer->stop(); m_updateScreenTimer->setSingleShot(true); m_updateScreenTimer->start(UPDATE_SCREEN_INTERVAL); }
void ViewScheduled::FillList() { m_schedulesList->Reset(); MythUIText *norecordingText = dynamic_cast<MythUIText*> (GetChild("norecordings_info")); if (norecordingText) norecordingText->SetVisible(m_recList.empty()); if (m_recList.empty()) return; ProgramList plist; if (!m_recgroupList.contains(m_currentGroup)) m_currentGroup = m_defaultGroup; plist = m_recgroupList[m_currentGroup]; ProgramList::iterator pit = plist.begin(); while (pit != plist.end()) { ProgramInfo *pginfo = *pit; if (!pginfo) { ++pit; continue; } QString state; const RecStatusType recstatus = pginfo->GetRecordingStatus(); if (recstatus == rsRecording) state = "running"; else if (recstatus == rsConflict || recstatus == rsOffLine || recstatus == rsTunerBusy || recstatus == rsFailed || recstatus == rsAborted || recstatus == rsMissed) state = "error"; else if (recstatus == rsWillRecord) { if ((m_curcard == 0 && m_curinput == 0) || pginfo->GetCardID() == m_curcard || pginfo->GetInputID() == m_curinput) { if (pginfo->GetRecordingPriority2() < 0) state = "warning"; else state = "normal"; } } else if (recstatus == rsRepeat || recstatus == rsOtherShowing || recstatus == rsNeverRecord || recstatus == rsDontRecord || (recstatus != rsDontRecord && recstatus <= rsEarlierShowing)) state = "disabled"; else state = "warning"; MythUIButtonListItem *item = new MythUIButtonListItem(m_schedulesList,"", qVariantFromValue(pginfo)); InfoMap infoMap; pginfo->ToMap(infoMap); item->SetTextFromMap(infoMap, state); QString rating = QString::number(pginfo->GetStars(10)); item->DisplayState(rating, "ratingstate"); item->DisplayState(state, "status"); ++pit; } MythUIText *statusText = dynamic_cast<MythUIText*>(GetChild("status")); if (statusText) { if (m_conflictBool) { // Find first conflict and store in m_conflictDate field ProgramList::const_iterator it = plist.begin(); for (; it != plist.end(); ++it) { ProgramInfo &p = **it; if (p.GetRecordingStatus() == rsConflict) { m_conflictDate = p.GetRecordingStartTime().date(); break; } } // figure out caption based on m_conflictDate QString cstring = tr("Time Conflict"); QDate now = QDate::currentDate(); int daysToConflict = now.daysTo(m_conflictDate); if (daysToConflict == 0) cstring = tr("Conflict Today"); else if (daysToConflict > 0) cstring = QString(tr("Conflict %1")) .arg(m_conflictDate.toString(m_dateFormat)); statusText->SetText(cstring); } else statusText->SetText(tr("No Conflicts")); } MythUIText *filterText = dynamic_cast<MythUIText*>(GetChild("filter")); if (filterText) { if (m_showAll) filterText->SetText(tr("All")); else filterText->SetText(tr("Important")); } }
void ViewScheduled::FillList() { m_schedulesList->Reset(); MythUIText *norecordingText = dynamic_cast<MythUIText*> (GetChild("norecordings_info")); if (norecordingText) norecordingText->SetVisible(m_recList.empty()); if (m_recList.empty()) return; ProgramList plist; if (!m_recgroupList.contains(m_currentGroup)) m_currentGroup = m_defaultGroup; plist = m_recgroupList[m_currentGroup]; ProgramList::iterator pit = plist.begin(); while (pit != plist.end()) { ProgramInfo *pginfo = *pit; if (!pginfo) { ++pit; continue; } QString state; const RecStatus::Type recstatus = pginfo->GetRecordingStatus(); if (recstatus == RecStatus::Recording || recstatus == RecStatus::Tuning) state = "running"; else if (recstatus == RecStatus::Conflict || recstatus == RecStatus::Offline || recstatus == RecStatus::TunerBusy || recstatus == RecStatus::Failed || recstatus == RecStatus::Failing || recstatus == RecStatus::Aborted || recstatus == RecStatus::Missed) state = "error"; else if (recstatus == RecStatus::WillRecord || recstatus == RecStatus::Pending) { if (m_curinput == 0 || pginfo->GetInputID() == m_curinput) { if (pginfo->GetRecordingPriority2() < 0) state = "warning"; else state = "normal"; } } else if (recstatus == RecStatus::Repeat || recstatus == RecStatus::NeverRecord || recstatus == RecStatus::DontRecord || (recstatus != RecStatus::DontRecord && recstatus <= RecStatus::EarlierShowing)) state = "disabled"; else state = "warning"; MythUIButtonListItem *item = new MythUIButtonListItem(m_schedulesList,"", qVariantFromValue(pginfo)); InfoMap infoMap; pginfo->ToMap(infoMap); item->SetTextFromMap(infoMap, state); QString rating = QString::number(pginfo->GetStars(10)); item->DisplayState(rating, "ratingstate"); item->DisplayState(state, "status"); ++pit; } MythUIText *statusText = dynamic_cast<MythUIText*>(GetChild("status")); if (statusText) { if (m_conflictBool) { // Find first conflict and store in m_conflictDate field ProgramList::const_iterator it = plist.begin(); for (; it != plist.end(); ++it) { ProgramInfo &p = **it; if (p.GetRecordingStatus() == RecStatus::Conflict) { m_conflictDate = p.GetRecordingStartTime() .toLocalTime().date(); break; } } // TODO: This can be templated instead of hardcoding // Conflict/No Conflict QString cstring = tr("Conflict %1") .arg(MythDate::toString(m_conflictDate, MythDate::kDateFull | MythDate::kSimplify)); statusText->SetText(cstring); } else statusText->SetText(tr("No Conflicts")); } MythUIText *filterText = dynamic_cast<MythUIText*>(GetChild("filter")); if (filterText) { if (m_showAll) filterText->SetText(tr("All")); else filterText->SetText(tr("Important")); } }