mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-21 07:57:22 -06:00
Use QString literals
This patch covers src/gui and some leftovers from previous commit.
This commit is contained in:
@@ -103,7 +103,7 @@ void ArticleListWidget::handleArticleRead(RSS::Article *rssArticle)
|
||||
if (!item) return;
|
||||
|
||||
const QColor defaultColor {palette().color(QPalette::Inactive, QPalette::WindowText)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor("RSS.ReadArticle", defaultColor)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor(u"RSS.ReadArticle"_qs, defaultColor)};
|
||||
item->setData(Qt::ForegroundRole, foregroundBrush);
|
||||
item->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(QLatin1String("sphere")));
|
||||
|
||||
@@ -131,14 +131,14 @@ QListWidgetItem *ArticleListWidget::createItem(RSS::Article *article) const
|
||||
if (article->isRead())
|
||||
{
|
||||
const QColor defaultColor {palette().color(QPalette::Inactive, QPalette::WindowText)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor("RSS.ReadArticle", defaultColor)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor(u"RSS.ReadArticle"_qs, defaultColor)};
|
||||
item->setData(Qt::ForegroundRole, foregroundBrush);
|
||||
item->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(QLatin1String("sphere")));
|
||||
}
|
||||
else
|
||||
{
|
||||
const QColor defaultColor {palette().color(QPalette::Active, QPalette::Link)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor("RSS.UnreadArticle", defaultColor)};
|
||||
const QBrush foregroundBrush {UIThemeManager::instance()->getColor(u"RSS.UnreadArticle"_qs, defaultColor)};
|
||||
item->setData(Qt::ForegroundRole, foregroundBrush);
|
||||
item->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(QLatin1String("sphere")));
|
||||
}
|
||||
|
||||
@@ -68,9 +68,9 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
// Icons
|
||||
m_ui->removeRuleBtn->setIcon(UIThemeManager::instance()->getIcon("list-remove"));
|
||||
m_ui->addRuleBtn->setIcon(UIThemeManager::instance()->getIcon("list-add"));
|
||||
m_ui->addCategoryBtn->setIcon(UIThemeManager::instance()->getIcon("list-add"));
|
||||
m_ui->removeRuleBtn->setIcon(UIThemeManager::instance()->getIcon(u"list-remove"_qs));
|
||||
m_ui->addRuleBtn->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_qs));
|
||||
m_ui->addCategoryBtn->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_qs));
|
||||
|
||||
// Ui Settings
|
||||
m_ui->listRules->setSortingEnabled(true);
|
||||
@@ -86,17 +86,17 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent)
|
||||
connect(m_ui->checkRegex, &QAbstractButton::toggled, this, &AutomatedRssDownloader::updateFieldsToolTips);
|
||||
connect(m_ui->listRules, &QWidget::customContextMenuRequested, this, &AutomatedRssDownloader::displayRulesListMenu);
|
||||
|
||||
m_episodeRegex = new QRegularExpression("^(^\\d{1,4}x(\\d{1,4}(-(\\d{1,4})?)?;){1,}){1,1}"
|
||||
m_episodeRegex = new QRegularExpression(u"^(^\\d{1,4}x(\\d{1,4}(-(\\d{1,4})?)?;){1,}){1,1}"_qs
|
||||
, QRegularExpression::CaseInsensitiveOption);
|
||||
QString tip = "<p>" + tr("Matches articles based on episode filter.") + "</p><p><b>" + tr("Example: ")
|
||||
+ "1x2;8-15;5;30-;</b>" + tr(" will match 2, 5, 8 through 15, 30 and onward episodes of season one", "example X will match") + "</p>";
|
||||
tip += "<p>" + tr("Episode filter rules: ") + "</p><ul><li>" + tr("Season number is a mandatory non-zero value") + "</li>"
|
||||
+ "<li>" + tr("Episode number is a mandatory positive value") + "</li>"
|
||||
+ "<li>" + tr("Filter must end with semicolon") + "</li>"
|
||||
+ "<li>" + tr("Three range types for episodes are supported: ") + "</li>" + "<li><ul>"
|
||||
+ "<li>" + tr("Single number: <b>1x25;</b> matches episode 25 of season one") + "</li>"
|
||||
+ "<li>" + tr("Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one") + "</li>"
|
||||
+ "<li>" + tr("Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons") + "</li>" + "</ul></li></ul>";
|
||||
const QString tip = u"<p>" + tr("Matches articles based on episode filter.") + u"</p><p><b>" + tr("Example: ")
|
||||
+ u"1x2;8-15;5;30-;</b>" + tr(" will match 2, 5, 8 through 15, 30 and onward episodes of season one", "example X will match") + u"</p>"
|
||||
+ u"<p>" + tr("Episode filter rules: ") + u"</p><ul><li>" + tr("Season number is a mandatory non-zero value") + u"</li>"
|
||||
+ u"<li>" + tr("Episode number is a mandatory positive value") + u"</li>"
|
||||
+ u"<li>" + tr("Filter must end with semicolon") + u"</li>"
|
||||
+ u"<li>" + tr("Three range types for episodes are supported: ") + u"</li>" + u"<li><ul>"
|
||||
+ u"<li>" + tr("Single number: <b>1x25;</b> matches episode 25 of season one") + u"</li>"
|
||||
+ u"<li>" + tr("Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one") + u"</li>"
|
||||
+ u"<li>" + tr("Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one, and all episodes of later seasons") + u"</li>" + u"</ul></li></ul>";
|
||||
m_ui->lineEFilter->setToolTip(tip);
|
||||
|
||||
initCategoryCombobox();
|
||||
@@ -332,7 +332,7 @@ void AutomatedRssDownloader::initCategoryCombobox()
|
||||
// Load torrent categories
|
||||
QStringList categories = BitTorrent::Session::instance()->categories();
|
||||
std::sort(categories.begin(), categories.end(), Utils::Compare::NaturalLessThan<Qt::CaseInsensitive>());
|
||||
m_ui->comboCategory->addItem("");
|
||||
m_ui->comboCategory->addItem(u""_qs);
|
||||
m_ui->comboCategory->addItems(categories);
|
||||
}
|
||||
|
||||
@@ -504,7 +504,7 @@ void AutomatedRssDownloader::displayRulesListMenu()
|
||||
QMenu *menu = new QMenu(this);
|
||||
menu->setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
menu->addAction(UIThemeManager::instance()->getIcon("list-add"), tr("Add new rule...")
|
||||
menu->addAction(UIThemeManager::instance()->getIcon(u"list-add"_qs), tr("Add new rule...")
|
||||
, this, &AutomatedRssDownloader::on_addRuleBtn_clicked);
|
||||
|
||||
const QList<QListWidgetItem *> selection = m_ui->listRules->selectedItems();
|
||||
@@ -513,20 +513,20 @@ void AutomatedRssDownloader::displayRulesListMenu()
|
||||
{
|
||||
if (selection.count() == 1)
|
||||
{
|
||||
menu->addAction(UIThemeManager::instance()->getIcon("list-remove"), tr("Delete rule")
|
||||
menu->addAction(UIThemeManager::instance()->getIcon(u"list-remove"_qs), tr("Delete rule")
|
||||
, this, &AutomatedRssDownloader::on_removeRuleBtn_clicked);
|
||||
menu->addSeparator();
|
||||
menu->addAction(UIThemeManager::instance()->getIcon("edit-rename"), tr("Rename rule...")
|
||||
menu->addAction(UIThemeManager::instance()->getIcon(u"edit-rename"_qs), tr("Rename rule...")
|
||||
, this, &AutomatedRssDownloader::renameSelectedRule);
|
||||
}
|
||||
else
|
||||
{
|
||||
menu->addAction(UIThemeManager::instance()->getIcon("list-remove"), tr("Delete selected rules")
|
||||
menu->addAction(UIThemeManager::instance()->getIcon(u"list-remove"_qs), tr("Delete selected rules")
|
||||
, this, &AutomatedRssDownloader::on_removeRuleBtn_clicked);
|
||||
}
|
||||
|
||||
menu->addSeparator();
|
||||
menu->addAction(UIThemeManager::instance()->getIcon("edit-clear"), tr("Clear downloaded episodes...")
|
||||
menu->addAction(UIThemeManager::instance()->getIcon(u"edit-clear"_qs), tr("Clear downloaded episodes...")
|
||||
, this, &AutomatedRssDownloader::clearSelectedRuleDownloadedEpisodeList);
|
||||
}
|
||||
|
||||
@@ -656,7 +656,7 @@ void AutomatedRssDownloader::addFeedArticlesToTree(RSS::Feed *feed, const QStrin
|
||||
QFont f = treeFeedItem->font(0);
|
||||
f.setBold(true);
|
||||
treeFeedItem->setFont(0, f);
|
||||
treeFeedItem->setData(0, Qt::DecorationRole, UIThemeManager::instance()->getIcon("inode-directory"));
|
||||
treeFeedItem->setData(0, Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"inode-directory"_qs));
|
||||
treeFeedItem->setData(0, Qt::UserRole, feed->url());
|
||||
m_ui->treeMatchingArticles->addTopLevelItem(treeFeedItem);
|
||||
}
|
||||
@@ -685,28 +685,28 @@ void AutomatedRssDownloader::updateFieldsToolTips(bool regex)
|
||||
QString tip;
|
||||
if (regex)
|
||||
{
|
||||
tip = "<p>" + tr("Regex mode: use Perl-compatible regular expressions") + "</p>";
|
||||
tip = u"<p>" + tr("Regex mode: use Perl-compatible regular expressions") + u"</p>";
|
||||
}
|
||||
else
|
||||
{
|
||||
tip = "<p>" + tr("Wildcard mode: you can use") + "<ul>"
|
||||
+ "<li>" + tr("? to match any single character") + "</li>"
|
||||
+ "<li>" + tr("* to match zero or more of any characters") + "</li>"
|
||||
+ "<li>" + tr("Whitespaces count as AND operators (all words, any order)") + "</li>"
|
||||
+ "<li>" + tr("| is used as OR operator") + "</li></ul></p>"
|
||||
+ "<p>" + tr("If word order is important use * instead of whitespace.") + "</p>";
|
||||
tip = u"<p>" + tr("Wildcard mode: you can use") + u"<ul>"
|
||||
+ u"<li>" + tr("? to match any single character") + u"</li>"
|
||||
+ u"<li>" + tr("* to match zero or more of any characters") + u"</li>"
|
||||
+ u"<li>" + tr("Whitespaces count as AND operators (all words, any order)") + u"</li>"
|
||||
+ u"<li>" + tr("| is used as OR operator") + u"</li></ul></p>"
|
||||
+ u"<p>" + tr("If word order is important use * instead of whitespace.") + u"</p>";
|
||||
}
|
||||
|
||||
// Whether regex or wildcard, warn about a potential gotcha for users.
|
||||
// Explanatory string broken over multiple lines for readability (and multiple
|
||||
// statements to prevent uncrustify indenting excessively.
|
||||
tip += "<p>";
|
||||
tip += u"<p>";
|
||||
tip += tr("An expression with an empty %1 clause (e.g. %2)",
|
||||
"We talk about regex/wildcards in the RSS filters section here."
|
||||
" So a valid sentence would be: An expression with an empty | clause (e.g. expr|)"
|
||||
).arg("<tt>|</tt>", "<tt>expr|</tt>");
|
||||
m_ui->lineContains->setToolTip(tip + tr(" will match all articles.") + "</p>");
|
||||
m_ui->lineNotContains->setToolTip(tip + tr(" will exclude all articles.") + "</p>");
|
||||
).arg(u"<tt>|</tt>"_qs, u"<tt>expr|</tt>"_qs);
|
||||
m_ui->lineContains->setToolTip(tip + tr(" will match all articles.") + u"</p>");
|
||||
m_ui->lineNotContains->setToolTip(tip + tr(" will exclude all articles.") + u"</p>");
|
||||
}
|
||||
|
||||
void AutomatedRssDownloader::updateMustLineValidity()
|
||||
@@ -725,7 +725,7 @@ void AutomatedRssDownloader::updateMustLineValidity()
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const QString &token : asConst(text.split('|')))
|
||||
for (const QString &token : asConst(text.split(u'|')))
|
||||
tokens << Utils::String::wildcardToRegexPattern(token);
|
||||
}
|
||||
|
||||
@@ -744,14 +744,14 @@ void AutomatedRssDownloader::updateMustLineValidity()
|
||||
|
||||
if (valid)
|
||||
{
|
||||
m_ui->lineContains->setStyleSheet("");
|
||||
m_ui->lineContains->setStyleSheet({});
|
||||
m_ui->labelMustStat->setPixmap(QPixmap());
|
||||
m_ui->labelMustStat->setToolTip("");
|
||||
m_ui->labelMustStat->setToolTip({});
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ui->lineContains->setStyleSheet("QLineEdit { color: #ff0000; }");
|
||||
m_ui->labelMustStat->setPixmap(UIThemeManager::instance()->getIcon("task-attention").pixmap(16, 16));
|
||||
m_ui->lineContains->setStyleSheet(u"QLineEdit { color: #ff0000; }"_qs);
|
||||
m_ui->labelMustStat->setPixmap(UIThemeManager::instance()->getIcon(u"task-attention"_qs).pixmap(16, 16));
|
||||
m_ui->labelMustStat->setToolTip(error);
|
||||
}
|
||||
}
|
||||
@@ -772,7 +772,7 @@ void AutomatedRssDownloader::updateMustNotLineValidity()
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const QString &token : asConst(text.split('|')))
|
||||
for (const QString &token : asConst(text.split(u'|')))
|
||||
tokens << Utils::String::wildcardToRegexPattern(token);
|
||||
}
|
||||
|
||||
@@ -791,14 +791,14 @@ void AutomatedRssDownloader::updateMustNotLineValidity()
|
||||
|
||||
if (valid)
|
||||
{
|
||||
m_ui->lineNotContains->setStyleSheet("");
|
||||
m_ui->lineNotContains->setStyleSheet({});
|
||||
m_ui->labelMustNotStat->setPixmap(QPixmap());
|
||||
m_ui->labelMustNotStat->setToolTip("");
|
||||
m_ui->labelMustNotStat->setToolTip({});
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ui->lineNotContains->setStyleSheet("QLineEdit { color: #ff0000; }");
|
||||
m_ui->labelMustNotStat->setPixmap(UIThemeManager::instance()->getIcon("task-attention").pixmap(16, 16));
|
||||
m_ui->lineNotContains->setStyleSheet(u"QLineEdit { color: #ff0000; }"_qs);
|
||||
m_ui->labelMustNotStat->setPixmap(UIThemeManager::instance()->getIcon(u"task-attention"_qs).pixmap(16, 16));
|
||||
m_ui->labelMustNotStat->setToolTip(error);
|
||||
}
|
||||
}
|
||||
@@ -810,13 +810,13 @@ void AutomatedRssDownloader::updateEpisodeFilterValidity()
|
||||
|
||||
if (valid)
|
||||
{
|
||||
m_ui->lineEFilter->setStyleSheet("");
|
||||
m_ui->labelEpFilterStat->setPixmap(QPixmap());
|
||||
m_ui->lineEFilter->setStyleSheet({});
|
||||
m_ui->labelEpFilterStat->setPixmap({});
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ui->lineEFilter->setStyleSheet("QLineEdit { color: #ff0000; }");
|
||||
m_ui->labelEpFilterStat->setPixmap(UIThemeManager::instance()->getIcon("task-attention").pixmap(16, 16));
|
||||
m_ui->lineEFilter->setStyleSheet(u"QLineEdit { color: #ff0000; }"_qs);
|
||||
m_ui->labelEpFilterStat->setPixmap(UIThemeManager::instance()->getIcon(u"task-attention"_qs).pixmap(16, 16));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ FeedListWidget::FeedListWidget(QWidget *parent)
|
||||
m_unreadStickyItem = new FeedListItem(this);
|
||||
m_unreadStickyItem->setData(0, Qt::UserRole, reinterpret_cast<quintptr>(RSS::Session::instance()->rootFolder()));
|
||||
m_unreadStickyItem->setText(0, tr("Unread (%1)").arg(RSS::Session::instance()->rootFolder()->unreadCount()));
|
||||
m_unreadStickyItem->setData(0, Qt::DecorationRole, UIThemeManager::instance()->getIcon("mail-folder-inbox"));
|
||||
m_unreadStickyItem->setData(0, Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"mail-folder-inbox"_qs));
|
||||
m_unreadStickyItem->setData(0, StickyItemTagRole, true);
|
||||
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ QVariant HtmlBrowser::loadResource(int type, const QUrl &name)
|
||||
{
|
||||
QUrl url(name);
|
||||
if (url.scheme().isEmpty())
|
||||
url.setScheme("http");
|
||||
url.setScheme(u"http"_qs);
|
||||
|
||||
QIODevice *dev = m_diskCache->data(url);
|
||||
if (dev)
|
||||
@@ -108,7 +108,7 @@ void HtmlBrowser::resourceLoaded(QNetworkReply *reply)
|
||||
metaData.setUrl(reply->request().url());
|
||||
metaData.setSaveToDisk(true);
|
||||
atts[QNetworkRequest::HttpStatusCodeAttribute] = 200;
|
||||
atts[QNetworkRequest::HttpReasonPhraseAttribute] = "Ok";
|
||||
atts[QNetworkRequest::HttpReasonPhraseAttribute] = u"Ok"_qs;
|
||||
metaData.setAttributes(atts);
|
||||
metaData.setLastModified(QDateTime::currentDateTime());
|
||||
metaData.setExpirationDate(QDateTime::currentDateTime().addDays(1));
|
||||
|
||||
@@ -62,21 +62,21 @@ RSSWidget::RSSWidget(QWidget *parent)
|
||||
m_ui->setupUi(this);
|
||||
|
||||
// Icons
|
||||
m_ui->actionCopyFeedURL->setIcon(UIThemeManager::instance()->getIcon("edit-copy"));
|
||||
m_ui->actionDelete->setIcon(UIThemeManager::instance()->getIcon("edit-delete"));
|
||||
m_ui->actionDownloadTorrent->setIcon(UIThemeManager::instance()->getIcon("download"));
|
||||
m_ui->actionMarkItemsRead->setIcon(UIThemeManager::instance()->getIcon("mail-mark-read"));
|
||||
m_ui->actionNewFolder->setIcon(UIThemeManager::instance()->getIcon("folder-new"));
|
||||
m_ui->actionNewSubscription->setIcon(UIThemeManager::instance()->getIcon("list-add"));
|
||||
m_ui->actionOpenNewsURL->setIcon(UIThemeManager::instance()->getIcon("application-x-mswinurl"));
|
||||
m_ui->actionRename->setIcon(UIThemeManager::instance()->getIcon("edit-rename"));
|
||||
m_ui->actionUpdate->setIcon(UIThemeManager::instance()->getIcon("view-refresh"));
|
||||
m_ui->actionUpdateAllFeeds->setIcon(UIThemeManager::instance()->getIcon("view-refresh"));
|
||||
m_ui->actionCopyFeedURL->setIcon(UIThemeManager::instance()->getIcon(u"edit-copy"_qs));
|
||||
m_ui->actionDelete->setIcon(UIThemeManager::instance()->getIcon(u"edit-delete"_qs));
|
||||
m_ui->actionDownloadTorrent->setIcon(UIThemeManager::instance()->getIcon(u"download"_qs));
|
||||
m_ui->actionMarkItemsRead->setIcon(UIThemeManager::instance()->getIcon(u"mail-mark-read"_qs));
|
||||
m_ui->actionNewFolder->setIcon(UIThemeManager::instance()->getIcon(u"folder-new"_qs));
|
||||
m_ui->actionNewSubscription->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_qs));
|
||||
m_ui->actionOpenNewsURL->setIcon(UIThemeManager::instance()->getIcon(u"application-x-mswinurl"_qs));
|
||||
m_ui->actionRename->setIcon(UIThemeManager::instance()->getIcon(u"edit-rename"_qs));
|
||||
m_ui->actionUpdate->setIcon(UIThemeManager::instance()->getIcon(u"view-refresh"_qs));
|
||||
m_ui->actionUpdateAllFeeds->setIcon(UIThemeManager::instance()->getIcon(u"view-refresh"_qs));
|
||||
#ifndef Q_OS_MACOS
|
||||
m_ui->newFeedButton->setIcon(UIThemeManager::instance()->getIcon("list-add"));
|
||||
m_ui->markReadButton->setIcon(UIThemeManager::instance()->getIcon("mail-mark-read"));
|
||||
m_ui->updateAllButton->setIcon(UIThemeManager::instance()->getIcon("view-refresh"));
|
||||
m_ui->rssDownloaderBtn->setIcon(UIThemeManager::instance()->getIcon("download"));
|
||||
m_ui->newFeedButton->setIcon(UIThemeManager::instance()->getIcon(u"list-add"_qs));
|
||||
m_ui->markReadButton->setIcon(UIThemeManager::instance()->getIcon(u"mail-mark-read"_qs));
|
||||
m_ui->updateAllButton->setIcon(UIThemeManager::instance()->getIcon(u"view-refresh"_qs));
|
||||
m_ui->rssDownloaderBtn->setIcon(UIThemeManager::instance()->getIcon(u"download"_qs));
|
||||
#endif
|
||||
|
||||
m_articleListWidget = new ArticleListWidget(m_ui->splitterMain);
|
||||
@@ -249,7 +249,7 @@ void RSSWidget::askNewFolder()
|
||||
const QString newFolderPath = RSS::Item::joinPath(rssDestFolder->path(), newName);
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->addFolder(newFolderPath);
|
||||
if (!result)
|
||||
QMessageBox::warning(this, "qBittorrent", result.error(), QMessageBox::Ok);
|
||||
QMessageBox::warning(this, u"qBittorrent"_qs, result.error(), QMessageBox::Ok);
|
||||
|
||||
// Expand destination folder to display new feed
|
||||
if (destItem && (destItem != m_feedListWidget->stickyUnreadItem()))
|
||||
@@ -263,7 +263,7 @@ void RSSWidget::on_newFeedButton_clicked()
|
||||
{
|
||||
// Ask for feed URL
|
||||
const QString clipText = qApp->clipboard()->text();
|
||||
const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : "http://";
|
||||
const QString defaultURL = Net::DownloadManager::hasSupportedScheme(clipText) ? clipText : u"http://"_qs;
|
||||
|
||||
bool ok = false;
|
||||
QString newURL = AutoExpandableDialog::getText(
|
||||
@@ -291,7 +291,7 @@ void RSSWidget::on_newFeedButton_clicked()
|
||||
const QString newFeedPath = RSS::Item::joinPath(rssDestFolder->path(), newURL);
|
||||
const nonstd::expected<void, QString> result = RSS::Session::instance()->addFeed(newURL, newFeedPath);
|
||||
if (!result)
|
||||
QMessageBox::warning(this, "qBittorrent", result.error(), QMessageBox::Ok);
|
||||
QMessageBox::warning(this, u"qBittorrent"_qs, result.error(), QMessageBox::Ok);
|
||||
|
||||
// Expand destination folder to display new feed
|
||||
if (destItem && (destItem != m_feedListWidget->stickyUnreadItem()))
|
||||
@@ -325,7 +325,7 @@ void RSSWidget::loadFoldersOpenState()
|
||||
for (const QString &varPath : openedFolders)
|
||||
{
|
||||
QTreeWidgetItem *parent = nullptr;
|
||||
for (const QString &name : asConst(varPath.split('\\')))
|
||||
for (const QString &name : asConst(varPath.split(u'\\')))
|
||||
{
|
||||
int nbChildren = (parent ? parent->childCount() : m_feedListWidget->topLevelItemCount());
|
||||
for (int i = 0; i < nbChildren; ++i)
|
||||
@@ -442,7 +442,7 @@ void RSSWidget::copySelectedFeedsURL()
|
||||
if (auto feed = qobject_cast<RSS::Feed *>(m_feedListWidget->getRSSItem(item)))
|
||||
URLs << feed->url();
|
||||
}
|
||||
qApp->clipboard()->setText(URLs.join('\n'));
|
||||
qApp->clipboard()->setText(URLs.join(u'\n'));
|
||||
}
|
||||
|
||||
void RSSWidget::handleCurrentFeedItemChanged(QTreeWidgetItem *currentItem)
|
||||
@@ -489,8 +489,8 @@ void RSSWidget::handleCurrentArticleItemChanged(QListWidgetItem *currentItem, QL
|
||||
html += QString::fromLatin1("<div style='background-color: \"%1\";'><b>%2</b>%3</div>").arg(alternateBaseColor, tr("Date: "), QLocale::system().toString(article->date().toLocalTime()));
|
||||
if (!article->author().isEmpty())
|
||||
html += QString::fromLatin1("<div style='background-color: \"%1\";'><b>%2</b>%3</div>").arg(alternateBaseColor, tr("Author: "), article->author());
|
||||
html += "</div>"
|
||||
"<div style='margin-left: 5px; margin-right: 5px;'>";
|
||||
html += u"</div>"
|
||||
u"<div style='margin-left: 5px; margin-right: 5px;'>";
|
||||
if (Qt::mightBeRichText(article->description()))
|
||||
{
|
||||
html += article->description();
|
||||
@@ -503,27 +503,27 @@ void RSSWidget::handleCurrentArticleItemChanged(QListWidgetItem *currentItem, QL
|
||||
rx.setPatternOptions(QRegularExpression::InvertedGreedinessOption
|
||||
| QRegularExpression::CaseInsensitiveOption);
|
||||
|
||||
rx.setPattern("\\[img\\](.+)\\[/img\\]");
|
||||
description = description.replace(rx, "<img src=\"\\1\">");
|
||||
rx.setPattern(u"\\[img\\](.+)\\[/img\\]"_qs);
|
||||
description = description.replace(rx, u"<img src=\"\\1\">"_qs);
|
||||
|
||||
rx.setPattern("\\[url=(\")?(.+)\\1\\]");
|
||||
description = description.replace(rx, "<a href=\"\\2\">");
|
||||
description = description.replace("[/url]", "</a>", Qt::CaseInsensitive);
|
||||
rx.setPattern(u"\\[url=(\")?(.+)\\1\\]"_qs);
|
||||
description = description.replace(rx, u"<a href=\"\\2\">"_qs);
|
||||
description = description.replace(u"[/url]"_qs, u"</a>"_qs, Qt::CaseInsensitive);
|
||||
|
||||
rx.setPattern("\\[(/)?([bius])\\]");
|
||||
description = description.replace(rx, "<\\1\\2>");
|
||||
rx.setPattern(u"\\[(/)?([bius])\\]"_qs);
|
||||
description = description.replace(rx, u"<\\1\\2>"_qs);
|
||||
|
||||
rx.setPattern("\\[color=(\")?(.+)\\1\\]");
|
||||
description = description.replace(rx, "<span style=\"color:\\2\">");
|
||||
description = description.replace("[/color]", "</span>", Qt::CaseInsensitive);
|
||||
rx.setPattern(u"\\[color=(\")?(.+)\\1\\]"_qs);
|
||||
description = description.replace(rx, u"<span style=\"color:\\2\">"_qs);
|
||||
description = description.replace(u"[/color]"_qs, u"</span>"_qs, Qt::CaseInsensitive);
|
||||
|
||||
rx.setPattern("\\[size=(\")?(.+)\\d\\1\\]");
|
||||
description = description.replace(rx, "<span style=\"font-size:\\2px\">");
|
||||
description = description.replace("[/size]", "</span>", Qt::CaseInsensitive);
|
||||
rx.setPattern(u"\\[size=(\")?(.+)\\d\\1\\]"_qs);
|
||||
description = description.replace(rx, u"<span style=\"font-size:\\2px\">"_qs);
|
||||
description = description.replace(u"[/size]"_qs, u"</span>"_qs, Qt::CaseInsensitive);
|
||||
|
||||
html += "<pre>" + description + "</pre>";
|
||||
html += u"<pre>" + description + u"</pre>";
|
||||
}
|
||||
html += "</div>";
|
||||
html += u"</div>";
|
||||
m_ui->textBrowser->setHtml(html);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user