|
@@ -44,7 +44,9 @@ class DateRangeSelector : public QWidget
|
44
|
44
|
void setCustomRange(QVariant range);
|
45
|
45
|
Q_INVOKABLE QVariant currentRange();@/
|
46
|
46
|
@[public slots@]:@/
|
47
|
|
- void setCurrentIndex(int index);@/
|
|
47
|
+ void setCurrentIndex(int index);
|
|
48
|
+ void setLifetimeRange(QString startDate, QString endDate);
|
|
49
|
+ void removeIndex(int index);@/
|
48
|
50
|
@[signals@]:@/
|
49
|
51
|
void rangeUpdated(QVariant);
|
50
|
52
|
@[private slots@]:@/
|
|
@@ -301,6 +303,7 @@ quickSelector->addItem("Last 365 Days", QVariant(QStringList() <<
|
301
|
303
|
currentDate.addDays(-364).toString(Qt::ISODate) <<
|
302
|
304
|
currentDate.toString(Qt::ISODate)));
|
303
|
305
|
quickSelector->insertSeparator(quickSelector->count());
|
|
306
|
+quickSelector->addItem("Lifetime");
|
304
|
307
|
quickSelector->addItem("Custom");
|
305
|
308
|
|
306
|
309
|
@ Special handling of the Custom range is required because it is possible to
|
|
@@ -407,6 +410,31 @@ void DateRangeSelector::setCurrentIndex(int index)
|
407
|
410
|
quickSelector->setCurrentIndex(index);
|
408
|
411
|
}
|
409
|
412
|
|
|
413
|
+@ The Lifetime range is handled somewhat differently from other ranges as there
|
|
414
|
+is no general way to know what that range should be without making unsafe
|
|
415
|
+assumptions. As such, reports are expected to remove the option, provide a
|
|
416
|
+sensible range for it, or handle this selection in a special case. The expected
|
|
417
|
+source of the lifetime date range is the result of a database query so a method
|
|
418
|
+is provided that accepts string representations of the dates. Note that this
|
|
419
|
+method must not be called if the Lifetime option is no longer the second to
|
|
420
|
+last option in the combo box.
|
|
421
|
+
|
|
422
|
+@<DateRangeSelector implementation@>=
|
|
423
|
+void DateRangeSelector::setLifetimeRange(QString startDate, QString endDate)
|
|
424
|
+{
|
|
425
|
+ quickSelector->setItemData(quickSelector->count() - 2,
|
|
426
|
+ QVariant(QStringList() << startDate << endDate));
|
|
427
|
+}
|
|
428
|
+
|
|
429
|
+@ The |removeIndex()| method is intended for removing the Lifetime option in
|
|
430
|
+cases where this is not supported. Use of this method is strongly discouraged.
|
|
431
|
+
|
|
432
|
+@<DateRangeSelector implementation@>=
|
|
433
|
+void DateRangeSelector::removeIndex(int index)
|
|
434
|
+{
|
|
435
|
+ quickSelector->removeItem(index);
|
|
436
|
+}
|
|
437
|
+
|
410
|
438
|
@ To use this new control in Typica, we should provide a way to create it from
|
411
|
439
|
the XML description of a window.
|
412
|
440
|
|