File indexing completed on 2024-06-16 04:46:58

0001 /*
0002     SPDX-FileCopyrightText: 2014-2016 Christian Dávid <christian-david@web.de>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef IBANBICITEMDELEGATE_H
0007 #define IBANBICITEMDELEGATE_H
0008 
0009 #include "kmm_base_widgets_export.h"
0010 
0011 #include <QStyledItemDelegate>
0012 
0013 #include "payeeidentifier/payeeidentifiertyped.h"
0014 #include "payeeidentifier/ibanbic/ibanbic.h"
0015 
0016 class KMM_BASE_WIDGETS_EXPORT ibanBicItemDelegate : public QStyledItemDelegate
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit ibanBicItemDelegate(QObject* parent = nullptr, const QVariantList& args = QVariantList());
0022     void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
0023     QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
0024     QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
0025     void setEditorData(QWidget* editor, const QModelIndex& index) const override;
0026     void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
0027     void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
0028 
0029 private:
0030     inline payeeIdentifierTyped<payeeIdentifiers::ibanBic> ibanBicByIndex(const QModelIndex& index) const;
0031 };
0032 
0033 #endif // IBANBICITEMDELEGATE_H