mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-01 21:28:07 -06:00
Compare commits
14 Commits
release-4.
...
release-4.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
359b464958 | ||
|
|
b5b0d68dd9 | ||
|
|
f48c49c248 | ||
|
|
11ca744548 | ||
|
|
82e6fc700e | ||
|
|
59fd70c638 | ||
|
|
617bf767df | ||
|
|
55180e3598 | ||
|
|
56b62e6573 | ||
|
|
b37e7b0340 | ||
|
|
21aebaf16f | ||
|
|
5792465317 | ||
|
|
e98f44af63 | ||
|
|
40cf0203fb |
@@ -1,3 +1,8 @@
|
|||||||
|
* Mon Sep 23 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.8
|
||||||
|
- BUGFIX: Fix filename validation on non-Windows OS (Chocobo1)
|
||||||
|
- BUGFIX: ScanFolders/FileSystemWatcher now detect magnet files with case insensitivity in filename (Chocobo1)
|
||||||
|
- BUGFIX: Fix failed seeding after creating a torrent and auto-adding it to the session (Chocobo1)
|
||||||
|
|
||||||
* Sun Aug 04 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.7
|
* Sun Aug 04 2019 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v4.1.7
|
||||||
- FEATURE: Add 12 hour and 24 hour speed graphs (dzmat)
|
- FEATURE: Add 12 hour and 24 hour speed graphs (dzmat)
|
||||||
- FEATURE: Change "Add new torrent" dialog to horizontal layout (Evgeny Lensky)
|
- FEATURE: Change "Add new torrent" dialog to horizontal layout (Evgeny Lensky)
|
||||||
|
|||||||
24
configure
vendored
24
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for qbittorrent v4.1.7.
|
# Generated by GNU Autoconf 2.69 for qbittorrent v4.1.8.
|
||||||
#
|
#
|
||||||
# Report bugs to <bugs.qbittorrent.org>.
|
# Report bugs to <bugs.qbittorrent.org>.
|
||||||
#
|
#
|
||||||
@@ -580,8 +580,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='qbittorrent'
|
PACKAGE_NAME='qbittorrent'
|
||||||
PACKAGE_TARNAME='qbittorrent'
|
PACKAGE_TARNAME='qbittorrent'
|
||||||
PACKAGE_VERSION='v4.1.7'
|
PACKAGE_VERSION='v4.1.8'
|
||||||
PACKAGE_STRING='qbittorrent v4.1.7'
|
PACKAGE_STRING='qbittorrent v4.1.8'
|
||||||
PACKAGE_BUGREPORT='bugs.qbittorrent.org'
|
PACKAGE_BUGREPORT='bugs.qbittorrent.org'
|
||||||
PACKAGE_URL='https://www.qbittorrent.org/'
|
PACKAGE_URL='https://www.qbittorrent.org/'
|
||||||
|
|
||||||
@@ -1299,7 +1299,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures qbittorrent v4.1.7 to adapt to many kinds of systems.
|
\`configure' configures qbittorrent v4.1.8 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -1370,7 +1370,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of qbittorrent v4.1.7:";;
|
short | recursive ) echo "Configuration of qbittorrent v4.1.8:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1505,7 +1505,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
qbittorrent configure v4.1.7
|
qbittorrent configure v4.1.8
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@@ -1644,7 +1644,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by qbittorrent $as_me v4.1.7, which was
|
It was created by qbittorrent $as_me v4.1.8, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -3822,7 +3822,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='qbittorrent'
|
PACKAGE='qbittorrent'
|
||||||
VERSION='v4.1.7'
|
VERSION='v4.1.8'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@@ -6274,7 +6274,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by qbittorrent $as_me v4.1.7, which was
|
This file was extended by qbittorrent $as_me v4.1.8, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -6332,7 +6332,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
qbittorrent config.status v4.1.7
|
qbittorrent config.status v4.1.8
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
@@ -7590,7 +7590,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by qbittorrent $as_me v4.1.7, which was
|
This file was extended by qbittorrent $as_me v4.1.8, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -7648,7 +7648,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
qbittorrent config.status v4.1.7
|
qbittorrent config.status v4.1.8
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
AC_INIT([qbittorrent], [v4.1.7], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
AC_INIT([qbittorrent], [v4.1.8], [bugs.qbittorrent.org], [], [https://www.qbittorrent.org/])
|
||||||
AC_CONFIG_AUX_DIR([build-aux])
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
|||||||
2
dist/mac/Info.plist
vendored
2
dist/mac/Info.plist
vendored
@@ -55,7 +55,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>4.1.7</string>
|
<string>4.1.8</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>@EXECUTABLE@</string>
|
<string>@EXECUTABLE@</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
|
|||||||
2
dist/windows/options.nsi
vendored
2
dist/windows/options.nsi
vendored
@@ -27,7 +27,7 @@ XPStyle on
|
|||||||
!define CSIDL_LOCALAPPDATA '0x1C' ;Local Application Data path
|
!define CSIDL_LOCALAPPDATA '0x1C' ;Local Application Data path
|
||||||
|
|
||||||
; Program specific
|
; Program specific
|
||||||
!define PROG_VERSION "4.1.7"
|
!define PROG_VERSION "4.1.8"
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_RUN
|
!define MUI_FINISHPAGE_RUN
|
||||||
!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun
|
!define MUI_FINISHPAGE_RUN_FUNCTION PageFinishRun
|
||||||
|
|||||||
@@ -508,7 +508,7 @@ bool TorrentHandle::needSaveResumeData() const
|
|||||||
|
|
||||||
void TorrentHandle::saveResumeData()
|
void TorrentHandle::saveResumeData()
|
||||||
{
|
{
|
||||||
m_nativeHandle.save_resume_data();
|
m_nativeHandle.save_resume_data(lt::torrent_handle::save_info_dict);
|
||||||
m_session->handleTorrentSaveResumeDataRequested(this);
|
m_session->handleTorrentSaveResumeDataRequested(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ void FileSystemWatcher::processTorrentsInDir(const QDir &dir)
|
|||||||
const QStringList files = dir.entryList({"*.torrent", "*.magnet"}, QDir::Files);
|
const QStringList files = dir.entryList({"*.torrent", "*.magnet"}, QDir::Files);
|
||||||
for (const QString &file : files) {
|
for (const QString &file : files) {
|
||||||
const QString fileAbsPath = dir.absoluteFilePath(file);
|
const QString fileAbsPath = dir.absoluteFilePath(file);
|
||||||
if (file.endsWith(".magnet"))
|
if (file.endsWith(".magnet", Qt::CaseInsensitive))
|
||||||
torrents << fileAbsPath;
|
torrents << fileAbsPath;
|
||||||
else if (BitTorrent::TorrentInfo::loadFromFile(fileAbsPath).isValid())
|
else if (BitTorrent::TorrentInfo::loadFromFile(fileAbsPath).isValid())
|
||||||
torrents << fileAbsPath;
|
torrents << fileAbsPath;
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ void ScanFoldersModel::addTorrentsToSession(const QStringList &pathList)
|
|||||||
else if (!downloadInDefaultFolder(file))
|
else if (!downloadInDefaultFolder(file))
|
||||||
params.savePath = downloadPathTorrentFolder(file);
|
params.savePath = downloadPathTorrentFolder(file);
|
||||||
|
|
||||||
if (file.endsWith(".magnet")) {
|
if (file.endsWith(".magnet", Qt::CaseInsensitive)) {
|
||||||
QFile f(file);
|
QFile f(file);
|
||||||
if (f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
if (f.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
QTextStream str(&f);
|
QTextStream str(&f);
|
||||||
|
|||||||
@@ -236,7 +236,19 @@ bool Utils::Fs::isValidFileSystemName(const QString &name, bool allowSeparators)
|
|||||||
{
|
{
|
||||||
if (name.isEmpty()) return false;
|
if (name.isEmpty()) return false;
|
||||||
|
|
||||||
const QRegularExpression regex(allowSeparators ? "[:?\"*<>|]" : "[\\\\/:?\"*<>|]");
|
#if defined(Q_OS_WIN)
|
||||||
|
const QRegularExpression regex {allowSeparators
|
||||||
|
? QLatin1String("[:?\"*<>|]")
|
||||||
|
: QLatin1String("[\\\\/:?\"*<>|]")};
|
||||||
|
#elif defined(Q_OS_MACOS)
|
||||||
|
const QRegularExpression regex {allowSeparators
|
||||||
|
? QLatin1String("[\\0:]")
|
||||||
|
: QLatin1String("[\\0/:]")};
|
||||||
|
#else
|
||||||
|
const QRegularExpression regex {allowSeparators
|
||||||
|
? QLatin1String("[\\0]")
|
||||||
|
: QLatin1String("[\\0/]")};
|
||||||
|
#endif
|
||||||
return !name.contains(regex);
|
return !name.contains(regex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -606,7 +606,7 @@ void AddNewTorrentDialog::setupTreeview()
|
|||||||
setWindowTitle(m_torrentInfo.name());
|
setWindowTitle(m_torrentInfo.name());
|
||||||
|
|
||||||
// Set torrent information
|
// Set torrent information
|
||||||
m_ui->labelCommentData->setText(Utils::Misc::parseHtmlLinks(m_torrentInfo.comment()));
|
m_ui->labelCommentData->setText(Utils::Misc::parseHtmlLinks(m_torrentInfo.comment().toHtmlEscaped()));
|
||||||
m_ui->labelDateData->setText(!m_torrentInfo.creationDate().isNull() ? m_torrentInfo.creationDate().toString(Qt::DefaultLocaleShortDate) : tr("Not available"));
|
m_ui->labelDateData->setText(!m_torrentInfo.creationDate().isNull() ? m_torrentInfo.creationDate().toString(Qt::DefaultLocaleShortDate) : tr("Not available"));
|
||||||
|
|
||||||
// Prepare content tree
|
// Prepare content tree
|
||||||
|
|||||||
@@ -1139,7 +1139,7 @@
|
|||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>To:</string>
|
<string comment="To receiver">To:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -1159,7 +1159,7 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_25">
|
<widget class="QLabel" name="label_25">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>From:</string>
|
<string comment="From sender">From:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -1915,7 +1915,7 @@
|
|||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QLabel" name="label_6">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string extracomment="from (time1 to time2)">From:</string>
|
<string comment="From start time">From:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -1939,7 +1939,7 @@
|
|||||||
<item row="0" column="2">
|
<item row="0" column="2">
|
||||||
<widget class="QLabel" name="label_17">
|
<widget class="QLabel" name="label_17">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string extracomment="time1 to time2">To:</string>
|
<string comment="To end time">To:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ void PropertiesWidget::loadTorrentInfos(BitTorrent::TorrentHandle *const torrent
|
|||||||
// URL seeds
|
// URL seeds
|
||||||
loadUrlSeeds();
|
loadUrlSeeds();
|
||||||
|
|
||||||
m_ui->labelCreatedByVal->setText(m_torrent->creator().toHtmlEscaped());
|
m_ui->labelCreatedByVal->setText(m_torrent->creator());
|
||||||
|
|
||||||
// List files in torrent
|
// List files in torrent
|
||||||
m_propListModel->model()->setupModelData(m_torrent->info());
|
m_propListModel->model()->setupModelData(m_torrent->info());
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentHandle *torre
|
|||||||
, modelIndex.data().toString(), &ok, isFile).trimmed();
|
, modelIndex.data().toString(), &ok, isFile).trimmed();
|
||||||
if (!ok) return;
|
if (!ok) return;
|
||||||
|
|
||||||
if (newName.isEmpty() || !Utils::Fs::isValidFileSystemName(newName)) {
|
if (!Utils::Fs::isValidFileSystemName(newName)) {
|
||||||
RaisedMessageBox::warning(this, tr("Rename error"),
|
RaisedMessageBox::warning(this, tr("Rename error"),
|
||||||
tr("The name is empty or contains forbidden characters, please choose a different one."),
|
tr("The name is empty or contains forbidden characters, please choose a different one."),
|
||||||
QMessageBox::Ok);
|
QMessageBox::Ok);
|
||||||
@@ -228,7 +228,7 @@ void TorrentContentTreeView::renameSelectedFile(BitTorrent::TorrentInfo &torrent
|
|||||||
, modelIndex.data().toString(), &ok, isFile).trimmed();
|
, modelIndex.data().toString(), &ok, isFile).trimmed();
|
||||||
if (!ok) return;
|
if (!ok) return;
|
||||||
|
|
||||||
if (newName.isEmpty() || !Utils::Fs::isValidFileSystemName(newName)) {
|
if (!Utils::Fs::isValidFileSystemName(newName)) {
|
||||||
RaisedMessageBox::warning(this, tr("Rename error"),
|
RaisedMessageBox::warning(this, tr("Rename error"),
|
||||||
tr("The name is empty or contains forbidden characters, please choose a different one."),
|
tr("The name is empty or contains forbidden characters, please choose a different one."),
|
||||||
QMessageBox::Ok);
|
QMessageBox::Ok);
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ void TorrentCreatorDialog::handleCreationSuccess(const QString &path, const QStr
|
|||||||
params.savePath = branchPath;
|
params.savePath = branchPath;
|
||||||
params.skipChecking = true;
|
params.skipChecking = true;
|
||||||
params.ignoreShareLimits = m_ui->checkIgnoreShareLimits->isChecked();
|
params.ignoreShareLimits = m_ui->checkIgnoreShareLimits->isChecked();
|
||||||
|
params.useAutoTMM = TriStateBool::False; // otherwise if it is on by default, it will overwrite `savePath` to the default save path
|
||||||
|
|
||||||
BitTorrent::Session::instance()->addTorrent(t, params);
|
BitTorrent::Session::instance()->addTorrent(t, params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,6 +91,16 @@ void RSSController::itemsAction()
|
|||||||
setResult(jsonVal.toObject());
|
setResult(jsonVal.toObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RSSController::refreshItemAction()
|
||||||
|
{
|
||||||
|
checkParams({"itemPath"});
|
||||||
|
|
||||||
|
const QString itemPath {params()["itemPath"]};
|
||||||
|
RSS::Item *item = RSS::Session::instance()->itemByPath(itemPath);
|
||||||
|
if (item)
|
||||||
|
item->refresh();
|
||||||
|
}
|
||||||
|
|
||||||
void RSSController::setRuleAction()
|
void RSSController::setRuleAction()
|
||||||
{
|
{
|
||||||
checkParams({"ruleName", "ruleDef"});
|
checkParams({"ruleName", "ruleDef"});
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ private slots:
|
|||||||
void removeItemAction();
|
void removeItemAction();
|
||||||
void moveItemAction();
|
void moveItemAction();
|
||||||
void itemsAction();
|
void itemsAction();
|
||||||
|
void refreshItemAction();
|
||||||
void setRuleAction();
|
void setRuleAction();
|
||||||
void renameRuleAction();
|
void renameRuleAction();
|
||||||
void removeRuleAction();
|
void removeRuleAction();
|
||||||
|
|||||||
@@ -353,7 +353,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div class="formRow">
|
<div class="formRow">
|
||||||
<span>Info: The password is saved unencrypted</span>
|
<span>QBT_TR(Info: The password is saved unencrypted)QBT_TR[CONTEXT=OptionsDialog]</span>
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ PROJECT_NAME = qbittorrent
|
|||||||
# Define version numbers here
|
# Define version numbers here
|
||||||
VER_MAJOR = 4
|
VER_MAJOR = 4
|
||||||
VER_MINOR = 1
|
VER_MINOR = 1
|
||||||
VER_BUGFIX = 7
|
VER_BUGFIX = 8
|
||||||
VER_BUILD = 0
|
VER_BUILD = 0
|
||||||
VER_STATUS = # Should be empty for stable releases!
|
VER_STATUS = # Should be empty for stable releases!
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user