Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTagSelectionWidget.h
Go to the documentation of this file.
1/*
2 * Author 2021 Agata Cacko cacko.azh@gmail.com
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6#ifndef KIS_TAG_SELECTION_WIDGET_H
7#define KIS_TAG_SELECTION_WIDGET_H
8
9#include <QWidget>
10#include <QLabel>
11#include <QString>
12#include <QToolButton>
13#include <QHBoxLayout>
14#include <QVariant>
15
16#include <KoID.h>
17
18#include <kritawidgets_export.h>
19#include <TagActions.h>
21
22
23class KRITAWIDGETS_EXPORT WdgCloseableLabel : public QWidget
24{
25 Q_OBJECT
26
27public:
28 explicit WdgCloseableLabel(KoID tag, bool editable, bool semiSelected = false, QWidget *parent = 0);
29 ~WdgCloseableLabel() override;
30
31Q_SIGNALS:
33
34protected:
35 void paintEvent(QPaintEvent *event) override;
36
37private:
38 QLabel* m_textLabel {nullptr};
39 QPushButton* m_closeIconLabel {nullptr};
40
41 int m_size{18};
42 bool m_editable {false};
43 bool m_semiSelected {false};
45
46 friend class TestKisTagSelectionWidget;
47};
48
49
50class WdgAddTagButton : public QToolButton
51{
52
53 Q_OBJECT
54
55public:
56 explicit WdgAddTagButton(QWidget* parent, bool createNew = true);
57 ~WdgAddTagButton() override;
58
59 void setAvailableTagsList(QList<KoID> &notSelected);
60 void setAddNewTagAvailable(bool addNewTagAvailable);
61
62Q_SIGNALS:
63 void sigCreateNewTag(QString tagName);
64 void sigAddNewTag(KoID tag);
65
66public Q_SLOTS:
68
69
70
71private Q_SLOTS:
72 void slotAddNewTag(QAction* action);
73 void slotCreateNewTag(QString tagName);
74
75protected:
76 void paintEvent(QPaintEvent *event) override;
77
82
83
84private:
85 int m_size { 18 };
86 bool m_addNewTagAvailable { true };
87
90 QString m_lastTagToCreate {""};
91
93 QAction* m_noTags {0};
95
97
98};
99
100class KRITAWIDGETS_EXPORT KisTagSelectionWidget : public QWidget
101{
102 Q_OBJECT
103
104public:
105 explicit KisTagSelectionWidget(QWidget *parent = 0, bool createNew = true);
106 ~KisTagSelectionWidget() override;
107
108 void setTagList(bool editable, QList<KoID> &selected, QList<KoID> &notSelected);
109 void setTagList(bool editable, QList<KoID> &selected, QList<KoID> &notSelected, QList<KoID> &semiSelected);
110
111
112Q_SIGNALS:
115 void sigCreateNewTag(QString tag);
116
117private Q_SLOTS:
118
119 void slotAddTagToSelection(QAction* action);
120 void slotRemoveTagFromSelection(KoID tag);
121
122private:
123 QLayout* m_layout {nullptr};
124 QToolButton* m_addTagButton {nullptr};
125 bool m_editable {false};
126 bool m_createNew {true};
127
128 friend class TestKisTagSelectionWidget;
129};
130
131#endif // KIS_TAG_SELECTION_WIDGET_H
void sigCreateNewTag(QString tag)
void sigRemoveTagFromSelection(KoID tag)
void sigAddTagToSelection(KoID tag)
Definition KoID.h:30
The UserInputTagAction class defines an action with user text input that sends a signal with a simple...
Definition TagActions.h:131
friend class TestKisTagSelectionWidget
void setAddNewTagAvailable(bool addNewTagAvailable)
void slotAddNewTag(QAction *action)
void paintEvent(QPaintEvent *event) override
void sigAddNewTag(KoID tag)
void sigCreateNewTag(QString tagName)
void setAvailableTagsList(QList< KoID > &notSelected)
void slotCreateNewTag(QString tagName)
WdgAddTagButton(QWidget *parent, bool createNew=true)
UserInputTagAction * m_createNewTagAction
void sigRemoveTagFromSelection(KoID tag)