You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-09 18:32:15 +02:00
Compare commits
54 Commits
release-1.
...
release-0.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bf83cae284 | ||
![]() |
1057cdbe44 | ||
![]() |
fe4c1859a8 | ||
![]() |
0d8a22dcda | ||
![]() |
a643bd64db | ||
![]() |
21be57d06f | ||
![]() |
1c5262b1ed | ||
![]() |
a01a461dd0 | ||
![]() |
06448509fb | ||
![]() |
985bb8926b | ||
![]() |
d0a766d49a | ||
![]() |
7140a532ed | ||
![]() |
db4f3ab08a | ||
![]() |
1deb7b88bc | ||
![]() |
0d40bb0d68 | ||
![]() |
b033893d39 | ||
![]() |
e9693d3829 | ||
![]() |
bc7d9d00ab | ||
![]() |
0c05c893a0 | ||
![]() |
8b3c4f8143 | ||
![]() |
90bc79d4e1 | ||
![]() |
676d6764b9 | ||
![]() |
cb08280180 | ||
![]() |
ecede8b53e | ||
![]() |
f6a54f6fcf | ||
![]() |
6039851f13 | ||
![]() |
f1decc5432 | ||
![]() |
12629a9e38 | ||
![]() |
14f13d0406 | ||
![]() |
e0213dc6c3 | ||
![]() |
2f065bd9ea | ||
![]() |
b87882dd59 | ||
![]() |
df06fcac03 | ||
![]() |
3de95cdb04 | ||
![]() |
062fd6d81c | ||
![]() |
82d9e19e96 | ||
![]() |
22eead5f9a | ||
![]() |
f5627e4345 | ||
![]() |
da867a767b | ||
![]() |
b751954566 | ||
![]() |
f774228529 | ||
![]() |
4d6aad8cab | ||
![]() |
188e3956d8 | ||
![]() |
88d7400644 | ||
![]() |
41254bcdf4 | ||
![]() |
067aa010b6 | ||
![]() |
f94197816c | ||
![]() |
78e976e97e | ||
![]() |
225d8bcc5b | ||
![]() |
9bd29ebdb0 | ||
![]() |
7565902fc1 | ||
![]() |
0b8a1f8c1f | ||
![]() |
8800614077 | ||
![]() |
156001f51d |
25
Changelog
25
Changelog
@@ -1,4 +1,23 @@
|
||||
* Unknown - Christophe Dumez <chris@qbittorrent.org> - v0.9.0
|
||||
* Mon May 07 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.3
|
||||
- BUGFIX: Fixed pause toggle on double-click in download list
|
||||
- BUGFIX: The torrent size displayed now only takes unfiltered files into account
|
||||
- BUGFIX: Fixed compiling errors with libtorrent svn (future v0.13 with UPnP enabled)
|
||||
- BUGFIX: Remember sorted column in download list on restart
|
||||
- BUGFIX: Small fix in the german translation
|
||||
- BUGFIX: Some fixes in slovak translation
|
||||
|
||||
* Tue Apr 10 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.2
|
||||
- BUGFIX: Window can now stay maximized on exit
|
||||
- BUGFIX: Use PKGCONFIG again for configuring libtorrent
|
||||
- BUGFIX: Allow to compile with libtorrent v0.11
|
||||
- BUGFIX: Disabled main window context menu (annoying)
|
||||
- I18N: Added Japanese translation
|
||||
- I18N: Updated Turkish translation
|
||||
|
||||
* Wed Apr 04 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.1
|
||||
- BUGFIX: A lot of fixes in configure file
|
||||
|
||||
* Sun Apr 01 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.0
|
||||
- FEATURE: Based on libtorrent v0.12
|
||||
- FEATURE: Based on Qt4.2
|
||||
- FEATURE: Brand new trayicon from Qt4.2
|
||||
@@ -12,6 +31,7 @@
|
||||
- FEATURE: Added Autocompletion to search engine
|
||||
- FEATURE: Splitted BT & GUI parts (huge code rewriting & optimization)
|
||||
- FEATURE: New parameters for configure file to point to custom locations for libtorrent/libcurl
|
||||
- FEATURE: Update application style according to the system (WindowsXP, MacOS, X11)
|
||||
- BUGFIX: Two torrents can now have the same name although they are different (use their hash)
|
||||
- BUGFIX: Fixed download from url that would fail sometimes
|
||||
- BUGFIX: Save directory was reset to default when filtering files in torrent
|
||||
@@ -25,6 +45,9 @@
|
||||
- BUGFIX: Create Options object only when necessary (to save memory)
|
||||
- BUGFIX: Let libtorrent store the torrent handles (save memory)
|
||||
- BUGFIX: Set DHT Port only when DHT is enabled
|
||||
- BUGFIX: Made ipfilter.dat parser less sensitive to errors
|
||||
- BUGFIX: Bring main window to foreground when asking for exit confirmation
|
||||
- I18N: Added Danish translation
|
||||
- I18N: Better internationalization thanks to dynamic text support
|
||||
- COSMETIC: Replaced OSD messages by Qt4.2 systray messages
|
||||
|
||||
|
2
INSTALL
2
INSTALL
@@ -16,7 +16,7 @@ will install and execute qBittorrent hopefully without any problems.
|
||||
Dependencies:
|
||||
- Qt >= 4.2 (libqt-devel, libqtgui, libqtcore, libqtnetwork)
|
||||
|
||||
- libtorrent by Arvid Norberg (>= v0.12 REQUIRED)
|
||||
- libtorrent by Arvid Norberg (>= v0.11 REQUIRED, >= 0.12 ADVISED)
|
||||
-> http://libtorrent.sf.net
|
||||
Be carefull: another library (the one used by rtorrent) use the same name.
|
||||
These are TWO different libraries and qBittorrent will only work with the one provided
|
||||
|
4
TODO
4
TODO
@@ -36,7 +36,3 @@
|
||||
- Add IPv6 support (at least start working on it)
|
||||
- UPnP support?
|
||||
|
||||
// In v0.9.0
|
||||
- Update translations (FR, SV, NB, PL, RU, DE done)
|
||||
- Bug squashing
|
||||
- Wait for libtorrent v0.12 official release
|
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libboost
|
||||
arg: with-libboost-inc=[path], Path to libboost include files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
class qc_libboost : public ConfObj
|
||||
@@ -10,31 +11,46 @@ public:
|
||||
QString name() const { return "libboost"; }
|
||||
QString shortname() const { return "libboost"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
QStringList sl;
|
||||
sl += "/usr/include";
|
||||
sl += "/usr/local/include";
|
||||
sl += "/sw/include";
|
||||
if(!conf->findHeader("boost/format.hpp", sl, &s)) {
|
||||
qWarning("libboost includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
if(!conf->findHeader("boost/date_time/posix_time/posix_time.hpp", sl, &s)) {
|
||||
qWarning("libboost-date-time includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
if(!conf->findHeader("boost/filesystem/path.hpp", sl, &s)) {
|
||||
qWarning("libboost-filesystem includes not found!");
|
||||
return false;
|
||||
}
|
||||
if(!conf->findHeader("boost/thread.hpp", sl, &s)) {
|
||||
qWarning("libboost-thread includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
return true;
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "boost/format.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/thread.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "boost/format.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/thread.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -12,43 +12,50 @@ public:
|
||||
QString name() const { return "libcurl"; }
|
||||
QString shortname() const { return "libcurl"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBCURL_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "curl/curl.h")) {
|
||||
qWarning("libcurl includes not found!");
|
||||
return false;
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBCURL_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "curl/curl.h")) {
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl += "/usr/include";
|
||||
sl += "/usr/local/include";
|
||||
if(!conf->findHeader("curl/curl.h", sl, &s)) {
|
||||
qWarning("libcurl includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "curl/curl.h")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBCURL_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "curl")) {
|
||||
qWarning("libcurl library not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
if(!conf->findLibrary("curl", &s)) {
|
||||
qWarning("libcurl library not found!");
|
||||
return false;
|
||||
}
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
|
||||
conf->addLib("-lcurl");
|
||||
|
||||
return true;
|
||||
s = conf->getenv("QC_WITH_LIBCURL_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "curl")) {
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
sl << "/usr/local/lib/";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkLibrary(s, "curl")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
conf->addLib("-lcurl");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -9,46 +9,66 @@ class qc_libtorrent : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libtorrent(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libtorrent >= 0.12"; }
|
||||
QString name() const { return "libtorrent >= 0.11 (>= 0.12 ADVISED)"; }
|
||||
QString shortname() const { return "libtorrent"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) {
|
||||
qWarning("libtorrent v0.12 includes not found!\nYou can download it at http://www.libtorrent.net");
|
||||
return false;
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) {
|
||||
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||
conf->addDefine("NO_PEX");
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include/";
|
||||
sl << "/usr/local/include";
|
||||
if(!conf->findHeader("libtorrent/extensions/ut_pex.hpp", sl, &s)) {
|
||||
qWarning("libtorrent v0.12 includes not found!\nYou can download it at http://www.libtorrent.net");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
if(conf->checkHeader(s, "libtorrent/lsd.hpp")){
|
||||
conf->addDefine("V_0_13");
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){
|
||||
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||
conf->addDefine("NO_PEX");
|
||||
}
|
||||
if(conf->checkHeader(s, "libtorrent/lsd.hpp")){
|
||||
conf->addDefine("V_0_13");
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
conf->addIncludePath(s+QDir::separator()+"libtorrent");
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "torrent")) {
|
||||
qWarning("libtorrent library not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
if(!conf->findLibrary("torrent", &s)) {
|
||||
qWarning("libtorrent library not found!");
|
||||
return false;
|
||||
}
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
|
||||
conf->addLib("-ltorrent");
|
||||
|
||||
return true;
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
sl << "/usr/local/lib/";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkLibrary(s, "torrent")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
//conf->addLib("-ltorrent");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
176
src/GUI.cpp
176
src/GUI.cpp
File diff suppressed because it is too large
Load Diff
12
src/GUI.h
12
src/GUI.h
@@ -23,11 +23,8 @@
|
||||
#define GUI_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QHash>
|
||||
#include <QProcess>
|
||||
#include <QTcpServer>
|
||||
#include <QTcpSocket>
|
||||
#include <QCloseEvent>
|
||||
#include <QSystemTrayIcon>
|
||||
|
||||
#include <libtorrent/entry.hpp>
|
||||
@@ -55,6 +52,8 @@ class DLListDelegate;
|
||||
class SearchListDelegate;
|
||||
class downloadThread;
|
||||
class downloadFromURL;
|
||||
class QTcpSocket;
|
||||
class QCloseEvent;
|
||||
|
||||
using namespace libtorrent;
|
||||
namespace fs = boost::filesystem;
|
||||
@@ -82,6 +81,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
SearchListDelegate *SearchDelegate;
|
||||
unsigned int nbTorrents;
|
||||
QLabel *connecStatusLblIcon;
|
||||
bool force_exit;
|
||||
// Preview
|
||||
previewSelect *previewSelection;
|
||||
QProcess *previewProcess;
|
||||
@@ -117,7 +117,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void loadCheckedSearchEngines();
|
||||
bool loadColWidthDLList();
|
||||
bool loadColWidthSearchList();
|
||||
void sortDownloadList(int index);
|
||||
void sortDownloadList(int index, Qt::SortOrder startSortOrder=Qt::AscendingOrder, bool fromLoadColWidth=false);
|
||||
void sortDownloadListFloat(int index, Qt::SortOrder sortOrder);
|
||||
void sortDownloadListString(int index, Qt::SortOrder sortOrder);
|
||||
void sortSearchList(int index);
|
||||
@@ -136,6 +136,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void readSettings();
|
||||
void forceExit();
|
||||
// Torrent actions
|
||||
size_type torrentEffectiveSize(QString hash) const;
|
||||
void showProperties(const QModelIndex &index);
|
||||
void propertiesSelection();
|
||||
void pauseSelection();
|
||||
@@ -183,6 +184,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void portListeningFailure();
|
||||
void trackerError(const QString& hash, const QString& time, const QString& msg);
|
||||
void trackerAuthenticationRequired(torrent_handle& h);
|
||||
void updateFileSize(QString hash);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
@@ -193,7 +195,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
int getRowFromHash(const QString& name) const;
|
||||
int getRowFromHash(const QString& hash) const;
|
||||
float getNovaVersion(const QString& novaPath) const;
|
||||
QByteArray getNovaChangelog(const QString& novaPath) const;
|
||||
void updateNova() const;
|
||||
|
BIN
src/Icons/flags/denmark.png
Normal file
BIN
src/Icons/flags/denmark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 270 B |
BIN
src/Icons/flags/japan.png
Normal file
BIN
src/Icons/flags/japan.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 324 B |
@@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Categories=Qt;Application;Network;P2P
|
||||
Comment=V0.9.0
|
||||
Comment=V0.9.2
|
||||
Encoding=UTF-8
|
||||
Exec=qbittorrent
|
||||
GenericName=Bittorrent client
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 49 KiB |
@@ -782,6 +782,9 @@
|
||||
<property name="enabled" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="contextMenuPolicy" >
|
||||
<enum>Qt::NoContextMenu</enum>
|
||||
</property>
|
||||
<property name="movable" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
|
@@ -45,17 +45,19 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
te_translation->append(QString::fromUtf8(
|
||||
"<i>- <u>Bulgarian:</u> Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)<br>\
|
||||
- <u>Catalan:</u> Gekko Dam Beer (gekko04@users.sourceforge.net)<br>\
|
||||
- <u>Chinese (Simplified):</u> Chen Wuyang (wuyang@gmail.com)<br>\
|
||||
- <u>Chinese (Simplified):</u> Guo Yue (guoyue0418@hotmail.com)<br>\
|
||||
- <u>Chinese (Traditional):</u> Jeff Chen (jeff.cn.chen@gmail.com)<br>\
|
||||
- <u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)<br>\
|
||||
- <u>Dutch:</u> Luke Niesink (luke@lukeniesink.net)<br>\
|
||||
- <u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net)<br>\
|
||||
- <u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)<br>\
|
||||
- <u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)<br>\
|
||||
- <u>Italian:</u> Ferraro Luciano (luciano.ferraro@gmail.com)<br>\
|
||||
- <u>Japanese:</u> Nardog (nardog@e2umail.com)<br>\
|
||||
- <u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)<br>\
|
||||
- <u>Norwegian:</u> Lars-Erik Labori (hamil@users.sourceforge.net)<br>\
|
||||
- <u>Polish:</u> Adam Babol (a-b@users.sourceforge.net)<br>\
|
||||
- <u>Portuguese:</u> Bruno Nunes (brunopatriarca@users.sourceforge.net)<br>\
|
||||
- <u>Portuguese:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
|
||||
- <u>Romanian:</u> Obada Denis (obadadenis@users.sourceforge.net)<br>\
|
||||
- <u>Russian:</u> Nick Khazov (m2k3d0n at users.sourceforge.net)<br>\
|
||||
- <u>Slovak:</u> helix84<br>\
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -21,9 +21,6 @@
|
||||
#ifndef __BITTORRENT_H__
|
||||
#define __BITTORRENT_H__
|
||||
|
||||
#include <QHash>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <QTimer>
|
||||
|
||||
#include <libtorrent/entry.hpp>
|
||||
@@ -33,9 +30,15 @@
|
||||
#include <libtorrent/session_settings.hpp>
|
||||
#include <libtorrent/identify_client.hpp>
|
||||
#include <libtorrent/alert_types.hpp>
|
||||
#include <libtorrent/ip_filter.hpp>
|
||||
|
||||
#ifndef NO_PEX
|
||||
#include <libtorrent/extensions/metadata_transfer.hpp>
|
||||
#include <libtorrent/extensions/ut_pex.hpp>
|
||||
#include <libtorrent/ip_filter.hpp>
|
||||
#endif
|
||||
#ifdef NO_PEX
|
||||
#include <QHash>
|
||||
#endif
|
||||
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
@@ -60,6 +63,9 @@ class bittorrent : public QObject{
|
||||
downloadThread *downloader;
|
||||
QStringList supported_preview_extensions;
|
||||
QString defaultSavePath;
|
||||
#ifdef NO_PEX
|
||||
QHash<QString, torrent_handle> torrent_list;
|
||||
#endif
|
||||
|
||||
protected:
|
||||
QString getSavePath(const QString& hash);
|
||||
@@ -69,7 +75,12 @@ class bittorrent : public QObject{
|
||||
bittorrent();
|
||||
~bittorrent();
|
||||
torrent_handle getTorrentHandle(const QString& hash) const;
|
||||
#ifndef NO_PEX
|
||||
std::vector<torrent_handle> getTorrentHandles() const;
|
||||
#endif
|
||||
#ifdef NO_PEX
|
||||
QList<torrent_handle> getTorrentHandles() const;
|
||||
#endif
|
||||
bool isPaused(const QString& hash) const;
|
||||
bool hasFilteredFiles(const QString& fileHash) const;
|
||||
bool isFilePreviewPossible(const QString& fileHash) const;
|
||||
@@ -95,7 +106,9 @@ class bittorrent : public QObject{
|
||||
void saveFastResumeData();
|
||||
void enableDirectoryScanning(const QString& scan_dir);
|
||||
void disableDirectoryScanning();
|
||||
#ifndef NO_PEX
|
||||
void enablePeerExchange();
|
||||
#endif
|
||||
void enableIPFilter(ip_filter filter);
|
||||
void disableIPFilter();
|
||||
void reloadTorrent(const torrent_handle &h, bool compact_mode = true);
|
||||
@@ -108,6 +121,9 @@ class bittorrent : public QObject{
|
||||
void setGlobalRatio(float ratio);
|
||||
void setDHTPort(int dht_port);
|
||||
void setSessionSettings(session_settings sessionSettings);
|
||||
#ifdef V_0_13
|
||||
void setProxySettings(proxy_settings proxySettings);
|
||||
#endif
|
||||
void setDefaultSavePath(const QString& savepath);
|
||||
|
||||
protected slots:
|
||||
@@ -131,6 +147,7 @@ class bittorrent : public QObject{
|
||||
void scanDirFoundTorrents(const QStringList& pathList);
|
||||
void newDownloadedTorrent(const QString& path, const QString& url);
|
||||
void aboutToDownloadFromUrl(const QString& url);
|
||||
void updateFileSize(QString hash);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -32,7 +32,10 @@
|
||||
#include <libtorrent/file.hpp>
|
||||
#include <libtorrent/storage.hpp>
|
||||
#include <libtorrent/hasher.hpp>
|
||||
|
||||
#ifndef NO_PEX
|
||||
#include <libtorrent/file_pool.hpp>
|
||||
#endif
|
||||
|
||||
#include "createtorrent_imp.h"
|
||||
|
||||
@@ -105,9 +108,18 @@ void createtorrent::on_createButton_clicked(){
|
||||
|
||||
add_files(t, full_path.branch_path(), full_path.leaf());
|
||||
t.set_piece_size(piece_size);
|
||||
|
||||
file_pool fp;
|
||||
#ifndef NO_PEX
|
||||
file_pool fp;
|
||||
#ifndef V_0_13
|
||||
storage st(t, full_path.branch_path(), fp);
|
||||
#endif
|
||||
#ifdef V_0_13
|
||||
boost::scoped_ptr<storage_interface> st(default_storage_constructor(t, full_path.branch_path(), fp));
|
||||
#endif
|
||||
#endif
|
||||
#ifdef NO_PEX
|
||||
storage st(t, full_path.branch_path());
|
||||
#endif
|
||||
QStringList trackers = txt_announce->toPlainText().split('\n');
|
||||
for(int i=0; i<trackers.size(); ++i){
|
||||
t.add_tracker((const char*)trackers.at(i).toUtf8());
|
||||
@@ -118,7 +130,12 @@ void createtorrent::on_createButton_clicked(){
|
||||
std::vector<char> buf(piece_size);
|
||||
for (int i = 0; i < num; ++i)
|
||||
{
|
||||
#ifndef V_0_13
|
||||
st.read(&buf[0], i, 0, t.piece_size(i));
|
||||
#endif
|
||||
#ifdef V_0_13
|
||||
st->read(&buf[0], i, 0, t.piece_size(i));
|
||||
#endif
|
||||
hasher h(&buf[0], t.piece_size(i));
|
||||
t.set_hash(i, h.final());
|
||||
}
|
||||
|
@@ -2,13 +2,13 @@
|
||||
<qresource>
|
||||
<file>Icons/encrypted.png</file>
|
||||
<file>Icons/locale.png</file>
|
||||
<file>Icons/newmsg.png</file>
|
||||
<file>Icons/style.png</file>
|
||||
<file>Icons/wizard.png</file>
|
||||
<file>Icons/button_cancel.png</file>
|
||||
<file>Icons/button_ok.png</file>
|
||||
<file>Icons/smile.png</file>
|
||||
<file>Icons/stare.png</file>
|
||||
<file>Icons/newmsg.png</file>
|
||||
<file>Icons/qbittorrent22.png</file>
|
||||
<file>Icons/proxy.png</file>
|
||||
<file>Icons/log.png</file>
|
||||
@@ -29,19 +29,20 @@
|
||||
<file>Icons/flags/south_korea.png</file>
|
||||
<file>Icons/flags/slovakia.png</file>
|
||||
<file>Icons/flags/spain.png</file>
|
||||
<file>Icons/flags/finland.png</file>
|
||||
<file>Icons/flags/poland.png</file>
|
||||
<file>Icons/flags/spain_catalunya.png</file>
|
||||
<file>Icons/flags/china_hong_kong.png</file>
|
||||
<file>Icons/flags/spain_catalunya.png</file>
|
||||
<file>Icons/flags/norway.png</file>
|
||||
<file>Icons/flags/italy.png</file>
|
||||
<file>Icons/flags/china.png</file>
|
||||
<file>Icons/flags/norway.png</file>
|
||||
<file>Icons/flags/denmark.png</file>
|
||||
<file>Icons/flags/turkey.png</file>
|
||||
<file>Icons/flags/sweden.png</file>
|
||||
<file>Icons/flags/romania.png</file>
|
||||
<file>Icons/flags/bulgaria.png</file>
|
||||
<file>Icons/flags/greece.png</file>
|
||||
<file>Icons/flags/finland.png</file>
|
||||
<file>Icons/skin/delete_perm.png</file>
|
||||
<file>Icons/flags/japan.png</file>
|
||||
<file>Icons/skin/properties.png</file>
|
||||
<file>Icons/skin/play_all.png</file>
|
||||
<file>Icons/skin/remove.png</file>
|
||||
@@ -51,9 +52,9 @@
|
||||
<file>Icons/skin/delete.png</file>
|
||||
<file>Icons/skin/connected.png</file>
|
||||
<file>Icons/skin/url.png</file>
|
||||
<file>Icons/skin/play.png</file>
|
||||
<file>Icons/skin/pause_all.png</file>
|
||||
<file>Icons/skin/downloading.png</file>
|
||||
<file>Icons/skin/play.png</file>
|
||||
<file>Icons/skin/search.png</file>
|
||||
<file>Icons/skin/exit.png</file>
|
||||
<file>Icons/skin/pause.png</file>
|
||||
@@ -61,6 +62,7 @@
|
||||
<file>Icons/skin/seeding.png</file>
|
||||
<file>Icons/skin/paused.png</file>
|
||||
<file>Icons/skin/preview.png</file>
|
||||
<file>Icons/skin/delete_perm.png</file>
|
||||
<file>Icons/skin/connecting.png</file>
|
||||
<file>Icons/skin/add.png</file>
|
||||
<file>Icons/skin/stalled.png</file>
|
||||
|
@@ -6,6 +6,7 @@
|
||||
<file>lang/qbittorrent_uk.qm</file>
|
||||
<file>lang/qbittorrent_ro.qm</file>
|
||||
<file>lang/qbittorrent_ru.qm</file>
|
||||
<file>lang/qbittorrent_nb.qm</file>
|
||||
<file>lang/qbittorrent_el.qm</file>
|
||||
<file>lang/qbittorrent_en.qm</file>
|
||||
<file>lang/qbittorrent_fr.qm</file>
|
||||
@@ -16,11 +17,12 @@
|
||||
<file>lang/qbittorrent_pt.qm</file>
|
||||
<file>lang/qbittorrent_ca.qm</file>
|
||||
<file>lang/qbittorrent_tr.qm</file>
|
||||
<file>lang/qbittorrent_sv.qm</file>
|
||||
<file>lang/qbittorrent_bg.qm</file>
|
||||
<file>lang/qbittorrent_de.qm</file>
|
||||
<file>lang/qbittorrent_zh_HK.qm</file>
|
||||
<file>lang/qbittorrent_nb.qm</file>
|
||||
<file>lang/qbittorrent_sv.qm</file>
|
||||
<file>lang/qbittorrent_fi.qm</file>
|
||||
<file>lang/qbittorrent_zh_HK.qm</file>
|
||||
<file>lang/qbittorrent_da.qm</file>
|
||||
<file>lang/qbittorrent_ja.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
BIN
src/lang/qbittorrent_da.qm
Normal file
BIN
src/lang/qbittorrent_da.qm
Normal file
Binary file not shown.
1740
src/lang/qbittorrent_da.ts
Normal file
1740
src/lang/qbittorrent_da.ts
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user