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