1 /*
2 SPDX-FileCopyrightText: 2015-2021 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5
6 */
7
8 #include "kdeapplicationdebugsettingpage.h"
9 #include "kdeapplicationtreelistwidget.h"
10 #include <KLocalizedString>
11 #include <KTreeWidgetSearchLine>
12 #include <QEvent>
13 #include <QKeyEvent>
14 #include <QPushButton>
15 #include <QVBoxLayout>
16
KDEApplicationDebugSettingPage(QWidget * parent)17 KDEApplicationDebugSettingPage::KDEApplicationDebugSettingPage(QWidget *parent)
18 : QWidget(parent)
19 , mTreeListWidget(new KDEApplicationTreeListWidget(this))
20 , mTreeListWidgetSearchLine(new KTreeWidgetSearchLine(this, mTreeListWidget))
21 , mEnableDebug(new QPushButton(i18n("Enable All Debug"), this))
22 , mTurnOffDebug(new QPushButton(i18n("Turn Off Debug"), this))
23 , mTurnOffAllMessages(new QPushButton(i18n("Turn Off All Messages"), this))
24 {
25 auto mainLayout = new QVBoxLayout(this);
26
27 mTreeListWidget->setObjectName(QStringLiteral("listwidget"));
28
29 mTreeListWidgetSearchLine->setPlaceholderText(i18n("Search..."));
30 mTreeListWidgetSearchLine->setObjectName(QStringLiteral("searchline"));
31 mTreeListWidgetSearchLine->setSearchColumns(mTreeListWidget->searchColumns());
32 mainLayout->addWidget(mTreeListWidgetSearchLine);
33
34 mainLayout->addWidget(mTreeListWidget);
35
36 auto buttonLayout = new QHBoxLayout;
37 mainLayout->addLayout(buttonLayout);
38
39 mEnableDebug->setObjectName(QStringLiteral("selectall"));
40 buttonLayout->addWidget(mEnableDebug);
41 connect(mEnableDebug, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotSelectAllDebug);
42
43 mTurnOffDebug->setObjectName(QStringLiteral("deselectall"));
44 buttonLayout->addWidget(mTurnOffDebug);
45 connect(mTurnOffDebug, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotDeselectAllDebug);
46
47 mTurnOffAllMessages->setObjectName(QStringLiteral("deselectallmessage"));
48 buttonLayout->addWidget(mTurnOffAllMessages);
49 connect(mTurnOffAllMessages, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotDeselectAllMessages);
50
51 mTreeListWidgetSearchLine->installEventFilter(this);
52 }
53
~KDEApplicationDebugSettingPage()54 KDEApplicationDebugSettingPage::~KDEApplicationDebugSettingPage()
55 {
56 }
57
forceFocus()58 void KDEApplicationDebugSettingPage::forceFocus()
59 {
60 mTreeListWidgetSearchLine->setFocus();
61 }
62
eventFilter(QObject * obj,QEvent * event)63 bool KDEApplicationDebugSettingPage::eventFilter(QObject *obj, QEvent *event)
64 {
65 if (event->type() == QEvent::KeyPress && obj == mTreeListWidgetSearchLine) {
66 auto key = static_cast<QKeyEvent *>(event);
67 if ((key->key() == Qt::Key_Enter) || (key->key() == Qt::Key_Return)) {
68 event->accept();
69 return true;
70 }
71 }
72 return QWidget::eventFilter(obj, event);
73 }
74
slotSelectAllDebug()75 void KDEApplicationDebugSettingPage::slotSelectAllDebug()
76 {
77 mTreeListWidget->selectAllDebugCategories();
78 }
79
slotDeselectAllDebug()80 void KDEApplicationDebugSettingPage::slotDeselectAllDebug()
81 {
82 mTreeListWidget->deSelectAllDebugCategories();
83 }
84
slotDeselectAllMessages()85 void KDEApplicationDebugSettingPage::slotDeselectAllMessages()
86 {
87 mTreeListWidget->deSelectAllMessagesCategories();
88 }
89
fillList(const LoggingCategory::List & list)90 void KDEApplicationDebugSettingPage::fillList(const LoggingCategory::List &list)
91 {
92 mTreeListWidget->fillList(list);
93 }
94
rules(bool forceSavingAllRules) const95 LoggingCategory::List KDEApplicationDebugSettingPage::rules(bool forceSavingAllRules) const
96 {
97 return mTreeListWidget->rules(forceSavingAllRules);
98 }
99
insertCategories(const LoggingCategory::List & list)100 void KDEApplicationDebugSettingPage::insertCategories(const LoggingCategory::List &list)
101 {
102 mTreeListWidget->insertCategories(list);
103 }
104
restoreToDefault()105 void KDEApplicationDebugSettingPage::restoreToDefault()
106 {
107 mTreeListWidget->restoreToDefault();
108 }
109