File indexing completed on 2024-05-05 05:51:23

0001 /* This file is part of the KDE project
0002    Copyright (C) xxxx KFile Authors
0003    SPDX-FileCopyrightText: 2002 Anders Lund <anders.lund@lund.tdcadsl.dk>
0004    SPDX-FileCopyrightText: 2009 Dominik Haumann <dhaumann kde org>
0005    SPDX-FileCopyrightText: 2007 Mirko Stocker <me@misto.ch>
0006 
0007    SPDX-License-Identifier: LGPL-2.0-only
0008 */
0009 
0010 #include "katebookmarkhandler.h"
0011 #include "katefilebrowser.h"
0012 
0013 #include <KActionCollection>
0014 #include <KBookmarkManager>
0015 #include <KDirOperator>
0016 
0017 #include <QMenu>
0018 #include <QStandardPaths>
0019 
0020 KateBookmarkHandler::KateBookmarkHandler(KateFileBrowser *parent, QMenu *kpopupmenu)
0021     : QObject(parent)
0022     , mParent(parent)
0023     , m_menu(kpopupmenu)
0024 {
0025     setObjectName(QStringLiteral("KateBookmarkHandler"));
0026     if (!m_menu) {
0027         m_menu = new QMenu(parent);
0028     }
0029 
0030     QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kate/fsbookmarks.xml"));
0031     if (file.isEmpty()) {
0032         file = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QStringLiteral("/kate/fsbookmarks.xml");
0033     }
0034 
0035     KBookmarkManager *manager = new KBookmarkManager(file, this);
0036 
0037     m_bookmarkMenu = new KBookmarkMenu(manager, this, m_menu);
0038 
0039     KActionCollection *ac = parent->actionCollection();
0040     if (QAction *addBookmarkAction = m_bookmarkMenu->addBookmarkAction()) {
0041         ac->addAction(addBookmarkAction->objectName(), addBookmarkAction);
0042     }
0043     if (QAction *newBookmarkFolderAction = m_bookmarkMenu->newBookmarkFolderAction()) {
0044         ac->addAction(newBookmarkFolderAction->objectName(), newBookmarkFolderAction);
0045     }
0046     if (QAction *editBookmarksAction = m_bookmarkMenu->editBookmarksAction()) {
0047         ac->addAction(editBookmarksAction->objectName(), editBookmarksAction);
0048     }
0049 }
0050 
0051 KateBookmarkHandler::~KateBookmarkHandler()
0052 {
0053     delete m_bookmarkMenu;
0054 }
0055 
0056 QUrl KateBookmarkHandler::currentUrl() const
0057 {
0058     return mParent->dirOperator()->url();
0059 }
0060 
0061 QString KateBookmarkHandler::currentTitle() const
0062 {
0063     return currentUrl().url();
0064 }
0065 
0066 void KateBookmarkHandler::openBookmark(const KBookmark &bm, Qt::MouseButtons, Qt::KeyboardModifiers)
0067 {
0068     Q_EMIT openUrl(bm.url().url());
0069 }
0070 
0071 #include "moc_katebookmarkhandler.cpp"