[utilities/kdebugsettings] src: Prepare to move proxymodel to loggingmanager
Laurent Montel <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 7b4aa17fd3423d8f4a89d242a81be8dbb695f3ac by Laurent Montel.
Committed on 18/07/2026 at 16:03.
Pushed by mlaurent into branch 'master'.
Prepare to move proxymodel to loggingmanager
M +7 -6 src/core/loggingmanager.cpp
M +5 -0 src/core/loggingmanager.h
M +16 -0 src/core/model/kdeapplicationloggingcategoryproxymodel.cpp
M +3 -0 src/core/model/kdeapplicationloggingcategoryproxymodel.h
M +1 -1 src/widgets/autotests/kdeapplicationtreeviewtest.cpp
M +1 -1 src/widgets/kdeapplicationdebugsettingpage.cpp
M +3 -15 src/widgets/kdeapplicationtreeview.cpp
M +1 -1 src/widgets/kdeapplicationtreeview.h
M +2 -1 src/widgets/tests/kdeapplicationtreeviewgui.cpp
https://invent.kde.org/utilities/kdebugsettings/-/commit/7b4aa17fd3423d8f4a89d242a81be8dbb695f3ac
diff --git a/src/core/loggingmanager.cpp b/src/core/loggingmanager.cpp
index bf6546f4..94d51e0a 100644
--- a/src/core/loggingmanager.cpp
+++ b/src/core/loggingmanager.cpp
@@ -13,11 +13,17 @@ LoggingManager::LoggingManager(QObject *parent)
, mCustomCategoryModel(new CustomLoggingCategoryModel(this))
, mQtKdeCategoryModel(new KDEApplicationLoggingCategoryModel(this))
, mCategoryTypeModel(new CategoryTypeModel(this))
+ , mKdeApplicationLoggingCategoryProxyModel(new KDEApplicationLoggingCategoryProxyModel(this))
{
mLoggings.readQtLoggingFile();
updateLoggingCategories();
}
+KDEApplicationLoggingCategoryProxyModel *LoggingManager::kdeApplicationLoggingCategoryProxyModel() const
+{
+ return mKdeApplicationLoggingCategoryProxyModel;
+}
+
LoggingManager &LoggingManager::self()
{
static LoggingManager c;
@@ -61,19 +67,14 @@ void LoggingManager::updateLoggingCategories()
bool LoggingManager::saveRules(const QString &path, bool forceSavingAllRules)
{
-#if 0 /// TODO
SaveRulesJob job;
job.setFileName(path);
job.setListCustom(customCategoryModel()->loggingCategories());
- job.setListKde(mKdeApplicationSettingsPage->rules(forceSavingAllRules));
+ job.setListKde(kdeApplicationLoggingCategoryProxyModel()->rules(forceSavingAllRules));
if (!job.start()) {
- KMessageBox::error(this, i18n("\'%1\' cannot be opened. Please verify it.", path));
return false;
}
return true;
-#endif
- // TODO
- return false;
}
KDebugSettingsLoadingCategories LoggingManager::loggings() const
diff --git a/src/core/loggingmanager.h b/src/core/loggingmanager.h
index 39435f4f..04cd3c74 100644
--- a/src/core/loggingmanager.h
+++ b/src/core/loggingmanager.h
@@ -10,12 +10,14 @@
#include "model/categorytypemodel.h"
#include "model/customloggingcategorymodel.h"
#include "model/kdeapplicationloggingcategorymodel.h"
+#include "model/kdeapplicationloggingcategoryproxymodel.h"
#include <QObject>
class LIBKDEBUGSETTINGSCORE_EXPORT LoggingManager : public QObject
{
Q_OBJECT
Q_PROPERTY(CustomLoggingCategoryModel *customCategoryModel READ customCategoryModel CONSTANT)
Q_PROPERTY(KDEApplicationLoggingCategoryModel *qtKdeCategoryModel READ qtKdeCategoryModel CONSTANT)
+ Q_PROPERTY(KDEApplicationLoggingCategoryProxyModel *kdeApplicationLoggingCategoryProxyModel READ kdeApplicationLoggingCategoryProxyModel CONSTANT)
Q_PROPERTY(CategoryTypeModel *categoryTypeModel READ categoryTypeModel CONSTANT)
Q_PROPERTY(bool foundOverrideRule READ foundOverrideRule CONSTANT)
@@ -46,10 +48,13 @@ public:
[[nodiscard]] bool saveRules(const QString &path, bool forceSavingAllRules);
+ [[nodiscard]] KDEApplicationLoggingCategoryProxyModel *kdeApplicationLoggingCategoryProxyModel() const;
+
private:
LIBKDEBUGSETTINGSCORE_NO_EXPORT explicit LoggingManager(QObject *parent = nullptr);
CustomLoggingCategoryModel *const mCustomCategoryModel;
KDEApplicationLoggingCategoryModel *const mQtKdeCategoryModel;
CategoryTypeModel *const mCategoryTypeModel;
+ KDEApplicationLoggingCategoryProxyModel *const mKdeApplicationLoggingCategoryProxyModel;
KDebugSettingsLoadingCategories mLoggings;
};
diff --git a/src/core/model/kdeapplicationloggingcategoryproxymodel.cpp b/src/core/model/kdeapplicationloggingcategoryproxymodel.cpp
index 2854001e..1b4da367 100644
--- a/src/core/model/kdeapplicationloggingcategoryproxymodel.cpp
+++ b/src/core/model/kdeapplicationloggingcategoryproxymodel.cpp
@@ -62,4 +62,20 @@ void KDEApplicationLoggingCategoryProxyModel::setFilterText(const QString &newFi
}
}
+LoggingCategory::List KDEApplicationLoggingCategoryProxyModel::rules(bool forceSavingAllRules) const
+{
+ LoggingCategory::List lst;
+ for (int i = 0; i < rowCount(); ++i) {
+ const QModelIndex newModelIndex = mapToSource(index(i, KDEApplicationLoggingCategoryModel::CategoryRole));
+ auto cat = newModelIndex.data().value<LoggingCategory>();
+ if (forceSavingAllRules || (cat.loggingType != cat.defaultSeverityType)) {
+ cat.enabled = false;
+ if (cat.isValid()) {
+ lst.append(cat);
+ }
+ }
+ }
+ return lst;
+}
+
#include "moc_kdeapplicationloggingcategoryproxymodel.cpp"
diff --git a/src/core/model/kdeapplicationloggingcategoryproxymodel.h b/src/core/model/kdeapplicationloggingcategoryproxymodel.h
index 6f1933cc..10f6a89f 100644
--- a/src/core/model/kdeapplicationloggingcategoryproxymodel.h
+++ b/src/core/model/kdeapplicationloggingcategoryproxymodel.h
@@ -5,6 +5,7 @@
*/
#pragma once
#include "libkdebugsettingscore_export.h"
+#include "loggingcategory.h"
#include <QSortFilterProxyModel>
class LIBKDEBUGSETTINGSCORE_EXPORT KDEApplicationLoggingCategoryProxyModel : public QSortFilterProxyModel
@@ -20,6 +21,8 @@ public:
[[nodiscard]] QString filterText() const;
void setFilterText(const QString &newFilterText);
+ [[nodiscard]] LoggingCategory::List rules(bool forceSavingAllRules) const;
+
protected:
[[nodiscard]] bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
diff --git a/src/widgets/autotests/kdeapplicationtreeviewtest.cpp b/src/widgets/autotests/kdeapplicationtreeviewtest.cpp
index bb8e160a..ce7d289c 100644
--- a/src/widgets/autotests/kdeapplicationtreeviewtest.cpp
+++ b/src/widgets/autotests/kdeapplicationtreeviewtest.cpp
@@ -16,7 +16,7 @@ KDEApplicationTreeViewTest::KDEApplicationTreeViewTest(QObject *parent)
void KDEApplicationTreeViewTest::shouldHaveDefaultValues()
{
- KDEApplicationTreeView w;
+ KDEApplicationTreeView w(nullptr);
// TODO
}
diff --git a/src/widgets/kdeapplicationdebugsettingpage.cpp b/src/widgets/kdeapplicationdebugsettingpage.cpp
index 44a76927..3e3c4ef0 100644
--- a/src/widgets/kdeapplicationdebugsettingpage.cpp
+++ b/src/widgets/kdeapplicationdebugsettingpage.cpp
@@ -23,7 +23,7 @@ KDEApplicationDebugSettingPage::KDEApplicationDebugSettingPage(QWidget *parent)
, mEnableDebug(new QPushButton(i18nc("@action:button", "Enable All Debug"), this))
, mTurnOffDebug(new QPushButton(i18nc("@action:button", "Turn Off Debug"), this))
, mTurnOffAllMessages(new QPushButton(i18nc("@action:button", "Turn Off All Messages"), this))
- , mKdeApplicationTreeView(new KDEApplicationTreeView(this))
+ , mKdeApplicationTreeView(new KDEApplicationTreeView(LoggingManager::self().kdeApplicationLoggingCategoryProxyModel(), this))
{
auto mainLayout = new QVBoxLayout(this);
mainLayout->setObjectName("mainLayout"_L1);
diff --git a/src/widgets/kdeapplicationtreeview.cpp b/src/widgets/kdeapplicationtreeview.cpp
index f46c3010..b1dc942c 100644
--- a/src/widgets/kdeapplicationtreeview.cpp
+++ b/src/widgets/kdeapplicationtreeview.cpp
@@ -12,9 +12,9 @@
#include <QHeaderView>
using namespace Qt::Literals::StringLiterals;
-KDEApplicationTreeView::KDEApplicationTreeView(QWidget *parent)
+KDEApplicationTreeView::KDEApplicationTreeView(KDEApplicationLoggingCategoryProxyModel *proxyModel, QWidget *parent)
: QTreeView(parent)
- , mKdeApplicationLoggingCategoryProxyModel(new KDEApplicationLoggingCategoryProxyModel(this))
+ , mKdeApplicationLoggingCategoryProxyModel(proxyModel)
{
header()->hide();
setRootIsDecorated(false);
@@ -113,19 +113,7 @@ void KDEApplicationTreeView::restoreToDefault()
LoggingCategory::List KDEApplicationTreeView::rules(bool forceSavingAllRules) const
{
- LoggingCategory::List lst;
- for (int i = 0; i < mKdeApplicationLoggingCategoryProxyModel->rowCount(); ++i) {
- const QModelIndex index = mKdeApplicationLoggingCategoryProxyModel->mapToSource(
- mKdeApplicationLoggingCategoryProxyModel->index(i, KDEApplicationLoggingCategoryModel::CategoryRole));
- auto cat = index.data().value<LoggingCategory>();
- if (forceSavingAllRules || (cat.loggingType != cat.defaultSeverityType)) {
- cat.enabled = false;
- if (cat.isValid()) {
- lst.append(cat);
- }
- }
- }
- return lst;
+ return mKdeApplicationLoggingCategoryProxyModel->rules(forceSavingAllRules);
}
#include "moc_kdeapplicationtreeview.cpp"
diff --git a/src/widgets/kdeapplicationtreeview.h b/src/widgets/kdeapplicationtreeview.h
index 9e25af17..db8d3a4c 100644
--- a/src/widgets/kdeapplicationtreeview.h
+++ b/src/widgets/kdeapplicationtreeview.h
@@ -15,7 +15,7 @@ class LIBKDEBUGSETTINGS_EXPORT_TEST_EXPORT KDEApplicationTreeView : public QTree
{
Q_OBJECT
public:
- explicit KDEApplicationTreeView(QWidget *parent = nullptr);
+ explicit KDEApplicationTreeView(KDEApplicationLoggingCategoryProxyModel *proxyModel, QWidget *parent = nullptr);
~KDEApplicationTreeView() override;
void setLoggingCategoryModel(KDEApplicationLoggingCategoryModel *newLoggingCategoryModel);
diff --git a/src/widgets/tests/kdeapplicationtreeviewgui.cpp b/src/widgets/tests/kdeapplicationtreeviewgui.cpp
index c38bca84..d47d0a33 100644
--- a/src/widgets/tests/kdeapplicationtreeviewgui.cpp
+++ b/src/widgets/tests/kdeapplicationtreeviewgui.cpp
@@ -6,6 +6,7 @@
*/
#include "kdeapplicationtreeviewgui.h"
+#include "model/kdeapplicationloggingcategoryproxymodel.h"
using namespace Qt::Literals::StringLiterals;
#include "kdeapplicationtreeview.h"
@@ -18,7 +19,7 @@ KDEApplicationTreeViewGui::KDEApplicationTreeViewGui(QWidget *parent)
: QWidget{parent}
{
auto vboxLayout = new QVBoxLayout(this);
- auto view = new KDEApplicationTreeView(this);
+ auto view = new KDEApplicationTreeView(new KDEApplicationLoggingCategoryProxyModel(this), this);
LoggingCategory::List lst;
for (int i = 0; i < 5; ++i) {