X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=8382e0085806359ba141d0e34cc0d8dba820cddf;hb=48750feae0c2e079a3b449e12b5870dde82aa229;hp=6b313f24fffd44dddc969ff99f3df7f2ed8ceb7a;hpb=234200f6e94439df6133a8eb61552a68dc9b3a5e;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 6b313f2..8382e00 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,8 +225,8 @@ 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"))); + editBookmarksActionPointer->setIcon(QIcon::fromTheme(QLatin1String("bookmark-edit"), QIcon::fromTheme(QLatin1String("bookmark-new")))); + viewBookmarksToolBarActionPointer->setIcon(QIcon::fromTheme(QLatin1String("bookmarks"), QIcon::fromTheme(QLatin1String("bookmark-new")))); 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")))); findCaseSensitiveActionPointer->setIcon(QIcon::fromTheme(QLatin1String("format-text-lowercase"), QIcon::fromTheme(QLatin1String("/usr/share/icons/gnome/32x32/apps/fonts.png")))); @@ -265,7 +262,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 +296,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 +308,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())); @@ -349,6 +343,8 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) connect(findCaseSensitiveActionPointer, SIGNAL(triggered()), this, SLOT(toggleFindCaseSensitive())); connect(hideFindTextActionPointer, SIGNAL(triggered()), this, SLOT(hideFindTextActions())); + + // Setup the GUI based on the browserwindowui.rc file. setupGUI(StandardWindowOption::Default, ("browserwindowui.rc")); @@ -523,6 +519,7 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) bookmarksMenuPointer->addSeparator(); // Initialize the current bookmarks lists. + finalBookmarkFolderMenuActionList = QList *>(); bookmarksMenuActionList = QList *>(); bookmarksMenuSubmenuList = QList *>(); bookmarksToolBarActionList = QList(); @@ -558,7 +555,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 +564,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 +579,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 +596,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 +608,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 +621,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 +644,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("document-edit")), 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("edit-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 +722,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 +998,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 +1098,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 +1161,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 +1237,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 +1255,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. { @@ -1291,7 +1299,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) bookmarkContextMenuPointer->addSeparator(); // Add the edit action to the menu. - bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-entry")), i18nc("Edit bookmark context menu entry", "Edit"), [=] + bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("document-edit")), i18nc("Edit bookmark context menu entry", "Edit"), [=] { // Get the current tab favorite icon. QIcon currentTabFavoriteIcon = tabWidgetPointer->getCurrentTabFavoritIcon(); @@ -1325,7 +1333,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) bookmarkContextMenuPointer->addSeparator(); // Add the delete action to the menu. - bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("delete")), i18nc("Delete bookmark context menu entry", "Delete"), [=] + bookmarkContextMenuPointer->addAction(QIcon::fromTheme(QLatin1String("edit-delete")), i18nc("Delete bookmark context menu entry", "Delete"), [=] { // Get the parent folder ID. double parentFolderId = BookmarksDatabase::getParentFolderId(databaseId); @@ -1960,8 +1968,8 @@ void BrowserWindow::updateSearchEngineLabel(const QString &searchEngineString) c void BrowserWindow::updateUrlLineEdit(const QUrl &newUrl) { - // Get the new URL string. - QString newUrlString = newUrl.toString(); + // Get the new URL string in encoded form, which displays punycode. + QString newUrlString = newUrl.toEncoded(); // Update the view source actions. if (newUrlString.startsWith(QLatin1String("view-source:"))) // The source is currently being viewed.