1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 1999 Reginald Stadlbauer <reggie@kde.org>
4 SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
5 SPDX-FileCopyrightText: 2000 Nicolas Hadacek <haadcek@kde.org>
6 SPDX-FileCopyrightText: 2000 Kurt Granroth <granroth@kde.org>
7 SPDX-FileCopyrightText: 2000 Michael Koch <koch@kde.org>
8 SPDX-FileCopyrightText: 2001 Holger Freyther <freyther@kde.org>
9 SPDX-FileCopyrightText: 2002 Ellis Whitehead <ellis@kde.org>
10 SPDX-FileCopyrightText: 2002 Joseph Wenninger <jowenn@kde.org>
11 SPDX-FileCopyrightText: 2003 Andras Mantia <amantia@kde.org>
12 SPDX-FileCopyrightText: 2005-2006 Hamish Rodda <rodda@kde.org>
13
14 SPDX-License-Identifier: LGPL-2.0-only
15*/
16
17#ifndef KRECENTFILESACTION_P_H
18#define KRECENTFILESACTION_P_H
19
20#include "krecentfilesaction.h"
21
22class KRecentFilesActionPrivate
23{
24 Q_DECLARE_PUBLIC(KRecentFilesAction)
25
26public:
27 explicit KRecentFilesActionPrivate(KRecentFilesAction *parent)
28 : q_ptr(parent)
29 {
30 }
31
32 virtual ~KRecentFilesActionPrivate()
33 {
34 }
35
36 void init();
37
38 void urlSelected(QAction *);
39
40 int m_maxItems = 10;
41
42 struct RecentActionInfo {
43 QAction *action = nullptr;
44 QUrl url;
45 QString shortName;
46 QMimeType mimeType;
47 };
48 std::vector<RecentActionInfo> m_recentActions;
49
50 std::vector<RecentActionInfo>::iterator findByUrl(const QUrl &url)
51 {
52 return std::find_if(first: m_recentActions.begin(), last: m_recentActions.end(), pred: [&url](const RecentActionInfo &info) {
53 return info.url == url;
54 });
55 }
56
57 std::vector<RecentActionInfo>::iterator findByAction(const QAction *action)
58 {
59 return std::find_if(first: m_recentActions.begin(), last: m_recentActions.end(), pred: [action](const RecentActionInfo &info) {
60 return info.action == action;
61 });
62 }
63
64 void removeAction(std::vector<RecentActionInfo>::iterator it);
65
66 QAction *m_noEntriesAction = nullptr;
67 QAction *clearSeparator = nullptr;
68 QAction *clearAction = nullptr;
69
70 KRecentFilesAction *const q_ptr;
71};
72
73#endif // KRECENTFILESACTION_P_H
74

source code of kconfigwidgets/src/krecentfilesaction_p.h