File indexing completed on 2024-05-12 05:52:09
0001 /* 0002 SPDX-FileCopyrightText: 2022 Jiří Wolker <woljiri@gmail.com> 0003 SPDX-FileCopyrightText: 2022 Eugene Popov <popov895@ukr.net> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #pragma once 0009 0010 #include <QAbstractListModel> 0011 #include <QIcon> 0012 #include <QUrl> 0013 0014 class RecentItemsModel : public QAbstractListModel 0015 { 0016 Q_OBJECT 0017 0018 public: 0019 explicit RecentItemsModel(QObject *parent = nullptr); 0020 0021 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; 0022 int rowCount(const QModelIndex &parent = QModelIndex()) const override; 0023 0024 void refresh(const QList<QUrl> &urls); 0025 QUrl url(const QModelIndex &index) const; 0026 0027 private: 0028 struct RecentItemInfo { 0029 QIcon icon; 0030 QString name; 0031 QUrl url; 0032 }; 0033 0034 std::vector<RecentItemInfo> m_recentItems; 0035 };