KTextAddons

textautogeneratehistorylistview.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#include "textautogeneratehistorylistview.h"
8#include "core/textautogeneratehistorymodel.h"
9#include "core/textautogeneratehistorysortfilterproxymodel.h"
10#include "core/textautogeneratemanager.h"
11#include "textautogeneratehistorylistviewdelegate.h"
12#include <KLocalizedString>
13#include <QContextMenuEvent>
14#include <QMenu>
15
16using namespace TextAutogenerateText;
17TextAutogenerateHistoryListView::TextAutogenerateHistoryListView(QWidget *parent)
18 : QListView(parent)
19 , mHistoryProxyModel(new TextAutoGenerateHistorySortFilterProxyModel(this))
20{
21 setDragEnabled(false);
22 setUniformItemSizes(true);
23 // Add delegate
24 setItemDelegate(new TextAutogenerateHistoryListViewDelegate(this));
25
26 mHistoryProxyModel->setSourceModel(TextAutogenerateManager::self()->textAutoGenerateHistoryModel());
27 setModel(mHistoryProxyModel);
28}
29
30TextAutogenerateHistoryListView::~TextAutogenerateHistoryListView() = default;
31
32void TextAutogenerateHistoryListView::contextMenuEvent(QContextMenuEvent *event)
33{
34 QMenu menu(this);
35 const QModelIndex index = indexAt(event->pos());
36 if (index.isValid()) {
37 auto removeHistory = new QAction(i18nc("@action", "Remove…"), &menu);
38 connect(removeHistory, &QAction::triggered, this, [index]() {
39 const QByteArray uuid = index.data(TextAutoGenerateHistoryModel::ReferenceUuid).toByteArray();
40 if (!uuid.isEmpty()) {
41 if (TextAutogenerateManager::self()->textAutoGenerateHistoryModel()->removeInfo(uuid)) {
42 // TODO remove in model directly
43 }
44 }
45 });
46 menu.addAction(removeHistory);
47 }
48 if (!menu.actions().isEmpty()) {
49 menu.exec(event->globalPos());
50 }
51}
52
53void TextAutogenerateHistoryListView::slotSearchTextChanged(const QString &str)
54{
55 // Improve it ???
56 mHistoryProxyModel->setFilterFixedString(str);
57}
58#include "moc_textautogeneratehistorylistview.cpp"
QString i18nc(const char *context, const char *text, const TYPE &arg...)
virtual bool event(QEvent *event) override
void triggered(bool checked)
bool isEmpty() const const
virtual QModelIndex indexAt(const QPoint &p) const const override
QVariant data(int role) const const
bool isValid() const const
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
QByteArray toByteArray() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Apr 18 2025 12:00:52 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.