75
80
chooseType = new KComboBox(page1);
76
81
tmpGridLayout->addWidget(chooseType, 0, 1);
78
listType += i18n("All");
79
listType += i18n("Number");
80
listType += i18n("Integer");
81
listType += i18n("Text");
82
listType += i18n("Date");
83
listType += i18n("Time");
84
listType += i18n("Text Length");
85
listType += i18n("List");
86
chooseType->insertItems(0, listType);
82
chooseType->addItem(i18n("All"), QVariant::fromValue(Validity::None));
83
chooseType->addItem(i18n("Number"), QVariant::fromValue(Validity::Number));
84
chooseType->addItem(i18n("Integer"), QVariant::fromValue(Validity::Integer));
85
chooseType->addItem(i18n("Text"), QVariant::fromValue(Validity::Text));
86
chooseType->addItem(i18n("Date"), QVariant::fromValue(Validity::Date));
87
chooseType->addItem(i18n("Time"), QVariant::fromValue(Validity::Time));
88
chooseType->addItem(i18n("Text Length"), QVariant::fromValue(Validity::TextLength));
89
chooseType->addItem(i18n("List"), QVariant::fromValue(Validity::List));
87
90
chooseType->setCurrentIndex(0);
89
92
allowEmptyCell = new QCheckBox(i18n("Allow blanks"), page1);
96
99
choose = new KComboBox(page1);
97
100
tmpGridLayout->addWidget(choose, 2, 1);
99
list += i18n("equal to");
100
list += i18n("greater than");
101
list += i18n("less than");
102
list += i18n("equal to or greater than");
103
list += i18n("equal to or less than");
104
list += i18n("between");
105
list += i18n("different from");
106
list += i18n("different to");
107
choose->insertItems(0, list);
101
choose->addItem(i18n("equal to"), QVariant::fromValue(Conditional::Equal));
102
choose->addItem(i18n("greater than"), QVariant::fromValue(Conditional::Superior));
103
choose->addItem(i18n("less than"), QVariant::fromValue(Conditional::Inferior));
104
choose->addItem(i18n("equal to or greater than"), QVariant::fromValue(Conditional::SuperiorEqual));
105
choose->addItem(i18n("equal to or less than"), QVariant::fromValue(Conditional::InferiorEqual));
106
choose->addItem(i18n("between"), QVariant::fromValue(Conditional::Between));
107
choose->addItem(i18n("different from"), QVariant::fromValue(Conditional::Different));
108
choose->addItem(i18n("different to"), QVariant::fromValue(Conditional::DifferentTo));
108
109
choose->setCurrentIndex(0);
110
111
edit1 = new QLabel(page1);
407
408
case Validity::Number:
408
409
chooseType->setCurrentIndex(1);
409
410
if (validity.condition() >= 5)
410
val_max->setText(tmp.setNum(validity.maximumValue()));
411
val_min->setText(tmp.setNum(validity.minimumValue()));
411
val_max->setText(tmp.setNum((double)numToDouble(validity.maximumValue().asFloat())));
412
val_min->setText(tmp.setNum((double)numToDouble(validity.minimumValue().asFloat())));
413
414
case Validity::Integer:
414
415
chooseType->setCurrentIndex(2);
415
416
if (validity.condition() >= 5)
416
val_max->setText(tmp.setNum(validity.maximumValue()));
417
val_min->setText(tmp.setNum(validity.minimumValue()));
417
val_max->setText(tmp.setNum((double)numToDouble(validity.maximumValue().asFloat())));
418
val_min->setText(tmp.setNum((double)numToDouble(validity.minimumValue().asFloat())));
419
420
case Validity::TextLength:
420
421
chooseType->setCurrentIndex(6);
421
422
if (validity.condition() >= 5)
422
val_max->setText(tmp.setNum(validity.maximumValue()));
423
val_min->setText(tmp.setNum(validity.minimumValue()));
423
val_max->setText(tmp.setNum((double)numToDouble(validity.maximumValue().asFloat())));
424
val_min->setText(tmp.setNum((double)numToDouble(validity.minimumValue().asFloat())));
425
426
case Validity::Text:
426
427
chooseType->setCurrentIndex(3);
428
429
case Validity::Date:
429
430
chooseType->setCurrentIndex(4);
430
val_min->setText(locale->formatDate(validity.minimumDate(), KLocale::ShortDate));
431
val_min->setText(locale->formatDate(validity.minimumValue().asDate(settings), KLocale::ShortDate));
431
432
if (validity.condition() >= 5)
432
val_max->setText(locale->formatDate(validity.maximumDate(), KLocale::ShortDate));
433
val_max->setText(locale->formatDate(validity.maximumValue().asDate(settings), KLocale::ShortDate));
434
435
case Validity::Time:
435
436
chooseType->setCurrentIndex(5);
436
val_min->setText(locale->formatTime(validity.minimumTime(), true));
437
val_min->setText(locale->formatTime(validity.minimumValue().asTime(settings), true));
437
438
if (validity.condition() >= 5)
438
val_max->setText(locale->formatTime(validity.maximumTime(), true));
439
val_max->setText(locale->formatTime(validity.maximumValue().asTime(settings), true));
440
441
case Validity::List: {
441
442
chooseType->setCurrentIndex(7);
451
452
chooseType->setCurrentIndex(0);
454
switch (validity.action()) {
456
chooseAction->setCurrentIndex(0);
458
case Validity::Warning:
459
chooseAction->setCurrentIndex(1);
461
case Validity::Information:
462
chooseAction->setCurrentIndex(2);
465
chooseAction->setCurrentIndex(0);
468
switch (validity.condition()) {
469
case Conditional::Equal:
470
choose->setCurrentIndex(0);
472
case Conditional::Superior:
473
choose->setCurrentIndex(1);
475
case Conditional::Inferior:
476
choose->setCurrentIndex(2);
478
case Conditional::SuperiorEqual:
479
choose->setCurrentIndex(3);
481
case Conditional::InferiorEqual:
482
choose->setCurrentIndex(4);
484
case Conditional::Between:
485
choose->setCurrentIndex(5);
487
case Conditional::Different:
488
choose->setCurrentIndex(6);
490
case Conditional::DifferentTo:
491
choose->setCurrentIndex(7);
494
choose->setCurrentIndex(0);
455
chooseAction->setCurrentIndex(chooseAction->findData(QVariant::fromValue(validity.action())));
456
choose->setCurrentIndex(choose->findData(QVariant::fromValue(validity.condition())));
497
457
displayMessage->setChecked(validity.displayMessage());
498
458
allowEmptyCell->setChecked(validity.allowEmptyCell());
499
459
titleHelp->setText(validity.titleInfo());
587
548
validity.setCondition(Conditional::Equal);
588
549
validity.setMessage(message->toPlainText());
589
550
validity.setTitle(title->text());
590
validity.setMinimumValue(0);
591
validity.setMaximumValue(0);
592
validity.setMinimumTime(QTime(0, 0, 0));
593
validity.setMaximumTime(QTime(0, 0, 0));
594
validity.setMinimumDate(QDate(0, 0, 0));
595
validity.setMaximumDate(QDate(0, 0, 0));
551
validity.setMinimumValue(Value());
552
validity.setMaximumValue(Value());
597
switch (chooseType->currentIndex()) {
599
validity.setRestriction(Validity::None);
602
validity.setRestriction(Validity::Number);
605
validity.setRestriction(Validity::Integer);
608
validity.setRestriction(Validity::Text);
611
validity.setRestriction(Validity::Date);
614
validity.setRestriction(Validity::Time);
617
validity.setRestriction(Validity::TextLength);
620
validity.setRestriction(Validity::List);
626
switch (chooseAction->currentIndex()) {
628
validity.setAction(Validity::Stop);
631
validity.setAction(Validity::Warning);
634
validity.setAction(Validity::Information);
639
switch (choose->currentIndex()) {
641
validity.setCondition(Conditional::Equal);
644
validity.setCondition(Conditional::Superior);
647
validity.setCondition(Conditional::Inferior);
650
validity.setCondition(Conditional::SuperiorEqual);
653
validity.setCondition(Conditional::InferiorEqual);
656
validity.setCondition(Conditional::Between);
659
validity.setCondition(Conditional::Different);
662
validity.setCondition(Conditional::DifferentTo);
554
validity.setRestriction(chooseType->itemData(chooseType->currentIndex()).value<Validity::Restriction>());
555
validity.setAction(chooseAction->itemData(chooseAction->currentIndex()).value<Validity::Action>());
556
validity.setCondition(choose->itemData(choose->currentIndex()).value<Conditional::Type>());
667
557
validity.setMessage(message->toPlainText());
668
558
validity.setTitle(title->text());
669
validity.setMinimumValue(0);
670
validity.setMaximumValue(0);
671
validity.setMinimumTime(QTime(0, 0, 0));
672
validity.setMaximumTime(QTime(0, 0, 0));
673
validity.setMinimumDate(QDate(0, 0, 0));
674
validity.setMaximumDate(QDate(0, 0, 0));
559
validity.setMinimumValue(Value());
560
validity.setMaximumValue(Value());
676
562
if (chooseType->currentIndex() == 1) {
677
563
if (choose->currentIndex() < 5) {
678
validity.setMinimumValue(val_min->text().toDouble());
564
validity.setMinimumValue(Value(val_min->text().toDouble()));
680
validity.setMinimumValue(qMin(val_min->text().toDouble(), val_max->text().toDouble()));
681
validity.setMaximumValue(qMax(val_max->text().toDouble(), val_min->text().toDouble()));
566
validity.setMinimumValue(Value(qMin(val_min->text().toDouble(), val_max->text().toDouble())));
567
validity.setMaximumValue(Value(qMax(val_max->text().toDouble(), val_min->text().toDouble())));
683
569
} else if (chooseType->currentIndex() == 2 || chooseType->currentIndex() == 6) {
684
570
if (choose->currentIndex() < 5) {
685
validity.setMinimumValue(val_min->text().toInt());
571
validity.setMinimumValue(Value(val_min->text().toInt()));
687
validity.setMinimumValue(qMin(val_min->text().toInt(), val_max->text().toInt()));
688
validity.setMaximumValue(qMax(val_max->text().toInt(), val_min->text().toInt()));
573
validity.setMinimumValue(Value(qMin(val_min->text().toInt(), val_max->text().toInt())));
574
validity.setMaximumValue(Value(qMax(val_max->text().toInt(), val_min->text().toInt())));
690
576
} else if (chooseType->currentIndex() == 4) {
577
const Value minValue = parser->tryParseDate(val_min->text());
578
const Value maxValue = parser->tryParseDate(val_max->text());
691
579
if (choose->currentIndex() < 5) {
692
validity.setMinimumDate(locale->readDate(val_min->text()));
580
validity.setMinimumValue(minValue);
694
if (locale->readDate(val_min->text()) < locale->readDate(val_max->text())) {
695
validity.setMinimumDate(locale->readDate(val_min->text()));
696
validity.setMaximumDate(locale->readDate(val_max->text()));
582
if (minValue.less(maxValue)) {
583
validity.setMinimumValue(minValue);
584
validity.setMaximumValue(maxValue);
698
validity.setMinimumDate(locale->readDate(val_max->text()));
699
validity.setMaximumDate(locale->readDate(val_min->text()));
586
validity.setMinimumValue(maxValue);
587
validity.setMaximumValue(minValue);
702
590
} else if (chooseType->currentIndex() == 5) {
591
const Value minValue = parser->tryParseTime(val_min->text());
592
const Value maxValue = parser->tryParseTime(val_max->text());
703
593
if (choose->currentIndex() < 5) {
704
validity.setMinimumTime(locale->readTime(val_min->text()));
594
validity.setMinimumValue(minValue);
706
if (locale->readTime(val_min->text()) < locale->readTime(val_max->text())) {
707
validity.setMaximumTime(locale->readTime(val_max->text()));
708
validity.setMinimumTime(locale->readTime(val_min->text()));
596
if (minValue.less(maxValue)) {
597
validity.setMaximumValue(maxValue);
598
validity.setMinimumValue(minValue);
710
validity.setMaximumTime(locale->readTime(val_min->text()));
711
validity.setMinimumTime(locale->readTime(val_max->text()));
600
validity.setMaximumValue(minValue);
601
validity.setMinimumValue(maxValue);
714
604
} else if (chooseType->currentIndex() == 7) {