File indexing completed on 2024-05-19 05:08:35
0001 /* 0002 SPDX-FileCopyrightText: 2009-2016 Cristian Oneț <onet.cristian@gmail.com> 0003 SPDX-FileCopyrightText: 2009-2010 Alvaro Soliverez <asoliverez@gmail.com> 0004 SPDX-FileCopyrightText: 2010-2020 Thomas Baumgart <tbaumgart@kde.org> 0005 SPDX-FileCopyrightText: 2017-2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #ifndef KTAGCONTAINER_H 0010 #define KTAGCONTAINER_H 0011 0012 // ---------------------------------------------------------------------------- 0013 // QT Includes 0014 0015 #include <QWidget> 0016 class QComboBox; 0017 class QAbstractItemModel; 0018 0019 // ---------------------------------------------------------------------------- 0020 // KDE Includes 0021 0022 // ---------------------------------------------------------------------------- 0023 // Project Includes 0024 0025 #include "kmm_base_widgets_export.h" 0026 0027 class MyMoneyTag; 0028 0029 /** 0030 * This widget contains a QComboBox widget and 0 or more KTagLabel widgets 0031 * 0032 * @author Alessandro Russo, Thomas Baumgart 0033 */ 0034 class KTagContainerPrivate; 0035 class KMM_BASE_WIDGETS_EXPORT KTagContainer : public QWidget 0036 { 0037 Q_OBJECT 0038 Q_DISABLE_COPY(KTagContainer) 0039 0040 public: 0041 explicit KTagContainer(QWidget* parent = nullptr); 0042 ~KTagContainer(); 0043 0044 void setModel(QAbstractItemModel* model); 0045 void loadTags(const QList<QString>& idList); 0046 void addTagWidget(const QString& id); 0047 0048 QComboBox* tagCombo(); 0049 const QList<QString> selectedTags(); 0050 0051 bool eventFilter(QObject* o, QEvent* e) override; 0052 0053 protected Q_SLOTS: 0054 void slotRemoveTagWidget(); 0055 0056 Q_SIGNALS: 0057 void tagsChanged(const QStringList& tagIdList); 0058 0059 private: 0060 KTagContainerPrivate * const d_ptr; 0061 Q_DECLARE_PRIVATE(KTagContainer) 0062 }; 0063 0064 #endif