File indexing completed on 2024-05-05 04:39:47

0001 /*
0002     SPDX-FileCopyrightText: 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     SPDX-FileCopyrightText: 2012 Niko Sams <niko.sams@gmai.com>
0007 
0008     SPDX-License-Identifier: LGPL-2.0-only
0009 */
0010 
0011 #include "bookmarkhandler.h"
0012 #include "filemanager.h"
0013 #include "kdevfilemanagerplugin.h"
0014 #include "debug.h"
0015 #include <interfaces/icore.h>
0016 #include <interfaces/isession.h>
0017 
0018 #include <QMenu>
0019 
0020 BookmarkHandler::BookmarkHandler( FileManager *parent, QMenu* kpopupmenu )
0021     : QObject( parent ),
0022     KBookmarkOwner(),
0023     m_parent( parent ),
0024     m_menu( kpopupmenu )
0025 {
0026     setObjectName( QStringLiteral( "BookmarkHandler" ) );
0027 
0028     QUrl bookmarksPath = KDevelop::ICore::self()->activeSession()->pluginDataArea(parent->plugin());
0029     bookmarksPath.setPath(bookmarksPath.path() + QLatin1String("fsbookmarks.xml"));
0030     qCDebug(PLUGIN_FILEMANAGER) << bookmarksPath;
0031 
0032     KBookmarkManager *manager = KBookmarkManager::managerForFile( bookmarksPath.toLocalFile(), QStringLiteral( "kdevplatform" ) );
0033     manager->setUpdate( true );
0034 
0035     m_bookmarkMenu = new KBookmarkMenu(manager, this, m_menu);
0036     const auto actions = m_menu->actions();
0037 
0038      //remove shortcuts as they might conflict with others (eg. Ctrl+B)
0039     for (QAction* action : actions) {
0040         action->setShortcut(QKeySequence());
0041     }
0042 }
0043 
0044 BookmarkHandler::~BookmarkHandler()
0045 {
0046     delete m_bookmarkMenu;
0047 }
0048 
0049 QUrl BookmarkHandler::currentUrl() const
0050 {
0051     return m_parent->dirOperator()->url();
0052 }
0053 
0054 QString BookmarkHandler::currentTitle() const
0055 {
0056     return currentUrl().toDisplayString();
0057 }
0058 
0059 void BookmarkHandler::openBookmark( const KBookmark & bm, Qt::MouseButtons, Qt::KeyboardModifiers )
0060 {
0061     emit openUrl(bm.url());
0062 }
0063 
0064 #include "moc_bookmarkhandler.cpp"