File indexing completed on 2024-05-12 05:07:34
0001 /* 0002 SPDX-FileCopyrightText: 2018 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 // ---------------------------------------------------------------------------- 0007 // QT Includes 0008 0009 #include <QFontDatabase> 0010 #include <QRegularExpression> 0011 0012 // ---------------------------------------------------------------------------- 0013 // KDE Includes 0014 0015 #include <KColorScheme> 0016 0017 // ---------------------------------------------------------------------------- 0018 // Project Includes 0019 0020 QFont KMyMoneySettings::listCellFontEx() 0021 { 0022 if (useSystemFont()) { 0023 return QFontDatabase::systemFont(QFontDatabase::GeneralFont); 0024 } else { 0025 return listCellFont(); 0026 } 0027 } 0028 0029 QFont KMyMoneySettings::listHeaderFontEx() 0030 { 0031 if (useSystemFont()) { 0032 QFont font = QFontDatabase::systemFont(QFontDatabase::GeneralFont); 0033 font.setBold(true); 0034 return font; 0035 } else { 0036 return listHeaderFont(); 0037 } 0038 } 0039 0040 QColor KMyMoneySettings::schemeColor(const SchemeColor color) 0041 { 0042 switch(color) { 0043 case SchemeColor::ListBackground1: 0044 return KColorScheme (QPalette::Active, KColorScheme::View).background(KColorScheme::NormalBackground).color(); 0045 case SchemeColor::ListBackground2: 0046 return KColorScheme (QPalette::Active, KColorScheme::View).background(KColorScheme::AlternateBackground).color(); 0047 case SchemeColor::ListGrid: 0048 return KColorScheme (QPalette::Active, KColorScheme::View).foreground(KColorScheme::InactiveText).color(); 0049 case SchemeColor::ListHighlightText: 0050 return KColorScheme (QPalette::Active, KColorScheme::Selection).foreground(KColorScheme::NormalText).color(); 0051 case SchemeColor::ListHighlight: 0052 return KColorScheme (QPalette::Active, KColorScheme::Selection).background(KColorScheme::NormalBackground).color(); 0053 case SchemeColor::WindowText: 0054 return KColorScheme (QPalette::Active, KColorScheme::Window).foreground(KColorScheme::NormalText).color(); 0055 case SchemeColor::WindowBackground: 0056 return KColorScheme (QPalette::Active, KColorScheme::Window).background(KColorScheme::NormalBackground).color(); 0057 case SchemeColor::Positive: 0058 return KColorScheme (QPalette::Active, KColorScheme::View).foreground(KColorScheme::PositiveText).color(); 0059 case SchemeColor::Negative: 0060 return KColorScheme (QPalette::Active, KColorScheme::View).foreground(KColorScheme::NegativeText).color(); 0061 case SchemeColor::TransactionImported: 0062 if (useCustomColors()) 0063 return transactionImportedColor(); 0064 else 0065 return KColorScheme (QPalette::Active, KColorScheme::View).background(KColorScheme::LinkBackground).color(); 0066 case SchemeColor::TransactionMatched: 0067 if (useCustomColors()) 0068 return transactionMatchedColor(); 0069 else 0070 return KColorScheme (QPalette::Active, KColorScheme::View).background(KColorScheme::LinkBackground).color(); 0071 case SchemeColor::TransactionErroneous: 0072 if (useCustomColors()) 0073 return transactionErroneousColor(); 0074 else 0075 return KColorScheme (QPalette::Active, KColorScheme::View).foreground(KColorScheme::NegativeText).color(); 0076 case SchemeColor::FieldRequired: 0077 if (useCustomColors()) 0078 return fieldRequiredColor(); 0079 else 0080 return KColorScheme (QPalette::Active, KColorScheme::View).background(KColorScheme::NeutralBackground).color(); 0081 case SchemeColor::GroupMarker: 0082 if (useCustomColors()) 0083 return groupMarkerColor(); 0084 else 0085 return KColorScheme (QPalette::Active, KColorScheme::Selection).background(KColorScheme::LinkBackground).color(); 0086 case SchemeColor::MissingConversionRate: 0087 if (useCustomColors()) 0088 return missingConversionRateColor(); 0089 else 0090 return KColorScheme (QPalette::Active, KColorScheme::Complementary).foreground(KColorScheme::LinkText).color(); 0091 default: 0092 return QColor(); 0093 0094 } 0095 } 0096 0097 QStringList KMyMoneySettings::listOfItems() 0098 { 0099 bool prevValue = self()->useDefaults(true); 0100 QStringList all = itemList().split(',', Qt::SkipEmptyParts); 0101 self()->useDefaults(prevValue); 0102 QStringList list = itemList().split(',', Qt::SkipEmptyParts); 0103 0104 // now add all from 'all' that are missing in 'list' 0105 static const QRegularExpression exp(QLatin1String("-?(\\d+)")); 0106 QStringList::iterator it_s; 0107 for (it_s = all.begin(); it_s != all.end(); ++it_s) { 0108 const auto item(exp.match(*it_s)); 0109 if ((item.hasMatch()) && !list.contains(item.captured(1)) && !list.contains(QString("-%1").arg(item.captured(1)))) { 0110 list << *it_s; 0111 } 0112 } 0113 return list; 0114 } 0115 0116 int KMyMoneySettings::firstFiscalMonth() 0117 { 0118 return fiscalYearBegin() + 1; 0119 } 0120 0121 int KMyMoneySettings::firstFiscalDay() 0122 { 0123 return fiscalYearBeginDay(); 0124 } 0125 0126 QDate KMyMoneySettings::firstFiscalDate() 0127 { 0128 QDate date = QDate(QDate::currentDate().year(), firstFiscalMonth(), firstFiscalDay()); 0129 if (date > QDate::currentDate()) 0130 date = date.addYears(-1); 0131 return date; 0132 } 0133