]> gitweb.stoutner.com Git - PrivacyBrowserPC.git/commitdiff
Fix crash when closing second window with loading tab. https://redmine.stoutner...
authorSoren Stoutner <soren@stoutner.com>
Mon, 29 May 2023 19:31:00 +0000 (12:31 -0700)
committerSoren Stoutner <soren@stoutner.com>
Mon, 29 May 2023 19:31:00 +0000 (12:31 -0700)
doc/index.docbook
src/widgets/TabWidget.cpp
src/widgets/TabWidget.h

index c9bc6b41d28f114da92b6a8e75b64ebba3fb3e6d..8a883681f82a94ced4b87921b935b53c5d676b84 100644 (file)
       <para>
         Privacy Browser blocks all HTTP pings and presents a dialog informing the user every time the current tab attempts to send one.
         Hopefully, as more people become aware of what HTTP pings are, web sites will become more embarrassed about using them.
-        This is a classic example of how those who wrote the HTTP specs do not have the best interests of internet users at heart. I would like the day to come where they are removed from the specs.
+        This is a classic example of how those who wrote the HTTP specs do not have the best interests of internet users at heart. I would like the day to come when this is removed from both the internet and the spec.
+        Here is an example of me <ulink url="https://forum.f-droid.org/t/the-f-droid-forum-should-stop-tracking-links-with-http-pings/">raising the issue</ulink> with F-Droid.
       </para>
     </sect1>
 
 
     <!-- Version 0.3. -->
     <sect1 id="version_0.3">
-      <title>0.3 - 8 May 2023</title>
+      <title><ulink url="https://www.stoutner.com/privacy-browser-pc-0-3/">0.3</ulink> -
+        <ulink url="https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=commitdiff;h=ace098e8677ac0d6468b825c73e65b82c0d6993e">8 May 2023</ulink></title>
 
       <itemizedlist>
         <listitem><para>Add the changelog <ulink url="https://redmine.stoutner.com/issues/1000">to the Handbook</ulink>.</para></listitem>
index 28a6cf2da591ef59e5e8d9a72b0f5fe5f6424d5c..05f10d23b970520b50a919e59cd3146c1b5cd3e2 100644 (file)
@@ -47,7 +47,7 @@
 QString TabWidget::webEngineDefaultUserAgent = QLatin1String("");
 
 // Construct the class.
-TabWidget::TabWidget(QWidget *parent) : QWidget(parent)
+TabWidget::TabWidget(QWidget *windowPointer) : QWidget(windowPointer)
 {
     // Create a QProcess to check if KDE is running.
     QProcess *checkIfRunningKdeQProcessPointer = new QProcess();
@@ -94,6 +94,9 @@ TabWidget::TabWidget(QWidget *parent) : QWidget(parent)
     // Set the loading favorite icon movie file name.
     loadingFavoriteIconMoviePointer->setFileName(QStringLiteral(":/icons/loading.gif"));
 
+    // Stop the loading favorite icon movie if the window is destroyed.  Otherwise, the app will crash if there is more than one window open and a window is closed while at tab is loading.
+    connect(windowPointer, SIGNAL(destroyed()), this, SLOT(stopLoadingFavoriteIconMovie()));
+
     // Add the first tab.
     addFirstTab();
 
@@ -741,6 +744,12 @@ void TabWidget::pageLinkHovered(const QString &linkUrl) const
     emit linkHovered(linkUrl);
 }
 
+void TabWidget::stopLoadingFavoriteIconMovie() const
+{
+    // Stop the loading favorite icon movie.  Otherwise, the browser will crash if a second window is closed while a tab in it is loading.  <https://redmine.stoutner.com/issues/1010>
+    loadingFavoriteIconMoviePointer->stop();
+}
+
 void TabWidget::print() const
 {
     // Create a printer.
index f0efc1d4242e4649edcec69fbcb5587f98b12035..ea9efe52048ecb63f6e6be8e35c90b54f0166bf9 100644 (file)
@@ -45,7 +45,7 @@ class TabWidget : public QWidget
 
 public:
     // The primary contructor.
-    explicit TabWidget(QWidget *parent);
+    explicit TabWidget(QWidget *windowPointer);
 
     // The destructor.
     ~TabWidget();
@@ -121,6 +121,7 @@ private Q_SLOTS:
     void pageLinkHovered(const QString &linkUrl) const;
     void printWebpage(QPrinter *printerPointer) const;
     void showSaveDialog(QWebEngineDownloadItem *downloadItemPointer);
+    void stopLoadingFavoriteIconMovie() const;
     void updateUiFromWebEngineView(const PrivacyWebEngineView *privacyWebEngineViewPointer) const;
     void updateUiWithTabSettings();
     void useNativeKdeDownloader(QUrl &downloadUrl, QString &suggestedFileName);