diff options
author | Jon Ander Peñalba <jonan88@gmail.com> | 2010-08-17 23:25:03 +0200 |
---|---|---|
committer | Jon Ander Peñalba <jonan88@gmail.com> | 2010-08-19 13:10:45 +0200 |
commit | 5b1c5e9bb6748b744062b9aecf2d9e00df494452 (patch) | |
tree | f9065f52e6ffcfa5abb1e52ef2d488adc9a7cb8b /src/bookmarks/bookmarksmanager.cpp | |
parent | The bookmark actions in BookmarkOwner are now working and being used (diff) | |
download | rekonq-5b1c5e9bb6748b744062b9aecf2d9e00df494452.tar.xz |
BookmarkOwner class moved to it's own file
Diffstat (limited to 'src/bookmarks/bookmarksmanager.cpp')
-rw-r--r-- | src/bookmarks/bookmarksmanager.cpp | 345 |
1 files changed, 4 insertions, 341 deletions
diff --git a/src/bookmarks/bookmarksmanager.cpp b/src/bookmarks/bookmarksmanager.cpp index 4e675e45..0c3284bb 100644 --- a/src/bookmarks/bookmarksmanager.cpp +++ b/src/bookmarks/bookmarksmanager.cpp @@ -29,357 +29,20 @@ // Self Includes #include "bookmarksmanager.h" -#include "bookmarksmanager.moc" // Local Includes +#include "application.h" #include "mainwindow.h" -#include "webtab.h" -#include "webview.h" -#include "mainview.h" +#include "bookmarkspanel.h" #include "bookmarkscontextmenu.h" +#include "bookmarkstoolbar.h" +#include "bookmarkowner.h" // KDE Includes -#include <KActionCollection> -#include <KBookmarkAction> -#include <KBookmarkDialog> -#include <KBookmarkGroup> -#include <KToolBar> -#include <KMenu> #include <KStandardDirs> -#include <KUrl> -#include <KMessageBox> // Qt Includes #include <QtCore/QFile> -#include <QtGui/QActionGroup> -#include <QtGui/QClipboard> - - -BookmarkOwner::BookmarkOwner(KBookmarkManager *manager, QObject *parent) - : QObject(parent) - , KBookmarkOwner() - , m_manager(manager) - , actions(QVector<KAction*>(NUM_ACTIONS)) -{ - setupActions(); -} - - -KAction* BookmarkOwner::action(const BookmarkAction &bmAction) -{ - return static_cast<KAction*>(actions.at(bmAction)); -} - - -void BookmarkOwner::openBookmark(const KBookmark & bookmark, - Qt::MouseButtons mouseButtons, - Qt::KeyboardModifiers keyboardModifiers) -{ - if (keyboardModifiers & Qt::ControlModifier || mouseButtons == Qt::MidButton) - { - emit openUrl(bookmark.url(), Rekonq::NewTab); - } - else - { - emit openUrl(bookmark.url(), Rekonq::CurrentTab); - } -} - - -void BookmarkOwner::bookmarkCurrentPage() -{ - KBookmarkGroup parent; - - if (!selected.isNull()) - { - if (selected.isGroup()) - parent = selected.toGroup(); - else - parent = selected.parentGroup(); - - KBookmark newBk = parent.addBookmark(currentTitle().replace('&', "&&"), KUrl(currentUrl())); - parent.moveBookmark(newBk, selected); - } - else - { - parent = Application::bookmarkProvider()->rootGroup(); - parent.addBookmark(currentTitle(), KUrl(currentUrl())); - } - - m_manager->emitChanged(parent); -} - - -void BookmarkOwner::newBookmarkFolder() -{ - KBookmarkDialog *dialog = bookmarkDialog(m_manager, QApplication::activeWindow()); - QString folderName = i18n("New folder"); - - if (!selected.isNull()) - { - if (selected.isGroup()) - { - dialog->createNewFolder(folderName, selected); - } - else - { - KBookmark newBk = dialog->createNewFolder(folderName, selected.parentGroup()); - if (!newBk.isNull()) - { - KBookmarkGroup parent = newBk.parentGroup(); - parent.moveBookmark(newBk, selected); - m_manager->emitChanged(parent); - } - } - } - else - { - dialog->createNewFolder(folderName); - } - - delete dialog; -} - - -void BookmarkOwner::newSeparator() -{ - KBookmark newBk; - - if (!selected.isNull()) - { - if (selected.isGroup()) - { - newBk = selected.toGroup().createNewSeparator(); - } - else - { - newBk = selected.parentGroup().createNewSeparator(); - newBk.parentGroup().moveBookmark(newBk, selected); - } - } - else - { - newBk = Application::bookmarkProvider()->rootGroup().createNewSeparator(); - } - - newBk.setIcon(("edit-clear")); - - m_manager->emitChanged(newBk.parentGroup()); -} - - -void BookmarkOwner::editBookmark() -{ - if (selected.isNull()) - return; - - selected.setFullText(selected.fullText().replace("&&", "&")); - KBookmarkDialog *dialog = bookmarkDialog(m_manager, QApplication::activeWindow()); - - dialog->editBookmark(selected); - selected.setFullText(selected.fullText().replace('&', "&&")); - - delete dialog; -} - - -bool BookmarkOwner::deleteBookmark() -{ - if (selected.isNull()) - return false; - - KBookmarkGroup bmg = selected.parentGroup(); - QString name = QString(selected.fullText()).replace("&&", "&"); - QString dialogCaption, dialogText; - - if (selected.isGroup()) - { - dialogCaption = i18n("Bookmark Folder Deletion"); - dialogText = i18n("Are you sure you wish to remove the bookmark folder\n\"%1\"?", name); - } - else if (selected.isSeparator()) - { - dialogCaption = i18n("Separator Deletion"); - dialogText = i18n("Are you sure you wish to remove this separator?", name); - } - else - { - dialogCaption = i18n("Bookmark Deletion"); - dialogText = i18n("Are you sure you wish to remove the bookmark\n\"%1\"?", name); - } - - if (KMessageBox::warningContinueCancel( - QApplication::activeWindow(), - dialogText, - dialogCaption, - KStandardGuiItem::del(), - KStandardGuiItem::cancel(), - "bookmarkDeletition_askAgain") - != KMessageBox::Continue - ) - return false; - - bmg.deleteBookmark(selected); - m_manager->emitChanged(bmg); - return true; -} - - -bool BookmarkOwner::supportsTabs() const -{ - return true; -} - - -QString BookmarkOwner::currentUrl() const -{ - return Application::instance()->mainWindow()->currentTab()->url().url(); -} - - -QString BookmarkOwner::currentTitle() const -{ - return Application::instance()->mainWindow()->currentTab()->view()->title(); -} - - -void BookmarkOwner::openFolderinTabs(const KBookmarkGroup &bookmark) -{ - QList<KUrl> urlList = bookmark.groupUrlList(); - - if (urlList.length() > 8) - { - if ( !(KMessageBox::warningContinueCancel( Application::instance()->mainWindow(), - i18ncp("%1=Number of tabs. Value is always >=8", - "You are about to open %1 tabs.\nAre you sure?", - "You are about to open %1 tabs.\nAre you sure?", - urlList.length()), - "", - KStandardGuiItem::cont(), - KStandardGuiItem::cancel(), - "openFolderInTabs_askAgain" - ) == KMessageBox::Continue) - ) - return; - } - - QList<KUrl>::iterator url; - for (url = urlList.begin(); url != urlList.end(); ++url) - { - emit openUrl(*url, Rekonq::NewFocusedTab); - } -} - - -QList< QPair<QString, QString> > BookmarkOwner::currentBookmarkList() const -{ - QList< QPair<QString, QString> > bkList; - int tabNumber = Application::instance()->mainWindow()->mainView()->count(); - - for (int i = 0; i < tabNumber; i++) - { - QPair<QString, QString> item; - item.first = Application::instance()->mainWindow()->mainView()->webTab(i)->view()->title(); - item.second = Application::instance()->mainWindow()->mainView()->webTab(i)->url().url(); - bkList += item; - } - return bkList; -} - - -void BookmarkOwner::bookmarkSelected(const KBookmark &bookmark) -{ - selected = bookmark; -} - - -void BookmarkOwner::openBookmark() -{ - emit openUrl(selected.url(), Rekonq::CurrentTab); -} - - -void BookmarkOwner::openBookmarkInNewTab() -{ - emit openUrl(selected.url(), Rekonq::NewTab); -} - - -void BookmarkOwner::openBookmarkInNewWindow() -{ - emit openUrl(selected.url(), Rekonq::NewWindow); -} - - -void BookmarkOwner::openBookmarkFolder() -{ - if (!selected.isGroup()) - return; - - QList<KUrl> urlList = selected.toGroup().groupUrlList(); - - if (urlList.length() > 8) - { - if (KMessageBox::warningContinueCancel( - Application::instance()->mainWindow(), - i18n("You are about to open %1 tabs.\nAre you sure?", urlList.length())) - != KMessageBox::Continue - ) - return; - } - - foreach (KUrl url, urlList) - { - emit openUrl(url, Rekonq::NewFocusedTab); - } -} - - -void BookmarkOwner::copyLink() -{ - if (selected.isNull()) - return; - - QApplication::clipboard()->setText(selected.url().url()); -} - - -void BookmarkOwner::setupActions() -{ - createAction(OPEN, i18n("Open"), "tab-new", - i18n("Open bookmark in current tab"), SLOT(openBookmark())); - createAction(OPEN_IN_TAB, i18n("Open in New Tab"), "tab-new", - i18n("Open bookmark in new tab"), SLOT(openBookmarkInNewTab())); - createAction(OPEN_IN_WINDOW, i18n("Open in New Window"), "window-new", - i18n("Open bookmark in new window"), SLOT(openBookmarkInNewWindow())); - createAction(OPEN_FOLDER, i18n("Open Folder in Tabs"), "tab-new", - i18n("Open all the bookmarks in folder in tabs"), SLOT(openBookmarkFolder())); - createAction(BOOKMARK_PAGE, i18n("Add Bookmark"), "bookmark-new", - i18n("Bookmark current page"), SLOT(bookmarkCurrentPage())); - createAction(NEW_FOLDER, i18n("New Folder"), "folder-new", - i18n("Create a new bookmark folder"), SLOT(newBookmarkFolder())); - createAction(NEW_SEPARATOR, i18n("New Separator"), "edit-clear", - i18n("Create a new bookmark separatork"), SLOT(newSeparator())); - createAction(COPY, i18n("Copy Link"), "edit-copy", - i18n("Copy the bookmark's link address"), SLOT(copyLink())); - createAction(EDIT, i18n("Edit"), "configure", - i18n("Edit the bookmark"), SLOT(editBookmark())); - createAction(DELETE, i18n("Delete"), "edit-delete", - i18n("Delete the bookmark"), SLOT(deleteBookmark())); -} - - -void BookmarkOwner::createAction(const BookmarkAction &action, const QString &text, - const QString &icon, const QString &help, const char *slot) -{ - KAction *act = new KAction(KIcon(icon), text, this); - act->setHelpText(help); - actions[action] = act; - connect(act, SIGNAL(triggered()), this, slot); -} - - -// ------------------------------------------------------------------------------------------------------ BookmarkProvider::BookmarkProvider(QObject *parent) |