File indexing completed on 2024-05-12 05:12:46
0001 /* 0002 This file is part of Akonadi. 0003 0004 SPDX-FileCopyrightText: 2009 Till Adam <adam@kde.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #pragma once 0010 0011 #include "libakonadiconsole_export.h" 0012 #include <QAbstractItemModel> 0013 0014 #include <memory> 0015 0016 class JobTracker; 0017 class JobTrackerModelPrivate; 0018 0019 class LIBAKONADICONSOLE_EXPORT JobTrackerModel : public QAbstractItemModel 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit JobTrackerModel(const char *name, QObject *parent = nullptr); 0024 ~JobTrackerModel() override; 0025 0026 JobTracker &jobTracker(); // for the unittest 0027 0028 enum Roles { FailedIdRole = Qt::UserRole + 1 }; 0029 0030 enum Column { 0031 ColumnJobId, 0032 ColumnCreated, 0033 ColumnWaitTime, 0034 ColumnJobDuration, 0035 ColumnJobType, 0036 ColumnState, 0037 ColumnInfo, 0038 0039 NumColumns // always last 0040 }; 0041 0042 /* QAIM API */ 0043 QModelIndex index(int, int, const QModelIndex &parent = QModelIndex()) const override; 0044 QModelIndex parent(const QModelIndex &) const override; 0045 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0046 int columnCount(const QModelIndex &parent = QModelIndex()) const override; 0047 QVariant data(const QModelIndex &, int role = Qt::DisplayRole) const override; 0048 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; 0049 bool isEnabled() const; 0050 0051 public Q_SLOTS: 0052 void resetTracker(); 0053 void setEnabled(bool); 0054 0055 private Q_SLOTS: 0056 void jobAboutToBeAdded(int pos, int parentId); 0057 void jobAdded(); 0058 void jobsUpdated(const QList<QPair<int, int>> &); 0059 0060 private: 0061 std::unique_ptr<JobTrackerModelPrivate> const d; 0062 };