File indexing completed on 2024-05-12 16:42:43
0001 /* 0002 SPDX-FileCopyrightText: 2002-2003 Michael Edwardes <mte@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2002-2016 Thomas Baumgart <tbaumgart@kde.org> 0004 SPDX-FileCopyrightText: 2002 Kevin Tambascio <ktambascio@users.sourceforge.net> 0005 SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "mymoneyutils.h" 0010 0011 #include <QDate> 0012 #include <QLocale> 0013 #include <QRegExp> 0014 0015 #include <iostream> 0016 0017 #include "mymoneyaccount.h" 0018 #include "mymoneymoney.h" 0019 #include "mymoneysecurity.h" 0020 0021 #include <cstdio> 0022 #include <cstdarg> 0023 0024 0025 QString MyMoneyUtils::getFileExtension(QString strFileName) 0026 { 0027 QString strTemp; 0028 if (!strFileName.isEmpty()) { 0029 //find last . deliminator 0030 int nLoc = strFileName.lastIndexOf('.'); 0031 if (nLoc != -1) { 0032 strTemp = strFileName.right(strFileName.length() - (nLoc + 1)); 0033 return strTemp.toUpper(); 0034 } 0035 } 0036 return strTemp; 0037 } 0038 0039 QString MyMoneyUtils::formatMoney(const MyMoneyMoney& val, 0040 const MyMoneyAccount& acc, 0041 const MyMoneySecurity& sec, 0042 bool showThousandSeparator) 0043 { 0044 return val.formatMoney(sec.tradingSymbol(), 0045 val.denomToPrec(acc.fraction()), 0046 showThousandSeparator); 0047 } 0048 0049 QString MyMoneyUtils::formatMoney(const MyMoneyMoney& val, 0050 const MyMoneySecurity& sec, 0051 bool showThousandSeparator) 0052 { 0053 return val.formatMoney(sec.tradingSymbol(), 0054 val.denomToPrec(sec.smallestAccountFraction()), 0055 showThousandSeparator); 0056 } 0057 0058 QString MyMoneyUtils::dateToString(const QDate& date) 0059 { 0060 if (!date.isNull() && date.isValid()) 0061 return date.toString(Qt::ISODate); 0062 0063 return QString(); 0064 } 0065 0066 QDate MyMoneyUtils::stringToDate(const QString& str) 0067 { 0068 if (str.length()) { 0069 QDate date = QDate::fromString(str, Qt::ISODate); 0070 if (!date.isNull() && date.isValid()) 0071 return date; 0072 } 0073 return QDate(); 0074 } 0075 0076 QString MyMoneyUtils::QStringEmpty(const QString& val) 0077 { 0078 if (!val.isEmpty()) 0079 return QString(val); 0080 0081 return QString(); 0082 } 0083 0084 unsigned long MyMoneyUtils::extractId(const QString& txt) 0085 { 0086 int pos; 0087 unsigned long rc = 0; 0088 0089 pos = txt.indexOf(QRegExp("\\d+"), 0); 0090 if (pos != -1) { 0091 rc = txt.mid(pos).toInt(); 0092 } 0093 return rc; 0094 } 0095 0096 QString MyMoneyUtils::formatDate(const QDate& date) 0097 { 0098 static QString format; 0099 if (format.isEmpty()) { 0100 format = QLocale().dateFormat(QLocale::ShortFormat); 0101 if (!format.contains(QLatin1String("yyyy")) && format.contains(QLatin1String("yy"))) { 0102 format.replace(QLatin1String("yy"), QLatin1String("yyyy")); 0103 } 0104 } 0105 return date.toString(format); 0106 } 0107 0108 bool MyMoneyUtils::isRunningAsAppImage() 0109 { 0110 return qEnvironmentVariableIsSet("RUNNING_AS_APPIMAGE"); 0111 }