Warning, file /system/kjournald/lib/filtercriteriamodel_p.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-License-Identifier: LGPL-2.1-or-later OR MIT
0003     SPDX-FileCopyrightText: 2021 Andreas Cord-Landwehr <cordlandwehr@kde.org>
0004 */
0005 
0006 #ifndef FILTERCRITERIAMODEL_P_H
0007 #define FILTERCRITERIAMODEL_P_H
0008 
0009 #include "filtercriteriamodel.h"
0010 #include "ijournal.h"
0011 #include <QMap>
0012 #include <QString>
0013 #include <QVector>
0014 #include <memory>
0015 #include <optional>
0016 
0017 class SelectionEntry
0018 {
0019 public:
0020     explicit SelectionEntry() = default;
0021     explicit SelectionEntry(const QString &text,
0022                             const QVariant &data,
0023                             FilterCriteriaModel::Category category,
0024                             bool selected = false,
0025                             std::shared_ptr<SelectionEntry> parentItem = nullptr);
0026 
0027     void appendChild(std::shared_ptr<SelectionEntry> child);
0028 
0029     std::shared_ptr<SelectionEntry> child(int row);
0030     int childCount() const;
0031     int columnCount() const;
0032     QVariant data(FilterCriteriaModel::Roles role) const;
0033     bool setData(const QVariant &value, FilterCriteriaModel::Roles role);
0034     int row() const;
0035     std::shared_ptr<SelectionEntry> parentItem();
0036 
0037 private:
0038     std::vector<std::shared_ptr<SelectionEntry>> mChildItems;
0039     std::weak_ptr<SelectionEntry> mParentItem;
0040     QString mText; //!< user formatted string
0041     QVariant mData; //!< verbatim string as needed for journald filtering
0042     bool mSelected{true};
0043     FilterCriteriaModel::Category mCategory;
0044 };
0045 
0046 class FilterCriteriaModelPrivate
0047 {
0048 public:
0049     FilterCriteriaModelPrivate();
0050     ~FilterCriteriaModelPrivate();
0051     /**
0052      * @brief clear all model data and read units, processes... from currently set journal
0053      */
0054     void rebuildModel();
0055 
0056     static QString mapPriorityToString(int priority);
0057 
0058     std::shared_ptr<IJournal> mJournal;
0059     std::shared_ptr<SelectionEntry> mRootItem;
0060     std::optional<quint8> mPriorityLevel;
0061 };
0062 
0063 #endif // FILTERCRITERIAMODEL_P_H