diff --git a/src/dolphinbookmarkhandler.cpp b/src/dolphinbookmarkhandler.cpp index bb8f641ec..ded83d6bb 100644 --- a/src/dolphinbookmarkhandler.cpp +++ b/src/dolphinbookmarkhandler.cpp @@ -1,135 +1,130 @@ /*************************************************************************** * Copyright (C) 2019 by David Hallas * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #include "dolphinbookmarkhandler.h" #include "dolphinmainwindow.h" #include "dolphinviewcontainer.h" #include "global.h" #include #include #include #include #include DolphinBookmarkHandler::DolphinBookmarkHandler(DolphinMainWindow *mainWindow, KActionCollection* collection, QMenu* menu, QObject* parent) : QObject(parent), m_mainWindow(mainWindow) { QString bookmarksFile = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kfile/bookmarks.xml")); if (bookmarksFile.isEmpty()) { QString genericDataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); if (genericDataLocation.isEmpty()) { qWarning() << "GenericDataLocation is empty! Bookmarks will not be saved correctly."; } bookmarksFile = QStringLiteral("%1/dolphin").arg(genericDataLocation); QDir().mkpath(bookmarksFile); bookmarksFile += QLatin1String("/bookmarks.xml"); } m_bookmarkManager = KBookmarkManager::managerForFile(bookmarksFile, QStringLiteral("dolphin")); m_bookmarkManager->setUpdate(true); m_bookmarkMenu.reset(new KBookmarkMenu(m_bookmarkManager, this, menu, collection)); } DolphinBookmarkHandler::~DolphinBookmarkHandler() { } -void DolphinBookmarkHandler::fillControlMenu(QMenu* menu, KActionCollection* collection) -{ - m_bookmarkControlMenu.reset(new KBookmarkMenu(m_bookmarkManager, this, menu, collection)); -} - QString DolphinBookmarkHandler::currentTitle() const { return title(m_mainWindow->activeViewContainer()); } QUrl DolphinBookmarkHandler::currentUrl() const { return url(m_mainWindow->activeViewContainer()); } QString DolphinBookmarkHandler::currentIcon() const { return icon(m_mainWindow->activeViewContainer()); } bool DolphinBookmarkHandler::supportsTabs() const { return true; } QList DolphinBookmarkHandler::currentBookmarkList() const { const auto viewContainers = m_mainWindow->viewContainers(); QList bookmarks; bookmarks.reserve(viewContainers.size()); for (const auto viewContainer : viewContainers) { bookmarks << FutureBookmark(title(viewContainer), url(viewContainer), icon(viewContainer)); } return bookmarks; } bool DolphinBookmarkHandler::enableOption(KBookmarkOwner::BookmarkOption option) const { switch (option) { case BookmarkOption::ShowAddBookmark: return true; case BookmarkOption::ShowEditBookmark: return true; } return false; } void DolphinBookmarkHandler::openBookmark(const KBookmark& bookmark, Qt::MouseButtons, Qt::KeyboardModifiers) { m_mainWindow->changeUrl(bookmark.url()); } void DolphinBookmarkHandler::openFolderinTabs(const KBookmarkGroup& bookmarkGroup) { m_mainWindow->openDirectories(bookmarkGroup.groupUrlList(), false); } void DolphinBookmarkHandler::openInNewTab(const KBookmark& bookmark) { m_mainWindow->openNewTabAfterCurrentTab(bookmark.url()); } void DolphinBookmarkHandler::openInNewWindow(const KBookmark& bookmark) { Dolphin::openNewWindow({bookmark.url()}, m_mainWindow); } QString DolphinBookmarkHandler::title(DolphinViewContainer* viewContainer) { return viewContainer->caption(); } QUrl DolphinBookmarkHandler::url(DolphinViewContainer* viewContainer) { return viewContainer->url(); } QString DolphinBookmarkHandler::icon(DolphinViewContainer* viewContainer) { return KIO::iconNameForUrl(viewContainer->url()); } diff --git a/src/dolphinbookmarkhandler.h b/src/dolphinbookmarkhandler.h index 6fd511d80..bafef41f8 100644 --- a/src/dolphinbookmarkhandler.h +++ b/src/dolphinbookmarkhandler.h @@ -1,61 +1,60 @@ /*************************************************************************** * Copyright (C) 2019 by David Hallas * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ #ifndef DOLPHINBOOKMARKHANDLER_H #define DOLPHINBOOKMARKHANDLER_H #include #include class DolphinMainWindow; class DolphinViewContainer; class KActionCollection; class KBookmarkManager; class KBookmarkMenu; class QMenu; class DolphinBookmarkHandler : public QObject, public KBookmarkOwner { Q_OBJECT public: DolphinBookmarkHandler(DolphinMainWindow *mainWindow, KActionCollection *collection, QMenu *menu, QObject *parent); ~DolphinBookmarkHandler() override; - void fillControlMenu(QMenu *menu, KActionCollection *collection); + private: QString currentTitle() const override; QUrl currentUrl() const override; QString currentIcon() const override; bool supportsTabs() const override; QList currentBookmarkList() const override; bool enableOption(BookmarkOption option) const override; void openBookmark(const KBookmark &bookmark, Qt::MouseButtons, Qt::KeyboardModifiers) override; void openFolderinTabs(const KBookmarkGroup &bookmarkGroup) override; void openInNewTab(const KBookmark &bookmark) override; void openInNewWindow(const KBookmark &bookmark) override; static QString title(DolphinViewContainer* viewContainer); static QUrl url(DolphinViewContainer* viewContainer); static QString icon(DolphinViewContainer* viewContainer); private: DolphinMainWindow* m_mainWindow; KBookmarkManager *m_bookmarkManager; QScopedPointer m_bookmarkMenu; - QScopedPointer m_bookmarkControlMenu; }; #endif // DOLPHINBOOKMARKHANDLER_H