X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=b90f132d3704e399b8f3b78d9299b62d13f91220;hb=86a23ca21bde2c37b8318f883bee143e063d07ff;hp=805b592f5326375bb7e1b91a48beb8648657317c;hpb=3b22acd838008fd54234acc475edca434510b501;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 805b592..b90f132 100644 --- a/src/windows/BrowserWindow.cpp +++ b/src/windows/BrowserWindow.cpp @@ -43,6 +43,9 @@ // Qt toolkit headers. #include #include +#include +#include +#include #include #include #include @@ -225,7 +228,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"))); - 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")))); @@ -342,6 +346,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")); @@ -528,8 +534,8 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) // Show the custom bookmark context menu when requested. connect(bookmarksToolBarPointer, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showBookmarkContextMenu(const QPoint&))); - // Populate the bookmarks. - populateBookmarks(); + // Populate the bookmarks in this window. + populateBookmarksInThisWindow(); // Populate the UI. // This must be done here, because otherwise, if a URL is loaded, like a local file, that does not trigger a call to TabWidget::applyDomainSettings, the UI will not be fully populated. @@ -568,7 +574,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double tabWidgetPointer->getCurrentTabFavoritIcon(), folderId); // Update the displayed bookmarks when a new one is added. - connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarks())); + connect(addBookmarkDialogPointer, SIGNAL(bookmarkAdded()), this, SLOT(populateBookmarksInAllWindows())); // Show the dialog. addBookmarkDialogPointer->show(); @@ -582,7 +588,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double AddFolderDialog *addFolderDialogPointer = new AddFolderDialog(tabWidgetPointer->getCurrentTabFavoritIcon(), folderId); // Update the displayed bookmarks when a folder is added. - connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarks())); + connect(addFolderDialogPointer, SIGNAL(folderAdded()), this, SLOT(populateBookmarksInAllWindows())); // Show the dialog. addFolderDialogPointer->show(); @@ -644,7 +650,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double // 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"), [=] + 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(); @@ -656,7 +662,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double editFolderDialogPointer->show(); // Process bookmark events. - connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarks())); + connect(editFolderDialogPointer, SIGNAL(folderSaved()), this, SLOT(populateBookmarksInAllWindows())); } ); @@ -665,7 +671,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double } // Add the delete folder action to the menu. - QAction *deleteFolderActionPointer = 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; @@ -715,7 +721,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId); // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } } ); @@ -808,7 +814,7 @@ void BrowserWindow::editBookmarks() const BookmarksDialog *bookmarksDialogPointer = new BookmarksDialog(tabWidgetPointer->getCurrentTabTitle(), tabWidgetPointer->getCurrentTabUrl(), tabWidgetPointer->getCurrentTabFavoritIcon()); // Update the displayed bookmarks when edited. - connect(bookmarksDialogPointer, SIGNAL(bookmarkUpdated()), this, SLOT(populateBookmarks())); + connect(bookmarksDialogPointer, SIGNAL(bookmarkUpdated()), this, SLOT(populateBookmarksInAllWindows())); // Show the dialog. bookmarksDialogPointer->show(); @@ -993,8 +999,29 @@ void BrowserWindow::newWindow() const browserWindowPointer->show(); } -void BrowserWindow::populateBookmarks() +void BrowserWindow::populateBookmarksInAllWindows() const { + // Get a list of all the registered service names. + QStringList registeredServiceNames = QDBusConnection::sessionBus().interface()->registeredServiceNames().value(); + + // Get a list of all the Privacy Browser windows, which will be `com.stoutner.privacybrowser-` with the PID appended. + QStringList privacyBrowserServiceNames = registeredServiceNames.filter("com.stoutner.privacybrowser"); + + // Repopulate the bookmarks in each window. + for (QString privacyBrowserServiceName : privacyBrowserServiceNames) + { + // Prepare the D-Bus message. + QDBusMessage dBusMessage = QDBusMessage::createMethodCall(privacyBrowserServiceName, "/privacybrowser/MainWindow_1", "com.stoutner.privacybrowser.BrowserWindow", "populateBookmarksInThisWindow"); + + // Make it so. + QDBusConnection::sessionBus().send(dBusMessage); + } +} + +void BrowserWindow::populateBookmarksInThisWindow() +{ + qDebug() << "Populating bookmarks."; + // Remove all the final bookmark folder menu actions. for (QPair *finalBookmarkFolderMenuActionPair : finalBookmarkFolderMenuActionList) { @@ -1296,7 +1323,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(); @@ -1308,7 +1335,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) editBookmarkDialogPointer->show(); // Process bookmark events. - connect(editBookmarkDialogPointer, SIGNAL(bookmarkSaved()), this, SLOT(populateBookmarks())); + connect(editBookmarkDialogPointer, SIGNAL(bookmarkSaved()), this, SLOT(populateBookmarksInAllWindows())); } ); @@ -1330,7 +1357,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); @@ -1342,7 +1369,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId); // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } ); } @@ -1657,7 +1684,7 @@ void BrowserWindow::toggleBookmark() } // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } void BrowserWindow::toggleDomStorage() const @@ -1965,8 +1992,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.