1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-07 09:52:18 +02:00

Compare commits

...

39 Commits

Author SHA1 Message Date
Christophe Dumez
d1858de2d6 Tagged v2.4.4 release 2010-10-01 21:04:05 +00:00
Christophe Dumez
414685910b Fix to last commit 2010-10-01 20:52:53 +00:00
Christophe Dumez
d61b9c5d4d Bump to v2.4.4 2010-10-01 20:22:20 +00:00
Christophe Dumez
cf86a1cecd BUGFIX: Fix possible search engine plugin update 2010-10-01 20:19:17 +00:00
Christophe Dumez
a3f3287e24 Clean program exit on system shutdown/log out 2010-10-01 20:05:54 +00:00
Christophe Dumez
6e18d780ba Updated Changelog 2010-09-28 16:57:31 +00:00
Christophe Dumez
7dde763fc6 Fix wrong mapping to source model 2010-09-28 16:56:49 +00:00
Christophe Dumez
8c85ffca5f Fix tiny memory leak 2010-09-27 20:47:26 +00:00
Christophe Dumez
321e568d86 TorrentDownloads performance improvement 2010-09-27 19:48:58 +00:00
Christophe Dumez
e0649a7e78 Bump to v2.4.3 2010-09-27 17:49:33 +00:00
Christophe Dumez
4cd3233cd0 Better fix for encoding issue 2010-09-27 17:36:42 +00:00
Christophe Dumez
c554528afe BUGFIX: Fix possible crash when changing the save path in addition dialog 2010-09-27 17:35:34 +00:00
Christophe Dumez
7ab7f4b0fc BUGFIX: Fix encoding issue in command line parameters processing 2010-09-27 17:19:27 +00:00
Christophe Dumez
58c0ac7638 BUGFIX: Really fix manual editing of save path in torrent addition dialog 2010-09-26 17:10:21 +00:00
Christophe Dumez
2514224a3a Bump to v2.4.2 2010-09-26 16:57:04 +00:00
Christophe Dumez
247f6b4a8e BUGFIX: Fix display of torrent content in addition dialog 2010-09-26 16:53:20 +00:00
Christophe Dumez
3d89864b75 Fix deprecation warning 2010-09-26 11:15:00 +00:00
Christophe Dumez
7ac75ad772 Fix to last commit 2010-09-25 19:41:12 +00:00
Christophe Dumez
caa628371f BUGFIX: Limit torrent addition dialog width to fit the screen 2010-09-25 19:40:29 +00:00
Christophe Dumez
fd31f632d9 BUGFIX: Fix saving to drive root on Windows 2010-09-25 17:38:20 +00:00
Christophe Dumez
a25b6e087b Bump to v2.4.1 (release is nearing) 2010-09-25 17:08:21 +00:00
Christophe Dumez
1626d938d1 Fix save path encoding on non-utf8 systems (e.g. Windows)
Fix progress bar style on Windows
2010-09-25 17:02:40 +00:00
Christophe Dumez
a4c7640499 BUGFIX: Use AND operator for torrentdownloads.net searches 2010-09-25 13:12:02 +00:00
Christophe Dumez
2c1b93a12b BUGFIX: Fix locale switching from Web UI 2010-09-25 12:44:31 +00:00
Christophe Dumez
8f19025c2a Remove obsolete strings from language files 2010-09-25 12:12:08 +00:00
Christophe Dumez
20d41bcff2 Fix Web Ui for spanish users 2010-09-25 11:44:44 +00:00
Christophe Dumez
1ad77e00ff BUGFIX: Added support for | (OR) operator in RSS feed downloader 2010-09-25 11:31:33 +00:00
Christophe Dumez
0b65c02666 BUGFIX: Fix possible issue with temporary download path persistence 2010-09-25 11:05:02 +00:00
Christophe Dumez
294095367a BUGFIX: Add .torrent extension only when missing (torrent creator) 2010-09-25 10:49:13 +00:00
Christophe Dumez
05a6ffd554 Fix download in scan dir persistence (closes #633396) 2010-09-25 10:41:17 +00:00
Christophe Dumez
e0a30dc40c BUGFIX: Save path can now be edited in torrent addition dialog 2010-09-25 09:14:00 +00:00
Christophe Dumez
1940bc4e73 Higher maximum download limit 2010-09-25 08:04:36 +00:00
Christophe Dumez
a7e4e0273a Detect OGV as a previewable format 2010-09-25 07:42:55 +00:00
Christophe Dumez
29a9d57cdc Updated Changelog 2010-09-19 08:40:44 +00:00
Christophe Dumez
9c7a4e4983 Fixes to German translation 2010-09-19 08:39:14 +00:00
Christophe Dumez
35ead5bcf2 Updated Spanish and Catalan translations 2010-08-27 07:43:42 +00:00
Christophe Dumez
645bd58d79 Updated Arabic translation 2010-08-25 06:34:50 +00:00
Christophe Dumez
6c47a552ab Updated release date in Changelog 2010-08-24 18:28:56 +00:00
Christophe Dumez
f54bc8bea4 Branched v2.4.x 2010-08-24 18:27:18 +00:00
91 changed files with 1170 additions and 97791 deletions

View File

@@ -1,4 +1,35 @@
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.4.0
* Fri Oct 1 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.4
- BUGFIX: Clean program exit on system shutdown/logout
- BUGFIX: Fix possible search engine plugin update
* Tue Sep 28 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.3
- BUGFIX: Fix encoding issue in command line parameters processing
- BUGFIX: Fix possible crash when changing the save path in addition dialog
- BUGFIX: Fix wrong mapping to source model
* Sun Sep 26 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.2
- BUGFIX: Fix display of torrent content in addition dialog
- BUGFIX: Really fix manual editing of save path in torrent addition dialog
* Sun Sep 26 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.1
- I18N: Updated Arabic translation
- I18N: Fixes to German translation
- BUGFIX: Save path can now be edited in torrent addition dialog
- BUGFIX: Fix save path encoding on non-utf8 systems
- BUGFIX: Fix saving to drive root on Windows
- BUGFIX: OGV can now be previewed
- BUGFIX: Maximum download limit is now 10MB/s
- BUGFIX: Fix 'download in scan dir' persistence
- BUGFIX: Add .torrent extension only when missing (torrent creator)
- BUGFIX: Fix possible issue with temporary download path persistence
- BUGFIX: Added support for | (OR) operator in RSS feed downloader
- BUGFIX: Fix Web UI for spanish users
- BUGFIX: Fix locale switching from Web UI
- BUGFIX: Use AND operator for torrentdownloads.net searches
- BUGFIX: Limit torrent addition dialog width to fit the screen
- COSMETIC: Fix progress bars style on Windows
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0
- FEATURE: Added actions to "Move to top/bottom" of priority queue
- FEATURE: Auto-Shutdown on downloads completion
- FEATURE: Email notification on download completion

View File

@@ -71,6 +71,7 @@
void qt_mac_set_dock_menu(QMenu *menu);
#endif
#include "lineedit.h"
#include "sessionapplication.h"
using namespace libtorrent;
@@ -88,6 +89,8 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), for
ui_locked = Preferences::isUILocked();
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION)));
displaySpeedInTitle = Preferences::speedInTitleBar();
// Clean exit on log out
connect(static_cast<SessionApplication*>(qApp), SIGNAL(sessionIsShuttingDown()), this, SLOT(deleteBTSession()));
// Setting icons
this->setWindowIcon(QIcon(QString::fromUtf8(":/Icons/skin/qbittorrent32.png")));
actionOpen->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/open.png")));
@@ -110,7 +113,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), for
actionSet_global_download_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/download.png")));
actionDocumentation->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/qb_question.png")));
actionLock_qBittorrent->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/encrypted32.png")));
QMenu *lockMenu = new QMenu();
lockMenu = new QMenu();
QAction *defineUiLockPasswdAct = lockMenu->addAction(tr("Set the password..."));
connect(defineUiLockPasswdAct, SIGNAL(triggered()), this, SLOT(defineUILockPassword()));
actionLock_qBittorrent->setMenu(lockMenu);
@@ -248,6 +251,16 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), for
#endif
}
void GUI::deleteBTSession() {
guiUpdater->stop();
status_bar->stopTimer();
if(BTSession) {
delete BTSession;
BTSession = 0;
}
QTimer::singleShot(0, this, SLOT(close()));
}
// Destructor
GUI::~GUI() {
qDebug("GUI destruction");
@@ -258,7 +271,9 @@ GUI::~GUI() {
#endif
// Async deletion of Bittorrent session as early as possible
// in order to speed up exit
session_proxy sp = BTSession->asyncDeletion();
session_proxy sp;
if(BTSession)
sp = BTSession->asyncDeletion();
// Some saving
properties->saveSettings();
disconnect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tab_changed(int)));
@@ -269,6 +284,7 @@ GUI::~GUI() {
delete search_filter;
delete transferList;
delete guiUpdater;
delete lockMenu;
if(createTorrentDlg)
delete createTorrentDlg;
if(console)
@@ -662,7 +678,7 @@ void GUI::closeEvent(QCloseEvent *e) {
e->accept();
return;
}
if(settings.value(QString::fromUtf8("Preferences/General/ExitConfirm"), true).toBool() && BTSession->hasActiveTorrents()) {
if(settings.value(QString::fromUtf8("Preferences/General/ExitConfirm"), true).toBool() && BTSession && BTSession->hasActiveTorrents()) {
if(e->spontaneous() || force_exit) {
if(!isVisible())
show();

View File

@@ -80,6 +80,7 @@ public slots:
void downloadFromURLList(const QStringList& urls);
void updateAltSpeedsBtn(bool alternative);
void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused);
void deleteBTSession();
protected slots:
// GUI related slots
@@ -170,6 +171,7 @@ private:
QAction *prioSeparator2;
QSplitter *hSplitter;
QSplitter *vSplitter;
QMenu *lockMenu;
// Search
QPointer<SearchEngine> searchEngine;
// RSS

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.4.0
Comment=V2.4.4
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[ar]=العميل Bittorrent

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -47,7 +47,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>2.4.0</string>
<string>2.4.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>

View File

@@ -165,6 +165,7 @@ Bittorrent::~Bittorrent() {
#endif
saveSessionState();
saveFastResumeData();
qDebug("Deleting the session");
// Delete session
session_proxy sp = s->abort();
delete s;
@@ -867,13 +868,13 @@ QTorrentHandle Bittorrent::addMagnetUri(QString magnet_uri, bool resumed) {
qDebug("addMagnetURI: Temp folder is enabled.");
qDebug("addTorrent::Temp folder is enabled.");
QString torrent_tmp_path = defaultTempPath.replace("\\", "/");
p.save_path = torrent_tmp_path.toLocal8Bit().constData();
p.save_path = torrent_tmp_path.toUtf8().constData();
// Check if save path exists, creating it otherwise
if(!QDir(torrent_tmp_path).exists())
QDir().mkpath(torrent_tmp_path);
qDebug("addMagnetURI: using save_path: %s", qPrintable(torrent_tmp_path));
} else {
p.save_path = savePath.toLocal8Bit().constData();
p.save_path = savePath.toUtf8().constData();
// Check if save path exists, creating it otherwise
if(!QDir(savePath).exists())
QDir().mkpath(savePath);
@@ -1121,13 +1122,13 @@ QTorrentHandle Bittorrent::addTorrent(QString path, bool fromScanDir, QString fr
if(!torrent_tmp_path.endsWith("/")) torrent_tmp_path += "/";
torrent_tmp_path += root_folder;
}
p.save_path = torrent_tmp_path.toLocal8Bit().constData();
p.save_path = torrent_tmp_path.toUtf8().constData();
// Check if save path exists, creating it otherwise
if(!QDir(torrent_tmp_path).exists())
QDir().mkpath(torrent_tmp_path);
qDebug("addTorrent: using save_path: %s", qPrintable(torrent_tmp_path));
} else {
p.save_path = savePath.toLocal8Bit().constData();
p.save_path = savePath.toUtf8().constData();
// Check if save path exists, creating it otherwise
if(!QDir(savePath).exists())
QDir().mkpath(savePath);
@@ -1541,6 +1542,7 @@ void Bittorrent::saveTempFastResumeData() {
// Only save fast resume data for unfinished and unpaused torrents (Optimization)
// Called periodically and on exit
void Bittorrent::saveFastResumeData() {
qDebug("Saving fast resume data...");
// Stop listening for alerts
resumeDataTimer.stop();
timerAlerts->stop();
@@ -2490,7 +2492,10 @@ void Bittorrent::addConsoleMessage(QString msg, QString) {
qDebug("getSavePath, got save_path from persistent data: %s", qPrintable(savePath));
}
// Clean path
savePath = savePath.replace("\\", "/");
savePath = misc::expandPath(savePath);
if(!savePath.endsWith("/"))
savePath += "/";
return savePath;
}

View File

@@ -191,7 +191,8 @@ void createtorrent::on_createButton_clicked(){
QString destination = QFileDialog::getSaveFileName(this, tr("Select destination torrent file"), last_path, tr("Torrent Files")+QString::fromUtf8(" (*.torrent)"));
if(!destination.isEmpty()) {
settings.setValue("CreateTorrent/last_save_path", misc::removeLastPathPart(destination));
destination += QString::fromUtf8(".torrent");
if(!destination.toUpper().endsWith(".TORRENT"))
destination += QString::fromUtf8(".torrent");
} else {
return;
}

View File

@@ -270,6 +270,7 @@ void engineSelectDlg::installPlugin(QString path, QString plugin_name) {
// Backup in case install fails
QFile::copy(dest_path, dest_path+".bak");
misc::safeRemove(dest_path);
misc::safeRemove(dest_path+"c");
update = true;
}
// Copy the plugin

View File

@@ -38,6 +38,7 @@
//#include "proplistdelegate.h"
#include "torrentpersistentdata.h"
#include <QDebug>
#include <QTranslator>
EventManager::EventManager(QObject *parent, Bittorrent *BTSession)
: QObject(parent), BTSession(BTSession)
@@ -124,8 +125,20 @@ QList<QVariantMap> EventManager::getPropFilesInfo(QString hash) const {
void EventManager::setGlobalPreferences(QVariantMap m) const {
// UI
if(m.contains("locale"))
Preferences::setLocale(m["locale"].toString());
if(m.contains("locale")) {
QString locale = m["locale"].toString();
if(Preferences::getLocale() != locale) {
QTranslator *translator = new QTranslator;
if(translator->load(QString::fromUtf8(":/lang/qbittorrent_") + locale)){
qDebug("%s locale recognized, using translation.", qPrintable(locale));
}else{
qDebug("%s locale unrecognized, using default (en_GB).", qPrintable(locale));
}
qApp->installTranslator(translator);
}
Preferences::setLocale(locale);
}
// Downloads
if(m.contains("save_path"))
Preferences::setSavePath(m["save_path"].toString());

View File

@@ -105,7 +105,7 @@ public:
QStringList getNotMatchingTokens() const {
QString notmatching = this->value("not", "").toString();
return notmatching.split(" ");
return notmatching.split(QRegExp("[\\s|]"));
}
QString getNotMatchingTokens_str() const {

View File

@@ -132,6 +132,7 @@ namespace json {
tmp += c;
}
}
if(!tmp.isEmpty()) couples << tmp;
foreach(QString couple, couples) {
QStringList parts = couple.split(":");
if(parts.size() != 2) continue;

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -2988,12 +2988,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>ScanFoldersModel</name>
<message>
<location filename="../scannedfoldersmodel.cpp" line="102"/>
<location filename="../scannedfoldersmodel.cpp" line="103"/>
<source>Watched Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../scannedfoldersmodel.cpp" line="103"/>
<location filename="../scannedfoldersmodel.cpp" line="104"/>
<source>Download here</source>
<translation type="unfinished"></translation>
</message>
@@ -4243,14 +4243,14 @@ Please install it manually.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../createtorrent_imp.cpp" line="213"/>
<location filename="../createtorrent_imp.cpp" line="227"/>
<location filename="../createtorrent_imp.cpp" line="238"/>
<location filename="../createtorrent_imp.cpp" line="214"/>
<location filename="../createtorrent_imp.cpp" line="228"/>
<location filename="../createtorrent_imp.cpp" line="239"/>
<source>Torrent creation</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../createtorrent_imp.cpp" line="238"/>
<location filename="../createtorrent_imp.cpp" line="239"/>
<source>Torrent was created successfully:</source>
<translation type="unfinished"></translation>
</message>
@@ -4265,7 +4265,7 @@ Please install it manually.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../createtorrent_imp.cpp" line="213"/>
<location filename="../createtorrent_imp.cpp" line="214"/>
<source>Torrent creation was unsuccessful, reason: %1</source>
<translation type="unfinished"></translation>
</message>
@@ -4291,7 +4291,7 @@ Please install it manually.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../createtorrent_imp.cpp" line="227"/>
<location filename="../createtorrent_imp.cpp" line="228"/>
<source>Created torrent file is invalid. It won&apos;t be added to download list.</source>
<translation type="unfinished"></translation>
</message>
@@ -4686,13 +4686,13 @@ However, those plugins were disabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc.cpp" line="665"/>
<location filename="../misc.cpp" line="666"/>
<source>%1h %2m</source>
<comment>e.g: 3hours 5minutes</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc.cpp" line="670"/>
<location filename="../misc.cpp" line="671"/>
<source>%1d %2h</source>
<comment>e.g: 2days 10hours</comment>
<translation type="unfinished"></translation>
@@ -4709,21 +4709,21 @@ However, those plugins were disabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc.cpp" line="613"/>
<location filename="../misc.cpp" line="618"/>
<location filename="../misc.cpp" line="622"/>
<location filename="../misc.cpp" line="625"/>
<location filename="../misc.cpp" line="614"/>
<location filename="../misc.cpp" line="619"/>
<location filename="../misc.cpp" line="623"/>
<location filename="../misc.cpp" line="626"/>
<source>Unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc.cpp" line="656"/>
<location filename="../misc.cpp" line="657"/>
<source>&lt; 1m</source>
<comment>&lt; 1 minute</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../misc.cpp" line="660"/>
<location filename="../misc.cpp" line="661"/>
<source>%1m</source>
<comment>e.g: 10minutes</comment>
<translation type="unfinished"></translation>
@@ -4732,58 +4732,58 @@ However, those plugins were disabled.</source>
<context>
<name>options_imp</name>
<message>
<location filename="../options_imp.cpp" line="1216"/>
<location filename="../options_imp.cpp" line="1218"/>
<location filename="../options_imp.cpp" line="1217"/>
<location filename="../options_imp.cpp" line="1219"/>
<source>Choose export directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1251"/>
<location filename="../options_imp.cpp" line="1253"/>
<location filename="../options_imp.cpp" line="1268"/>
<location filename="../options_imp.cpp" line="1270"/>
<location filename="../options_imp.cpp" line="1252"/>
<location filename="../options_imp.cpp" line="1254"/>
<location filename="../options_imp.cpp" line="1269"/>
<location filename="../options_imp.cpp" line="1271"/>
<source>Choose a save directory</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1233"/>
<location filename="../options_imp.cpp" line="1235"/>
<location filename="../options_imp.cpp" line="1234"/>
<location filename="../options_imp.cpp" line="1236"/>
<source>Choose an ip filter file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1173"/>
<location filename="../options_imp.cpp" line="1174"/>
<source>Add directory to scan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1179"/>
<location filename="../options_imp.cpp" line="1180"/>
<source>Folder is already being watched.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1182"/>
<location filename="../options_imp.cpp" line="1183"/>
<source>Folder does not exist.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1185"/>
<location filename="../options_imp.cpp" line="1186"/>
<source>Folder is not readable.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1193"/>
<location filename="../options_imp.cpp" line="1194"/>
<source>Failure</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1193"/>
<location filename="../options_imp.cpp" line="1194"/>
<source>Failed to add Scan Folder &apos;%1&apos;: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../options_imp.cpp" line="1233"/>
<location filename="../options_imp.cpp" line="1235"/>
<location filename="../options_imp.cpp" line="1234"/>
<location filename="../options_imp.cpp" line="1236"/>
<source>Filters</source>
<translation type="unfinished"></translation>
</message>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More