File indexing completed on 2024-05-12 05:52:36
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 0006 */ 0007 0008 #include "kdeapplicationdebugsettingpage.h" 0009 #include "kdeapplicationtreeview.h" 0010 #include "loggingmanager.h" 0011 #include <KLocalizedString> 0012 #include <QEvent> 0013 #include <QKeyEvent> 0014 #include <QLineEdit> 0015 #include <QPushButton> 0016 #include <QVBoxLayout> 0017 0018 KDEApplicationDebugSettingPage::KDEApplicationDebugSettingPage(QWidget *parent) 0019 : QWidget(parent) 0020 , mSearchLineEdit(new QLineEdit(this)) 0021 , mEnableDebug(new QPushButton(i18n("Enable All Debug"), this)) 0022 , mTurnOffDebug(new QPushButton(i18n("Turn Off Debug"), this)) 0023 , mTurnOffAllMessages(new QPushButton(i18n("Turn Off All Messages"), this)) 0024 , mKdeApplicationTreeView(new KDEApplicationTreeView(this)) 0025 { 0026 auto mainLayout = new QVBoxLayout(this); 0027 mainLayout->setObjectName(QLatin1StringView("mainLayout")); 0028 0029 mSearchLineEdit->setObjectName(QLatin1StringView("mSearchLineEdit")); 0030 mainLayout->addWidget(mSearchLineEdit); 0031 mSearchLineEdit->setPlaceholderText(i18n("Search...")); 0032 mSearchLineEdit->setClearButtonEnabled(true); 0033 0034 mKdeApplicationTreeView->setObjectName(QLatin1StringView("mKdeApplicationTreeView")); 0035 mainLayout->addWidget(mKdeApplicationTreeView); 0036 mKdeApplicationTreeView->setLoggingCategoryModel(LoggingManager::self().qtKdeCategoryModel()); 0037 0038 auto buttonLayout = new QHBoxLayout; 0039 mainLayout->addLayout(buttonLayout); 0040 0041 mEnableDebug->setObjectName(QLatin1StringView("selectall")); 0042 buttonLayout->addWidget(mEnableDebug); 0043 connect(mEnableDebug, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotSelectAllDebug); 0044 0045 mTurnOffDebug->setObjectName(QLatin1StringView("deselectall")); 0046 buttonLayout->addWidget(mTurnOffDebug); 0047 connect(mTurnOffDebug, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotDeselectAllDebug); 0048 0049 mTurnOffAllMessages->setObjectName(QLatin1StringView("deselectallmessage")); 0050 buttonLayout->addWidget(mTurnOffAllMessages); 0051 connect(mTurnOffAllMessages, &QAbstractButton::clicked, this, &KDEApplicationDebugSettingPage::slotDeselectAllMessages); 0052 0053 mSearchLineEdit->installEventFilter(this); 0054 connect(mSearchLineEdit, &QLineEdit::textChanged, mKdeApplicationTreeView, &KDEApplicationTreeView::setFilterRuleStr); 0055 } 0056 0057 KDEApplicationDebugSettingPage::~KDEApplicationDebugSettingPage() = default; 0058 0059 void KDEApplicationDebugSettingPage::forceFocus() 0060 { 0061 mSearchLineEdit->setFocus(); 0062 } 0063 0064 bool KDEApplicationDebugSettingPage::eventFilter(QObject *obj, QEvent *event) 0065 { 0066 if (event->type() == QEvent::KeyPress && obj == mSearchLineEdit) { 0067 auto key = static_cast<QKeyEvent *>(event); 0068 if ((key->key() == Qt::Key_Enter) || (key->key() == Qt::Key_Return)) { 0069 event->accept(); 0070 return true; 0071 } 0072 } 0073 return QWidget::eventFilter(obj, event); 0074 } 0075 0076 void KDEApplicationDebugSettingPage::slotSelectAllDebug() 0077 { 0078 mKdeApplicationTreeView->selectAllDebugCategories(); 0079 } 0080 0081 void KDEApplicationDebugSettingPage::slotDeselectAllDebug() 0082 { 0083 mKdeApplicationTreeView->deSelectAllDebugCategories(); 0084 } 0085 0086 void KDEApplicationDebugSettingPage::slotDeselectAllMessages() 0087 { 0088 mKdeApplicationTreeView->deSelectAllMessagesCategories(); 0089 } 0090 0091 LoggingCategory::List KDEApplicationDebugSettingPage::rules(bool forceSavingAllRules) const 0092 { 0093 return mKdeApplicationTreeView->rules(forceSavingAllRules); 0094 } 0095 0096 void KDEApplicationDebugSettingPage::insertCategories(const LoggingCategory::List &list) 0097 { 0098 mKdeApplicationTreeView->insertCategories(list); 0099 } 0100 0101 void KDEApplicationDebugSettingPage::restoreToDefault() 0102 { 0103 mKdeApplicationTreeView->restoreToDefault(); 0104 } 0105 0106 #include "moc_kdeapplicationdebugsettingpage.cpp"