summaryrefslogtreecommitdiff
path: root/src/bookmarks/bookmarkowner.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks/bookmarkowner.h')
-rw-r--r--src/bookmarks/bookmarkowner.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/src/bookmarks/bookmarkowner.h b/src/bookmarks/bookmarkowner.h
new file mode 100644
index 00000000..f0b238b9
--- /dev/null
+++ b/src/bookmarks/bookmarkowner.h
@@ -0,0 +1,159 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com>
+* Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
+* Copyright (C) 2009-2010 by Lionel Chauvin <megabigbug@yahoo.fr>
+* Copyright (C) 2010 by Yoann Laissus <yoann dot laissus at gmail dot com>
+*
+*
+* 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) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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, see <http://www.gnu.org/licenses/>.
+*
+* ============================================================ */
+
+
+#ifndef BOOKMARKOWNER_H
+#define BOOKMARKOWNER_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// Nepomuk config include
+#include "config-nepomuk.h"
+
+// KDE Includes
+#include <KAction>
+#include <KBookmarkOwner>
+
+
+/**
+ * This class allows to manage bookmarks as actions.
+ */
+class REKONQ_TESTS_EXPORT BookmarkOwner : public QObject, public KBookmarkOwner
+{
+ Q_OBJECT
+
+public:
+ explicit BookmarkOwner(KBookmarkManager *manager, QObject *parent = 0);
+
+ enum BookmarkAction
+ {
+ OPEN = 0,
+ OPEN_IN_TAB,
+ OPEN_IN_WINDOW,
+ OPEN_FOLDER,
+ BOOKMARK_PAGE,
+ NEW_FOLDER,
+ NEW_SEPARATOR,
+ COPY,
+ EDIT,
+#ifdef HAVE_NEPOMUK
+ FANCYBOOKMARK,
+#endif
+ DELETE,
+ NUM_ACTIONS,
+ SET_TOOLBAR_FOLDER,
+ UNSET_TOOLBAR_FOLDER
+ };
+
+ /**
+ * @return A new action for the given bookmark.
+ */
+ KAction* createAction(const KBookmark &bookmark, const BookmarkAction &bmAction);
+
+ // @{
+ /**
+ * Functions to get current information.
+ */
+ virtual QString currentTitle() const;
+ virtual QString currentUrl() const;
+ virtual QList< QPair<QString, QString> > currentBookmarkList() const;
+ // @}
+
+ virtual bool supportsTabs() const
+ {
+ return true;
+ }
+
+ // @{
+ /**
+ * This functions emit signals that open the selected URLs
+ */
+ virtual void openBookmark(const KBookmark &bookmark,
+ Qt::MouseButtons mouseButtons,
+ Qt::KeyboardModifiers keyboardModifiers);
+ virtual void openFolderinTabs(const KBookmarkGroup &bkGoup);
+ // @}
+
+public Q_SLOTS:
+ void openBookmark(const KBookmark &bookmark);
+ void openBookmarkInNewTab(const KBookmark &bookmark);
+ void openBookmarkInNewWindow(const KBookmark &bookmark);
+ void openBookmarkFolder(const KBookmark &bookmark);
+
+ KBookmark bookmarkCurrentPage(const KBookmark &bookmark = KBookmark());
+ KBookmarkGroup newBookmarkFolder(const KBookmark &bookmark = KBookmark());
+ KBookmark newSeparator(const KBookmark &bookmark = KBookmark());
+
+ void copyLink(const KBookmark &bookmark);
+ void editBookmark(KBookmark bookmark);
+#ifdef HAVE_NEPOMUK
+ void fancyBookmark(KBookmark bookmark);
+#endif
+ bool deleteBookmark(const KBookmark &bookmark);
+ void setToolBarFolder(KBookmark bookmark = KBookmark());
+ void unsetToolBarFolder();
+
+Q_SIGNALS:
+ /**
+ * This signal is emitted when an url has to be loaded
+ * @param url the URL to load
+ */
+ void openUrl(const KUrl &, const Rekonq::OpenType &);
+
+private:
+ KAction* createAction(const QString &text, const QString &icon,
+ const QString &help, const char *slot,
+ const KBookmark &bookmark);
+
+ KBookmarkManager *m_manager;
+};
+
+
+// -----------------------------------------------------------------------------------------------
+
+
+class CustomBookmarkAction : public KAction
+{
+ Q_OBJECT
+
+public:
+ CustomBookmarkAction(const KBookmark &bookmark, const KIcon &icon, const QString &text, QObject *parent);
+
+Q_SIGNALS:
+ void triggered(const KBookmark &);
+
+private Q_SLOTS:
+ void onActionTriggered();
+
+private:
+ KBookmark m_bookmark;
+};
+
+#endif // BOOKMARKOWNER_H