1 /*
2     This file is part of the KDE project
3     SPDX-FileCopyrightText: 2003 Alexander Kellett <lypanov@kde.org>
4 
5     SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #include "kbookmarkimporter.h"
9 #include "kbookmarkmenu.h"
10 
11 #include <KActionMenu>
12 #include <QStack>
13 
14 class QString;
15 class QMenu;
16 class KBookmark;
17 class KBookmarkOwner;
18 
19 #if KBOOKMARKS_BUILD_DEPRECATED_SINCE(5, 65)
20 class KImportedBookmarkMenu : public KBookmarkMenu
21 {
22     friend class KBookmarkMenuImporter;
23     Q_OBJECT
24 public:
25     // TODO simplfy
26     KImportedBookmarkMenu(KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu, const QString &type, const QString &location);
27     KImportedBookmarkMenu(KBookmarkManager *mgr, KBookmarkOwner *owner, QMenu *parentMenu);
28     ~KImportedBookmarkMenu() override;
29     void clear() override;
30     void refill() override;
31 protected Q_SLOTS:
32     void slotNSLoad();
33 
34 private:
35     QString m_type;
36     QString m_location;
37 };
38 
39 /**
40  * A class connected to KNSBookmarkImporter, to fill KActionMenus.
41  */
42 class KBookmarkMenuImporter : public QObject
43 {
44     Q_OBJECT
45 public:
KBookmarkMenuImporter(KBookmarkManager * mgr,KImportedBookmarkMenu * menu)46     KBookmarkMenuImporter(KBookmarkManager *mgr, KImportedBookmarkMenu *menu)
47         : m_menu(menu)
48         , m_pManager(mgr)
49     {
50     }
51 
52     void openBookmarks(const QString &location, const QString &type);
53     void connectToImporter(const QObject &importer);
54 
55 protected Q_SLOTS:
56     void newBookmark(const QString &text, const QString &url, const QString &);
57     void newFolder(const QString &text, bool, const QString &);
58     void newSeparator();
59     void endFolder();
60 
61 protected:
62     QStack<KImportedBookmarkMenu *> mstack;
63     KImportedBookmarkMenu *m_menu;
64     KBookmarkManager *m_pManager;
65 };
66 
67 #include "kbookmarkactioninterface.h"
68 
69 class KImportedBookmarkActionMenu : public KActionMenu, public KBookmarkActionInterface
70 {
71     Q_OBJECT
72 public:
KImportedBookmarkActionMenu(const QIcon & icon,const QString & text,QObject * parent)73     KImportedBookmarkActionMenu(const QIcon &icon, const QString &text, QObject *parent)
74         : KActionMenu(icon, text, parent)
75         , KBookmarkActionInterface(KBookmark())
76     {
77     }
~KImportedBookmarkActionMenu()78     ~KImportedBookmarkActionMenu() override
79     {
80     }
81 };
82 
83 #endif
84