mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-20 13:23:34 -07:00
Merge 1459429035
into feacfb0627
This commit is contained in:
commit
d7d666bc22
10 changed files with 50 additions and 23 deletions
|
@ -451,6 +451,18 @@ void Preferences::setPreventFromSuspendWhenSeeding(const bool b)
|
|||
setValue(u"Preferences/General/PreventFromSuspendWhenSeeding"_s, b);
|
||||
}
|
||||
|
||||
bool Preferences::isDownloadTrackerFavicon() const
|
||||
{
|
||||
return value(u"Preferences/General/DownloadTrackerFavicon"_s, true);
|
||||
}
|
||||
|
||||
void Preferences::setDownloadTrackerFavicon(const bool value)
|
||||
{
|
||||
if (value == isDownloadTrackerFavicon())
|
||||
return;
|
||||
setValue(u"Preferences/General/DownloadTrackerFavicon"_s, value);
|
||||
}
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
bool Preferences::WinStartup() const
|
||||
{
|
||||
|
|
|
@ -278,6 +278,8 @@ public:
|
|||
void setAutoRunOnTorrentFinishedEnabled(bool enabled);
|
||||
QString getAutoRunOnTorrentFinishedProgram() const;
|
||||
void setAutoRunOnTorrentFinishedProgram(const QString &program);
|
||||
bool isDownloadTrackerFavicon() const;
|
||||
void setDownloadTrackerFavicon(bool enabled);
|
||||
#if defined(Q_OS_WIN)
|
||||
bool isAutoRunConsoleEnabled() const;
|
||||
void setAutoRunConsoleEnabled(bool enabled);
|
||||
|
|
|
@ -328,7 +328,7 @@ void AdvancedSettings::saveAdvancedSettings() const
|
|||
// Reannounce to all trackers when ip/port changed
|
||||
session->setReannounceWhenAddressChangedEnabled(m_checkBoxReannounceWhenAddressChanged.isChecked());
|
||||
// Misc GUI properties
|
||||
app()->mainWindow()->setDownloadTrackerFavicon(m_checkBoxTrackerFavicon.isChecked());
|
||||
pref->setDownloadTrackerFavicon(m_checkBoxTrackerFavicon.isChecked());
|
||||
pref->setAddNewTorrentDialogSavePathHistoryLength(m_spinBoxSavePathHistoryLength.value());
|
||||
pref->setSpeedWidgetEnabled(m_checkBoxSpeedWidgetEnabled.isChecked());
|
||||
#ifndef Q_OS_MACOS
|
||||
|
@ -854,7 +854,7 @@ void AdvancedSettings::loadAdvancedSettings()
|
|||
m_checkBoxReannounceWhenAddressChanged.setChecked(session->isReannounceWhenAddressChangedEnabled());
|
||||
addRow(REANNOUNCE_WHEN_ADDRESS_CHANGED, tr("Reannounce to all trackers when IP or port changed"), &m_checkBoxReannounceWhenAddressChanged);
|
||||
// Download tracker's favicon
|
||||
m_checkBoxTrackerFavicon.setChecked(app()->mainWindow()->isDownloadTrackerFavicon());
|
||||
m_checkBoxTrackerFavicon.setChecked(pref->isDownloadTrackerFavicon());
|
||||
addRow(DOWNLOAD_TRACKER_FAVICON, tr("Download tracker's favicon"), &m_checkBoxTrackerFavicon);
|
||||
// Save path history length
|
||||
m_spinBoxSavePathHistoryLength.setRange(0, 99);
|
||||
|
|
|
@ -134,7 +134,6 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con
|
|||
, m_pwr {new PowerManagement}
|
||||
, m_preventTimer {new QTimer(this)}
|
||||
, m_storeExecutionLogEnabled {EXECUTIONLOG_SETTINGS_KEY(u"Enabled"_s)}
|
||||
, m_storeDownloadTrackerFavicon {SETTINGS_KEY(u"DownloadTrackerFavicon"_s)}
|
||||
, m_storeExecutionLogTypes {EXECUTIONLOG_SETTINGS_KEY(u"Types"_s), Log::MsgType::ALL}
|
||||
#ifdef Q_OS_MACOS
|
||||
, m_badger {std::make_unique<MacUtils::Badger>()}
|
||||
|
@ -477,7 +476,7 @@ MainWindow::MainWindow(IGUIApplication *app, const WindowState initialState, con
|
|||
m_ui->actionShowFiltersSidebar->setChecked(isFiltersSidebarVisible);
|
||||
if (isFiltersSidebarVisible)
|
||||
{
|
||||
showFiltersSidebar(true);
|
||||
showFiltersSidebar(true, pref->isDownloadTrackerFavicon());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -530,18 +529,6 @@ void MainWindow::setExecutionLogMsgTypes(const Log::MsgTypes value)
|
|||
m_storeExecutionLogTypes = value;
|
||||
}
|
||||
|
||||
bool MainWindow::isDownloadTrackerFavicon() const
|
||||
{
|
||||
return m_storeDownloadTrackerFavicon;
|
||||
}
|
||||
|
||||
void MainWindow::setDownloadTrackerFavicon(const bool value)
|
||||
{
|
||||
if (m_transferListFiltersWidget)
|
||||
m_transferListFiltersWidget->setDownloadTrackerFavicon(value);
|
||||
m_storeDownloadTrackerFavicon = value;
|
||||
}
|
||||
|
||||
void MainWindow::setTitleSuffix(const QString &suffix)
|
||||
{
|
||||
const auto emDash = QChar(0x2014);
|
||||
|
@ -1348,11 +1335,11 @@ void MainWindow::showStatusBar(bool show)
|
|||
}
|
||||
}
|
||||
|
||||
void MainWindow::showFiltersSidebar(const bool show)
|
||||
void MainWindow::showFiltersSidebar(const bool show, const bool showTrackerFavicon)
|
||||
{
|
||||
if (show && !m_transferListFiltersWidget)
|
||||
{
|
||||
m_transferListFiltersWidget = new TransferListFiltersWidget(m_splitter, m_transferListWidget, isDownloadTrackerFavicon());
|
||||
m_transferListFiltersWidget = new TransferListFiltersWidget(m_splitter, m_transferListWidget, showTrackerFavicon);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersAdded, m_transferListFiltersWidget, &TransferListFiltersWidget::addTrackers);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersRemoved, m_transferListFiltersWidget, &TransferListFiltersWidget::removeTrackers);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersChanged, m_transferListFiltersWidget, &TransferListFiltersWidget::refreshTrackers);
|
||||
|
@ -1566,7 +1553,7 @@ void MainWindow::on_actionShowFiltersSidebar_triggered(const bool checked)
|
|||
{
|
||||
Preferences *const pref = Preferences::instance();
|
||||
pref->setFiltersSidebarVisible(checked);
|
||||
showFiltersSidebar(checked);
|
||||
showFiltersSidebar(checked, pref->isDownloadTrackerFavicon());
|
||||
}
|
||||
|
||||
void MainWindow::on_actionSpeedInTitleBar_triggered()
|
||||
|
|
|
@ -196,7 +196,7 @@ private:
|
|||
void displaySearchTab(bool enable);
|
||||
void createTorrentTriggered(const Path &path);
|
||||
void showStatusBar(bool show);
|
||||
void showFiltersSidebar(bool show);
|
||||
void showFiltersSidebar(bool show, bool showTrackerFavicon);
|
||||
void applyTransferListFilter();
|
||||
void refreshWindowTitle();
|
||||
void refreshTrayIconTooltip();
|
||||
|
@ -250,7 +250,6 @@ private:
|
|||
QMenu *m_toolbarMenu = nullptr;
|
||||
|
||||
SettingValue<bool> m_storeExecutionLogEnabled;
|
||||
SettingValue<bool> m_storeDownloadTrackerFavicon;
|
||||
CachedSettingValue<Log::MsgTypes> m_storeExecutionLogTypes;
|
||||
|
||||
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
|
||||
|
|
|
@ -410,6 +410,8 @@ void AppController::preferencesAction()
|
|||
data[u"ignore_ssl_errors"_s] = pref->isIgnoreSSLErrors();
|
||||
// Python executable path
|
||||
data[u"python_executable_path"_s] = pref->getPythonExecutablePath().toString();
|
||||
// Should we show Tracker's Favicon
|
||||
data[u"show_tracker_favicon"_s] = pref->isDownloadTrackerFavicon();
|
||||
|
||||
// libtorrent preferences
|
||||
// Bdecode depth limit
|
||||
|
@ -1023,6 +1025,8 @@ void AppController::setPreferencesAction()
|
|||
// Reannounce to all trackers when ip/port changed
|
||||
if (hasKey(u"reannounce_when_address_changed"_s))
|
||||
session->setReannounceWhenAddressChangedEnabled(it.value().toBool());
|
||||
if (hasKey(u"show_tracker_favicon"_s))
|
||||
pref->setDownloadTrackerFavicon(it.value().toBool());
|
||||
// Embedded tracker
|
||||
if (hasKey(u"embedded_tracker_port"_s))
|
||||
pref->setTrackerPort(it.value().toInt());
|
||||
|
|
|
@ -487,7 +487,7 @@ void WebApplication::configure()
|
|||
const QString contentSecurityPolicy =
|
||||
(m_isAltUIUsed
|
||||
? QString()
|
||||
: u"default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-src 'self' blob:;"_s)
|
||||
: u"default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; script-src 'self' 'unsafe-inline'; object-src 'none'; form-action 'self'; frame-src 'self' blob:;"_s)
|
||||
+ (isClickjackingProtectionEnabled ? u" frame-ancestors 'self';"_s : QString())
|
||||
+ (m_isHttpsEnabled ? u" upgrade-insecure-requests;"_s : QString());
|
||||
if (!contentSecurityPolicy.isEmpty())
|
||||
|
|
|
@ -781,6 +781,18 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
|||
case TRACKERS_WARNING:
|
||||
span.lastElementChild.src = "images/tracker-warning.svg";
|
||||
break;
|
||||
default: {
|
||||
if (LocalPreferences.get("show_tracker_favicon", "false") === "false")
|
||||
break;
|
||||
const link = host.split(".").slice(1).join(".");
|
||||
const img = trackerFilterItem.getElementsByTagName("img")[0];
|
||||
|
||||
img.src = `https://${link}/favicon.ico`;
|
||||
img.onerror = () => {
|
||||
img.src = "images/trackers.svg";
|
||||
};
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return trackerFilterItem;
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<template id="trackerFilterItem">
|
||||
<li class="trackersFilterContextMenuTarget">
|
||||
<span class="link">
|
||||
<img src="images/trackers.svg" alt="">
|
||||
<img src="images/trackers.svg" alt="" referrerpolicy="no-referrer">
|
||||
</span>
|
||||
</li>
|
||||
</template>
|
||||
|
|
|
@ -1262,6 +1262,14 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
|||
<input type="checkbox" id="reannounceWhenAddressChanged">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="showTrackerFavicon">QBT_TR(Show tracker favicon in torrent list:)QBT_TR[CONTEXT=OptionsDialog]</label>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" id="showTrackerFavicon">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="enableEmbeddedTracker">QBT_TR(Enable embedded tracker:)QBT_TR[CONTEXT=OptionsDialog]</label>
|
||||
|
@ -2599,6 +2607,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
|||
document.getElementById("markOfTheWeb").checked = pref.mark_of_the_web;
|
||||
document.getElementById("ignoreSSLErrors").checked = pref.ignore_ssl_errors;
|
||||
document.getElementById("pythonExecutablePath").value = pref.python_executable_path;
|
||||
document.getElementById("showTrackerFavicon").checked = pref.show_tracker_favicon;
|
||||
// libtorrent section
|
||||
document.getElementById("bdecodeDepthLimit").value = pref.bdecode_depth_limit;
|
||||
document.getElementById("bdecodeTokenLimit").value = pref.bdecode_token_limit;
|
||||
|
@ -3071,6 +3080,8 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
|||
settings["refresh_interval"] = Number(document.getElementById("refreshInterval").value);
|
||||
settings["resolve_peer_countries"] = document.getElementById("resolvePeerCountries").checked;
|
||||
settings["reannounce_when_address_changed"] = document.getElementById("reannounceWhenAddressChanged").checked;
|
||||
settings["show_tracker_favicon"] = document.getElementById("showTrackerFavicon").checked;
|
||||
LocalPreferences.set("show_tracker_favicon", settings["show_tracker_favicon"].toString());
|
||||
settings["enable_embedded_tracker"] = document.getElementById("enableEmbeddedTracker").checked;
|
||||
settings["embedded_tracker_port"] = Number(document.getElementById("embeddedTrackerPort").value);
|
||||
settings["embedded_tracker_port_forwarding"] = document.getElementById("embeddedTrackerPortForwarding").checked;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue