X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=src%2Fwindows%2FBrowserWindow.cpp;h=b90f132d3704e399b8f3b78d9299b62d13f91220;hb=86a23ca21bde2c37b8318f883bee143e063d07ff;hp=8f8a0b0d78bfaec352cf3b2a44d2fbf9b0de3cbb;hpb=e715eca23297fb10dcf70e4c8bb2712413d16e3d;p=PrivacyBrowserPC.git diff --git a/src/windows/BrowserWindow.cpp b/src/windows/BrowserWindow.cpp index 8f8a0b0..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 @@ -226,7 +229,7 @@ BrowserWindow::BrowserWindow(bool firstWindow, QString *initialUrlStringPointer) searchEngineCustomActionPointer->setIcon(QIcon::fromTheme(QLatin1String("edit-find"))); zoomFactorActionPointer->setIcon(QIcon::fromTheme(QLatin1String("zoom-fit-best"))); editBookmarksActionPointer->setIcon(QIcon::fromTheme(QLatin1String("bookmark-edit"), QIcon::fromTheme(QLatin1String("bookmark-new")))); - viewBookmarksToolBarActionPointer->setIcon(QIcon::fromTheme(QLatin1String("bookmarks"))); + 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")))); @@ -531,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. @@ -571,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(); @@ -585,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(); @@ -659,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())); } ); @@ -718,7 +721,7 @@ void BrowserWindow::addFinalBookmarkFolderMenuActions(QMenu *menuPointer, double BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId); // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } } ); @@ -811,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(); @@ -996,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) { @@ -1311,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())); } ); @@ -1345,7 +1369,7 @@ void BrowserWindow::showBookmarkContextMenu(const QPoint &point) BookmarksDatabase::updateFolderContentsDisplayOrder(parentFolderId); // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } ); } @@ -1660,7 +1684,7 @@ void BrowserWindow::toggleBookmark() } // Repopulate the bookmarks. - populateBookmarks(); + populateBookmarksInAllWindows(); } void BrowserWindow::toggleDomStorage() const @@ -1968,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.