From 13d1f5568f3b61a9bf3f6db9e8f93724061c982c Mon Sep 17 00:00:00 2001 From: Martin Klapetek Date: Wed, 27 Nov 2013 16:28:46 +0100 Subject: [PATCH] Remove KLocale bindings KLocale is now kde4support and we have QLocale QML bindings. This patch removes the KLocale bindings from plasma-framework (they are not used anywhere anyway). If we miss something from KLocale in QLocale, we should upstream it. REVIEW: 114150 --- examples/applets/CMakeLists.txt | 1 - .../localegallery/contents/ui/main.qml | 482 ----- .../applets/localegallery/metadata.desktop | 35 - .../contents/ui/DialogContent.qml | 4 - .../testcomponents/contents/ui/LocaleItem.qml | 24 - src/declarativeimports/CMakeLists.txt | 1 - src/declarativeimports/locale/CMakeLists.txt | 20 - .../locale/calendarsystem.cpp | 302 ---- .../locale/calendarsystem.h | 697 -------- src/declarativeimports/locale/locale.cpp | 576 ------ src/declarativeimports/locale/locale_p.h | 1575 ----------------- .../locale/localebindingsplugin.cpp | 34 - .../locale/localebindingsplugin.h | 35 - src/declarativeimports/locale/qmldir | 2 - 14 files changed, 3788 deletions(-) delete mode 100644 examples/applets/localegallery/contents/ui/main.qml delete mode 100644 examples/applets/localegallery/metadata.desktop delete mode 100644 examples/applets/testcomponents/contents/ui/LocaleItem.qml delete mode 100644 src/declarativeimports/locale/CMakeLists.txt delete mode 100644 src/declarativeimports/locale/calendarsystem.cpp delete mode 100644 src/declarativeimports/locale/calendarsystem.h delete mode 100644 src/declarativeimports/locale/locale.cpp delete mode 100644 src/declarativeimports/locale/locale_p.h delete mode 100644 src/declarativeimports/locale/localebindingsplugin.cpp delete mode 100644 src/declarativeimports/locale/localebindingsplugin.h delete mode 100644 src/declarativeimports/locale/qmldir diff --git a/examples/applets/CMakeLists.txt b/examples/applets/CMakeLists.txt index 37780fb34..ff9498720 100644 --- a/examples/applets/CMakeLists.txt +++ b/examples/applets/CMakeLists.txt @@ -1,6 +1,5 @@ plasma_install_package(config org.kde.example.configuration) -plasma_install_package(localegallery org.kde.example.locale) plasma_install_package(notes org.kde.example.notes) plasma_install_package(widgetgallery org.kde.example.widgetgallery) plasma_install_package(qmltasks org.kde.example.tasks) diff --git a/examples/applets/localegallery/contents/ui/main.qml b/examples/applets/localegallery/contents/ui/main.qml deleted file mode 100644 index 67f9dcd57..000000000 --- a/examples/applets/localegallery/contents/ui/main.qml +++ /dev/null @@ -1,482 +0,0 @@ -// -*- coding: iso-8859-1 -*- -/* - * Author: Giorgos Tsiapaliwkas - * Date: Wed Feb 15 2012, 18:28:32 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 -import org.kde.plasma.components 2.0 as PlasmaComponents -import org.kde.locale 2.0 as PlasmaLocale - -Rectangle { - id: root - property int minimumHeight: 200 - property int minimumWidth: 500 - Column { - id: column - width: parent.width - height: parent.height - anchors.horizontalCenter: root.horizontalCenter - spacing: 20 - PlasmaComponents.Label { - id: text1 - width: parent.width - wrapMode: Text.WordWrap - text: "This is a test plasmoid for the locale bindings" - } - - PlasmaComponents.Label { - id: text2 - width: parent.width - wrapMode: Text.WordWrap - text: "If you see this text,that means that every " + - " non printable property/method has been already set. And it works!!" - } - - PlasmaComponents.Button { - id: bt1 - anchors.horizontalCenter: column.horizontalCenter - text: "click in order to test the Locale component" - onClicked:{ - console.log("=====Locale Component====") - console.log("country:" + locale.country) - - locale.binaryUnitDialect = PlasmaLocale.Locale.IECBinaryDialect - locale.calendarSystem = PlasmaLocale.Locale.CopticCalendar - - locale.countryDivisionCode = "AL" - console.log("countryDivisionCode:" + locale.countryDivisionCode) - - console.log("currencyCode:" + locale.currencyCode) - - locale.currencySymbol = "$" - console.log("currencySymbol:" + locale.currencySymbol) - - locale.dateTimeDigitSet = PlasmaLocale.Locale.EasternArabicIndicDigits - console.log(locale.formatLocaleTime( "11:12:13", Locale.TimeWithoutAmPm|Locale.TimeWithoutSeconds )) - console.log(locale.formatDateTime("2013-04-12", Locale.ShortDate ,Locale.Seconds )) - - locale.dateFormat = "Y" - console.log("dateFormat:" + locale.dateFormat) - - locale.dateFormatShort = "Y" - console.log("dateFormatShort:" + locale.dateFormatShort) - - locale.dateMonthNamePossessive = false - console.log("dateMonthNamePossessive:" + locale.dateMonthNamePossessive) - - locale.decimalPlaces = 2 - console.log("decimalPlaces:" + locale.decimalPlaces) - - locale.decimalSymbol = "." - console.log("decimalSymbol:" + locale.decimalSymbol) - - locale.digitSet = PlasmaLocale.Locale.EasternArabicIndicDigits - console.log("digitSet:" + locale.digitSet) - - console.log("language:" + locale.language) - - locale.measureSystem = PlasmaLocale.Locale.Imperial - - locale.monetaryDecimalPlaces = 3 - console.log("monetaryDecimalPlaces:" + locale.monetaryDecimalPlaces) - - locale.monetaryDecimalSymbol = "." - console.log("monetaryDecimalSymbol:" + locale.monetaryDecimalSymbol) - - locale.monetaryDigitSet = PlasmaLocale.Locale.EasternArabicIndicDigits - - locale.monetaryThousandsSeparator = "." - console.log("monetaryThousandsSeparator:" + locale.monetaryThousandsSeparator) - - locale.negativeMonetarySignPosition = PlasmaLocale.Locale.AfterMoney - - locale.negativePrefixCurrencySymbol = false - console.log("negativePrefixCurrencySymbol:" + locale.negativePrefixCurrencySymbol) - - locale.negativeSign = "-" - console.log("negativeSign:" + locale.negativeSign) - - locale.pageSize = 6 - console.log("pageSize:" + locale.pageSize) - - locale.positiveMonetarySignPosition = PlasmaLocale.Locale.AfterMoney - - locale.positivePrefixCurrencySymbol = false - console.log("positivePrefixCurrencySymbol:" + locale.positivePrefixCurrencySymbol) - - locale.positiveSign = "+" - console.log("positiveSign:" + locale.positiveSign) - - locale.thousandsSeparator = "." - console.log("thousandsSeparator:" + locale.thousandsSeparator) - - locale.weekDayOfPray = 10 - console.log("weekDayOfPray:" + locale.weekDayOfPray) - - locale.weekNumberSystem = PlasmaLocale.Locale.FirstFullWeek - - locale.weekStartDay = 3 - console.log("weekStartDay:" + locale.weekStartDay) - - locale.workingWeekEndDay = 6 - console.log("workingWeekEndDay:" + locale.workingWeekEndDay) - - locale.workingWeekStartDay = 2 - console.log("workingWeekStartDay:" + locale.workingWeekEndDay) - - console.log("use12Clock:" + locale.use12Clock) - - console.log("defaultLanguage:" + locale.defaultLanguage) - - console.log("defaultCountry:" + locale.defaultCountry) - - console.log("defaultCurrencyCode:" + locale.defaultCurrencyCode) - - for (var i in locale.languageList) { - console.log("languageList:" + locale.languageList[i]) - } - - for (var i in locale.currencyCodeList) { - console.log("currencyCodeList:" + locale.currencyCodeList[i]) - } - - for (var i in locale.installedLanguages) { - console.log("installedLanguages:" + locale.installedLanguages[i]) - } - - for (var i in locale.allCountriesList) { - console.log("allCountriesList:" + locale.allCountriesList[i]) - } - - console.log("formatDate:" + locale.formatDate("2010-05-05")) - - console.log("formatDateTime:" + locale.formatDateTime("2010-05-05")) - - console.log("formatMoney:" + locale.formatMoney(10)) - - console.log("formatLong:" + locale.formatLong(10)) - - console.log("formatByteSize:" + locale.formatByteSize(10)) - - console.log("formatDuration:" + locale.formatDuration(10)) - - console.log("prettyFormatDuration:" + locale.prettyFormatDuration(10)) - - console.log("formatLocaleTime:" + locale.formatLocaleTime("11:12:13")) - - console.log("dayPeriodText:" + locale.dayPeriodText("11:22:33")) - - console.log("readMoney:" + locale.readMoney("$ 21")) - - console.log("readNumber:" + locale.readNumber(10.0,3)) - - console.log("readDate:" + locale.readDate("2004-02-01", PlasmaLocale.Locale.IsoFormat)) - - console.log("readTime:" + locale.readTime("11:22:33 AM")) - - console.log("readLocaleTime:" + locale.readLocaleTime("11:12:13 AM")) - - console.log("fileEncodingMib:" + locale.fileEncodingMib) - - console.log("languageCodeToName:" + locale.languageCodeToName("en_US")) - - console.log("isApplicationTranslatedInto:" + locale.isApplicationTranslatedInto("en_US")) - - console.log("removeAcceleratorMarker:" + locale.removeAcceleratorMarker("&*hello")) - - console.log("convertDigits:" + locale.convertDigits(locale.digitSet, PlasmaLocale.Locale.ArabicDigits)) - - for (var i in locale.allDigitSetsList) { - console.log("allDigitSetsList:" + locale.allDigitSetsList[i]) - } - - console.log("===========end===========") - } - } - - PlasmaComponents.Button { - id: bt2 - property variant hash - anchors.horizontalCenter: column.horizontalCenter - text: "click in order to test the CalendarSystem component" - onClicked:{ - console.log("=====CalendarSystem Component====") - - console.log("calendarLabel:" + calendar.calendarLabel) - - console.log("epoch:" + calendar.epoch) - - console.log("earliestValidDate:" + calendar.earliestValidDate) - - console.log("latestValidDate:" + calendar.latestValidDate) - - console.log("shortYearWindowStartYear:" + calendar.shortYearWindowStartYear) - - console.log("weekStartDay:" + locale.weekStartDay) - - console.log("isLunar:" + calendar.isLunar) - - console.log("isLunisolar:" + calendar.isLunisolar) - - console.log("isSolar:" + calendar.isSolar) - - console.log("isProleptic:" + calendar.isProleptic) - //Q_INVOKABLE methods - - console.log("isValidIsoWeekDate:" + calendar.isValidIsoWeekDate(2012, 2, 3)) - - console.log("isValid:" + calendar.isValid("2012-02-03")) - - console.log("year:" + calendar.year("2012-02-03")) - - console.log("month:" + calendar.month("2012-02-03")) - - console.log("day:" + calendar.day("2012-02-03")) - - console.log("eraName:" + calendar.eraName("2012-02-03")) - - console.log("eraYear:" + calendar.eraYear("2012-02-03")) - - console.log("yearInEra:" + calendar.yearInEra("2012-02-03")) - - console.log("addYears:" + calendar.addYears("2012-02-03", 3)) - - console.log("addMonthss:" + calendar.addMonths("2012-02-03", 3)) - - console.log("addDays:" + calendar.addDays("2012-02-03", 3)) - - console.log("yearsDifference:" + calendar.yearsDifference("2010-02-03", "2012-02-03")) - - console.log("monthsDifference:" + calendar.monthsDifference("2012-02-03", "2012-04-03")) - - console.log("daysDifference:" + calendar.daysDifference("2012-02-03", "2012-02-13")) - - console.log("monthsInYear:" + calendar.monthsInYear(2012)) - - console.log("weeksInYear:" + calendar.weeksInYear(2012, PlasmaLocale.CalendarSystem.SimpleWeek)) - - console.log("daysInYear:" + calendar.daysInYear("2012-02-03")) - - console.log("daysInMonth:" + calendar.daysInMonth(2012, 8)) - - console.log("daysInWeek:" + calendar.daysInWeek("2012-02-03")) - - console.log("dayOfYear:" + calendar.dayOfYear("2012-02-03")) - - console.log("week:" + calendar.week("2012-02-03", PlasmaLocale.CalendarSystem.SimpleWeek)) - - console.log("isLeapYear:" + calendar.isLeapYear(2012)) - - console.log("firstDayOfYear:" + calendar.firstDayOfYear(2012)) - - console.log("lastDayOfYear:" + calendar.lastDayOfYear(2012)) - - console.log("firstDayOfMonth:" + calendar.firstDayOfMonth(2012, 02)) - - console.log("lastDayOfMonth:" + calendar.lastDayOfMonth(2012, 02)) - - console.log("monthName:" + calendar.monthName(02, 2012)) - - console.log("weekDayName:" + calendar.weekDayName(3)) - - console.log("formatDate:" + calendar.formatDate("2012-02-03", PlasmaLocale.CalendarSystem.Year, PlasmaLocale.CalendarSystem.ShortNumber, PlasmaLocale.CalendarSystem.SimpleWeek)) - - console.log("readDate:" + calendar.readDate("2012-02-03", PlasmaLocale.CalendarSystem.IsoFormat)) - - console.log("applyShortYearWindow:" + calendar.applyShortYearWindow(50)) - - console.log("calendarSystem:" + calendar.calendarSystem) - console.log("getDate:") - hash = calendar.getDate("2012-02-03") - for (var i in hash) { - console.log(" " + i, "=", hash[i]) - } - - console.log("dateDifference:") - hash = calendar.dateDifference("2012-01-01", "2014-03-03") - for (var i in hash) { - console.log(" " + i, "=", hash[i]) - } - - for (var i in calendar.calendarSystemsList) { - console.log("calendarSystemsList:" + calendar.calendarSystemsList[i]) - } - - console.log("===============end===============") - } - } - - PlasmaLocale.Locale { - id: locale - - binaryUnitDialect: PlasmaLocale.Locale.DefaultBinaryUnits - onBinaryUnitDialectChanged: { - console.log("the binaryUnitDialect property has been changed") - } - - calendarSystem: PlasmaLocale.Locale.QDateCalendar - onCalendarSystemChanged: { - console.log("the calendarSystem property has been changed") - } - - onCurrencyCodeChanged: { - console.log("the currencyCode property has been changed") - } - - currencySymbol: "$" - onCurrencySymbolChanged: { - console.log("the currencySymbol property has been changed") - } - - countryDivisionCode: "AD" - onCountryDivisionCodeChanged: { - console.log("the countryDivisionCode property has been changed") - } - - dateFormat: "y" - onDateFormatChanged: { - console.log("the dateFormat property has been changed") - } - - dateFormatShort: "y" - onDateFormatShortChanged: { - console.log("the dateFormatShort property has been changed") - } - - dateMonthNamePossessive: true - onDateMonthNamePossessiveChanged: { - console.log("the dateMonthNamePossessive property has been changed") - } - - dateTimeDigitSet: PlasmaLocale.Locale.ArabicDigits - onDateTimeDigitSetChanged: { - console.log("the dateTimeDigitSet property has been changed") - } - - decimalPlaces: 1 - onDecimalPlacesChanged: { - console.log("the decimalPlaces property has been changed") - } - - decimalSymbol: "," - onDecimalSymbolChanged: { - console.log("the decimalSymbol property has been changed") - } - - digitSet: PlasmaLocale.Locale.ArabicDigits - onDigitSetChanged: { - console.log("the digitSet property has been changed") - } - - measureSystem: PlasmaLocale.Locale.Metric - onMeasureSystemChanged: { - console.log("the measureSystem property has been changed") - } - - monetaryDecimalPlaces: 2 - onMonetaryDecimalPlacesChanged: { - console.log("the monetaryDecimalPlaces property has been changed") - } - - monetaryDecimalSymbol: "," - onMonetaryDecimalSymbolChanged: { - console.log("the monetaryDecimalSymbol property has been changed") - } - - monetaryDigitSet: PlasmaLocale.Locale.ArabicDigits - onMonetaryDigitSetChanged: { - console.log("the monetaryDigitSet property has been changed") - } - - monetaryThousandsSeparator: "," - onMonetaryThousandsSeparatorChanged: { - console.log("the monetaryThousandsSeparator property has been changed") - } - - negativeMonetarySignPosition: PlasmaLocale.Locale.ParensAround - onNegativeMonetarySignPositionChanged: { - console.log("the negativeMonetarySignPosition property has been changed") - } - - negativePrefixCurrencySymbol: true - onNegativePrefixCurrencySymbolChanged: { - console.log("the negativePrefixCurrencySymbol property has been changed") - } - - negativeSign: "-----" - onNegativeSignChanged: { - console.log("the negativeSign property has been changed") - } - - pageSize: 5 - onPageSizeChanged: { - console.log("the pageSign property has been changed") - } - - positiveMonetarySignPosition: PlasmaLocale.Locale.ParensAround - onPositiveMonetarySignPositionChanged: { - console.log("the positiveMonetarySignPosition property has been changed") - } - - positivePrefixCurrencySymbol: true - onPositivePrefixCurrencySymbolChanged: { - console.log("the positivePrefixCurrencySymbol property has been changed") - } - - positiveSign: " " - onPositiveSignChanged: { - console.log("the positiveSign property has been changed") - } - - thousandsSeparator: "," - onThousandsSeparatorChanged: { - console.log("the thousandsSeparator property has been changed") - } - - weekDayOfPray: 20 - onWeekDayOfPrayChanged: { - console.log("the weekDayOfPray property has been changed") - } - - weekNumberSystem: PlasmaLocale.Locale.IsoWeekNumber - onWeekNumberSystemChanged: { - console.log("the weekNumberSystem property has been changed") - } - - weekStartDay: 2 - onWeekStartDayChanged: { - console.log("the weekStartDay property has been changed") - } - - workingWeekEndDay: 5 - onWorkingWeekEndDayChanged: { - console.log("the workingWeekEndDay property has been changed") - } - - workingWeekStartDay: 1 - onWorkingWeekStartDayChanged: { - console.log("the workingWeekStartDay property has been changed") - } - } - - PlasmaLocale.CalendarSystem { - id: calendar - } - } -} diff --git a/examples/applets/localegallery/metadata.desktop b/examples/applets/localegallery/metadata.desktop deleted file mode 100644 index 98856cd0b..000000000 --- a/examples/applets/localegallery/metadata.desktop +++ /dev/null @@ -1,35 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Locale gallery -Name[de]=Lokale Galerie -Name[es]=Galería de locales -Name[nl]=Lokale galerij -Name[pt]=Galeria regional -Name[pt_BR]=Galeria regional -Name[sk]=Galéria národných nastavení -Name[sv]=Locale-galleri -Name[uk]=Галерея локалей -Name[x-test]=xxLocale galleryxx -Comment=gallery of KLocale QML Bindings -Comment[de]=Galerie von KLocale-Bindungen für QML -Comment[nl]=galerij van KLocale QML-bindingen -Comment[pt]=Galeria de Interfaces em QML do KLocale -Comment[pt_BR]=Galeria de interfaces em QML do KLocale -Comment[sk]=Galéria väzieb QML Klocale -Comment[sv]=galleri av QML-bindningar för KLocale -Comment[uk]=Галерея прив’язок QML для KLocale -Comment[x-test]=xxgallery of KLocale QML Bindingsxx -Type=Service -ServiceTypes=Plasma/Applet -Icon=preferences-desktop-theme -X-Plasma-API=declarativeappletscript -X-Plasma-MainScript=ui/main.qml -X-KDE-PluginInfo-Author=Giorgos Tsiapaliwkas -X-KDE-PluginInfo-Email=terietor@gmail.com -X-KDE-PluginInfo-Name=org.kde.example.locale -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-Website=http://plasma.kde.org/ -X-KDE-PluginInfo-Category=Examples -X-KDE-PluginInfo-Depends= -X-KDE-PluginInfo-License=GPL -X-KDE-PluginInfo-EnabledByDefault=true diff --git a/examples/applets/testcomponents/contents/ui/DialogContent.qml b/examples/applets/testcomponents/contents/ui/DialogContent.qml index 9fed86d33..92efda9df 100644 --- a/examples/applets/testcomponents/contents/ui/DialogContent.qml +++ b/examples/applets/testcomponents/contents/ui/DialogContent.qml @@ -44,10 +44,6 @@ Item { id: tx text: "Test Dialog" } - LocaleItem { - id: localeItem - anchors { left: parent.left; right: parent.right; top: tx.bottom; } - } PlasmaComponents.TextArea { anchors { left: parent.left; right: parent.right; top: localeItem.bottom; } width: parent.width diff --git a/examples/applets/testcomponents/contents/ui/LocaleItem.qml b/examples/applets/testcomponents/contents/ui/LocaleItem.qml deleted file mode 100644 index d8d29e1e3..000000000 --- a/examples/applets/testcomponents/contents/ui/LocaleItem.qml +++ /dev/null @@ -1,24 +0,0 @@ -import QtQuick 2.0 -import org.kde.plasma.components 2.0 as PlasmaComponents -import org.kde.locale 2.0 - - -Item { - width: childrenRect.width - height: childrenRect.height - - Locale { - id: locale - } - Column { - PlasmaComponents.Label { - text: "Locale Time Bindings" - } - PlasmaComponents.Label { - text: locale.formatLocaleTime( "11:12:13", Locale.TimeWithoutAmPm|Locale.TimeWithoutSeconds ) - } - PlasmaComponents.Label { - text: locale.formatDateTime("2013-04-12", Locale.ShortDate ,Locale.Seconds ) - } - } -} \ No newline at end of file diff --git a/src/declarativeimports/CMakeLists.txt b/src/declarativeimports/CMakeLists.txt index e5f08808a..dd79c0e5a 100644 --- a/src/declarativeimports/CMakeLists.txt +++ b/src/declarativeimports/CMakeLists.txt @@ -6,5 +6,4 @@ add_subdirectory(qtextracomponents) add_subdirectory(plasmacomponents) add_subdirectory(plasmaextracomponents) add_subdirectory(platformcomponents) -add_subdirectory(locale) add_subdirectory(calendar) diff --git a/src/declarativeimports/locale/CMakeLists.txt b/src/declarativeimports/locale/CMakeLists.txt deleted file mode 100644 index bd4c195a8..000000000 --- a/src/declarativeimports/locale/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -project(localebindings) - -set(localebindings_SRCS - locale.cpp - localebindingsplugin.cpp - calendarsystem.cpp -) - -find_package(KDE4Support REQUIRED) - -add_library(localebindingsplugin SHARED ${localebindings_SRCS}) -target_link_libraries(localebindingsplugin - Qt5::Core - Qt5::Quick - Qt5::Qml - KF5::KDE4Support - KF5::KI18n - ) -install(TARGETS localebindingsplugin DESTINATION ${QML_INSTALL_DIR}/org/kde/locale) -install(FILES qmldir DESTINATION ${QML_INSTALL_DIR}/org/kde/locale) diff --git a/src/declarativeimports/locale/calendarsystem.cpp b/src/declarativeimports/locale/calendarsystem.cpp deleted file mode 100644 index bc89face8..000000000 --- a/src/declarativeimports/locale/calendarsystem.cpp +++ /dev/null @@ -1,302 +0,0 @@ -/* - Copyright (C) 2012 Giorgos Tsiapaliwkas - Copyright (C) 2012 Antonis Tsiapaliokas - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -//own -#include "calendarsystem.h" - -//KDE -#include -#include - -//Qt -#include - -CalendarSystem::CalendarSystem(QObject* parent) - : QObject(parent) -{ - m_calendarSystem = KCalendarSystem::create(KLocale::global()->calendarSystem()); -} - -QList CalendarSystem::calendarSystemsList() -{ - QList list; - - foreach(KLocale::CalendarSystem calendarSystem, KCalendarSystem::calendarSystemsList()) { - list.append((int)calendarSystem); - } - - return list; -} - -Locale::CalendarSystem CalendarSystem::calendarSystem() const -{ - return (Locale::CalendarSystem)m_calendarSystem->calendarSystem(); -} - - -QString CalendarSystem::calendarLabel() const -{ - return m_calendarSystem->calendarLabel(); -} - -QDate CalendarSystem::epoch() const -{ - return m_calendarSystem->epoch(); -} - -QDate CalendarSystem::earliestValidDate() const -{ - return epoch(); -} - -QDate CalendarSystem::latestValidDate() const -{ - return m_calendarSystem->latestValidDate(); -} - -bool CalendarSystem::isValidIsoWeekDate(int year, int isoWeekNumber, int dayOfIsoWeek) const -{ - return m_calendarSystem->isValidIsoWeekDate(year, isoWeekNumber, dayOfIsoWeek); -} - -bool CalendarSystem::isValid(const QDate &date) const -{ - return m_calendarSystem->isValid(date); -} - -QVariantMap CalendarSystem::getDate(const QDate date) const -{ - QVariantMap hash; - - int year; - int month; - int day; - - m_calendarSystem->getDate(date, &year, &month, &day); - - hash["year"] = year; - hash["month"] = month; - hash["day"] = day; - - return hash; -} - -int CalendarSystem::year(const QDate &date) const -{ - return m_calendarSystem->year(date); -} - -int CalendarSystem::month(const QDate &date) const -{ - return m_calendarSystem->month(date); -} - -int CalendarSystem::day(const QDate &date) const -{ - return m_calendarSystem->day(date); -} - -QString CalendarSystem::eraName(const QDate &date, StringFormat format) const -{ - return m_calendarSystem->eraName(date, (KCalendarSystem::StringFormat)format); -} - -QString CalendarSystem::eraYear(const QDate &date, StringFormat format) const -{ - return m_calendarSystem->eraYear(date, (KCalendarSystem::StringFormat)format); -} - - -int CalendarSystem::yearInEra(const QDate &date) const -{ - return m_calendarSystem->yearInEra(date); -} - -QDate CalendarSystem::addYears(const QDate &date, int numYears) const -{ - return m_calendarSystem->addYears(date, numYears); -} - -QDate CalendarSystem::addMonths(const QDate &date, int numMonths) const -{ - return m_calendarSystem->addMonths(date, numMonths); -} - -QDate CalendarSystem::addDays(const QDate &date, int numDays) const -{ - return m_calendarSystem->addDays(date, numDays); -} - -QVariantMap CalendarSystem::dateDifference(const QDate &fromDate, const QDate &toDate) const -{ - QVariantMap hash; - - int yearsDiff; - int monthsDiff; - int daysDiff; - int direction; - - m_calendarSystem->dateDifference(fromDate, toDate, &yearsDiff, &monthsDiff, &daysDiff, &direction); - - hash["years"] = yearsDiff; - hash["months"] = monthsDiff; - hash["days"] = daysDiff; - hash["direction"] = direction; - - return hash; -} - -int CalendarSystem::yearsDifference(const QDate &fromDate, const QDate &toDate) const -{ - return m_calendarSystem->yearsDifference(fromDate, toDate); -} - -int CalendarSystem::monthsDifference(const QDate &fromDate, const QDate &toDate) const -{ - return m_calendarSystem->monthsDifference(fromDate, toDate); -} - -int CalendarSystem::daysDifference(const QDate &fromDate, const QDate &toDate) const -{ - return m_calendarSystem->daysDifference(fromDate, toDate); -} - -int CalendarSystem::monthsInYear(int year) const -{ - return m_calendarSystem->monthsInYear(year); -} - -int CalendarSystem::weeksInYear(int year, WeekNumberSystem weekNumberSystem) const -{ - return m_calendarSystem->weeksInYear(year, (KLocale::WeekNumberSystem)weekNumberSystem); -} - -int CalendarSystem::daysInYear(int year) const -{ - return m_calendarSystem->daysInYear(year); -} - -int CalendarSystem::daysInMonth(int year, int month) const -{ - return m_calendarSystem->daysInMonth(year, month); -} - -int CalendarSystem::daysInWeek(const QDate &date) const -{ - return m_calendarSystem->daysInWeek(date); -} - -int CalendarSystem::dayOfYear(const QDate &date) const -{ - return m_calendarSystem->dayOfYear(date); -} - -int CalendarSystem::dayOfWeek(const QDate &date) const -{ - return m_calendarSystem->dayOfWeek(date); -} - -int CalendarSystem::week(const QDate &date, WeekNumberSystem weekNumberSystem) const -{ - return m_calendarSystem->week(date, (KLocale::WeekNumberSystem)weekNumberSystem); -} - -bool CalendarSystem::isLeapYear(int year) const -{ - return m_calendarSystem->isLeapYear(year); -} - -QDate CalendarSystem::firstDayOfYear(int year) const -{ - return m_calendarSystem->firstDayOfYear(year); -} - -QDate CalendarSystem::lastDayOfYear(int year) const -{ - return m_calendarSystem->lastDayOfYear(year); -} - -QDate CalendarSystem::firstDayOfMonth(int year, int month) const -{ - return m_calendarSystem->firstDayOfMonth(year, month); -} - -QDate CalendarSystem::lastDayOfMonth(int year, int month) const -{ - return m_calendarSystem->lastDayOfMonth(year, month); -} - -QString CalendarSystem::monthName(int month, int year, CalendarSystem::MonthNameFormat format) const -{ - return m_calendarSystem->monthName(month, year, (KCalendarSystem::MonthNameFormat)format); -} - -QString CalendarSystem::weekDayName(int weekDay, CalendarSystem::WeekDayNameFormat format) const -{ - return m_calendarSystem->weekDayName(weekDay, (KCalendarSystem::WeekDayNameFormat)format); -} - -QString CalendarSystem::formatDate(const QDate &date, DateTimeComponent component, - DateTimeComponentFormat format, - WeekNumberSystem weekNumberSystem) const -{ - return m_calendarSystem->formatDate(date, (KLocale::DateTimeComponent)component, - (KLocale::DateTimeComponentFormat)format, - (KLocale::WeekNumberSystem)weekNumberSystem); -} - -QDate CalendarSystem::readDate(const QString &str, ReadDateFlags flags) const -{ - return m_calendarSystem->readDate(str, (KLocale::ReadDateFlags)flags); -} - -int CalendarSystem::shortYearWindowStartYear() const -{ - return m_calendarSystem->shortYearWindowStartYear(); -} - -int CalendarSystem::applyShortYearWindow(int inputYear) const -{ - return m_calendarSystem->applyShortYearWindow(inputYear); -} - -int CalendarSystem::weekStartDay() const -{ - return m_calendarSystem->weekStartDay(); -} - -bool CalendarSystem::isSolar() const -{ - return m_calendarSystem->isSolar(); -} - -bool CalendarSystem::isLunar() const -{ - return m_calendarSystem->isLunar(); -} - -bool CalendarSystem::isLunisolar() const -{ - return m_calendarSystem->isLunisolar(); -} - -bool CalendarSystem::isProleptic() const -{ - return m_calendarSystem->isProleptic(); -} diff --git a/src/declarativeimports/locale/calendarsystem.h b/src/declarativeimports/locale/calendarsystem.h deleted file mode 100644 index ccb4fc1d5..000000000 --- a/src/declarativeimports/locale/calendarsystem.h +++ /dev/null @@ -1,697 +0,0 @@ -/* - Copyright (C) 2012 Giorgos Tsiapaliwkas - Copyright (C) 2012 Antonis Tsiapaliokas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef CALENDARSYSTEM_H -#define CALENDARSYSTEM_H - -//own -#include "locale_p.h" // needed for enums - -//Qt -#include - -class KCalendarSystem; - -class CalendarSystem : public QObject -{ -Q_OBJECT - -//enums -Q_ENUMS(StringFormat) -Q_ENUMS(MonthNameFormat) -Q_ENUMS(WeekDayNameFormat) -Q_ENUMS(WeekNumberSystem) -Q_ENUMS(ReadDateFlags) -Q_ENUMS(DateTimeComponent) -Q_ENUMS(DateTimeComponentFormat) - -//properties -Q_PROPERTY(QList calendarSystemsList READ calendarSystemsList CONSTANT) //read-only -Q_PROPERTY(Locale::CalendarSystem calendarSystem READ calendarSystem CONSTANT)//read-only -Q_PROPERTY(QString calendarLabel READ calendarLabel CONSTANT)//read-only -Q_PROPERTY(QDate epoch READ epoch CONSTANT)//read-only -Q_PROPERTY(QDate earliestValidDate READ earliestValidDate CONSTANT)//read-only -Q_PROPERTY(QDate latestValidDate READ latestValidDate CONSTANT)//read-only -Q_PROPERTY(int shortYearWindowStartYear READ shortYearWindowStartYear CONSTANT) -Q_PROPERTY(int weekStartDay READ weekStartDay CONSTANT)//read-only -Q_PROPERTY(bool isLunar READ isLunar CONSTANT)//read-only -Q_PROPERTY(bool isLunisolar READ isLunisolar CONSTANT)//read-only -Q_PROPERTY(bool isSolar READ isSolar CONSTANT)//read-only -Q_PROPERTY(bool isProleptic READ isProleptic CONSTANT)//read-only - -public: - - //ctor - CalendarSystem(QObject *parent = 0); - - //the above are enums which I borrow from the Locale class - /** - * - * System used for Week Numbers - */ - enum WeekNumberSystem { - DefaultWeekNumber = 1000, /**< The system locale default */ - IsoWeekNumber = 0, /**< ISO Week Number */ - FirstFullWeek = 1, /**< Week 1 starts on the first Week Start Day in year ends after 7 days */ - FirstPartialWeek = 2, /**< Week 1 starts Jan 1st ends day before first Week Start Day in year */ - SimpleWeek = 3 /**< Week 1 starts Jan 1st ends after 7 days */ - }; - - enum ReadDateFlags { - NormalFormat = 1, /**< Only accept a date string in - the locale LongDate format */ - shortFormat = 2, /**< Only accept a date string in - the locale ShortDate format */ - IsoFormat = 4, /**< Only accept a date string in - ISO date format (YYYY-MM-DD) */ - IsoWeekFormat = 8, /**< Only accept a date string in - ISO Week date format (YYYY-Www-D) */ - IsoOrdinalFormat = 16 /**< Only accept a date string in - ISO Week date format (YYYY-DDD) */ - }; - - /** - * The various Components that make up a Date / Time - * In the future the Components may be combined as flags for dynamic - * generation of Date Formats. - */ - enum DateTimeComponent { - Year = 0x1, /**< The Year portion of a date, may be number or name */ - YearName = 0x2, /**< The Year Name portion of a date */ - Month = 0x4, /**< The Month portion of a date, may be number or name */ - MonthName = 0x8, /**< The Month Name portion of a date */ - Day = 0x10, /**< The Day portion of a date, may be number or name */ - DayName = 0x20, /**< The Day Name portion of a date */ - JulianDay = 0x40, /**< The Julian Day of a date */ - EraName = 0x80, /**< The Era Name portion of a date */ - EraYear = 0x100, /**< The Era and Year portion of a date */ - YearInEra = 0x200, /**< The Year In Era portion of a date */ - DayOfYear = 0x400, /**< The Day Of Year portion of a date, may be number or name */ - DayOfYearName = 0x800, /**< The Day Of Year Name portion of a date */ - DayOfWeek = 0x1000, /**< The Day Of Week / Weekday portion of a date, may be number or name */ - DayOfWeekName = 0x2000, /**< The Day Of Week Name / Weekday Name portion of a date */ - Week = 0x4000, /**< The Week Number portion of a date */ - WeekYear = 0x8000, /**< The Week Year portion of a date */ - MonthsInYear = 0x10000, /**< The Months In Year portion of a date */ - WeeksInYear = 0x20000, /**< The Weeks In Year portion of a date */ - DaysInYear = 0x40000, /**< The Days In Year portion of a date */ - DaysInMonth = 0x80000, /**< The Days In Month portion of a date */ - DaysInWeek = 0x100000, /**< The Days In Week portion of a date */ - Hour = 0x200000, /**< The Hours portion of a date */ - Minute = 0x400000, /**< The Minutes portion of a date */ - Second = 0x800000, /**< The Seconds portion of a date */ - Millisecond = 0x1000000, /**< The Milliseconds portion of a date */ - DayPeriod = 0x2000000, /**< The Day Period portion of a date, e.g. AM/PM */ - DayPeriodHour = 0x4000000, /**< The Day Period Hour portion of a date */ - Timezone = 0x8000000, /**< The Time Zone portion of a date, may be offset or name */ - TimezoneName = 0x10000000, /**< The Time Zone Name portion of a date */ - UnixTime = 0x20000000 /**< The UNIX Time portion of a date */ - }; - - enum DateTimeComponentFormat { - DefaultComponentFormat = 1000, /**< The system locale default for the componant */ - ShortNumber = 0, /**< Number at its natural width, e.g. 2 for the 2nd*/ - LongNumber, /**< Number padded to a required width, e.g. 02 for the 2nd*/ - narrowName = 3, /**< Narrow text format, may not be unique, e.g. M for Monday */ - shortName, /**< Short text format, e.g. Mon for Monday */ - longName /**< Long text format, e.g. Monday for Monday */ - }; - //end of the borrowing enums - - /** - * Format for returned year number / month number / day number as string. - */ - enum StringFormat { - ShortFormat, /**< Short string format, e.g. 2000 = "00" or 6 = "6" */ - LongFormat /**< Long string format, e.g. 2000 = "2000" or 6 = "06" */ - }; - - /** - * Format for returned month / day name. - */ - enum MonthNameFormat { - ShortName, /**< Short name format, e.g. "Dec" */ - LongName, /**< Long name format, e.g. "December" */ - ShortNamePossessive, /**< Short name possessive format, e.g. "of Dec" */ - LongNamePossessive, /**< Long name possessive format, e.g. "of December" */ - NarrowName /**< Narrow name format, e.g. "D" */ - }; - - /** - * Format for returned month / day name. - */ - enum WeekDayNameFormat { - ShortDayName, /**< Short name format, e.g. "Fri" */ - LongDayName, /**< Long name format, e.g. "Friday" */ - NarrowDayName /**< Narrow name format, e.g. "F" */ - }; - - /** - * Returns the list of currently supported Calendar Systems - * @return list of Calendar Systems - */ - QList calendarSystemsList(); - - /** - * - * Returns the Calendar System type of the CalendarSystem object - * - * @return type of calendar system - */ - Locale::CalendarSystem calendarSystem() const; - - /** - * - * Returns a localized label to display for the current Calendar System type. - * - * @return localized label for this Calendar System - */ - QString calendarLabel() const; //TODO, it returns undefined - - /** - * Returns a QDate holding the epoch of the calendar system. Usually YMD - * of 1/1/1, access the returned QDates method toJulianDay() if you - * require the actual Julian day number. Note: a particular calendar - * system implementation may not include the epoch in its supported range, - * or the calendar system may be proleptic in which case it supports dates - * before the epoch. - * - * @see CalendarSystem::earliestValidDate - * @see CalendarSystem::latestValidDate - * @see CalendarSystem::isProleptic - * @see CalendarSystem::isValid - * - * @return epoch of calendar system - */ - QDate epoch() const; - - /** - * Returns the earliest date valid in this calendar system implementation. - * - * If the calendar system is proleptic then this may be before epoch. - * - * @see CalendarSystem::epoch - * @see CalendarSystem::latestValidDate - * - * @return date the earliest valid date - */ - QDate earliestValidDate() const; - - /** - * Returns the latest date valid in this calendar system implementation. - * - * @see CalendarSystem::epoch - * @see CalendarSystem::earliestValidDate - * - * @return date the latest valid date - */ - QDate latestValidDate() const; - - /** - * - * Returns whether a given date is valid in this calendar system. - * - * @param year the year portion of the date to check - * @param isoWeekNumber the ISO week portion of the date to check - * @param dayOfIsoWeek the day of week portion of the date to check - * @return @c true if the date is valid, @c false otherwise - */ - Q_INVOKABLE bool isValidIsoWeekDate(int year, int isoWeekNumber, int dayOfIsoWeek) const; - - /** - * Returns whether a given date is valid in this calendar system. - * - * @param date the date to check - * @return @c true if the date is valid, @c false otherwise - */ - Q_INVOKABLE bool isValid(const QDate &date) const; - - /** - * - * Returns the year, month and day portion of a given date in the current calendar system - * The values are returned in a hash, the available keys are, - * ["year"] the year of the date - * ["month"] the month of the date - * ["day"] the day of the date - * @param date date to get year, month and day for - */ - Q_INVOKABLE QVariantMap getDate(const QDate date) const; - - /** - * Returns the year portion of a given date in the current calendar system - * - * @param date date to return year for - * @return year, 0 if input date is invalid - */ - Q_INVOKABLE int year(const QDate &date) const; - - /** - * Returns the month portion of a given date in the current calendar system - * - * @param date date to return month for - * @return month of year, 0 if input date is invalid - */ - Q_INVOKABLE int month(const QDate &date) const; - - /** - * Returns the day portion of a given date in the current calendar system - * - * @param date date to return day for - * @return day of the month, 0 if input date is invalid - */ - Q_INVOKABLE int day(const QDate &date) const; - - /** - * - * Returns the Era Name portion of a given date in the current calendar system, - * for example "AD" or "Anno Domini" for the Gregorian calendar and Christian Era. - * - * @param date date to return Era Name for - * @param format format to return, either short or long - * @return era name, empty string if input date is invalid - */ - Q_INVOKABLE QString eraName(const QDate &date, StringFormat format = ShortFormat) const; - - /** - * - * Returns the Era Year portion of a given date in the current - * calendar system, for example "2000 AD" or "Heisei 22". - * - * @param date date to return Era Year for - * @param format format to return, either short or long - * @return era name, empty string if input date is invalid - */ - Q_INVOKABLE QString eraYear(const QDate &date, StringFormat format = ShortFormat) const; - - /** - * - * Returns the Year In Era portion of a given date in the current calendar - * system, for example 1 for "1 BC". - * - * @param date date to return Year In Era for - * @return Year In Era, -1 if input date is invalid - */ - Q_INVOKABLE int yearInEra(const QDate &date) const; - - /** - * Returns a QDate containing a date @p nyears years later. - * - * @param date The old date - * @param nyears The number of years to add - * @return The new date, null date if any errors - */ - Q_INVOKABLE QDate addYears(const QDate &date, int nyears) const; - - /** - * Returns a QDate containing a date @p nmonths months later. - * - * @param date The old date - * @param nmonths number of months to add - * @return The new date, null date if any errors - */ - Q_INVOKABLE QDate addMonths(const QDate &date, int nmonths) const; - - /** - * Returns a QDate containing a date @p ndays days later. - * - * @param date The old date - * @param ndays number of days to add - * @return The new date, null date if any errors - */ - Q_INVOKABLE QDate addDays(const QDate &date, int ndays) const; - - /** - * Returns the difference between two dates with a hash, the available keys are - * ["years"] Returns number of years difference - * ["months"] Returns number of months difference - * ["days"] Returns number of days difference - * ["direction"] Returns direction of difference, 1 if fromDate <= toDate, -1 otherwise - * The difference is always caculated from the earlier date to the later - * date in year, month and day order, with the @p direction parameter - * indicating which direction the difference is applied from the @p toDate. - * - * For example, the difference between 2010-06-10 and 2012-09-5 is 2 years, - * 2 months and 26 days. Note that the difference between two last days of - * the month is always 1 month, e.g. 2010-01-31 to 2010-02-28 is 1 month - * not 28 days. - * - * @param fromDate The date to start from - * @param toDate The date to end at - */ - Q_INVOKABLE QVariantMap dateDifference(const QDate &fromDate, const QDate &toDate)const; - - /** - * Returns the difference between two dates in completed calendar years. - * The returned value will be negative if @p fromDate > @p toDate. - * - * For example, the difference between 2010-06-10 and 2012-09-5 is 2 years. - * - * @param fromDate The date to start from - * @param toDate The date to end at - * @return The number of years difference - */ - Q_INVOKABLE int yearsDifference(const QDate &fromDate, const QDate &toDate) const; - - /** - * Returns the difference between two dates in completed calendar months - * The returned value will be negative if @p fromDate > @p toDate. - * - * For example, the difference between 2010-06-10 and 2012-09-5 is 26 months. - * Note that the difference between two last days of the month is always 1 - * month, e.g. 2010-01-31 to 2010-02-28 is 1 month not 28 days. - * - * @param fromDate The date to start from - * @param toDate The date to end at - * @return The number of months difference - */ - Q_INVOKABLE int monthsDifference(const QDate &fromDate, const QDate &toDate) const; - - /** - * Returns the difference between two dates in days - * The returned value will be negative if @p fromDate > @p toDate. - * - * @param fromDate The date to start from - * @param toDate The date to end at - * @return The number of days difference - */ - Q_INVOKABLE int daysDifference(const QDate &fromDate, const QDate &toDate) const; - - /** - * - * Returns number of months in the given year - * - * @param year the required year - * @return number of months in the year, -1 if input date invalid - */ - Q_INVOKABLE int monthsInYear(int year) const; - - /** - * - * Returns the number of Weeks in a year using the required Week Number System. - * - * Unless you specifically want a particular Week Number System (e.g. ISO Weeks) - * you should use the localized number of weeks provided by weeksInYear(). - * - * @see week() - * @see formatDate() - * @param year the year - * @param weekNumberSystem the week number system to use - * @return number of weeks in the year, -1 if date invalid - */ - Q_INVOKABLE int weeksInYear(int year, WeekNumberSystem weekNumberSystem) const; - - /** - * - * Returns the number of days in the given year. - * - * @param year the year - * @return number of days in year, -1 if input date invalid - */ - Q_INVOKABLE int daysInYear(int year) const; - - /** - * - * Returns the number of days in the given month. - * - * @param year the year the month is in - * @param month the month - * @return number of days in month, -1 if input date invalid - */ - Q_INVOKABLE int daysInMonth(int year, int month) const; - - /** - * Returns the number of days in the given week. - * - * @param date the date to obtain week from - * @return number of days in week, -1 if input date invalid - */ - Q_INVOKABLE int daysInWeek(const QDate &date) const; - - /** - * Returns the day number of year for the given date - * - * The days are numbered 1..daysInYear() - * - * @param date the date to obtain day from - * @return day of year number, -1 if input date not valid - */ - Q_INVOKABLE int dayOfYear(const QDate &date) const; - - /** - * Returns the weekday number for the given date - * - * The weekdays are numbered 1..7 for Monday..Sunday. - * - * This value is @em not affected by the value of weekStartDay() - * - * @param date the date to obtain day from - * @return day of week number, -1 if input date not valid - */ - Q_INVOKABLE int dayOfWeek(const QDate &date) const; - - /** - * Returns the Week Number for the date in the required Week Number System. - * - * Unless you want a specific Week Number System (e.g. ISO Week), you should - * use the localized Week Number form of week(). - * - * If the date falls in the last week of the previous year or the first - * week of the following year, then the yearNum returned will be set to the - * appropriate year. - * - * Technically, the ISO Week Number only applies to the ISO/Gregorian Calendar - * System, but the same rules will be applied to the current Calendar System. - * - * @see weeksInYear() - * @see formatDate() - * @param date the date to obtain week from - * @param weekNumberSystem the Week Number System to use - * @param yearNum returns the year the date belongs to - * @return week number, -1 if input date invalid - */ - Q_INVOKABLE int week(const QDate &date, WeekNumberSystem weekNumberSystem) const; - - /** - * Returns whether a given year is a leap year. - * - * Input year must be checked for validity in current Calendar System prior to calling, no - * validity checking performed in this routine, behaviour is undefined in invalid case. - * - * @param year the year to check - * @return @c true if the year is a leap year, @c false otherwise - */ - Q_INVOKABLE bool isLeapYear(int year) const; - - /** - * - * Returns a QDate containing the first day of the year - * - * @param year The year to return the date for - * @return The first day of the year - */ - Q_INVOKABLE QDate firstDayOfYear(int year) const; - - /** - * - * Returns a QDate containing the last day of the year - * - * @param year The year to return the date for - * @return The last day of the year - */ - Q_INVOKABLE QDate lastDayOfYear(int year) const; - - /** - * - * Returns a QDate containing the first day of the month - * - * @param year The year to return the date for - * @param month The month to return the date for - * @return The first day of the month - */ - Q_INVOKABLE QDate firstDayOfMonth(int year, int month) const; - - /** - * - * Returns a QDate containing the last day of the month - * - * @param year The year to return the date for - * @param month The month to return the date for - * @return The last day of the month - */ - Q_INVOKABLE QDate lastDayOfMonth(int year, int month) const; - - /** - * Gets specific calendar type month name for a given month number - * If an invalid month is specified, QString() is returned. - * - * @param month the month number - * @param year the year the month belongs to - * @param format specifies whether the short month name or long month name should be used - * @return name of the month, empty string if any error - */ - Q_INVOKABLE QString monthName(int month, int year, MonthNameFormat format = LongName) const; - - /** - * Gets specific calendar type week day name. - * If an invalid week day is specified, QString() is returned. - * - * @param weekDay number of day in week (Monday = 1, ..., Sunday = 7) - * @param format specifies whether the short month name or long month name should be used - * @return day name, empty string if any error - */ - Q_INVOKABLE QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const; - - /** - * - * Returns a Date Component as a localized string in the requested format. - * - * For example for 2010-01-01 the Locale::Month with en_US Locale and Gregorian calendar may return: - * CalendarSystem::ShortNumber = "1" - * CalendarSystem::LongNumber = "01" - * CalendarSystem::NarrowName = "J" - * CalendarSystem::ShortName = "Jan" - * CalendarSystem::LongName = "January" - * - * @param date The date to format - * @param component The date component to return - * @param format The format to return the @p component in - * @param weekNumberSystem To override the default Week Number System to use - * @return The localized string form of the date component - */ - Q_INVOKABLE QString formatDate(const QDate &date, DateTimeComponent component, - DateTimeComponentFormat format, WeekNumberSystem weekNumberSystem) const; - - /** - * Converts a localized date string to a QDate. - * This method is stricter than readDate(str,&ok): it will either accept - * a date in full format or a date in short format, depending on @p flags. - * - * Uses the calendar system's internal locale set when the instance was - * created, which ensures that the correct calendar system and locale - * settings are respected, which would not occur in some cases if using - * the global locale. Defaults to global locale. - * - * @see Locale::readDate - * - * @param str the string to convert - * @param flags whether the date string is to be in full format or in short format - * @param ok if non-null, will be set to @c true if the date is valid, @c false if invalid - * - * @return the string converted to a QDate - */ - Q_INVOKABLE QDate readDate(const QString &str, ReadDateFlags flags) const; - - /** - * - * Returns the Short Year Window Start Year for the current Calendar System. - * - * Use this function to get the Start Year for the Short Year Window to be - * applied when 2 digit years are entered for a Short Year input format, - * e.g. if the Short Year Window Start Year is 1930, then the input Short - * Year value of 40 is interpreted as 1940 and the input Short Year value - * of 10 is interpreted as 2010. - * - * The Short Year Window is only ever applied when reading the Short Year - * format and not the Long Year format, i.e. Locale::ShortFormat or '%y' - * only and not Locale::LongFormat or '%Y'. - * - * The Start Year 0 effectively means not to use a Short Year Window - * - * Each Calendar System requires a different Short Year Window as they have - * different epochs. The Gregorian Short Year Window usually pivots around - * the year 2000, whereas the Hebrew Short Year Window usually pivots around - * the year 5000. - * - * This value must always be used when evaluating user input Short Year - * strings. - * - * @see Locale::shortYearWindowStartYear - * @see Locale::applyShortYearWindow - * @return the short year window start year - */ - int shortYearWindowStartYear() const; - - /** - * - * Returns the Year Number after applying the Year Window. - * - * If the @p inputYear is between 0 and 99, then apply the Year Window and - * return the calculated Year Number. - * - * If the @p inputYear is not between 0 and 99, then the original Year Number - * is returned. - * - * @see Locale::setYearWindowOffset - * @see Locale::yearWindowOffset - * @param inputYear the year number to apply the year window to - * @return the year number after applying the year window - */ - Q_INVOKABLE int applyShortYearWindow(int inputYear) const; - - /** - * Use this to determine which day is the first day of the week. - * - * Uses the calendar system's internal locale set when the instance was - * created, which ensures that the correct calendar system and locale - * settings are respected, which would not occur in some cases if using - * the global locale. Defaults to global locale. - * - * @see Locale::weekStartDay - * - * @return an integer (Monday = 1, ..., Sunday = 7) - */ - int weekStartDay() const; - - /** - * Returns whether the calendar is lunar based. - * - * @return @c true if the calendar is lunar based, @c false if not - */ - bool isLunar() const; - - /** - * Returns whether the calendar is lunisolar based. - * - * @return @c true if the calendar is lunisolar based, @c false if not - */ - bool isLunisolar() const; - - /** - * Returns whether the calendar is solar based. - * - * @return @c true if the calendar is solar based, @c false if not - */ - bool isSolar() const; - - /** - * Returns whether the calendar system is proleptic, i.e. whether dates - * before the epoch are supported. - * - * @see CalendarSystem::epoch - * - * @return @c true if the calendar system is proleptic, @c false if not - */ - bool isProleptic() const; - -private: - KCalendarSystem *m_calendarSystem; -}; - -#endif diff --git a/src/declarativeimports/locale/locale.cpp b/src/declarativeimports/locale/locale.cpp deleted file mode 100644 index 0b8e568b7..000000000 --- a/src/declarativeimports/locale/locale.cpp +++ /dev/null @@ -1,576 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 2012 Giorgos Tsiapaliwkas - Copyright (C) 2012 Antonis Tsiapaliokas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -//own -#include "locale_p.h" - -//KDE -#include -#include - -//Qt -#include - -Locale::Locale(QObject* parent) - : QObject(parent) -{ - m_locale = KLocale::global(); -} - -bool Locale::setCountryDivisionCode(const QString &countryDivisionCode) -{ - bool ok = m_locale->setCountryDivisionCode(countryDivisionCode); - emit countryDivisionCodeChanged(); - return ok; -} - -void Locale::setCurrencyCode(const QString &newCurrencyCode) -{ - m_locale->setCurrencyCode(newCurrencyCode); - emit currencyCodeChanged(); -} - -bool Locale::isApplicationTranslatedInto(const QString &lang) -{ - return KLocalizedString::isApplicationTranslatedInto(lang); -} - -void Locale::splitLocale(const QString &locale, QString &language, QString &country, QString &modifier, - QString &charset) -{ - Locale::splitLocale(locale, language, country, modifier, charset); -} - -QString Locale::language() const -{ - return m_locale->language(); -} - -QString Locale::country() const -{ - return m_locale->country(); -} - -QString Locale::countryDivisionCode() const -{ - return m_locale->countryDivisionCode(); -} - -QString Locale::currencyCode() const -{ - return m_locale->currencyCode(); -} - -QList Locale::allDigitSetsList() const -{ - QList digitList; - - foreach(KLocale::DigitSet digit, m_locale->allDigitSetsList()) { - digitList.append((int)digit); - } - - return digitList; -} - -QString Locale::digitSetToName(Locale::DigitSet digitSet, bool withDigits) const -{ - return m_locale->digitSetToName((KLocale::DigitSet)digitSet, withDigits); -} - -QString Locale::convertDigits(const QString &str, DigitSet digitSet, bool ignoreContext) const -{ - return m_locale->convertDigits(str, (KLocale::DigitSet)digitSet, ignoreContext); -} - -bool Locale::dateMonthNamePossessive() const -{ - return m_locale->dateMonthNamePossessive(); -} - -int Locale::weekStartDay() const -{ - return m_locale->weekStartDay(); -} - -int Locale::workingWeekStartDay() const -{ - return m_locale->workingWeekStartDay(); -} - -int Locale::workingWeekEndDay() const -{ - return m_locale->workingWeekEndDay(); -} - -int Locale::weekDayOfPray() const -{ - return m_locale->weekDayOfPray(); -} - -int Locale::decimalPlaces() const -{ - return m_locale->decimalPlaces(); -} - -QString Locale::decimalSymbol() const -{ - return m_locale->decimalSymbol(); -} - -QString Locale::thousandsSeparator() const -{ - return m_locale->thousandsSeparator(); -} - -QString Locale::currencySymbol() const -{ - return m_locale->currencySymbol(); -} - -QString Locale::monetaryDecimalSymbol() const -{ - return m_locale->monetaryDecimalSymbol(); -} - -QString Locale::monetaryThousandsSeparator() const -{ - return m_locale->monetaryThousandsSeparator(); -} - -QString Locale::positiveSign() const -{ - return m_locale->positiveSign(); -} - -QString Locale::negativeSign() const -{ - return m_locale->negativeSign(); -} - -int Locale::monetaryDecimalPlaces() const -{ - return m_locale->monetaryDecimalPlaces(); -} - -bool Locale::positivePrefixCurrencySymbol() const -{ - return m_locale->positivePrefixCurrencySymbol(); -} - -bool Locale::negativePrefixCurrencySymbol() const -{ - return m_locale->negativePrefixCurrencySymbol(); -} - -Locale::SignPosition Locale::positiveMonetarySignPosition() const -{ - return (Locale::SignPosition)m_locale->positiveMonetarySignPosition(); -} - -Locale::SignPosition Locale::negativeMonetarySignPosition() const -{ - return (Locale::SignPosition)m_locale->negativeMonetarySignPosition(); -} - -QString Locale::formatMoney(double num, const QString &symbol, int precision) const -{ - return m_locale->formatMoney(num, symbol, precision); -} - -QString Locale::formatLong(long num) const -{ - return m_locale->formatLong(num); -} - -QString Locale::formatNumber(const QString &numStr, bool round, int precision) const -{ - return m_locale->formatNumber(numStr, round, precision); -} - -QString Locale::formatByteSize(double size, int precision, Locale::BinaryUnitDialect dialect, - Locale::BinarySizeUnits specificUnit) const -{ - return m_locale->formatByteSize(size, precision, (KLocale::BinaryUnitDialect)dialect, (KLocale::BinarySizeUnits)specificUnit); -} - -QString Locale::formatByteSize(double size) const -{ - return m_locale->formatByteSize(size); -} - -Locale::BinaryUnitDialect Locale::binaryUnitDialect() const -{ - return (Locale::BinaryUnitDialect)m_locale->binaryUnitDialect(); -} - -void Locale::setBinaryUnitDialect(Locale::BinaryUnitDialect newDialect) -{ - m_locale->setBinaryUnitDialect((KLocale::BinaryUnitDialect)newDialect); - emit binaryUnitDialectChanged(); -} - -QString Locale::formatDuration(unsigned long mSec) const -{ - return m_locale->formatDuration(mSec); -} - -QString Locale::prettyFormatDuration(unsigned long mSec) const -{ - return m_locale->prettyFormatDuration(mSec); -} - -QString Locale::formatDate(const QDate &date, Locale::DateFormat format) const -{ - return m_locale->formatDate(date, (KLocale::DateFormat)format); -} - -double Locale::readNumber(const QString &_str) const -{ - bool ok; - return m_locale->readNumber(_str, &ok); -} - -double Locale::readMoney(const QString &_str) const -{ - bool ok; - return m_locale->readMoney(_str, &ok); -} - -QDate Locale::readDate(const QString &intstr, ReadDateFlags flags) const -{ - bool ok; - return m_locale->readDate(intstr, (KLocale::ReadDateFlags)flags, &ok); -} - -QTime Locale::readTime(const QString &intstr) const -{ - bool ok; - return m_locale->readTime(intstr, &ok); -} - -QTime Locale::readLocaleTime(const QString &intstr, TimeFormatOptions options, - TimeProcessingOptions processing) const -{ - bool ok; - return m_locale->readLocaleTime(intstr, &ok, (KLocale::TimeFormatOptions)(int)options, (KLocale::TimeProcessingOptions)(int)processing); -} - -QString Locale::formatLocaleTime(const QTime &time, TimeFormatOptions options) const -{ - return m_locale->formatLocaleTime(time, (KLocale::TimeFormatOptions)(int)options); -} - -bool Locale::use12Clock() const -{ - return m_locale->use12Clock(); -} - -QString Locale::dayPeriodText(const QTime &time, DateTimeComponentFormat format) const -{ - return m_locale->dayPeriodText(time, (KLocale::DateTimeComponentFormat)format); -} - -QStringList Locale::languageList() const -{ - return m_locale->languageList(); -} - -QStringList Locale::currencyCodeList() const -{ - return m_locale->currencyCodeList(); -} - -QString Locale::formatDateTime(const QDateTime &dateTime, Locale::DateFormat format, DateTimeFormatOptions options) const -{ - return m_locale->formatDateTime(dateTime, (KLocale::DateFormat)format, (KLocale::DateTimeFormatOptions)(int)options); -} - -void Locale::setDateFormat(const QString &format) -{ - m_locale->setDateFormat(format); - emit dateFormatChanged(); -} - -void Locale::setDateFormatShort(const QString &format) -{ - m_locale->setDateFormatShort(format); - emit dateFormatShortChanged(); -} - -void Locale::setDateMonthNamePossessive(bool possessive) -{ - m_locale->setDateMonthNamePossessive(possessive); - emit dateMonthNamePossessiveChanged(); -} - -void Locale::setTimeFormat(const QString &format) -{ - m_locale->setTimeFormat(format); - emit timeFormatChanged(); -} - -void Locale::setWeekStartDay(int day) -{ - m_locale->setWeekStartDay(day); - emit weekStartDayChanged(); -} - -void Locale::setWorkingWeekStartDay(int day) -{ - m_locale->setWorkingWeekStartDay(day); - emit workingWeekStartDayChanged(); -} - -void Locale::setWorkingWeekEndDay(int day) -{ - m_locale->setWorkingWeekEndDay(day); - emit workingWeekEndDayChanged(); -} - -void Locale::setWeekDayOfPray(int day) -{ - m_locale->setWeekDayOfPray(day); - emit weekDayOfPrayChanged(); -} - -QString Locale::dateFormat() const -{ - return m_locale->dateFormat(); -} - -QString Locale::dateFormatShort() const -{ - return m_locale->dateFormatShort(); -} - -QString Locale::timeFormat() const -{ - return m_locale->timeFormat(); -} - -void Locale::setDecimalPlaces(int digits) -{ - m_locale->setDecimalPlaces(digits); - emit decimalPlacesChanged(); -} - -void Locale::setDecimalSymbol(const QString &symbol) -{ - m_locale->setDecimalSymbol(symbol); - emit decimalSymbolChanged(); -} - -void Locale::setThousandsSeparator(const QString &separator) -{ - m_locale->setThousandsSeparator(separator); - emit thousandsSeparatorChanged(); -} - -void Locale::setPositiveSign(const QString &sign) -{ - m_locale->setPositiveSign(sign); - emit positiveSignChanged(); -} - -void Locale::setNegativeSign(const QString &sign) -{ - m_locale->setNegativeSign(sign); - emit negativeSignChanged(); -} - -void Locale::setPositiveMonetarySignPosition(Locale::SignPosition signpos) -{ - m_locale->setPositiveMonetarySignPosition((KLocale::SignPosition)signpos); - emit positiveMonetarySignPositionChanged(); -} - -void Locale::setNegativeMonetarySignPosition(Locale::SignPosition signpos) -{ - m_locale->setNegativeMonetarySignPosition((KLocale::SignPosition)signpos); - emit negativeMonetarySignPositionChanged(); -} - -void Locale::setPositivePrefixCurrencySymbol(bool prefix) -{ - m_locale->setPositivePrefixCurrencySymbol(prefix); - emit positivePrefixCurrencySymbolChanged(); -} - -void Locale::setNegativePrefixCurrencySymbol(bool prefix) -{ - m_locale->setNegativePrefixCurrencySymbol(prefix); - emit negativePrefixCurrencySymbolChanged(); -} - -void Locale::setMonetaryDecimalPlaces(int digits) -{ - m_locale->setMonetaryDecimalPlaces(digits); - emit monetaryDecimalPlacesChanged(); -} - -void Locale::setMonetaryThousandsSeparator(const QString &separator) -{ - m_locale->setMonetaryThousandsSeparator(separator); - emit monetaryThousandsSeparatorChanged(); -} - -void Locale::setMonetaryDecimalSymbol(const QString &symbol) -{ - m_locale->setMonetaryDecimalSymbol(symbol); - emit monetaryDecimalSymbolChanged(); -} - -void Locale::setCurrencySymbol(const QString & symbol) -{ - m_locale->setCurrencySymbol(symbol); - emit currencySymbolChanged(); -} - -int Locale::pageSize() const -{ - return m_locale->pageSize(); -} - -void Locale::setPageSize(int size) -{ - m_locale->setPageSize(size); - emit pageSizeChanged(); -} - -Locale::MeasureSystem Locale::measureSystem() const -{ - return (Locale::MeasureSystem)m_locale->measureSystem(); -} - -void Locale::setMeasureSystem(Locale::MeasureSystem value) -{ - m_locale->setMeasureSystem((KLocale::MeasureSystem)value); - emit measureSystemChanged(); -} - -QString Locale::defaultLanguage() -{ - return KLocale::defaultLanguage(); -} - -QString Locale::defaultCountry() -{ - return KLocale::defaultCountry(); -} - -QString Locale::defaultCurrencyCode() -{ - return KLocale::defaultCurrencyCode(); -} - -int Locale::fileEncodingMib() const -{ - return m_locale->fileEncodingMib(); -} - -QStringList Locale::allLanguagesList() const -{ - return m_locale->allLanguagesList(); -} - -QStringList Locale::installedLanguages() const -{ - return m_locale->installedLanguages(); -} - -QString Locale::languageCodeToName(const QString &language) const -{ - return m_locale->languageCodeToName(language); -} - -QStringList Locale::allCountriesList() const -{ - return m_locale->allCountriesList(); -} - -QString Locale::countryCodeToName(const QString &country) const -{ - return m_locale->countryCodeToName(country); -} - -void Locale::setCalendarSystem(Locale::CalendarSystem calendarSystem) -{ - m_locale->setCalendarSystem((KLocale::CalendarSystem)calendarSystem); - emit calendarSystemChanged(); -} - -Locale::CalendarSystem Locale::calendarSystem() const -{ - return (Locale::CalendarSystem)m_locale->calendarSystem(); -} - -void Locale::setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem) -{ - m_locale->setWeekNumberSystem((KLocale::WeekNumberSystem)weekNumberSystem); - emit WeekNumberSystemChanged(); -} - -Locale::WeekNumberSystem Locale::weekNumberSystem() const -{ - return (Locale::WeekNumberSystem)m_locale->weekNumberSystem(); -} - -QString Locale::removeAcceleratorMarker(const QString &label) const -{ - return KLocalizedString::removeAcceleratorMarker(label); -} - -void Locale::setDigitSet(Locale::DigitSet digitSet) -{ - m_locale->setDigitSet((KLocale::DigitSet)digitSet); - emit digitSetChanged(); -} - -Locale::DigitSet Locale::digitSet() const -{ - return (Locale::DigitSet)m_locale->digitSet(); -} - -void Locale::setMonetaryDigitSet(Locale::DigitSet digitSet) -{ - m_locale->setMonetaryDigitSet((KLocale::DigitSet)digitSet); - emit monetaryDigitSetChanged(); -} - -Locale::DigitSet Locale::monetaryDigitSet() const -{ - return (Locale::DigitSet)m_locale->monetaryDigitSet(); -} - -void Locale::setDateTimeDigitSet(Locale::DigitSet digitSet) -{ - m_locale->setDateTimeDigitSet((KLocale::DigitSet)digitSet); - emit dateTimeDigitSetChanged(); -} - -Locale::DigitSet Locale::dateTimeDigitSet() const -{ - return (Locale::DigitSet)m_locale->dateTimeDigitSet(); -} - -void Locale::reparseConfiguration() -{ - m_locale->reparseConfiguration(); -} diff --git a/src/declarativeimports/locale/locale_p.h b/src/declarativeimports/locale/locale_p.h deleted file mode 100644 index ebcbeb527..000000000 --- a/src/declarativeimports/locale/locale_p.h +++ /dev/null @@ -1,1575 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 2012 Giorgos Tsiapaliwkas - Copyright (C) 2012 Antonis Tsiapaliokas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef LOCALE_H -#define LOCALE_H - -//Qt -#include -#include -#include - -//KDE -#include -#include -class QString; -class QDate; -class QTime; -class QDateTime; - -/** - * \file klocale.h - */ - -/** - * - * KLocale provides support for country specific stuff like - * the national language. - * - * KLocale supports translating, as well as specifying the format - * for numbers, currency, time, and date. - * - * Use KGlobal::locale() to get pointer to the global KLocale object, - * containing the applications current locale settings. - * - * For example, to format the date May 17, 1995 in the current locale, use: - * - * \code - * QString date = KGlobal::locale()->formatDate(QDate(1995,5,17)); - * \endcode - * - * @author Stephan Kulow , Preston Brown , - * Hans Petter Bieker , Lukas Tinkl - * @short class for supporting locale settings and national language - */ -class Locale : public QObject -{ -Q_OBJECT - -//enuns -Q_ENUMS(BinarySizeUnits) -Q_ENUMS(BinaryUnitDialect) -Q_ENUMS(CalendarSystem) -Q_ENUMS(DateFormat) -Q_ENUMS(DateTimeComponent) -Q_ENUMS(DateTimeComponentFormat) -Q_ENUMS(DateTimeFormatOption ) -Q_ENUMS(DigitSet) -Q_ENUMS(MeasureSystem) -Q_ENUMS(ReadDateFlags) -Q_ENUMS(SignPosition) -Q_ENUMS(TimeFormatOption) -Q_ENUMS(TimeProcessingOption) -Q_ENUMS(WeekNumberSystem) - -//properties -Q_PROPERTY(BinaryUnitDialect binaryUnitDialect READ binaryUnitDialect WRITE setBinaryUnitDialect NOTIFY binaryUnitDialectChanged) -Q_PROPERTY(Locale::CalendarSystem calendarSystem READ calendarSystem WRITE setCalendarSystem NOTIFY calendarSystemChanged) -Q_PROPERTY(QString country READ country CONSTANT) //read-only -Q_PROPERTY(QString countryDivisionCode READ countryDivisionCode WRITE setCountryDivisionCode NOTIFY countryDivisionCodeChanged) -Q_PROPERTY(QString currencyCode READ currencyCode WRITE setCurrencyCode NOTIFY currencyCodeChanged) -Q_PROPERTY(QString currencySymbol READ currencySymbol WRITE setCurrencySymbol NOTIFY currencySymbolChanged) -Q_PROPERTY(QString dateFormat READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged) -Q_PROPERTY(QString dateFormatShort READ dateFormatShort WRITE setDateFormat NOTIFY dateFormatShortChanged) -Q_PROPERTY(QString timeFormat READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged) -Q_PROPERTY(bool dateMonthNamePossessive READ dateMonthNamePossessive WRITE setDateMonthNamePossessive NOTIFY dateMonthNamePossessiveChanged) -Q_PROPERTY(DigitSet dateTimeDigitSet READ dateTimeDigitSet WRITE setDateTimeDigitSet NOTIFY dateTimeDigitSetChanged) -Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces NOTIFY decimalPlacesChanged) -Q_PROPERTY(QString decimalSymbol READ decimalSymbol WRITE setDecimalSymbol NOTIFY decimalSymbolChanged) -Q_PROPERTY(DigitSet digitSet READ digitSet WRITE setDigitSet NOTIFY digitSetChanged) -Q_PROPERTY(QString language READ language CONSTANT) //read-only -Q_PROPERTY(MeasureSystem measureSystem READ measureSystem WRITE setMeasureSystem NOTIFY measureSystemChanged) -Q_PROPERTY(int monetaryDecimalPlaces READ monetaryDecimalPlaces WRITE setMonetaryDecimalPlaces NOTIFY monetaryDecimalPlacesChanged) -Q_PROPERTY(QString monetaryDecimalSymbol READ monetaryDecimalSymbol WRITE setMonetaryDecimalSymbol NOTIFY monetaryDecimalSymbolChanged) -Q_PROPERTY(DigitSet monetaryDigitSet READ monetaryDigitSet WRITE setMonetaryDigitSet NOTIFY monetaryDigitSetChanged) -Q_PROPERTY(QString monetaryThousandsSeparator READ monetaryThousandsSeparator WRITE setMonetaryThousandsSeparator NOTIFY monetaryThousandsSeparatorChanged) -Q_PROPERTY(SignPosition negativeMonetarySignPosition READ negativeMonetarySignPosition WRITE setNegativeMonetarySignPosition NOTIFY negativeMonetarySignPositionChanged) -Q_PROPERTY(bool negativePrefixCurrencySymbol READ negativePrefixCurrencySymbol WRITE setNegativePrefixCurrencySymbol NOTIFY negativePrefixCurrencySymbolChanged) -Q_PROPERTY(QString negativeSign READ negativeSign WRITE setNegativeSign NOTIFY negativeSignChanged) -Q_PROPERTY(int pageSize READ pageSize WRITE setPageSize NOTIFY pageSizeChanged) -Q_PROPERTY(SignPosition positiveMonetarySignPosition READ positiveMonetarySignPosition WRITE setPositiveMonetarySignPosition NOTIFY positiveMonetarySignPositionChanged) -Q_PROPERTY(bool positivePrefixCurrencySymbol READ positivePrefixCurrencySymbol WRITE setPositivePrefixCurrencySymbol NOTIFY positivePrefixCurrencySymbolChanged) -Q_PROPERTY(QString positiveSign READ positiveSign WRITE setPositiveSign NOTIFY positiveSignChanged) -Q_PROPERTY(QString thousandsSeparator READ thousandsSeparator WRITE setThousandsSeparator NOTIFY thousandsSeparatorChanged) -Q_PROPERTY(int weekDayOfPray READ weekDayOfPray WRITE setWeekDayOfPray NOTIFY weekDayOfPrayChanged) -Q_PROPERTY(Locale::WeekNumberSystem weekNumberSystem READ weekNumberSystem WRITE setWeekNumberSystem NOTIFY WeekNumberSystemChanged) -Q_PROPERTY(int weekStartDay READ weekStartDay WRITE setWeekStartDay NOTIFY weekStartDayChanged) -Q_PROPERTY(int workingWeekEndDay READ workingWeekEndDay WRITE setWorkingWeekEndDay NOTIFY workingWeekEndDayChanged) -Q_PROPERTY(int workingWeekStartDay READ workingWeekStartDay WRITE setWorkingWeekStartDay NOTIFY workingWeekStartDayChanged) -Q_PROPERTY(bool use12Clock READ use12Clock CONSTANT) -Q_PROPERTY(QString defaultLanguage READ defaultLanguage CONSTANT)//read-only -Q_PROPERTY(QString defaultCountry READ defaultCountry CONSTANT)//read-only -Q_PROPERTY(QString defaultCurrencyCode READ defaultCurrencyCode CONSTANT)//read-only -Q_PROPERTY(int fileEncodingMib READ fileEncodingMib CONSTANT) //read-only -Q_PROPERTY(QStringList languageList READ languageList CONSTANT) //read-only -Q_PROPERTY(QStringList currencyCodeList READ currencyCodeList CONSTANT) //read-only -Q_PROPERTY(QStringList allLanguagesList READ allLanguagesList CONSTANT) //read-only -Q_PROPERTY(QStringList installedLanguages READ installedLanguages CONSTANT) //read-only -Q_PROPERTY(QStringList allCountriesList READ allCountriesList CONSTANT) //read-only -Q_PROPERTY(QList allDigitSetsList READ allDigitSetsList CONSTANT) //read-only - -public: - /** - * ctor - */ - Locale(QObject *parent = 0); - - /** - * Various positions for where to place the positive or negative - * sign when they are related to a monetary value. - */ - enum SignPosition { - /** - * Put parantheses around the quantity, e.g. "$ (217)" - */ - ParensAround = 0, - /** - * Prefix the quantity with the sign, e.g. "$ -217" - */ - BeforeQuantityMoney = 1, - /** - * Suffix the quanitity with the sign, e.g. "$ 217-" - */ - AfterQuantityMoney = 2, - /** - * Prefix the currency symbol with the sign, e.g. "-$ 217" - */ - BeforeMoney = 3, - /** - * Suffix the currency symbol with the sign, e.g. "$- 217" - */ - AfterMoney = 4 - }; - - /** - * - * The set of digit characters used to display and enter numbers. - */ - enum DigitSet { - ArabicDigits, /**< 0123456789 (European and some Asian - languages and western Arabic dialects) */ - ArabicIndicDigits, /**< ٠١٢٣٤٥٦٧٨٩ (eastern Arabic dialects) */ - EasternArabicIndicDigits, /**< ۰۱۲۳۴۵۶۷۸۹ (Persian and Urdu) */ - DevenagariDigits, /**< ०१२३४५६७८९ (Hindi) */ - BengaliDigits, /**< ০১২৩৪৫৬৭৮৯ (Bengali and Assamese) */ - GujaratiDigits, /**< ૦૧૨૩૪૫૬૭૮૯ (Gujarati) */ - GurmukhiDigits, /**< ੦੧੨੩੪੫੬੭੮੯ (Punjabi) */ - KannadaDigits, /**< ೦೧೨೩೪೫೬೭೮೯ (Kannada) */ - KhmerDigits, /**< ០១២៣៤៥៦៧៨៩ (Khmer) */ - MalayalamDigits, /**< ൦൧൨൩൪൫൬൭൮൯ (Malayalam) */ - OriyaDigits, /**< ୦୧୨୩୪୫୬୭୮୯ (Oriya) */ - TamilDigits, /**< ௦௧௨௩௪௫௬௭௮ (Tamil) */ - TeluguDigits, /**< ౦౧౨౩౪౫౬౭౯ (Telugu) */ - ThaiDigits /**< ๐๑๒๓๔๕๖๗๘๙ (Thai) */ - // The following Decimal Digit Sets are defined in Unicode but the associated - // languages are not yet translated in KDE, so are not yet enabled. - // The script names are taken from the Unicode standard, the associated - // languages from Wikipedia. - // BalineseDigits, /**< ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ (Balinese) */ - // ChamDigits, /**< ꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ (Cham) */ - // JavaneseDigits, /**< ꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ (Javanese) */ - // KayahLiDigits, /**< ꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ (Kayah) */ - // LaoDigits, /**< ໐໑໒໓໔໕໖໗໘໙ (Lao) */ - // LepchaDigits, /**< ᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ (Lepcha) */ - // LimbuDigits, /**< ᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ (Limbu) */ - // MeeteiMayekDigits, /**< ꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹ (Meitei) */ - // MongolianDigits, /**< ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ (Mongolian) */ - // MyanmarDigits, /**< ၀၁၂၃၄၅၆၇၈၉ (Myanmar/Burmese ) */ - // MyanmarShanDigits, /**< ႐႑႒႓႔႕႖႗႘႙ (Shan) */ - // NewTaiLueDigits, /**< ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ (Tai Lü) */ - // NKoDigits, /**< ߀߁߂߃߄߅߆߇߈߉ (Mande and N'Ko) */ - // OlChikiDigits, /**< ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ (Santali) */ - // OsmanyaDigits, /**< ҠҡҢңҤҥҦҧҨҩ (Somali) */ - // SaurashtraDigits, /**< ꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙ (Saurashtra) */ - // SundaneseDigits, /**< ᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ (Sundanese) */ - // TaiThamDigits, /**< ᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ (Tai Lü) */ - // TibetanDigits, /**< ༠༡༢༣༤༥༦༧༨༩ (Tibetan) */ - // VaiDigits, /**< ꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ (Vai) */ - }; - - /** - * - * Convert a digit set identifier to a human readable, localized name. - * - * @param digitSet the digit set identifier - * @param withDigits whether to add the digits themselves to the name - * - * @return the human readable and localized name of the digit set - * - * @see DigitSet - */ - QString digitSetToName(DigitSet digitSet, bool withDigits = false) const; - - /** - * - * Provides list of all known digit set identifiers. - * - * @return list of all digit set identifiers - * @see DigitSet - * @see digitSetToName - */ - QList allDigitSetsList() const; - - /** - * Returns what a decimal point should look like ("." or "," etc.) - * according to the current locale or user settings. - * - * @return The decimal symbol used by locale. - */ - QString decimalSymbol() const; - - /** - * Returns what the thousands separator should look - * like ("," or "." etc.) - * according to the current locale or user settings. - * - * @return The thousands separator used by locale. - */ - QString thousandsSeparator() const; - - /** - * - * Returns the identifier of the digit set used to display numbers. - * - * @return the digit set identifier - * @see DigitSet - * @see digitSetToName - */ - DigitSet digitSet() const; - - /** - * - * Returns the ISO 4217 Currency Code for the current locale - * - * @return The default ISO Currency Code used by locale. - */ - QString currencyCode() const; - - /** - * Returns what the symbol denoting currency in the current locale - * as as defined by user settings should look like. - * - * @return The default currency symbol used by locale. - */ - QString currencySymbol() const; - - /** - * Returns what a decimal point should look like ("." or "," etc.) - * for monetary values, according to the current locale or user - * settings. - * - * @return The monetary decimal symbol used by locale. - */ - QString monetaryDecimalSymbol() const; - - /** - * Returns what a thousands separator for monetary values should - * look like ("," or " " etc.) according to the current locale or - * user settings. - * - * @return The monetary thousands separator used by locale. - */ - QString monetaryThousandsSeparator() const; - - /** - * Returns what a positive sign should look like ("+", " ", etc.) - * according to the current locale or user settings. - * - * @return The positive sign used by locale. - */ - QString positiveSign() const; - - /** - * Returns what a negative sign should look like ("-", etc.) - * according to the current locale or user settings. - * - * @return The negative sign used by locale. - */ - QString negativeSign() const; - - /** - * - * The number of decimal places to include in numeric values (usually 2). - * - * @return Default number of numeric decimal places used by locale. - */ - int decimalPlaces() const; - - /** - * - * The number of decimal places to include in monetary values (usually 2). - * - * @return Default number of monetary decimal places used by locale. - */ - int monetaryDecimalPlaces() const; - - /** - * If and only if the currency symbol precedes a positive value, - * this will be true. - * - * @return Where to print the currency symbol for positive numbers. - */ - bool positivePrefixCurrencySymbol() const; - - /** - * If and only if the currency symbol precedes a negative value, - * this will be true. - * - * @return True if the currency symbol precedes negative numbers. - */ - bool negativePrefixCurrencySymbol() const; - - /** - * Returns the position of a positive sign in relation to a - * monetary value. - * - * @return Where/how to print the positive sign. - * @see SignPosition - */ - SignPosition positiveMonetarySignPosition() const; - - /** - * Denotes where to place a negative sign in relation to a - * monetary value. - * - * @return Where/how to print the negative sign. - * @see SignPosition - */ - SignPosition negativeMonetarySignPosition() const; - - /** - * - * Retuns the digit set used to display monetary values. - * - * @return the digit set identifier - * @see DigitSet - * @see digitSetToName - */ - DigitSet monetaryDigitSet() const; - - /** - * Given a double, converts that to a numeric string containing - * the localized monetary equivalent. - * - * e.g. given 123456, return "$ 123,456.00". - * - * If precision isn't specified or is < 0, then the default monetaryDecimalPlaces() is used. - * - * @param num The number we want to format - * @param currency The currency symbol you want. - * @param precision Number of decimal places displayed - * - * @return The number of money as a localized string - * @see monetaryDecimalPlaces() - */ - Q_INVOKABLE QString formatMoney(double num, const QString ¤cy = QString(), int precision = -1) const; - - /** - * Given a string representing a number, converts that to a numeric - * string containing the localized numeric equivalent. - * - * e.g. given 123456.78F, return "123,456.78" (for some European country). - * - * If precision isn't specified or is < 0, then the default decimalPlaces() is used. - * - * @param numStr The number to format, as a string. - * @param round Round fractional digits. (default true) - * @param precision Number of fractional digits used for rounding. Unused if round=false. - * - * @return The number as a localized string - */ - Q_INVOKABLE QString formatNumber(const QString &numStr, bool round = true, int precision = -1) const; - - /** - * Given an integer, converts that to a numeric string containing - * the localized numeric equivalent. - * - * e.g. given 123456L, return "123,456" (for some European country). - * - * @param num The number to convert - * - * @return The number as a localized string - */ - Q_INVOKABLE QString formatLong(long num) const; - - /** - * These binary units are used in KDE by the formatByteSize() - * functions. - * - * NOTE: There are several different units standards: - * 1) SI (i.e. metric), powers-of-10. - * 2) IEC, powers-of-2, with specific units KiB, MiB, etc. - * 3) JEDEC, powers-of-2, used for solid state memory sizing which - * is why you see flash cards labels as e.g. 4GB. These (ab)use - * the metric units. Although JEDEC only defines KB, MB, GB, if - * JEDEC is selected all units will be powers-of-2 with metric - * prefixes for clarity in the event of sizes larger than 1024 GB. - * - * Although 3 different dialects are possible this enum only uses - * metric names since adding all 3 different names of essentially the same - * unit would be pointless. Use BinaryUnitDialect to control the exact - * units returned. - * - * @see binaryUnitDialect - */ - enum BinarySizeUnits { - /// Auto-choose a unit such that the result is in the range [0, 1000 or 1024) - DefaultBinaryUnits = 1000, - - // The first real unit must be 0 for the current implementation! - UnitByte = 0, ///< B 1 byte - UnitKiloByte, ///< KiB/KB/kB 1024/1000 bytes. - UnitMegaByte, ///< MiB/MB/MB 2^20/10^06 bytes. - UnitGigaByte, ///< GiB/GB/GB 2^30/10^09 bytes. - UnitTeraByte, ///< TiB/TB/TB 2^40/10^12 bytes. - UnitPetaByte, ///< PiB/PB/PB 2^50/10^15 bytes. - UnitExaByte, ///< EiB/EB/EB 2^60/10^18 bytes. - UnitZettaByte, ///< ZiB/ZB/ZB 2^70/10^21 bytes. - UnitYottaByte, ///< YiB/YB/YB 2^80/10^24 bytes. - UnitLastUnit = UnitYottaByte - }; - - /** - * This enum chooses what dialect is used for binary units. - * - * Note: Although JEDEC abuses the metric prefixes and can therefore be - * confusing, it has been used to describe *memory* sizes for quite some time - * and programs should therefore use either Default, JEDEC, or IEC 60027-2 - * for memory sizes. - * - * On the other hand network transmission rates are typically in metric so - * Default, Metric, or IEC (which is unambiguous) should be chosen. - * - * Normally choosing DefaultBinaryUnits is the best option as that uses - * the user's selection for units. - * - * @see binaryUnitDialect - * @see setBinaryUnitDialect - */ - enum BinaryUnitDialect { - DefaultBinaryDialect = 1000, ///< Used if no specific preference - IECBinaryDialect = 0, ///< KDE Default, KiB, MiB, etc. 2^(10*n) - JEDECBinaryDialect, ///< KDE 3.5 default, KB, MB, etc. 2^(10*n) - MetricBinaryDialect, ///< SI Units, kB, MB, etc. 10^(3*n) - LastBinaryDialect = MetricBinaryDialect - }; - - /** - * Converts @p size from bytes to the string representation using the - * user's default binary unit dialect. The default unit dialect is - * IEC 60027-2. - * - * Example: - * formatByteSize(1024) returns "1.0 KiB" by default. - * - * @param size size in bytes - * @return converted size as a string - e.g. 123.4 KiB , 12.0 MiB - * @see BinaryUnitDialect - * @todo KDE 5: Remove in favor of overload added in KDE 4.4. - */ - Q_INVOKABLE QString formatByteSize(double size) const; - - /** - * - * Converts @p size from bytes to the appropriate string representation - * using the binary unit dialect @p dialect and the specific units @p specificUnit. - * - * Example: - * formatByteSize(1000, unit, Locale::BinaryUnitKilo) returns: - * for Locale::MetricBinaryUnits, "1.0 kB", - * for Locale::IECBinaryUnits, "0.9 KiB", - * for Locale::JEDECBinaryUnits, "0.9 KB". - * - * @param size size in bytes - * @param precision number of places after the decimal point to use. KDE uses - * 1 by default so when in doubt use 1. - * @param dialect binary unit standard to use. Use DefaultBinaryUnits to - * use the localized user selection unless you need to use a specific - * unit type (such as displaying a flash memory size in JEDEC). - * @param specificUnit specific unit size to use in result. Use - * DefaultBinarySize to automatically select a unit that will return - * a sanely-sized number. - * @return converted size as a translated string including the units. - * E.g. "1.23 KiB", "2 GB" (JEDEC), "4.2 kB" (Metric). - * @see BinaryUnitDialect - */ - QString formatByteSize(double size, int precision, - BinaryUnitDialect dialect = Locale::DefaultBinaryDialect, - BinarySizeUnits specificUnit = Locale::DefaultBinaryUnits) const; - - /** - * Returns the user's configured binary unit dialect. - * e.g. if MetricBinaryDialect is returned then the values - * configured for how much a set of bytes are worth would - * be 10^(3*n) and KB (1000 bytes == 1 KB), in this case. - * - * Will never return DefaultBinaryDialect. - * - * @return User's configured binary unit dialect - * @see BinaryUnitDialect - */ - BinaryUnitDialect binaryUnitDialect() const; - - /** - * Sets @p newDialect to be the default dialect for this locale (and only - * this locale). Newly created KLocale objects will continue to default - * to the user's choice. - * - * @param newDialect the new dialect to set as default for this locale object. - */ - void setBinaryUnitDialect(BinaryUnitDialect newDialect); - - /** - * Given a number of milliseconds, converts that to a string containing - * the localized equivalent - * - * e.g. given formatDuration(60000), returns "1.0 minutes" - * - * @param mSec Time duration in milliseconds - * @return converted duration as a string - e.g. "5.5 seconds" "23.0 minutes" - */ - Q_INVOKABLE QString formatDuration(unsigned long mSec) const; - - /** - * Given a number of milliseconds, converts that to a pretty string containing - * the localized equivalent. - * - * e.g. given prettyFormatDuration(60001) returns "1 minute" - * given prettyFormatDuration(62005) returns "1 minute and 2 seconds" - * given prettyFormatDuration(90060000) returns "1 day and 1 hour" - * - * @param mSec Time duration in milliseconds - * @return converted duration as a string. - * Units not interesting to the user, for example seconds or minutes when the first - * unit is day, are not returned because they are irrelevant. The same applies for - * seconds when the first unit is hour. - */ - Q_INVOKABLE QString prettyFormatDuration(unsigned long mSec) const; - - /** - * - * Available Calendar Systems - * - * @see setCalendarSystem() - * @see calendarSystem() - */ - enum CalendarSystem { - QDateCalendar = 1, /**< KDE Default, hybrid of Gregorian and Julian as used by QDate */ - //BahaiCalendar = 2, /**< Baha'i Calendar */ - //BuddhistLunarCalendar = 3, /**< Buddhist Lunar Calendar*/ - //ChineseCalendar = 4, /**< Chinese Calendar */ - CopticCalendar = 5, /**< Coptic Calendar as used Coptic Church and some parts of Egypt */ - EthiopianCalendar = 6, /**< Ethiopian Calendar, aka Ethiopic Calendar */ - //EthiopianAmeteAlemCalendar = 7, /**< Ethiopian Amete Alem version, aka Ethiopic Amete Alem */ - GregorianCalendar = 8, /**< Gregorian Calendar, pure proleptic implementation */ - HebrewCalendar = 9, /**< Hebrew Calendar, aka Jewish Calendar */ - //HinduCalendar = 10, /**< Hindu Lunar Calendar */ - //IslamicLunarCalendar = 11, /**< Islamic Lunar Calendar */ - IslamicCivilCalendar = 12, /**< Islamic Civil Calendar, aka Hijri, not the Lunar Calendar */ - //IslamicUmAlQuraCalendar = 13, /**< Islamic Lunar Calendar, Um Al Qura varient used in Saudi Arabia */ - IndianNationalCalendar = 14, /**< Indian National Calendar, not the Lunar Calendar */ - //Iso8601Calendar = 15, /**< ISO 8601 Standard Calendar */ - JalaliCalendar = 16, /**< Jalali Calendar, aka Persian or Iranian, also used in Afghanistan */ - //JalaliBirashkCalendar = 17, /**< Jalali Calendar, Birashk Algorythm variant */ - //Jalali33YearCalendar = 18, /**< Jalali Calendar, 33 Year cycle variant */ - JapaneseCalendar= 19, /**< Japanese Calendar, Gregorian calculation using Japanese Era (Nengô) */ - //JucheCalendar = 20, /**< Juche Calendar, used in North Korea */ - JulianCalendar = 21, /**< Julian Calendar, as used in Orthodox Churches */ - MinguoCalendar= 22, /**< Minguo Calendar, aka ROC, Republic of China or Taiwanese */ - ThaiCalendar = 23 /**< Thai Calendar, aka Buddhist or Thai Buddhist */ - }; - - /** - * - * System used for Week Numbers - * - * @see setWeekNumberSystem() - * @see weekNumberSystem() - */ - enum WeekNumberSystem { - DefaultWeekNumber = 1000, /**< The system locale default */ - IsoWeekNumber = 0, /**< ISO Week Number */ - FirstFullWeek = 1, /**< Week 1 starts on the first Week Start Day in year ends after 7 days */ - FirstPartialWeek = 2, /**< Week 1 starts Jan 1st ends day before first Week Start Day in year */ - SimpleWeek = 3 /**< Week 1 starts Jan 1st ends after 7 days */ - }; - - /** - * - * The various Components that make up a Date / Time - * In the future the Components may be combined as flags for dynamic - * generation of Date Formats. - * - * @see CalendarSystem - * @see KLocalizedDate - * @see DateTimeComponentFormat - */ - enum DateTimeComponent { - Year = 0x1, /**< The Year portion of a date, may be number or name */ - YearName = 0x2, /**< The Year Name portion of a date */ - Month = 0x4, /**< The Month portion of a date, may be number or name */ - MonthName = 0x8, /**< The Month Name portion of a date */ - Day = 0x10, /**< The Day portion of a date, may be number or name */ - DayName = 0x20, /**< The Day Name portion of a date */ - JulianDay = 0x40, /**< The Julian Day of a date */ - EraName = 0x80, /**< The Era Name portion of a date */ - EraYear = 0x100, /**< The Era and Year portion of a date */ - YearInEra = 0x200, /**< The Year In Era portion of a date */ - DayOfYear = 0x400, /**< The Day Of Year portion of a date, may be number or name */ - DayOfYearName = 0x800, /**< The Day Of Year Name portion of a date */ - DayOfWeek = 0x1000, /**< The Day Of Week / Weekday portion of a date, may be number or name */ - DayOfWeekName = 0x2000, /**< The Day Of Week Name / Weekday Name portion of a date */ - Week = 0x4000, /**< The Week Number portion of a date */ - WeekYear = 0x8000, /**< The Week Year portion of a date */ - MonthsInYear = 0x10000, /**< The Months In Year portion of a date */ - WeeksInYear = 0x20000, /**< The Weeks In Year portion of a date */ - DaysInYear = 0x40000, /**< The Days In Year portion of a date */ - DaysInMonth = 0x80000, /**< The Days In Month portion of a date */ - DaysInWeek = 0x100000, /**< The Days In Week portion of a date */ - Hour = 0x200000, /**< The Hours portion of a date */ - Minute = 0x400000, /**< The Minutes portion of a date */ - Second = 0x800000, /**< The Seconds portion of a date */ - Millisecond = 0x1000000, /**< The Milliseconds portion of a date */ - DayPeriod = 0x2000000, /**< The Day Period portion of a date, e.g. AM/PM */ - DayPeriodHour = 0x4000000, /**< The Day Period Hour portion of a date */ - Timezone = 0x8000000, /**< The Time Zone portion of a date, may be offset or name */ - TimezoneName = 0x10000000, /**< The Time Zone Name portion of a date */ - UnixTime = 0x20000000 /**< The UNIX Time portion of a date */ - }; - - /** - * - * Format used for individual Date/Time Components when converted to/from a string - * Largely equivalent to the UNICODE CLDR format width definitions 1..5 - * - * @see DateTimeComponentFormat - */ - enum DateTimeComponentFormat { - DefaultComponentFormat = 1000, /**< The system locale default for the componant */ - ShortNumber = 0, /**< Number at its natural width, e.g. 2 for the 2nd*/ - LongNumber, /**< Number padded to a required width, e.g. 02 for the 2nd*/ - //OrdinalNumber /**< Ordinal number format, e.g. "2nd" for the 2nd */ - NarrowName = 3, /**< Narrow text format, may not be unique, e.g. M for Monday */ - ShortName, /**< Short text format, e.g. Mon for Monday */ - LongName /**< Long text format, e.g. Monday for Monday */ - }; - - Q_DECLARE_FLAGS(DateTimeComponents, DateTimeComponent) - Q_FLAGS(DateTimeComponents) - - /** - * Format for date string. - */ - enum DateFormat { - ShortDate, /**< Locale Short date format, e.g. 08-04-2007 */ - LongDate, /**< Locale Long date format, e.g. Sunday 08 April 2007 */ - FancyShortDate, /**< Same as ShortDate for dates a week or more ago. For more - recent dates, it is represented as Today, Yesterday, or - the weekday name. */ - FancyLongDate, /**< Same as LongDate for dates a week or more ago. For more - recent dates, it is represented as Today, Yesterday, or - the weekday name. */ - IsoDate, /**< ISO-8601 Date format YYYY-MM-DD, e.g. 2009-12-31 */ - IsoWeekDate, /**< ISO-8601 Week Date format YYYY-Www-D, e.g. 2009-W01-1 */ - IsoOrdinalDate /**< ISO-8601 Ordinal Date format YYYY-DDD, e.g. 2009-001 */ - }; - - /** - * Returns a string formatted to the current locale's conventions - * regarding dates. - * - * @param date the date to be formatted - * @param format category of date format to use - * - * @return the date as a string - */ - Q_INVOKABLE QString formatDate(const QDate &date, DateFormat format = LongDate) const; - - /** - * Options for formatting date-time values. - */ - enum DateTimeFormatOption { - TimeZone = 0x01, /**< Include a time zone string */ - Seconds = 0x02 /**< Include the seconds value */ - }; - - Q_DECLARE_FLAGS(DateTimeFormatOptions, DateTimeFormatOption) - Q_FLAGS(DateTimeFormatOptions) - - /** - * Returns a string formatted to the current locale's conventions - * regarding both date and time. - * - * @param dateTime the date and time to be formatted - * @param format category of date format to use - * @param options additional output options - * - * @return The date and time as a string - */ - Q_INVOKABLE QString formatDateTime(const QDateTime &dateTime, DateFormat format = ShortDate, - DateTimeFormatOptions options = 0) const; - - /** - * Use this to determine whether in dates a possessive form of month - * name is preferred ("of January" rather than "January") - * - * @return If possessive form should be used - */ - bool dateMonthNamePossessive() const; - - /** - * - * Format flags for readLocaleTime() and formatLocaleTime() - */ - enum TimeFormatOption { - TimeDefault = 0x0, ///< Default formatting using seconds and the format - ///< as specified by the locale. - TimeWithoutSeconds = 0x1, ///< Exclude the seconds part of the time from display - TimeWithoutAmPm = 0x2, ///< Read/format time string without am/pm suffix but - ///< keep the 12/24h format as specified by locale time - ///< format, eg. "07.33.05" instead of "07.33.05 pm" for - ///< time format "%I.%M.%S %p". - TimeDuration = 0x6, ///< Read/format time string as duration. This will strip - ///< the am/pm suffix and read/format times with an hour - ///< value of 0-23 hours, eg. "19.33.05" instead of - ///< "07.33.05 pm" for time format "%I.%M.%S %p". - ///< This automatically implies @c TimeWithoutAmPm. - TimeFoldHours = 0xE ///< Read/format time string as duration. This will not - ///< not output the hours part of the duration but will - ///< add the hours (times sixty) to the number of minutes, - ///< eg. "70.23" instead of "01.10.23" for time format - ///< "%I.%M.%S %p". - }; - - Q_DECLARE_FLAGS(TimeFormatOptions, TimeFormatOption) - Q_FLAGS(TimeFormatOptions) - - /** - * - * Returns a string formatted to the current locale's conventions - * regarding times. - * - * @param pTime the time to be formatted - * @param options format option to use when formatting the time - * @return The time as a string - */ - Q_INVOKABLE QString formatLocaleTime(const QTime &pTime, - TimeFormatOptions options = Locale::TimeDefault) const; - - /** - * - * Returns the identifier of the digit set used to display dates and time. - * - * @return the digit set identifier - * @see DigitSet - * @see digitSetToName - */ - DigitSet dateTimeDigitSet() const; - - /** - * Use this to determine if the user wants a 12 hour clock. - * - * @return If the user wants 12h clock - */ - bool use12Clock() const; - - /** - * - * Returns the Day Period matching the time given - * - * @param time the time to return the day period for - * @param format the format to return teh day period in - * @return the Day Period for the given time - */ - Q_INVOKABLE QString dayPeriodText(const QTime &time, DateTimeComponentFormat format = DefaultComponentFormat) const; - - /** - * Use this to determine which day is the first day of the week. - * - * @return an integer (Monday=1..Sunday=7) - */ - int weekStartDay() const; - - /** - * Use this to determine which day is the first working day of the week. - * - * @return an integer (Monday=1..Sunday=7) - */ - int workingWeekStartDay() const; - - /** - * Use this to determine which day is the last working day of the week. - * - * @return an integer (Monday=1..Sunday=7) - */ - int workingWeekEndDay() const; - - /** - * Use this to determine which day is reserved for religious observance - * - * @return day number (None = 0, Monday = 1, ..., Sunday = 7) - */ - int weekDayOfPray() const; - - /** - * - * Returns the type of Calendar System used in this Locale - * - * @see Locale::CalendarSystem - * @see CalendarSystem - * @return the type of Calendar System - */ - Locale::CalendarSystem calendarSystem() const; - - /** - * - * Sets the type of Calendar System to use in this Locale - * - * @see Locale::CalendarSystem - * @see CalendarSystem - * @param calendarSystem the Calendar System to use - */ - void setCalendarSystem(Locale::CalendarSystem calendarSystem); - - /** - * - * Sets the type of Week Number System to use in this Locale - * - * @see Klocale::WeekNumberSystem - * @see weekNumberSystem() - * @param weekNumberSystem the Week Number System to use - */ - void setWeekNumberSystem(Locale::WeekNumberSystem weekNumberSystem); - - /** - * - * Returns the type of Week Number System used in this Locale - * - * @see Klocale::WeekNumberSystem - * @see setWeekNumberSystem() - * @returns the Week Number System used - */ - Locale::WeekNumberSystem weekNumberSystem() const; - - /** - * Converts a localized monetary string to a double. - * - * @param numStr the string we want to convert. - * @param ok the boolean that is set to false if it's not a number. - * If @p ok is 0, it will be ignored - * - * @return The string converted to a double - */ - Q_INVOKABLE double readMoney(const QString &numStr) const; - - /** - * Converts a localized numeric string to a double. - * - * @param numStr the string we want to convert. - * @return The string converted to a double - */ - Q_INVOKABLE double readNumber(const QString &numStr) const; - - /** - * Flags for readDate() - */ - enum ReadDateFlags { - NormalFormat = 1, /**< Only accept a date string in - the locale LongDate format */ - ShortFormat = 2, /**< Only accept a date string in - the locale ShortDate format */ - IsoFormat = 4, /**< Only accept a date string in - ISO date format (YYYY-MM-DD) */ - IsoWeekFormat = 8, /**< Only accept a date string in - ISO Week date format (YYYY-Www-D) */ - IsoOrdinalFormat = 16 /**< Only accept a date string in - ISO Week date format (YYYY-DDD) */ - }; - - /** - * Converts a localized date string to a QDate. - * This method is stricter than readDate(str,&ok): it will only accept - * a date in a specific format, depending on @p flags. - * - * @param str the string we want to convert. - * @param flags what format the the date string will be in - * @return The string converted to a QDate - * @see CalendarSystem::readDate() - */ - Q_INVOKABLE QDate readDate(const QString &str, ReadDateFlags flags) const; - - /** - * Converts a localized time string to a QTime. - * This method will try to parse it with seconds, then without seconds. - * - * @param str the string we want to convert. - * - * @return The string converted to a QTime - */ - Q_INVOKABLE QTime readTime(const QString &str) const; - - /** - * Additional processing options for readLocaleTime(). - * - * @remarks This is currently used as an enum but declared as a flag - * to be extensible - */ - enum TimeProcessingOption { - ProcessStrict = 0x1, ///< Process time in a strict manner, ie. - ///< a read time string has to exactly match - ///< the defined time format. - ProcessNonStrict = 0x2 ///< Process time in a lax manner, ie. - ///< allow spaces in the time-format to be - ///< left out when entering a time string. - }; - - Q_DECLARE_FLAGS(TimeProcessingOptions, TimeProcessingOption) - Q_FLAGS(TimeProcessingOptions) - - /** - * - * Converts a localized time string to a QTime. - * This method is stricter than readTime(str, &ok) in that it will either - * accept a time with seconds or a time without seconds. - * - * @param str the string we want to convert - * @param ok the boolean that is set to false if it's not a valid time. - * If @p ok is 0, it will be ignored. - * @param options format option to apply when formatting the time - * @param processing if set to @c ProcessStrict, checking will be strict - * and the read time string has to have the exact time format - * specified. If set to @c ProcessNonStrict processing the time - * is lax and spaces in the time string can be left out. - * - * @return The string converted to a QTime - */ - - Q_INVOKABLE QTime readLocaleTime(const QString &str, - TimeFormatOptions options = Locale::TimeDefault, - TimeProcessingOptions processing = ProcessNonStrict) const; - - /** - * Returns the language code used by this object. The domain AND the - * library translation must be available in this language. - * defaultLanguage() is returned by default, if no other available. - * - * Use languageCodeToName(language) to get human readable, localized - * language name. - * - * @return the currently used language code - * - * @see languageCodeToName - */ - QString language() const; - - /** - * Returns the country code of the country where the user lives. - * - * The returned code complies with the ISO 3166-1 alpha-2 standard, - * except by KDE convention it is returned in lowercase whereas the - * official standard is uppercase. - * See http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 for details. - * - * defaultCountry() is returned by default, if no other available, - * this will always be uppercase 'C'. - * - * Use countryCodeToName(country) to get human readable, localized - * country names. - * - * @return the country code for the user - * - * @see countryCodeToName - */ - QString country() const; - - /** - * - * Returns the Country Division Code of the Country where the user lives. - * When no value is set, then the Country Code will be returned. - * - * The returned code complies with the ISO 3166-2 standard. - * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. - * - * Note that unlike country() this method will return the correct case, - * i.e. normally uppercase.. - * - * In KDE 4.6 it is the apps responsibility to obtain a translation for the - * code, translation and other services will be priovided in KDE 4.7. - * - * @return the Country Division Code for the user - * @see setCountryDivisionCode - */ - QString countryDivisionCode() const; - - /** - * Returns the language codes selected by user, ordered by decreasing - * priority. - * - * Use languageCodeToName(language) to get human readable, localized - * language name. - * - * @return list of language codes - * - * @see languageCodeToName - */ - QStringList languageList() const; - - /** - * - * Returns the ISO Currency Codes used in the locale, ordered by decreasing - * priority. - * - * Use KCurrency::currencyCodeToName(currencyCode) to get human readable, - * localized language name. - * - * @return list of ISO Currency Codes - * - * @see currencyCodeToName - */ - QStringList currencyCodeList() const; - - /** - * Returns the file encoding. - * - * @return The Mib of the file encoding - * - * @see QFile::encodeName - * @see QFile::decodeName - */ - int fileEncodingMib() const; - - /** - * Changes the current date format. - * - * The format of the date is a string which contains variables that will - * be replaced: - * @li %Y with the whole year (e.g. "2004" for "2004") - * @li %y with the lower 2 digits of the year (e.g. "04" for "2004") - * @li %n with the month (January="1", December="12") - * @li %m with the month with two digits (January="01", December="12") - * @li %e with the day of the month (e.g. "1" on the first of march) - * @li %d with the day of the month with two digits (e.g. "01" on the first of march) - * @li %b with the short form of the month (e.g. "Jan" for January) - * @li %B with the long form of the month (e.g. "January") - * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) - * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) - * - * Everything else in the format string will be taken as is. - * For example, March 20th 1989 with the format "%y:%m:%d" results - * in "89:03:20". - * - * @param format The new date format - */ - void setDateFormat(const QString & format); - - /** - * Changes the current short date format. - * - * The format of the date is a string which contains variables that will - * be replaced: - * @li %Y with the whole year (e.g. "1984" for "1984") - * @li %y with the lower 2 digits of the year (e.g. "84" for "1984") - * @li %n with the month (January="1", December="12") - * @li %m with the month with two digits (January="01", December="12") - * @li %e with the day of the month (e.g. "1" on the first of march) - * @li %d with the day of the month with two digits(e.g. "01" on the first of march) - * @li %b with the short form of the month (e.g. "Jan" for January) - * @li %B with the long form of the month (e.g. "January") - * @li %a with the short form of the weekday (e.g. "Wed" for Wednesday) - * @li %A with the long form of the weekday (e.g. "Wednesday" for Wednesday) - * - * Everything else in the format string will be taken as is. - * For example, March 20th 1989 with the format "%y:%m:%d" results - * in "89:03:20". - * - * @param format The new short date format - */ - void setDateFormatShort(const QString & format); - - /** - * Changes the form of month name used in dates. - * - * @param possessive True if possessive forms should be used - */ - void setDateMonthNamePossessive(bool possessive); - - /** - * Changes the current time format. - * - * The format of the time is string a which contains variables that will - * be replaced: - * @li %H with the hour in 24h format and 2 digits (e.g. 5pm is "17", 5am is "05") - * @li %k with the hour in 24h format and one digits (e.g. 5pm is "17", 5am is "5") - * @li %I with the hour in 12h format and 2 digits (e.g. 5pm is "05", 5am is "05") - * @li %l with the hour in 12h format and one digits (e.g. 5pm is "5", 5am is "5") - * @li %M with the minute with 2 digits (e.g. the minute of 07:02:09 is "02") - * @li %S with the seconds with 2 digits (e.g. the minute of 07:02:09 is "09") - * @li %p with pm or am (e.g. 17.00 is "pm", 05.00 is "am") - * - * Everything else in the format string will be taken as is. - * For example, 5.23pm with the format "%H:%M" results - * in "17:23". - * - * @param format The new time format - */ - void setTimeFormat(const QString & format); - - /** - * - * Set digit characters used to display dates and time. - * - * @param digitSet the digit set identifier - * @see DigitSet - */ - void setDateTimeDigitSet(DigitSet digitSet); - - /** - * Changes how KLocale defines the first day in week. - * - * @param day first day of the week (Monday=1..Sunday=7) as integer - */ - void setWeekStartDay(int day); - - /** - * Changes how KLocale defines the first working day in week. - * - * @param day first working day of the week (Monday=1..Sunday=7) as integer - */ - void setWorkingWeekStartDay(int day); - - /** - * Changes how KLocale defines the last working day in week. - * - * @param day last working day of the week (Monday=1..Sunday=7) as integer - */ - void setWorkingWeekEndDay(int day); - - /** - * Changes how KLocale defines the day reserved for religious observance. - * - * @param day day of the week for religious observance (None=0,Monday=1..Sunday=7) as integer - */ - void setWeekDayOfPray(int day); - - /** - * Returns the currently selected date format. - * - * @return Current date format. - * @see setDateFormat() - */ - QString dateFormat() const; - - /** - * Returns the currently selected short date format. - * - * @return Current short date format. - * @see setDateFormatShort() - */ - QString dateFormatShort() const; - - /** - * Returns the currently selected time format. - * - * @return Current time format. - * @see setTimeFormat() - */ - QString timeFormat() const; - - /** - * Changes the symbol used to identify the decimal pointer. - * - * @param symbol The new decimal symbol. - */ - void setDecimalSymbol(const QString & symbol); - - /** - * Changes the separator used to group digits when formating numbers. - * - * @param separator The new thousands separator. - */ - void setThousandsSeparator(const QString & separator); - - /** - * Changes the sign used to identify a positive number. Normally this is - * left blank. - * - * @param sign Sign used for positive numbers. - */ - void setPositiveSign(const QString & sign); - - /** - * Changes the sign used to identify a negative number. - * - * @param sign Sign used for negative numbers. - */ - void setNegativeSign(const QString & sign); - - /** - * - * Changes the set of digit characters used to display numbers. - * - * @param digitSet the digit set identifier - * @see DigitSet - */ - void setDigitSet(DigitSet digitSet); - - /** - * Changes the sign position used for positive monetary values. - * - * @param signpos The new sign position - */ - void setPositiveMonetarySignPosition(SignPosition signpos); - - /** - * Changes the sign position used for negative monetary values. - * - * @param signpos The new sign position - */ - void setNegativeMonetarySignPosition(SignPosition signpos); - - /** - * Changes the position where the currency symbol should be printed for - * positive monetary values. - * - * @param prefix True if the currency symbol should be prefixed instead of - * postfixed - */ - void setPositivePrefixCurrencySymbol(bool prefix); - - /** - * Changes the position where the currency symbol should be printed for - * negative monetary values. - * - * @param prefix True if the currency symbol should be prefixed instead of - * postfixed - */ - void setNegativePrefixCurrencySymbol(bool prefix); - - /** - * - * Changes the number of decimal places used when formating numbers. - * - * @param digits The default number of digits to use. - */ - void setDecimalPlaces(int digits); - - /** - * - * Changes the number of decimal places used when formating money. - * - * @param digits The default number of digits to use. - */ - void setMonetaryDecimalPlaces(int digits); - - /** - * Changes the separator used to group digits when formating monetary values. - * - * @param separator The new thousands separator. - */ - void setMonetaryThousandsSeparator(const QString & separator); - - /** - * Changes the symbol used to identify the decimal pointer for monetary - * values. - * - * @param symbol The new decimal symbol. - */ - void setMonetaryDecimalSymbol(const QString & symbol); - - /** - * - * Changes the current ISO Currency Code. - * - * @param newCurrencyCode The new Currency Code - */ - void setCurrencyCode(const QString &newCurrencyCode); - - /** - * Changes the current currency symbol. - * - * This symbol should be consistant with the selected Currency Code - * - * @param symbol The new currency symbol - * @see currencyCode, KCurrency::currencySymbols - */ - void setCurrencySymbol(const QString & symbol); - - /** - * - * Set digit characters used to display monetary values. - * - * @param digitSet the digit set identifier - * @see DigitSet - */ - void setMonetaryDigitSet(DigitSet digitSet); - - /** - * Returns the preferred page size for printing. - * - * @return The preferred page size, cast it to QPrinter::PageSize - */ - int pageSize() const; - - /** - * Changes the preferred page size when printing. - * - * @param paperFormat the new preferred page size in the format QPrinter::PageSize - */ - void setPageSize(int paperFormat); - - /** - * The Metric system will give you information in mm, while the - * Imperial system will give you information in inches. - */ - enum MeasureSystem { - Metric, ///< Metric system (used e.g. in Europe) - Imperial ///< Imperial system (used e.g. in the United States) - }; - - /** - * Returns which measuring system we use. - * - * @return The preferred measuring system - */ - MeasureSystem measureSystem() const; - - /** - * Changes the preferred measuring system. - * - * @return value The preferred measuring system - */ - void setMeasureSystem(MeasureSystem value); - - /** - * Provides list of all known language codes. - * - * Use languageCodeToName(language) to get human readable, localized - * language names. - * - * @return list of all language codes - * - * @see languageCodeToName - * @see installedLanguages - */ - QStringList allLanguagesList() const; - - /** - * - * Provides list of all installed KDE Language Translations. - * - * Use languageCodeToName(language) to get human readable, localized - * language names. - * - * @return list of all installed language codes - * - * @see languageCodeToName - */ - QStringList installedLanguages() const; - - /** - * Convert a known language code to a human readable, localized form. - * If an unknown language code is supplied, empty string is returned; - * this will never happen if the code has been obtained by one of the - * KLocale methods. - * - * @param language the language code - * - * @return the human readable and localized form if the code is known, - * empty otherwise - * - * @see language - * @see languageList - * @see allLanguagesList - * @see installedLanguages - */ - Q_INVOKABLE QString languageCodeToName(const QString &language) const; - - /** - * Provides list of all known country codes. - * - * Use countryCodeToName(country) to get human readable, localized - * country names. - * - * @return a list of all country codes - * - * @see countryCodeToName - */ - QStringList allCountriesList() const; - - /** - * Convert a known country code to a human readable, localized form. - * - * If an unknown country code is supplied, empty string is returned; - * this will never happen if the code has been obtained by one of the - * KLocale methods. - * - * @param country the country code - * - * @return the human readable and localized form of the country name - * - * @see country - * @see allCountriesList - */ - Q_INVOKABLE QString countryCodeToName(const QString &country) const; - - /** - * Parses locale string into distinct parts. - * The format of locale is language_COUNTRY@modifier.CHARSET - * - * @param locale the locale string to split - * @param language set to the language part of the locale - * @param country set to the country part of the locale - * @param modifier set to the modifer part of the locale - * @param charset set to the charset part of the locale - */ - Q_INVOKABLE void splitLocale(const QString &locale, QString &language, QString &country, - QString &modifier, QString &charset); - - /** - * Returns the name of the internal language. - * - * @return Name of the default language - */ - QString defaultLanguage(); - - /** - * Returns the code of the default country, i.e. "C" - * - * This function will not provide a sensible value to use in your app, - * please use country() instead. - * - * @see country - * - * @return Name of the default country - */ - QString defaultCountry(); - - /** - * - * Returns the ISO Code of the default currency. - * - * @return ISO Currency Code of the default currency - */ - QString defaultCurrencyCode(); - - /** - * Checks whether or not the active catalog is found for the given language. - * - * @param language language to check - */ - Q_INVOKABLE bool isApplicationTranslatedInto(const QString & language); - - /** - * - * Sets the Country Division Code of the Country where the user lives. - * - * The code must comply with the ISO 3166-2 standard. - * See http://en.wikipedia.org/wiki/ISO_3166-2 for details. - * - * In KDE 4.6 it is the apps responsibility to validate the input, - * full validation and other services will be provided in KDE 4.7. - * - * @param countryDivision the Country Division Code for the user - * @return @c true on success, @c false on failure - * @see countryDivisionCode - */ - bool setCountryDivisionCode(const QString & countryDivision); - - /** - * - * Removes accelerator marker from a UI text label. - * - * Accelerator marker is not always a plain ampersand (&), - * so it is not enough to just remove it by @c QString::remove(). - * The label may contain escaped markers ("&&") which must be resolved - * and skipped, as well as CJK-style markers ("Foo (&F)") where - * the whole parenthesis construct should be removed. - * Therefore always use this function to remove accelerator marker - * from UI labels. - * - * @param label UI label which may contain an accelerator marker - * @return label without the accelerator marker - */ - Q_INVOKABLE QString removeAcceleratorMarker(const QString &label) const; - - /** - * - * Convert all digits in the string to the given digit set. - * - * Conversion is normally not performed if the given digit set - * is not appropriate in the current locale and language context. - * Unconditional conversion may be requested by setting - * @p ignoreContext to @c true. - * - * @param str the string to convert - * @param digitSet the digit set identifier - * @param ignoreContext unconditional conversion if @c true - * - * @return string with converted digits - * - * @see DigitSet - */ - Q_INVOKABLE QString convertDigits(const QString &str, DigitSet digitSet, - bool ignoreContext = false) const; - - /** - * - * Reparse locale configuration files for the current selected - * language. - */ - Q_INVOKABLE void reparseConfiguration(); - -private: - KLocale* m_locale; - -Q_SIGNALS: - void binaryUnitDialectChanged(); - void calendarSystemChanged(); - void countryDivisionCodeChanged(); - void currencyCodeChanged(); - void decimalSymbolChanged(); - void currencySymbolChanged(); - void dateFormatChanged(); - void dateFormatShortChanged(); - void dateMonthNamePossessiveChanged(); - void dateTimeDigitSetChanged(); - void decimalPlacesChanged(); - void digitSetChanged(); - void measureSystemChanged(); - void monetaryDecimalPlacesChanged(); - void monetaryDecimalSymbolChanged(); - void monetaryDigitSetChanged(); - void monetaryThousandsSeparatorChanged(); - void negativeMonetarySignPositionChanged(); - void negativePrefixCurrencySymbolChanged(); - void negativeSignChanged(); - void pageSizeChanged(); - void positiveMonetarySignPositionChanged(); - void positivePrefixCurrencySymbolChanged(); - void positiveSignChanged(); - void thousandsSeparatorChanged(); - void timeFormatChanged(); - void weekDayOfPrayChanged(); - void WeekNumberSystemChanged(); - void weekStartDayChanged(); - void workingWeekEndDayChanged(); - void workingWeekStartDayChanged(); -}; - -#endif diff --git a/src/declarativeimports/locale/localebindingsplugin.cpp b/src/declarativeimports/locale/localebindingsplugin.cpp deleted file mode 100644 index 056794e40..000000000 --- a/src/declarativeimports/locale/localebindingsplugin.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2012 by Antonis Tsiapaliokas - * Copyright 2012 by Giorgos Tsiapaliwkas - - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "localebindingsplugin.h" -#include -#include "locale_p.h" -#include "calendarsystem.h" - -void LocaleBindingsPlugin::registerTypes(const char *uri) -{ - Q_ASSERT(uri == QLatin1String("org.kde.locale")); - - qmlRegisterType(uri, 2, 0, "Locale"); - qmlRegisterType(uri, 2, 0, "CalendarSystem"); -} - -#include "localebindingsplugin.moc" diff --git a/src/declarativeimports/locale/localebindingsplugin.h b/src/declarativeimports/locale/localebindingsplugin.h deleted file mode 100644 index 85b8fe16a..000000000 --- a/src/declarativeimports/locale/localebindingsplugin.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2012 by Antonis Tsiapaliokas - * Copyright 2012 by Giorgos Tsiapaliwkas - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef LOCALEBINDINGSPLUGIN_H -#define LOCALEBINDINGSPLUGIN_H - -#include - -class LocaleBindingsPlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") - -public: - void registerTypes(const char *uri); -}; - -#endif diff --git a/src/declarativeimports/locale/qmldir b/src/declarativeimports/locale/qmldir deleted file mode 100644 index d02d98b22..000000000 --- a/src/declarativeimports/locale/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -module org.kde.locale -plugin localebindingsplugin