23 #include "ircignoresmanager.h"
24 #include "ui_ircignoresmanager.h"
26 #include "gui/commongui.h"
27 #include "irc/configuration/chatnetworkscfg.h"
28 #include "irc/entities/ircnetworkentity.h"
29 #include "patternlist.h"
32 DClass<IRCIgnoresManager> :
public Ui::IRCIgnoresManager
35 QString networkDescription;
44 d->networkDescription = networkDescription;
51 IRCIgnoresManager::~IRCIgnoresManager()
55 void IRCIgnoresManager::done(
int result)
57 if (result == Accepted)
59 QDialog::done(result);
62 void IRCIgnoresManager::keyPressEvent(QKeyEvent *event)
64 if (event->key() == Qt::Key_Delete)
66 QDialog::keyPressEvent(event);
69 void IRCIgnoresManager::loadItems()
73 for (
const auto &pattern : network.ignoredUsers())
75 QListWidgetItem *item =
new QListWidgetItem(pattern.userPattern(), d->list);
76 item->setFlags(item->flags() | Qt::ItemIsEditable);
77 d->list->addItem(item);
81 void IRCIgnoresManager::saveItems()
85 network.setIgnoredUsers(patterns());
92 for (
int row = 0; row < d->list->count(); ++row)
94 QString text = d->list->item(row)->text();
95 if (!text.trimmed().isEmpty())
96 result <<
Pattern(text, QRegularExpression::CaseInsensitiveOption, Pattern::Wildcard);
101 void IRCIgnoresManager::deleteSelected()
103 QList<QListWidgetItem *> selection = d->list->selectedItems();
104 for (QListWidgetItem *item : selection)
106 d->list->removeItemWidget(item);
108 qDeleteAll(selection);