From f9f031cdb4f22079f6fb1434f8a7337c9b946787 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 9 May 2025 01:20:36 +0800 Subject: [PATCH 1/3] Use HTTPS by default --- src/gui/rss/rsswidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/rss/rsswidget.cpp b/src/gui/rss/rsswidget.cpp index 2c3fe7572..f217c2b51 100644 --- a/src/gui/rss/rsswidget.cpp +++ b/src/gui/rss/rsswidget.cpp @@ -333,7 +333,7 @@ void RSSWidget::on_newFeedButton_clicked() // Ask for feed URL const QString clipText = qApp->clipboard()->text(); - const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : u"http://"_s; + const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : u"https://"_s; RSS::Feed *newFeed = nullptr; RSSFeedDialog dialog {this}; From 7e0247fefea68c1b60f912cda6f277043ca6825a Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 9 May 2025 01:21:04 +0800 Subject: [PATCH 2/3] Avoid redundant function calls Fix code formatting. --- src/gui/rss/rsswidget.cpp | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/gui/rss/rsswidget.cpp b/src/gui/rss/rsswidget.cpp index f217c2b51..738a923dc 100644 --- a/src/gui/rss/rsswidget.cpp +++ b/src/gui/rss/rsswidget.cpp @@ -623,58 +623,58 @@ void RSSWidget::renderArticle(const RSS::Article *article) const { Q_ASSERT(article); + const QString articleLink = article->link(); const QString highlightedBaseColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::Highlight).name(); const QString highlightedBaseTextColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::HighlightedText).name(); const QString alternateBaseColor = m_ui->textBrowser->palette().color(QPalette::Active, QPalette::AlternateBase).name(); - QString html = - u"
" + - u"
%3
"_s.arg(highlightedBaseColor, highlightedBaseTextColor, article->title()); - if (article->date().isValid()) - html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Date: "), QLocale::system().toString(article->date().toLocalTime(), QLocale::ShortFormat)); + QString html = u"
" + + u"
%3
"_s.arg(highlightedBaseColor, highlightedBaseTextColor, article->title()); + if (const QDateTime articleDate = article->date(); articleDate.isValid()) + html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Date: "), QLocale::system().toString(articleDate.toLocalTime(), QLocale::ShortFormat)); if (m_ui->feedListWidget->currentItem() == m_ui->feedListWidget->stickyUnreadItem()) html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Feed: "), article->feed()->title()); - if (!article->author().isEmpty()) - html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Author: "), article->author()); + if (const QString articleAuthor = article->author(); !articleAuthor.isEmpty()) + html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Author: "), articleAuthor); html += u"
" u"
"; - if (Qt::mightBeRichText(article->description())) + if (QString description = article->description(); Qt::mightBeRichText(description)) { - html += article->description(); + html += description; } else { - QString description = article->description(); QRegularExpression rx; // If description is plain text, replace BBCode tags with HTML and wrap everything in
 so it looks nice
         rx.setPatternOptions(QRegularExpression::InvertedGreedinessOption
                              | QRegularExpression::CaseInsensitiveOption);
 
         rx.setPattern(u"\\[img\\](.+)\\[/img\\]"_s);
-        description = description.replace(rx, u""_s);
+        description.replace(rx, u""_s);
 
         rx.setPattern(u"\\[url=(\")?(.+)\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/url]"_s, u""_s, Qt::CaseInsensitive);
+        description.replace(rx, u""_s)
+            .replace(u"[/url]"_s, u""_s, Qt::CaseInsensitive);
 
         rx.setPattern(u"\\[(/)?([bius])\\]"_s);
-        description = description.replace(rx, u"<\\1\\2>"_s);
+        description.replace(rx, u"<\\1\\2>"_s);
 
         rx.setPattern(u"\\[color=(\")?(.+)\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/color]"_s, u""_s, Qt::CaseInsensitive);
+        description.replace(rx, u""_s)
+            .replace(u"[/color]"_s, u""_s, Qt::CaseInsensitive);
 
         rx.setPattern(u"\\[size=(\")?(.+)\\d\\1\\]"_s);
-        description = description.replace(rx, u""_s);
-        description = description.replace(u"[/size]"_s, u""_s, Qt::CaseInsensitive);
+        description.replace(rx, u""_s)
+            .replace(u"[/size]"_s, u""_s, Qt::CaseInsensitive);
 
         html += u"
" + description + u"
"; } + html += u"
"; // Supplement relative URLs to absolute ones - const QUrl url {article->link()}; + const QUrl url {articleLink}; const QString baseUrl = url.toString(QUrl::RemovePath | QUrl::RemoveQuery); convertRelativeUrlToAbsolute(html, baseUrl); - html += u"
"; + m_ui->textBrowser->setHtml(html); } From eb3718fc916d15e4cd30b5d35047ec22a543b4e9 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 9 May 2025 01:59:58 +0800 Subject: [PATCH 3/3] Add 'Open link' to RSS article header --- src/gui/rss/rsswidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/rss/rsswidget.cpp b/src/gui/rss/rsswidget.cpp index 738a923dc..fb764a19c 100644 --- a/src/gui/rss/rsswidget.cpp +++ b/src/gui/rss/rsswidget.cpp @@ -636,6 +636,8 @@ void RSSWidget::renderArticle(const RSS::Article *article) const html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Feed: "), article->feed()->title()); if (const QString articleAuthor = article->author(); !articleAuthor.isEmpty()) html += u"
%2%3
"_s.arg(alternateBaseColor, tr("Author: "), articleAuthor); + if (!articleLink.isEmpty()) + html += u"
%3
"_s.arg(alternateBaseColor, articleLink, tr("Open link")); html += u"" u"
"; if (QString description = article->description(); Qt::mightBeRichText(description))