1 /*
2    SPDX-FileCopyrightText: 2015-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "sieveeditorbookmarks.h"
8 #include "sieveeditormainwindow.h"
9 #include <KActionCollection>
10 #include <KBookmarkManager>
11 #include <KBookmarkMenu>
12 #include <QDir>
13 #include <QMenu>
14 #include <QStandardPaths>
15 
SieveEditorBookmarks(SieveEditorMainWindow * mainWindow,KActionCollection * collection,QMenu * menu,QObject * parent)16 SieveEditorBookmarks::SieveEditorBookmarks(SieveEditorMainWindow *mainWindow, KActionCollection *collection, QMenu *menu, QObject *parent)
17     : QObject(parent)
18     , KBookmarkOwner()
19     , mMenu(menu)
20     , mMainWindow(mainWindow)
21 {
22     QString bookmarkFile = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("sieveeditor/bookmarks.xml"));
23 
24     if (bookmarkFile.isEmpty()) {
25         bookmarkFile = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/sieveeditor");
26         QDir().mkpath(bookmarkFile);
27         bookmarkFile += QStringLiteral("/bookmarks.xml");
28     }
29 
30     KBookmarkManager *manager = KBookmarkManager::managerForFile(bookmarkFile, QStringLiteral("sieveeditor"));
31     manager->setUpdate(true);
32 
33     mBookmarkMenu = new KBookmarkMenu(manager, this, mMenu);
34     collection->addActions(mMenu->actions());
35 }
36 
~SieveEditorBookmarks()37 SieveEditorBookmarks::~SieveEditorBookmarks()
38 {
39     delete mBookmarkMenu;
40 }
41 
menu() const42 QMenu *SieveEditorBookmarks::menu() const
43 {
44     return mMenu;
45 }
46 
openBookmark(const KBookmark & bm,Qt::MouseButtons mb,Qt::KeyboardModifiers km)47 void SieveEditorBookmarks::openBookmark(const KBookmark &bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km)
48 {
49     Q_UNUSED(mb)
50     Q_UNUSED(km)
51     Q_EMIT openUrl(bm.url());
52 }
53 
currentTitle() const54 QString SieveEditorBookmarks::currentTitle() const
55 {
56     return mMainWindow->currentHelpTitle();
57 }
58 
currentUrl() const59 QUrl SieveEditorBookmarks::currentUrl() const
60 {
61     return mMainWindow->currentHelpUrl();
62 }
63