File indexing completed on 2024-05-12 16:43:57
0001 /* 0002 SPDX-FileCopyrightText: 2006-2018 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "fancydategroupmarkers.h" 0008 #include "fancydategroupmarker_p.h" 0009 0010 // ---------------------------------------------------------------------------- 0011 // QT Includes 0012 0013 #include <QStyleOptionViewItem> 0014 #include <QPainter> 0015 #include <QPalette> 0016 0017 // ---------------------------------------------------------------------------- 0018 // KDE Includes 0019 0020 // ---------------------------------------------------------------------------- 0021 // Project Includes 0022 0023 #include "kmymoneysettings.h" 0024 #include "widgetenums.h" 0025 0026 using namespace KMyMoneyRegister; 0027 using namespace eMyMoney; 0028 0029 namespace KMyMoneyRegister { 0030 class StatementGroupMarkerPrivate : public FancyDateGroupMarkerPrivate 0031 { 0032 public: 0033 eWidgets::eRegister::CashFlowDirection m_dir; 0034 }; 0035 } 0036 0037 StatementGroupMarker::StatementGroupMarker(Register* parent, eWidgets::eRegister::CashFlowDirection dir, const QDate& date, const QString& txt) : 0038 FancyDateGroupMarker(*new StatementGroupMarkerPrivate, parent, date, txt) 0039 { 0040 Q_D(StatementGroupMarker); 0041 d->m_dir = dir; 0042 d->m_showDate = true; 0043 } 0044 0045 StatementGroupMarker::~StatementGroupMarker() 0046 { 0047 } 0048 0049 eWidgets::eRegister::CashFlowDirection StatementGroupMarker::sortType() const 0050 { 0051 Q_D(const StatementGroupMarker); 0052 return d->m_dir; 0053 } 0054 0055 int StatementGroupMarker::sortSamePostDate() const 0056 { 0057 return 3; 0058 } 0059 0060 FiscalYearGroupMarker::FiscalYearGroupMarker(Register* parent, const QDate& date, const QString& txt) : 0061 FancyDateGroupMarker(parent, date, txt) 0062 { 0063 } 0064 0065 FiscalYearGroupMarker::~FiscalYearGroupMarker() 0066 { 0067 } 0068 0069 const char* FiscalYearGroupMarker::className() 0070 { 0071 return "FiscalYearGroupMarker"; 0072 } 0073 0074 int FiscalYearGroupMarker::sortSamePostDate() const 0075 { 0076 return 1; 0077 } 0078 0079 SimpleDateGroupMarker::SimpleDateGroupMarker(Register* parent, const QDate& date, const QString& txt) : 0080 FancyDateGroupMarker(parent, date, txt) 0081 { 0082 } 0083 0084 SimpleDateGroupMarker::~SimpleDateGroupMarker() 0085 { 0086 } 0087 0088 int SimpleDateGroupMarker::rowHeightHint() const 0089 { 0090 Q_D(const FancyDateGroupMarker); 0091 if (!d->m_visible) 0092 return 0; 0093 0094 return RegisterItem::rowHeightHint() / 2; 0095 } 0096 0097 const char* SimpleDateGroupMarker::className() 0098 { 0099 return "SimpleDateGroupMarker"; 0100 } 0101 0102 void SimpleDateGroupMarker::paintRegisterCell(QPainter *painter, QStyleOptionViewItem &option, const QModelIndex &index) 0103 { 0104 Q_D(FancyDateGroupMarker); 0105 QRect cellRect = option.rect; 0106 painter->save(); 0107 cellRect.setWidth(d->m_parent->viewport()->width()); 0108 cellRect.setHeight(d->m_parent->rowHeight(index.row() + d->m_startRow)); 0109 0110 if (d->m_alternate) 0111 option.palette.setColor(QPalette::Base, KMyMoneySettings::schemeColor(SchemeColor::ListBackground2)); 0112 else 0113 option.palette.setColor(QPalette::Base, KMyMoneySettings::schemeColor(SchemeColor::ListBackground1)); 0114 0115 QBrush backgroundBrush(option.palette.color(QPalette::Base)); 0116 backgroundBrush.setStyle(Qt::Dense5Pattern); 0117 backgroundBrush.setColor(KMyMoneySettings::schemeColor(SchemeColor::ListGrid)); 0118 painter->eraseRect(cellRect); 0119 painter->fillRect(cellRect, backgroundBrush); 0120 painter->setPen(KMyMoneySettings::schemeColor(SchemeColor::ListGrid)); 0121 painter->restore(); 0122 }