bool CustomEdit::Create() { if (!LoadWindowFromXML("schedule-ui.xml", "customedit", this)) return false; bool err = false; UIUtilE::Assign(this, m_ruleList, "rules", &err); UIUtilE::Assign(this, m_clauseList, "clauses", &err); UIUtilE::Assign(this, m_titleEdit, "title", &err); UIUtilE::Assign(this, m_subtitleEdit, "subtitle", &err); UIUtilE::Assign(this, m_descriptionEdit, "description", &err); UIUtilE::Assign(this, m_clauseText, "clausetext", &err); UIUtilE::Assign(this, m_testButton, "test", &err); UIUtilE::Assign(this, m_recordButton, "record", &err); UIUtilE::Assign(this, m_storeButton, "store", &err); UIUtilE::Assign(this, m_cancelButton, "cancel", &err); if (err) { LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'customedit'"); return false; } connect(m_ruleList, SIGNAL(itemSelected(MythUIButtonListItem *)), SLOT(ruleChanged(MythUIButtonListItem *))); connect(m_titleEdit, SIGNAL(valueChanged(void)), this, SLOT(textChanged(void))); m_titleEdit->SetMaxLength(128); m_subtitleEdit->SetMaxLength(128); connect(m_descriptionEdit, SIGNAL(valueChanged(void)), this, SLOT(textChanged(void))); m_descriptionEdit->SetMaxLength(0); connect(m_clauseList, SIGNAL(itemSelected(MythUIButtonListItem *)), SLOT(clauseChanged(MythUIButtonListItem *))); connect(m_clauseList, SIGNAL(itemClicked(MythUIButtonListItem *)), SLOT(clauseClicked(MythUIButtonListItem *))); connect(m_testButton, SIGNAL(Clicked()), SLOT(testClicked())); connect(m_recordButton, SIGNAL(Clicked()), SLOT(recordClicked())); connect(m_storeButton, SIGNAL(Clicked()), SLOT(storeClicked())); connect(m_cancelButton, SIGNAL(Clicked()), SLOT(Close())); loadData(); BuildFocusList(); return true; }
bool ManualSchedule::Create(void) { if (!LoadWindowFromXML("schedule-ui.xml", "manualschedule", this)) return false; m_channelList = dynamic_cast<MythUIButtonList *>(GetChild("channel")); m_startdateList = dynamic_cast<MythUIButtonList *>(GetChild("startdate")); m_starthourSpin = dynamic_cast<MythUISpinBox *>(GetChild("starthour")); m_startminuteSpin = dynamic_cast<MythUISpinBox *>(GetChild("startminute")); m_durationSpin = dynamic_cast<MythUISpinBox *>(GetChild("duration")); m_titleEdit = dynamic_cast<MythUITextEdit *>(GetChild("title")); m_recordButton = dynamic_cast<MythUIButton *>(GetChild("next")); m_cancelButton = dynamic_cast<MythUIButton *>(GetChild("cancel")); if (!m_channelList || !m_startdateList || !m_starthourSpin || !m_startminuteSpin || !m_durationSpin || !m_titleEdit || !m_recordButton || !m_cancelButton) { LOG(VB_GENERAL, LOG_ERR, "ManualSchedule, theme is missing required elements"); return false; } QString chanorder = gCoreContext->GetSetting("ChannelOrdering", "channum"); DBChanList channels = ChannelUtil::GetChannels(0, false, "channum,callsign"); ChannelUtil::SortChannels(channels, chanorder); for (uint i = 0; i < channels.size(); i++) { QString chantext = channels[i].GetFormatted(DBChannel::kChannelLong); MythUIButtonListItem *item = new MythUIButtonListItem(m_channelList, chantext); InfoMap infomap; channels[i].ToMap(infomap); item->SetTextFromMap(infomap); m_chanids.push_back(channels[i].chanid); } for (uint index = 0; index <= 60; index++) { QString dinfo = MythDate::toString( m_nowDateTime.addDays(index), MythDate::kDateFull | MythDate::kSimplify); if (m_nowDateTime.addDays(index).toLocalTime().date().dayOfWeek() < 6) dinfo += QString(" (%1)").arg(tr("5 weekdays if daily")); else dinfo += QString(" (%1)").arg(tr("7 days per week if daily")); new MythUIButtonListItem(m_startdateList, dinfo); if (m_nowDateTime.addDays(index).toLocalTime().toString("MMdd") == m_startDateTime.toLocalTime().toString("MMdd")) m_startdateList->SetItemCurrent(m_startdateList->GetCount() - 1); } QTime thisTime = m_nowDateTime.toLocalTime().time(); thisTime = thisTime.addSecs((30 - (thisTime.minute() % 30)) * 60); if (thisTime < QTime(0,30)) m_startdateList->SetItemCurrent(m_startdateList->GetCurrentPos() + 1); m_starthourSpin->SetRange(0,23,1); m_starthourSpin->SetValue(thisTime.hour()); int minute_increment = gCoreContext->GetNumSetting("ManualScheduleMinuteIncrement", 5); m_startminuteSpin->SetRange(0, 60-minute_increment, minute_increment); m_startminuteSpin->SetValue((thisTime.minute()/5)*5); m_durationSpin->SetRange(5,360,5); m_durationSpin->SetValue(60); connectSignals(); connect(m_recordButton, SIGNAL(Clicked()), SLOT(recordClicked())); connect(m_cancelButton, SIGNAL(Clicked()), SLOT(Close())); m_titleEdit->SetMaxLength(128); BuildFocusList(); return true; }