summaryrefslogtreecommitdiffabout
path: root/microkde/kdecore/klocale.cpp
Unidiff
Diffstat (limited to 'microkde/kdecore/klocale.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdecore/klocale.cpp44
1 files changed, 33 insertions, 11 deletions
diff --git a/microkde/kdecore/klocale.cpp b/microkde/kdecore/klocale.cpp
index 7bd8a70..17031c7 100644
--- a/microkde/kdecore/klocale.cpp
+++ b/microkde/kdecore/klocale.cpp
@@ -534,218 +534,240 @@ QTime KLocale::readTime(const QString &intstr, bool seconds, bool *ok) const
534 g_12h = false; 534 g_12h = false;
535 hour = readInt(str, strpos); 535 hour = readInt(str, strpos);
536 if (hour < 0 || hour > 23) 536 if (hour < 0 || hour > 23)
537 goto error; 537 goto error;
538 538
539 break; 539 break;
540 540
541 case 'l': 541 case 'l':
542 case 'I': 542 case 'I':
543 g_12h = true; 543 g_12h = true;
544 hour = readInt(str, strpos); 544 hour = readInt(str, strpos);
545 if (hour < 1 || hour > 12) 545 if (hour < 1 || hour > 12)
546 goto error; 546 goto error;
547 547
548 break; 548 break;
549 549
550 case 'M': 550 case 'M':
551 minute = readInt(str, strpos); 551 minute = readInt(str, strpos);
552 if (minute < 0 || minute > 59) 552 if (minute < 0 || minute > 59)
553 goto error; 553 goto error;
554 554
555 break; 555 break;
556 556
557 case 'S': 557 case 'S':
558 second = readInt(str, strpos); 558 second = readInt(str, strpos);
559 if (second < 0 || second > 59) 559 if (second < 0 || second > 59)
560 goto error; 560 goto error;
561 561
562 break; 562 break;
563 } 563 }
564 } 564 }
565 if (g_12h) 565 if (g_12h)
566 { 566 {
567 hour %= 12; 567 hour %= 12;
568 if (pm) hour += 12; 568 if (pm) hour += 12;
569 } 569 }
570 570
571 if (ok) *ok = true; 571 if (ok) *ok = true;
572 return QTime(hour, minute, second); 572 return QTime(hour, minute, second);
573 573
574 error: 574 error:
575 if (ok) *ok = false; 575 if (ok) *ok = false;
576 return QTime(-1, -1, -1); // return invalid date if it didn't work 576 return QTime(-1, -1, -1); // return invalid date if it didn't work
577 // This will be removed in the near future, since it gives a warning on stderr. 577 // This will be removed in the near future, since it gives a warning on stderr.
578 // The presence of the bool* (since KDE-3.0) removes the need for an invalid QTime. 578 // The presence of the bool* (since KDE-3.0) removes the need for an invalid QTime.
579} 579}
580 580
581QDateTime KLocale::readDateTime(const QString &intstr, 581QDateTime KLocale::readDateTime(const QString &intstr,
582 bool shortFormat,
583 bool includeSeconds,
584 IntDateFormat intIntDateFormat, 582 IntDateFormat intIntDateFormat,
585 bool* ok) const 583 bool* ok) const
586{ 584{
587 bool ok1, ok2; 585 bool ok1, ok2;
588 586
589 QDate m_date = readDate(date, &ok1); 587 // AT the moment we can not read any other format then ISODate
590 QTime m_time = KGlobal::locale()->readTime(time, &ok2); 588 if ( intIntDateFormat != ISODate )
591 if ((ok1 == false) || (ok2 == false)) 589 {
592 qDebug("Serializer::extractMeta invalid date or time !!!!!!!!!!!!!"); 590 qDebug("KLocale::readDateTime, only ISODate is supported.");
591 return QDateTime();
592 }
593
594 int pos = intstr.find("T");
595 QString date = intstr.left(pos);
596 QString time = intstr.mid(pos+1);
593 597
598 QString dformat = dateFormat(intIntDateFormat);
599 QString tformat = timeFormat(intIntDateFormat);
600
601 QDate m_date = readDate(date, dformat, &ok1);
602 QTime m_time = readTime(time, tformat, &ok2);
603
604 if (ok)
605 {
606 if ((ok1 == false) || (ok2 == false))
607 *ok = false;
608 else
609 *ok = true;
610 }
611 QDateTime m_dt;
612 m_dt.setDate(m_date);
613 m_dt.setTime(m_time);
614
615 qDebug("KLocale::readDateTime() transformed %s into %s (%s), %s (%s) : err1=%i, err2=%i", intstr.latin1(), date.latin1(), dformat.latin1(), time.latin1(), tformat.latin1(), ok1, ok2);
616 return m_dt;
594} 617}
595 618
596 619
597bool KLocale::use12Clock() const 620bool KLocale::use12Clock() const
598{ 621{
599 return !mHourF24Format ;; 622 return !mHourF24Format ;;
600} 623}
601 624
602bool KLocale::weekStartsMonday() const 625bool KLocale::weekStartsMonday() const
603{ 626{
604 return mWeekStartsMonday; 627 return mWeekStartsMonday;
605} 628}
606 629
607int KLocale::weekStartDay() const 630int KLocale::weekStartDay() const
608{ 631{
609 if ( mWeekStartsMonday ) 632 if ( mWeekStartsMonday )
610 return 1; 633 return 1;
611 return 7; 634 return 7;
612} 635}
613 636
614QString KLocale::weekDayName(int i,bool shortName) const 637QString KLocale::weekDayName(int i,bool shortName) const
615{ 638{
616 if ( shortName ) 639 if ( shortName )
617 switch ( i ) 640 switch ( i )
618 { 641 {
619 case 1: return i18n("Monday", "Mon"); 642 case 1: return i18n("Monday", "Mon");
620 case 2: return i18n("Tuesday", "Tue"); 643 case 2: return i18n("Tuesday", "Tue");
621 case 3: return i18n("Wednesday", "Wed"); 644 case 3: return i18n("Wednesday", "Wed");
622 case 4: return i18n("Thursday", "Thu"); 645 case 4: return i18n("Thursday", "Thu");
623 case 5: return i18n("Friday", "Fri"); 646 case 5: return i18n("Friday", "Fri");
624 case 6: return i18n("Saturday", "Sat"); 647 case 6: return i18n("Saturday", "Sat");
625 case 7: return i18n("Sunday", "Sun"); 648 case 7: return i18n("Sunday", "Sun");
626 } 649 }
627 else 650 else
628 switch ( i ) 651 switch ( i )
629 { 652 {
630 case 1: return i18n("Monday"); 653 case 1: return i18n("Monday");
631 case 2: return i18n("Tuesday"); 654 case 2: return i18n("Tuesday");
632 case 3: return i18n("Wednesday"); 655 case 3: return i18n("Wednesday");
633 case 4: return i18n("Thursday"); 656 case 4: return i18n("Thursday");
634 case 5: return i18n("Friday"); 657 case 5: return i18n("Friday");
635 case 6: return i18n("Saturday"); 658 case 6: return i18n("Saturday");
636 case 7: return i18n("Sunday"); 659 case 7: return i18n("Sunday");
637 } 660 }
638 661
639 return QString::null; 662 return QString::null;
640} 663}
641 664
642QString KLocale::monthName(int i,bool shortName) const 665QString KLocale::monthName(int i,bool shortName) const
643{ 666{
644 if ( shortName ) 667 if ( shortName )
645 switch ( i ) 668 switch ( i )
646 { 669 {
647 case 1: return i18n("January", "Jan"); 670 case 1: return i18n("January", "Jan");
648 case 2: return i18n("February", "Feb"); 671 case 2: return i18n("February", "Feb");
649 case 3: return i18n("March", "Mar"); 672 case 3: return i18n("March", "Mar");
650 case 4: return i18n("April", "Apr"); 673 case 4: return i18n("April", "Apr");
651 case 5: return i18n("May short", "May"); 674 case 5: return i18n("May short", "May");
652 case 6: return i18n("June", "Jun"); 675 case 6: return i18n("June", "Jun");
653 case 7: return i18n("July", "Jul"); 676 case 7: return i18n("July", "Jul");
654 case 8: return i18n("August", "Aug"); 677 case 8: return i18n("August", "Aug");
655 case 9: return i18n("September", "Sep"); 678 case 9: return i18n("September", "Sep");
656 case 10: return i18n("October", "Oct"); 679 case 10: return i18n("October", "Oct");
657 case 11: return i18n("November", "Nov"); 680 case 11: return i18n("November", "Nov");
658 case 12: return i18n("December", "Dec"); 681 case 12: return i18n("December", "Dec");
659 } 682 }
660 else 683 else
661 switch (i) 684 switch (i)
662 { 685 {
663 case 1: return i18n("January"); 686 case 1: return i18n("January");
664 case 2: return i18n("February"); 687 case 2: return i18n("February");
665 case 3: return i18n("March"); 688 case 3: return i18n("March");
666 case 4: return i18n("April"); 689 case 4: return i18n("April");
667 case 5: return i18n("May long", "May"); 690 case 5: return i18n("May long", "May");
668 case 6: return i18n("June"); 691 case 6: return i18n("June");
669 case 7: return i18n("July"); 692 case 7: return i18n("July");
670 case 8: return i18n("August"); 693 case 8: return i18n("August");
671 case 9: return i18n("September"); 694 case 9: return i18n("September");
672 case 10: return i18n("October"); 695 case 10: return i18n("October");
673 case 11: return i18n("November"); 696 case 11: return i18n("November");
674 case 12: return i18n("December"); 697 case 12: return i18n("December");
675 } 698 }
676 699
677 return QString::null; 700 return QString::null;
678} 701}
679 702
680QString KLocale::country() const 703QString KLocale::country() const
681{ 704{
682 return QString::null; 705 return QString::null;
683} 706}
684 707
685QString KLocale::dateFormat(IntDateFormat intIntDateFormat) const 708QString KLocale::dateFormat(IntDateFormat intIntDateFormat) const
686{ 709{
687 const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat; 710 const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat;
688 711
712 if ( dformat == ISODate )
713 return "%Y-%m-%d";
714
689 if ( QApplication::desktop()->width() < 480 ) { 715 if ( QApplication::desktop()->width() < 480 ) {
690 if ( dformat == Default ) 716 if ( dformat == Default )
691 return "%a %d %b %Y"; 717 return "%a %d %b %Y";
692 else if ( dformat == Format1 ) 718 else if ( dformat == Format1 )
693 return "%a %b %d %Y"; 719 return "%a %b %d %Y";
694 else if ( dformat == ISODate )
695 return "%a %Y %b %d";
696 } else { 720 } else {
697
698 if ( dformat == Default ) 721 if ( dformat == Default )
699 return "%A %d %B %Y"; 722 return "%A %d %B %Y";
700 else if ( dformat == Format1 ) 723 else if ( dformat == Format1 )
701 return "%A %B %d %Y"; 724 return "%A %B %d %Y";
702 else if ( dformat == ISODate ) 725
703 return "%A %Y %B %d";
704 } 726 }
705 return mDateFormat ; 727 return mDateFormat ;
706} 728}
707 729
708QString KLocale::dateFormatShort(IntDateFormat intIntDateFormat) const 730QString KLocale::dateFormatShort(IntDateFormat intIntDateFormat) const
709{ 731{
710 const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat; 732 const IntDateFormat dformat = (intIntDateFormat == Undefined)?mIntDateFormat:intIntDateFormat;
711 733
712 if ( dformat == Default ) 734 if ( dformat == Default )
713 return "%d.%m.%Y"; 735 return "%d.%m.%Y";
714 else if ( dformat == Format1 ) 736 else if ( dformat == Format1 )
715 return "%m.%d.%Y"; 737 return "%m.%d.%Y";
716 else if ( dformat == ISODate ) // = Qt::ISODate 738 else if ( dformat == ISODate ) // = Qt::ISODate
717 return "%Y-%m-%d"; 739 return "%Y-%m-%d";
718 return mDateFormatShort ; 740 return mDateFormatShort ;
719 741
720} 742}
721 743
722 744
723QString KLocale::timeFormat(IntDateFormat intIntTimeFormat) const 745QString KLocale::timeFormat(IntDateFormat intIntTimeFormat) const
724{ 746{
725 const IntDateFormat tformat = (intIntTimeFormat == Undefined)?mIntTimeFormat:intIntTimeFormat; 747 const IntDateFormat tformat = (intIntTimeFormat == Undefined)?mIntTimeFormat:intIntTimeFormat;
726 748
727 if ( tformat == Default ) 749 if ( tformat == Default )
728 if ( mHourF24Format) 750 if ( mHourF24Format)
729 return "%H:%M:%S"; 751 return "%H:%M:%S";
730 else 752 else
731 return "%I:%M:%S%p"; 753 return "%I:%M:%S%p";
732 754
733 else if ( tformat == Format1 ) 755 else if ( tformat == Format1 )
734 if ( mHourF24Format) 756 if ( mHourF24Format)
735 return "%H:%M:%S"; 757 return "%H:%M:%S";
736 else 758 else
737 return "%I:%M:%S%p"; 759 return "%I:%M:%S%p";
738 760
739 else if ( tformat == ISODate ) // = Qt::ISODate 761 else if ( tformat == ISODate ) // = Qt::ISODate
740 if ( mHourF24Format) 762 if ( mHourF24Format)
741 return "%H:%M:%S"; 763 return "%H:%M:%S";
742 else 764 else
743 return "%I:%M:%S%p"; 765 return "%I:%M:%S%p";
744 766
745} 767}
746 768
747void KLocale::insertCatalogue ( const QString & ) 769void KLocale::insertCatalogue ( const QString & )
748{ 770{
749} 771}
750 772
751KCalendarSystem *KLocale::calendar() 773KCalendarSystem *KLocale::calendar()