string GenlistItemScenarioSchedule::getLabelItem(Evas_Object *obj, string part) { string text; if (!scenario) return text; if (part == "text") { text = scenario->ioScenario->params["name"]; } else if (part == "time") { text = "N/A"; if (scenario->isScheduled()) { auto getTimeForDate = [=,&text](vector<TimeRange> &range) { if (scheduleRangeNum >= 0 && scheduleRangeNum < range.size()) { TimeRange tr = range[scheduleRangeNum]; text = tr.getStartTimeSec(scDate.tm_year + 1900, scDate.tm_mon + 1, scDate.tm_mday); } }; switch (scheduleRange) { case TimeRange::MONDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_monday); break; case TimeRange::TUESDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_tuesday); break; case TimeRange::WEDNESDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_wednesday); break; case TimeRange::THURSDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_thursday); break; case TimeRange::FRIDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_friday); break; case TimeRange::SATURDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_saturday); break; case TimeRange::SUNDAY: getTimeForDate(scenario->ioSchedule->range_infos.range_sunday); break; default: break; } } } else if (part == "actions.text") { text = "Aucune actions."; if (scenario->scenario_data.steps.size() > 1) text = Utils::to_string(scenario->scenario_data.steps.size()) + " étapes."; else if (scenario->scenario_data.steps.size() == 1 && scenario->scenario_data.steps[0].actions.size() > 0) text = Utils::to_string(scenario->scenario_data.steps[0].actions.size()) + " actions."; } if (scenario->scenario_data.params["schedule"] != "false") itemEmitSignal("schedule,true", "calaos"); else itemEmitSignal("schedule,false", "calaos"); return text; }
void DialogEditTimeRange::addTreeItem(TimeRange &range) { QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeRanges); bool same = range.isSameStartEnd(); string starttxt, subtxt; if (same) starttxt = tr("Execute at ").toUtf8().constData(); else starttxt = tr("Start at ").toUtf8().constData(); auto offsetString = [=](bool isstart) { if (isstart) { int h, m, s; from_string(range.shour, h); from_string(range.smin, m); from_string(range.ssec, s); int v = h * 3600 + m * 60 + s; if (range.start_offset == 1) return string(" +") + Utils::time2string_digit(v); else if (range.start_offset == -1) return string(" -") + Utils::time2string_digit(v); } else { int h, m, s; from_string(range.ehour, h); from_string(range.emin, m); from_string(range.esec, s); int v = h * 3600 + m * 60 + s; if (range.end_offset == 1) return string(" +") + Utils::time2string_digit(v); else if (range.end_offset == -1) return string(" -") + Utils::time2string_digit(v); } return string(); }; if (range.start_type == TimeRange::HTYPE_NORMAL) starttxt = starttxt + Utils::time2string_digit(range.getStartTimeSec()); else if (range.start_type == TimeRange::HTYPE_SUNRISE) starttxt = starttxt + tr("Sunrise").toUtf8().constData() + offsetString(true) + " (" + Utils::time2string_digit(range.getStartTimeSec()) + ")"; else if (range.start_type == TimeRange::HTYPE_SUNSET) starttxt = starttxt + tr("Sunset").toUtf8().constData() + offsetString(true) + " (" + Utils::time2string_digit(range.getStartTimeSec()) + ")"; else if (range.start_type == TimeRange::HTYPE_NOON) starttxt = starttxt + tr("Noon").toUtf8().constData() + offsetString(true) + " (" + Utils::time2string_digit(range.getStartTimeSec()) + ")"; item->setData(0, TwoLineItemDelegate::headerTextRole, QString::fromUtf8(starttxt.c_str())); if (!same) { subtxt = tr("Stop at ").toUtf8().constData(); if (range.end_type == TimeRange::HTYPE_NORMAL) subtxt += Utils::time2string_digit(range.getEndTimeSec()); else if (range.end_type == TimeRange::HTYPE_SUNRISE) subtxt += tr("Sunrise").toUtf8().constData() + offsetString(false) + " (" + Utils::time2string_digit(range.getEndTimeSec()) + ")"; else if (range.end_type == TimeRange::HTYPE_SUNSET) subtxt += tr("Sunset").toUtf8().constData() + offsetString(false) + " (" + Utils::time2string_digit(range.getEndTimeSec()) + ")"; else if (range.end_type == TimeRange::HTYPE_NOON) subtxt += tr("Noon").toUtf8().constData() + offsetString(false) + " (" + Utils::time2string_digit(range.getEndTimeSec()) + ")"; item->setData(0, TwoLineItemDelegate::subHeaderTextRole, QString::fromUtf8(subtxt.c_str())); } if (range.isNewRange) { item->setData(0, TwoLineItemDelegate::headerTextRole, tr("New empty range...")); item->setData(0, TwoLineItemDelegate::subHeaderTextRole, tr("Click to edit")); } QVariant uservalue = QVariant::fromValue<TimeRange>(range); item->setData(0, TimeRangeRole, uservalue); item->setIcon(0, QIcon(":/img/icon_clock.png")); }