/****************************************************************************** * Enable/disable hours/minutes units (if hours/minutes were permitted in the * constructor). */ TimePeriod::Units TimePeriod::setDateOnly(const Duration& perod, bool dateOnly, bool signal) { Duration oldinterval = 0; if (signal) oldinterval = period(); int index = mUnitsCombo->currentIndex(); Units units = static_cast<Units>(index + mDateOnlyOffset); if (!mNoHourMinute) { if (!dateOnly && mDateOnlyOffset) { // Change from date-only to allow hours/minutes mUnitsCombo->insertItem(0, i18n_minutes()); mUnitsCombo->insertItem(1, i18n_hours_mins()); mDateOnlyOffset = 0; adjustDayWeekShown(); mUnitsCombo->setCurrentIndex(index += 2); } else if (dateOnly && !mDateOnlyOffset) { // Change from allowing hours/minutes to date-only mUnitsCombo->removeItem(0); mUnitsCombo->removeItem(0); mDateOnlyOffset = 2; if (index > 2) index -= 2; else index = 0; adjustDayWeekShown(); mUnitsCombo->setCurrentIndex(index); if (units == HoursMinutes || units == Minutes) { // Set units to days and round up the warning period units = Days; mUnitsCombo->setCurrentIndex(Days - mDateOnlyOffset); mSpinBox->setValue(perod.asDays()); } showHourMin(false); } } if (signal) { Duration newinterval = period(); if (newinterval != oldinterval) emit valueChanged(newinterval); } return units; }