X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;fp=src%2Fwindows%2FBrowserWindow.cpp;h=fe3b5939e86ea73d157d4ee87adf7165c59e839d;hp=f0cd4dfc76e33223e4d75c44deacefd08b3c72ce;hb=c5706a6ff3fbc42418e60b79fbe3f5c19396f7d2;hpb=ce90749b5fc2c4a3fcee6daee60c0d6e2aa0e1d6 diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index f0cd4df..fe3b593 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -543,12 +543,12 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) // Add a separator to the bookmarks menu. bookmarksMenuPointer->addSeparator(); - // Initialize the current bookmarks lists. - finalBookmarkFolderMenuActionList = QList *>(); + // Initialize the bookmark action lists. + bookmarkFolderFinalActionList = QList *>(); bookmarksMenuActionList = QList *>(); bookmarksMenuSubmenuList = QList *>(); bookmarksToolBarActionList = QList(); - bookmarksToolBarSubfolderActionList = QList *>(); + bookmarksToolBarSubfolderActionList = QList *>(); // Set the bookmarks toolbar context menu policy. bookmarksToolBarPointer->setContextMenuPolicy(Qt::CustomContextMenu); @@ -580,7 +580,8 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) } } -void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double folderId) +// If actions are part of a context menu they do not need to be added to the list as they will be deleted automatically when the context menu closes. +void BrowserWindow::addBookmarkFolderFinalActions(QMenu *menuPointer, const double folderId, const bool addToList) { // Get the database ID. int folderDatabaseId = BookmarksDatabase::getFolderDatabaseId(folderId); @@ -688,8 +689,9 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double } ); - // Add the action to the beginning of the final bookmark folder menu action list. - finalBookmarkFolderMenuActionList.prepend(new QPair(menuPointer, editFolderActionPointer)); + // Add the action to the beginning of the bookmark folder final action list if requsted. + if (addToList) + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, editFolderActionPointer)); } // Add the delete folder action to the menu. @@ -760,13 +762,15 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double 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)); + // Add the actions to the beginning of the bookmark folder final action list if requested. + if (addToList) { + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, addBookmarkActionPointer)); + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, addFolderActionPointer)); + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, openFolderInNewTabsActionPointer)); + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, openFolderInBackgroundTabsActionPointer)); + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, openFolderInNewWindowActionPointer)); + bookmarkFolderFinalActionList.prepend(new QPair(menuPointer, deleteFolderActionPointer)); + } } void BrowserWindow::addOrEditDomainSettings() @@ -1091,10 +1095,10 @@ void BrowserWindow::populateBookmarksInAllWindows() const void BrowserWindow::populateBookmarksInThisWindow() { // Remove all the final bookmark folder menu actions. - for (QPair *finalBookmarkFolderMenuActionPair : finalBookmarkFolderMenuActionList) + for (QPair *bookmarkFolderFinalActionPairPointer : bookmarkFolderFinalActionList) { // Remove the action. - finalBookmarkFolderMenuActionPair->first->removeAction(finalBookmarkFolderMenuActionPair->second); + bookmarkFolderFinalActionPairPointer->first->removeAction(bookmarkFolderFinalActionPairPointer->second); } // Remove all the current menu bookmarks. @@ -1125,11 +1129,12 @@ void BrowserWindow::populateBookmarksInThisWindow() bookmarksToolBarPointer->removeAction(bookmarkAction); } - // Clear the current bookmark lists. + // Clear the action lists. + bookmarkFolderFinalActionList.clear(); bookmarksMenuActionList.clear(); bookmarksMenuSubmenuList.clear(); - bookmarksToolBarActionList.clear(); bookmarksToolBarSubfolderActionList.clear(); + bookmarksToolBarActionList.clear(); // Populate the bookmarks subfolders, beginning with the root folder (`0`); populateBookmarksMenuSubfolders(0, bookmarksMenuPointer); @@ -1189,8 +1194,8 @@ void BrowserWindow::populateBookmarksMenuSubfolders(const double folderId, QMenu } } - // Add the extra items at the bottom of the menu. - addFinalBookmarkFolderMenuActions(menuPointer, folderId); + // Add the extra items at the bottom of the menu. `true` adds them to the list of actions to be deleted on repopulate. + addBookmarkFolderFinalActions(menuPointer, folderId, true); } void BrowserWindow::populateBookmarksToolBar() @@ -1252,8 +1257,8 @@ void BrowserWindow::populateBookmarksToolBar() // Add the extra items to the toolbar folder menus. The first item in the pair is the menu pointer. The second is the folder ID. for (QPair *menuAndFolderIdPairPointer : bookmarksToolBarMenuList) { - // Populate the final bookmarks menu entries. - addFinalBookmarkFolderMenuActions(menuAndFolderIdPairPointer->first, menuAndFolderIdPairPointer->second); + // Populate the final bookmarks menu entries. `true` adds them to the list of actions to be deleted on repopulate. + addBookmarkFolderFinalActions(menuAndFolderIdPairPointer->first, menuAndFolderIdPairPointer->second, true); } } @@ -1346,8 +1351,8 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) // Create the menu according to the type. if (BookmarksDatabase::isFolder(databaseId)) // A folder was clicked. { - // Populate the final bookmarks menu entries. - addFinalBookmarkFolderMenuActions(bookmarkContextMenuPointer, BookmarksDatabase::getFolderId(databaseId)); + // Populate the final bookmarks menu entries. `false` does not add the actions to the delete list, as they will be automatically deleted when the menu closes. + addBookmarkFolderFinalActions(bookmarkContextMenuPointer, BookmarksDatabase::getFolderId(databaseId), false); } else // A bookmark was clicked. {