X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;fp=src%2Fwindows%2FBrowserWindow.cpp;h=805b592f5326375bb7e1b91a48beb8648657317c;hp=6b313f24fffd44dddc969ff99f3df7f2ed8ceb7a;hb=3b22acd838008fd54234acc475edca434510b501;hpb=234200f6e94439df6133a8eb61552a68dc9b3a5e diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 6b313f2..805b592 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -66,7 +66,7 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) setCentralWidget(tabWidgetPointer); // Get a handle for the action collection. - KActionCollection *actionCollectionPointer = this->actionCollection(); + actionCollectionPointer = this->actionCollection(); // Add the standard actions. KStandardAction::print(tabWidgetPointer, SLOT(print()), actionCollectionPointer); @@ -79,7 +79,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) QAction *backActionPointer = KStandardAction::back(this, SLOT(back()), actionCollectionPointer); QAction *forwardActionPointer = KStandardAction::forward(this, SLOT(forward()), actionCollectionPointer); KStandardAction::home(this, SLOT(home()), actionCollectionPointer); - KStandardAction::addBookmark(this, SLOT(showAddBookmarkDialog()), actionCollectionPointer); QAction *editBookmarksActionPointer = KStandardAction::editBookmarks(this, SLOT(editBookmarks()), actionCollectionPointer); KStandardAction::preferences(this, SLOT(showSettingsDialog()), actionCollectionPointer); KStandardAction::find(this, SLOT(showFindTextActions()), actionCollectionPointer); @@ -113,7 +112,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) searchEngineBingActionPointer = actionCollectionPointer->addAction(QLatin1String("search_engine_bing")); searchEngineYahooActionPointer = actionCollectionPointer->addAction(QLatin1String("search_engine_yahoo")); searchEngineCustomActionPointer = actionCollectionPointer->addAction(QLatin1String("search_engine_custom")); - QAction *addFolderPointer = actionCollectionPointer->addAction(QLatin1String("add_folder")); viewBookmarksToolBarActionPointer = actionCollectionPointer->addAction(QLatin1String("view_bookmarks_toolbar")); QAction *domainSettingsActionPointer = actionCollectionPointer->addAction(QLatin1String("domain_settings")); cookiesActionPointer = actionCollectionPointer->addAction(QLatin1String("cookies")); @@ -193,7 +191,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) searchEngineGoogleActionPointer->setText(i18nc("Search engine", "Google")); searchEngineBingActionPointer->setText(i18nc("Search engine", "Bing")); searchEngineYahooActionPointer->setText(i18nc("Search engine", "Yahoo")); - addFolderPointer->setText(i18nc("Add folder", "Add Folder")); viewBookmarksToolBarActionPointer->setText(i18nc("View bookmarks toolbar", "View Bookmarks Toolbar")); domainSettingsActionPointer->setText(i18nc("Domain Settings action", "Domain Settings")); cookiesActionPointer->setText(i18nc("The Cookies action, which also displays the number of cookies", "Cookies - %1", 0)); @@ -228,7 +225,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) searchEngineYahooActionPointer->setIcon(QIcon::fromTheme(QLatin1String("im-yahoo"), QIcon::fromTheme(QLatin1String("edit-find")))); searchEngineCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); zoomFactorActionPointer->setIcon(QIcon::fromTheme(QLatin1String("zoom-fit-best"))); - addFolderPointer->setIcon(QIcon::fromTheme(QLatin1String("folder-add"))); viewBookmarksToolBarActionPointer->setIcon(QIcon::fromTheme(QLatin1String("bookmarks"))); domainSettingsActionPointer->setIcon(QIcon::fromTheme(QLatin1String("settings-configure"), QIcon::fromTheme(QLatin1String("preferences-desktop")))); cookiesActionPointer->setIcon(QIcon::fromTheme(QLatin1String("preferences-web-browser-cookies"), QIcon::fromTheme(QLatin1String("appointment-new")))); @@ -265,7 +261,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) QKeySequence ctrlShiftYKeySequence = QKeySequence(i18nc("The Yahoo search engine key sequence.", "Ctrl+Shift+Y")); QKeySequence ctrlShiftCKeySequence = QKeySequence(i18nc("The custom search engine key sequence.", "Ctrl+Shift+C")); QKeySequence ctrlAltShiftBKeySequence = QKeySequence(i18nc("The edit bookmarks key sequence.", "Ctrl+Alt+Shift+B")); - QKeySequence altFKeySequence = QKeySequence(i18nc("The add folder key sequence.", "Alt+F")); QKeySequence ctrlAltBKeySequence = QKeySequence(i18nc("The view bookmarks toolbar key sequence.", "Ctrl+Alt+B")); QKeySequence ctrlShiftDKeySequence = QKeySequence(i18nc("The domain settings key sequence.", "Ctrl+Shift+D")); QKeySequence ctrlSemicolonKeySequence = QKeySequence(i18nc("The cookies dialog key sequence.", "Ctrl+;")); @@ -300,7 +295,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) actionCollectionPointer->setDefaultShortcut(searchEngineYahooActionPointer, ctrlShiftYKeySequence); actionCollectionPointer->setDefaultShortcut(searchEngineCustomActionPointer, ctrlShiftCKeySequence); actionCollectionPointer->setDefaultShortcut(editBookmarksActionPointer, ctrlAltShiftBKeySequence); - actionCollectionPointer->setDefaultShortcut(addFolderPointer, altFKeySequence); actionCollectionPointer->setDefaultShortcut(viewBookmarksToolBarActionPointer, ctrlAltBKeySequence); actionCollectionPointer->setDefaultShortcut(domainSettingsActionPointer, ctrlShiftDKeySequence); actionCollectionPointer->setDefaultShortcut(cookiesActionPointer, ctrlSemicolonKeySequence); @@ -313,7 +307,6 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) connect(viewSourceActionPointer, SIGNAL(triggered()), this, SLOT(toggleViewSource())); connect(viewSourceInNewTabActionPointer, SIGNAL(triggered()), this, SLOT(toggleViewSourceInNewTab())); connect(zoomFactorActionPointer, SIGNAL(triggered()), this, SLOT(getZoomFactorFromUser())); - connect(addFolderPointer, SIGNAL(triggered()), this, SLOT(showAddFolderDialog())); connect(viewBookmarksToolBarActionPointer, SIGNAL(triggered()), this, SLOT(toggleViewBookmarksToolBar())); connect(cookiesActionPointer, SIGNAL(triggered()), this, SLOT(showCookiesDialog())); connect(domainSettingsActionPointer, SIGNAL(triggered()), this, SLOT(showDomainSettingsDialog())); @@ -523,6 +516,7 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) bookmarksMenuPointer->addSeparator(); // Initialize the current bookmarks lists. + finalBookmarkFolderMenuActionList = QList *>(); bookmarksMenuActionList = QList *>(); bookmarksMenuSubmenuList = QList *>(); bookmarksToolBarActionList = QList(); @@ -558,7 +552,7 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) } } -void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double folderId) +void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double folderId) { // Get the database ID. int folderDatabaseId = BookmarksDatabase::getFolderDatabaseId(folderId); @@ -567,7 +561,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double menuPointer->addSeparator(); // Add the add bookmark action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("bookmark-new")), i18nc("The add bookmark action", "Add Bookmark"), [=] + QAction *addBookmarkActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("bookmark-new")), i18nc("The add bookmark action", "Add Bookmark"), [=] { // Instantiate an add bookmark dialog. AddBookmarkDialog *addBookmarkDialogPointer = new AddBookmarkDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(), @@ -582,7 +576,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double ); // Add the add folder action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("folder-add")), i18nc("The add folder action", "Add Folder"), [=] + QAction *addFolderActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("folder-add")), i18nc("The add folder action", "Add Folder"), [=] { // Instantiate an add folder dialog. AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon(), folderId); @@ -599,7 +593,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double menuPointer->addSeparator(); // Add the open folder in new tabs action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in new tabs action", "Open Folder in New Tabs"), [=] + QAction *openFolderInNewTabsActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in new tabs action", "Open Folder in New Tabs"), [=] { // Get all the folder URLs. QList *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId); @@ -611,7 +605,8 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double ); // Add the open folder in background tabs action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), i18nc("The open folder in background tabs action", "Open Folder in Background Tabs"), [=] + QAction *openFolderInBackgroundTabsActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("tab-new")), + i18nc("The open folder in background tabs action", "Open Folder in Background Tabs"), [=] { // Get all the folder URLs. QList *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId); @@ -623,7 +618,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double ); // Add the open folder in new window action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("window-new")), i18nc("The open folder in new window action", "Open Folder in New Window"), [=] + QAction *openFolderInNewWindowActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("window-new")), i18nc("The open folder in new window action", "Open Folder in New Window"), [=] { // Get all the folder URLs. QList *folderUrlsListPointer = BookmarksDatabase::getAllFolderUrls(folderId); @@ -646,31 +641,38 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double // Add a separator. menuPointer->addSeparator(); - // Add the edit folder action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("The edit folder action", "Edit Folder"), [=] - { - // Get the current tab favorite icon. - QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon(); + // Add the edit folder action to the menu if this is not the root bookmark menu. + if (folderId != 0) + { + QAction *editFolderActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("The edit folder action", "Edit Folder"), [=] + { + // Get the current tab favorite icon. + QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon(); - // Instantiate an edit folder dialog. - QDialog *editFolderDialogPointer = new EditFolderDialog(folderDatabaseId, currentTabFavoriteIcon); + // Instantiate an edit folder dialog. + QDialog *editFolderDialogPointer = new EditFolderDialog(folderDatabaseId, currentTabFavoriteIcon); - // Show the dialog. - editFolderDialogPointer->show(); + // Show the dialog. + editFolderDialogPointer->show(); - // Process bookmark events. - connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks())); - } - ); + // Process bookmark events. + connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks())); + } + ); + + // Add the action to the beginning of the final bookmark folder menu action list. + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, editFolderActionPointer)); + } // Add the delete folder action to the menu. - menuPointer->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete folder context menu entry", "Delete Folder"), [=] + QAction *deleteFolderActionPointer = menuPointer->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete folder context menu entry", "Delete Folder"), [=] { // Create an items to delete list. QList* itemsToDeleteListPointer = new QList; - // Add the folder to the list of items to delete. - itemsToDeleteListPointer->append(folderDatabaseId); + // Add the folder to the list of items to delete if it is not the root folder. + if (folderId != 0) + itemsToDeleteListPointer->append(folderDatabaseId); // Add the folder contents to the list of items to delete. itemsToDeleteListPointer->append(*BookmarksDatabase::getFolderContentsDatabaseIdsRecursively(folderId)); @@ -717,6 +719,26 @@ void BrowserWindow::addFinalBookmarkFolderMenuEntries(QMenu *menuPointer, double } } ); + + // Add the key sequences if this is the root bookmarks menu. + if (folderId == 0) + { + // Create the key sequences. + QKeySequence ctrlBKeySequence = QKeySequence(i18nc("The add bookmark key sequence.", "Ctrl+B")); + QKeySequence metaFKeySequence = QKeySequence(i18nc("The add folder key sequence.", "Meta+F")); + + // Set the action key sequences. + actionCollectionPointer->setDefaultShortcut(addBookmarkActionPointer, ctrlBKeySequence); + actionCollectionPointer->setDefaultShortcut(addFolderActionPointer, metaFKeySequence); + } + + // Add the actions to the beginning of the final bookmark folder menu action list. + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, addBookmarkActionPointer)); + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, addFolderActionPointer)); + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, openFolderInNewTabsActionPointer)); + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, openFolderInBackgroundTabsActionPointer)); + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, openFolderInNewWindowActionPointer)); + finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, deleteFolderActionPointer)); } void BrowserWindow::addOrEditDomainSettings() const @@ -973,6 +995,13 @@ void BrowserWindow::newWindow() const void BrowserWindow::populateBookmarks() { + // Remove all the final bookmark folder menu actions. + for (QPair *finalBookmarkFolderMenuActionPair : finalBookmarkFolderMenuActionList) + { + // Remove the action. + finalBookmarkFolderMenuActionPair->first->removeAction(finalBookmarkFolderMenuActionPair->second); + } + // Remove all the current menu bookmarks. for (QPair *bookmarkMenuActionPairPointer : bookmarksMenuActionList) { @@ -1066,7 +1095,7 @@ void BrowserWindow::populateBookmarksMenuSubfolders(const double folderId, QMenu } // Add the extra items at the bottom of the menu. - addFinalBookmarkFolderMenuEntries(menuPointer, folderId); + addFinalBookmarkFolderMenuActions(menuPointer, folderId); } void BrowserWindow::populateBookmarksToolBar() @@ -1129,7 +1158,7 @@ void BrowserWindow::populateBookmarksToolBar() for (QPair *menuAndFolderIdPairPointer : bookmarksToolBarMenuList) { // Populate the final bookmarks menu entries. - addFinalBookmarkFolderMenuEntries(menuAndFolderIdPairPointer->first, menuAndFolderIdPairPointer->second); + addFinalBookmarkFolderMenuActions(menuAndFolderIdPairPointer->first, menuAndFolderIdPairPointer->second); } } @@ -1205,30 +1234,6 @@ void BrowserWindow::reloadAndBypassCache() const tabWidgetPointer->refresh(); } -void BrowserWindow::showAddBookmarkDialog() const -{ - // Instantiate an add bookmark dialog. - AddBookmarkDialog *addBookmarkDialogPointer = new AddBookmarkDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(), tabWidgetPointer->getCurrentTabFavoritIcon()); - - // Update the displayed bookmarks when a new one is added. - connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarks())); - - // Show the dialog. - addBookmarkDialogPointer->show(); -} - -void BrowserWindow::showAddFolderDialog() const -{ - // Instantiate an add folder dialog. - AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon()); - - // Update the displayed bookmarks when a folder is added. - connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarks())); - - // Show the dialog. - addFolderDialogPointer->show(); -} - void BrowserWindow::showBookmarkContextMenu(const QPoint &point) { // Get the bookmark action. @@ -1247,7 +1252,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) if (BookmarksDatabase::isFolder(databaseId)) // A folder was clicked. { // Populate the final bookmarks menu entries. - addFinalBookmarkFolderMenuEntries(bookmarkContextMenuPointer, BookmarksDatabase::getFolderId(databaseId)); + addFinalBookmarkFolderMenuActions(bookmarkContextMenuPointer, BookmarksDatabase::getFolderId(databaseId)); } else // A bookmark was clicked. {