File indexing completed on 2023-12-03 10:57:21

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2002 Carsten Pfeiffer <pfeiffer@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only
0006 */
0007 
0008 #include "kfilebookmarkhandler_p.h"
0009 
0010 #include <stdio.h>
0011 #include <stdlib.h>
0012 
0013 #include <QMenu>
0014 
0015 #include <QStandardPaths>
0016 #include <kio/global.h>
0017 
0018 #include "kfilewidget.h"
0019 
0020 KFileBookmarkHandler::KFileBookmarkHandler(KFileWidget *widget)
0021     : QObject(widget)
0022     , KBookmarkOwner()
0023     , m_widget(widget)
0024 {
0025     setObjectName(QStringLiteral("KFileBookmarkHandler"));
0026     m_menu = new QMenu(widget);
0027     m_menu->setObjectName(QStringLiteral("bookmark menu"));
0028 
0029     QString file = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kfile/bookmarks.xml"));
0030     if (file.isEmpty()) {
0031         file = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String("/kfile/bookmarks.xml");
0032     }
0033 
0034     KBookmarkManager *manager = KBookmarkManager::managerForFile(file);
0035     manager->setUpdate(true);
0036 
0037     m_bookmarkMenu = new KBookmarkMenu(manager, this, m_menu);
0038 }
0039 
0040 KFileBookmarkHandler::~KFileBookmarkHandler()
0041 {
0042     delete m_bookmarkMenu;
0043 }
0044 
0045 void KFileBookmarkHandler::openBookmark(const KBookmark &bm, Qt::MouseButtons, Qt::KeyboardModifiers)
0046 {
0047     Q_EMIT openUrl(bm.url().toString());
0048 }
0049 
0050 QUrl KFileBookmarkHandler::currentUrl() const
0051 {
0052     return m_widget->baseUrl();
0053 }
0054 
0055 QString KFileBookmarkHandler::currentTitle() const
0056 {
0057     return m_widget->baseUrl().toDisplayString();
0058 }
0059 
0060 QString KFileBookmarkHandler::currentIcon() const
0061 {
0062     return KIO::iconNameForUrl(currentUrl());
0063 }
0064 
0065 #include "moc_kfilebookmarkhandler_p.cpp"