1 /* Copyright (C) Roland Pallai <dap78@magex.hu>
3 This file is part of the Trojita Qt IMAP e-mail client,
4 http://trojita.flaska.net/
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License as
8 published by the Free Software Foundation; either version 2 of
9 the License or (at your option) version 3 or any later version
10 accepted by the membership of KDE e.V. (or its successor approved
11 by the membership of KDE e.V.), which shall act as a proxy
12 defined in Section 14 of version 3 of the license.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #include "TagAddDialog.h"
24 #include "ui_TagAddDialog.h"
29 TagAddDialog::TagAddDialog(QWidget
*parent
, Imap::Mailbox::FavoriteTagsModel
*m_favoriteTags
) :
31 ui(new Ui::TagAddDialog
)
35 auto tagsLabel
= ui
->tagsLabel
;
36 tagsLabel
->setTextFormat(Qt::RichText
);
37 tagsLabel
->setOpenExternalLinks(false);
38 tagsLabel
->setWordWrap(true);
41 for (int i
= 0; i
< m_favoriteTags
->rowCount(); i
++) {
42 auto tagName
= m_favoriteTags
->tagNameByIndex(i
);
43 tagCloud
.append(QStringLiteral("<a href=\"%1\" style=\"color: %2; text-decoration: none;\">%1</a>")
44 .arg(tagName
, m_favoriteTags
->findBestColorForTags({tagName
}).name()));
47 tagsLabel
->setText(tagCloud
.join(QStringLiteral(", ")));
49 connect(tagsLabel
, &QLabel::linkActivated
, this, [=](const QString
&link
) {
50 if (!ui
->lineEdit
->text().isEmpty())
51 ui
->lineEdit
->setText(ui
->lineEdit
->text() + QStringLiteral(" "));
52 ui
->lineEdit
->setText(ui
->lineEdit
->text() + link
);
56 TagAddDialog::~TagAddDialog()
61 QStringList
TagAddDialog::getTags(QWidget
*parent
, Imap::Mailbox::FavoriteTagsModel
*m_favoriteTags
)
63 return TagAddDialog(parent
, m_favoriteTags
).getTags();
66 QStringList
TagAddDialog::getTags()
70 tagList
+= ui
->lineEdit
->text().split(QStringLiteral(" "), QString::SkipEmptyParts
);
71 tagList
.removeDuplicates();