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"