From 6efdfa17dd017d735364626220b501cb2063e1c9 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 1 Dec 2008 01:09:56 +0100 Subject: New BookmarkMenu implementation --- src/bookmarks.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++++++ src/bookmarks.h | 55 ++++++++++++++++++++++++++++++++++++++++++++ src/browsermainwindow.cpp | 7 +++--- 3 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 src/bookmarks.cpp create mode 100644 src/bookmarks.h (limited to 'src') diff --git a/src/bookmarks.cpp b/src/bookmarks.cpp new file mode 100644 index 00000000..29c175e8 --- /dev/null +++ b/src/bookmarks.cpp @@ -0,0 +1,58 @@ +/* ============================================================ + * + * This file is a part of the reKonq project + * + * Copyright (C) 2008 by Andrea Diamantini + * + * + * 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, 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. + * + * ============================================================ */ + +#include "bookmarks.h" +#include "bookmarks.moc" + + +OwnBookMarks::OwnBookMarks(KMainWindow *parent) +{ + +} + + +virtual void OwnBookMarks::openBookmark (const KBookmark & , Qt::MouseButtons , Qt::KeyboardModifiers ) +{ +} + + +// ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +BookmarkMenu::BookmarkMenu(KMainWindow *parent) + : KMenu(parent) +{ + m_parent = parent; + + KUrl bookfile = KUrl( "~/.kde/share/apps/konqueror/bookmarks.xml" ); // share konqueror bookmarks + m_manager = KBookmarkManager::managerForExternalFile( bookfile.path() ); + + m_owner = new OwnBookMarks(parent); + + m_ac = new KActionCollection( this ); + setActions(); + + m_menu = m_bookmarkMenu = new KBookmarkMenu( m_manager , m_owner, this, m_ac ); +} + + + void BookmarkMenu::setActions() +{ + m_ac->addAction( KStandardAction::addBookmark( m_parent, SLOT( slotAddBookmark() ) , this ) ); +} \ No newline at end of file diff --git a/src/bookmarks.h b/src/bookmarks.h new file mode 100644 index 00000000..4f527436 --- /dev/null +++ b/src/bookmarks.h @@ -0,0 +1,55 @@ +/* ============================================================ + * + * This file is a part of the reKonq project + * + * Copyright (C) 2008 by Andrea Diamantini + * + * + * 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, 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. + * + * ============================================================ */ + +#ifndef BOOKMARKS_H +#define BOOKMARKS_H + +#include +#include +#include + + +class OwnBookMarks : public KBookMarkOwner +{ +Q_OBJECT +public: + OwnBookMarks(KMainWindow *parent); + + virtual void openBookmark (const KBookmark & , Qt::MouseButtons , Qt::KeyboardModifiers ); +}; + + +class BookmarkMenu : public KMenu +{ +Q_OBJECT +public: + BookmarkMenu(KMainWindow *parent); + +private: + void setActions(); + + KBookmarkManager *m_manager; + OwnBookMarks *m_owner; + KActionCollection *m_ac; + KBookmarkMenu *m_menu; + KMainWindow *m_parent; +}; + +#endif + diff --git a/src/browsermainwindow.cpp b/src/browsermainwindow.cpp index 0bf8b0ef..5b91fdb0 100644 --- a/src/browsermainwindow.cpp +++ b/src/browsermainwindow.cpp @@ -342,13 +342,14 @@ void BrowserMainWindow::setupMenu() KMenu* bookmarksMenu = new KMenu( i18n("&Bookmarks"), this ); - menuBar()->addMenu( bookmarksMenu ); - - KBookmarkManager *mgr = KBookmarkManager::managerForFile( "~/.kde/share/apps/konqueror/bookmarks.xml" , "konqueror" ); + KUrl bookfile = KUrl( "~/.kde/share/apps/konqueror/bookmarks.xml" ); + KBookmarkManager *mgr = KBookmarkManager::managerForExternalFile( bookfile.path() ); //FIXME hardcoded path KActionCollection * ac = new KActionCollection( this ); ac->addAction( "Add Bookmark" , KStandardAction::addBookmark( this, SLOT( slotAddBookmark() ) , this ) ); m_bookmarkMenu = new KBookmarkMenu( mgr , 0 , bookmarksMenu , ac ); + menuBar()->addMenu( bookmarksMenu ); + // ------------------------------------------------------------- WINDOW -------------------------------------------------------------------------------------------------- m_windowMenu = (KMenu *) menuBar()->addMenu( i18n("&Window") ); -- cgit v1.2.1