File leechcraft-0.6.70-6645-gcd10d7e-torrent110.diff of Package leechcraft

commit 413ac2db92b280c1167769c8eaabbefe4c28da7b
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Tue May 3 22:20:16 2016 -0400

    [BitTorrent] Removed unneeded include.

diff --git a/src/plugins/bittorrent/torrenttabwidget.cpp b/src/plugins/bittorrent/torrenttabwidget.cpp
index 7588e75..59bdb53 100644
--- a/src/plugins/bittorrent/torrenttabwidget.cpp
+++ b/src/plugins/bittorrent/torrenttabwidget.cpp
@@ -30,7 +30,6 @@
 #include "torrenttabwidget.h"
 #include <QSortFilterProxyModel>
 #include <QUrl>
-#include <QTimer>
 #include <libtorrent/session.hpp>
 #include <util/util.h>
 #include <util/xpc/util.h>

commit 920a6800f475fb7c2f8182ff9e63e27da973d8ad
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Tue May 3 22:20:40 2016 -0400

    [BitTorrent] Refactored announce → time conversion to a separate func.

diff --git a/src/plugins/bittorrent/torrenttabwidget.cpp b/src/plugins/bittorrent/torrenttabwidget.cpp
index 59bdb53..f7cf4c5 100644
--- a/src/plugins/bittorrent/torrenttabwidget.cpp
+++ b/src/plugins/bittorrent/torrenttabwidget.cpp
@@ -387,6 +387,19 @@ namespace BitTorrent
 		Ui_.UploadingTorrents_->setValue (ssm->GetMaxUploadingTorrents ());
 	}
 
+	namespace
+	{
+		QTime Announce2Time (const boost::posix_time::time_duration& announce)
+		{
+			return QTime
+			{
+				announce.hours (),
+				announce.minutes (),
+				announce.seconds ()
+			};
+		}
+	}
+
 	void TorrentTabWidget::UpdateTorrentControl ()
 	{
 		Ui_.TorrentDownloadRateController_->setValue (Core::Instance ()->GetTorrentDownloadRate (Index_));
@@ -416,11 +429,7 @@ namespace BitTorrent
 		Ui_.LabelState_->setText (i->State_);
 		Ui_.LabelDownloadRate_->setText (Util::MakePrettySize (i->Status_.download_rate) + tr ("/s"));
 		Ui_.LabelUploadRate_->setText (Util::MakePrettySize (i->Status_.upload_rate) + tr ("/s"));
-		Ui_.LabelNextAnnounce_->setText (QTime {
-					i->Status_.next_announce.hours (),
-					i->Status_.next_announce.minutes (),
-					i->Status_.next_announce.seconds ()
-				}.toString ());
+		Ui_.LabelNextAnnounce_->setText (Announce2Time (i->Status_.next_announce).toString ());
 		Ui_.LabelProgress_->setText (QString::number (i->Status_.progress * 100, 'f', 2) + "%");
 		Ui_.LabelDownloaded_->setText (Util::MakePrettySize (i->Status_.total_download));
 		Ui_.LabelUploaded_->setText (Util::MakePrettySize (i->Status_.total_upload));
@@ -471,9 +480,7 @@ namespace BitTorrent
 		Ui_.LabelFailed_->setText (Util::MakePrettySize (i->Status_.total_failed_bytes));
 		Ui_.LabelConnectedPeers_->setText (QString::number (i->Status_.num_peers));
 		Ui_.LabelConnectedSeeds_->setText (QString::number (i->Status_.num_seeds));
-		Ui_.LabelAnnounceInterval_->setText (QTime (i->Status_.announce_interval.hours (),
-					i->Status_.announce_interval.minutes (),
-					i->Status_.announce_interval.seconds ()).toString ());
+		Ui_.LabelAnnounceInterval_->setText (Announce2Time (i->Status_.announce_interval).toString ());
 		Ui_.LabelTotalPieces_->setText (QString::number (i->Info_->num_pieces ()));
 		Ui_.LabelDownloadedPieces_->setText (QString::number (i->Status_.num_pieces));
 		Ui_.LabelPieceSize_->setText (Util::MakePrettySize (i->Info_->piece_length ()));

commit 9f8ffc85bdd1ebec8d6931741a8de68fe273f32a
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Wed May 4 03:35:12 2016 +0100

    [BT] Slight code style fixes.

diff --git a/src/plugins/bittorrent/core.cpp b/src/plugins/bittorrent/core.cpp
index 69dfcd8..79092c9 100644
--- a/src/plugins/bittorrent/core.cpp
+++ b/src/plugins/bittorrent/core.cpp
@@ -1284,7 +1284,7 @@ namespace BitTorrent
 	{
 		int tor = row ? *row : CurrentTorrent_;
 		if (!CheckValidity (tor))
-			return std::vector<libtorrent::announce_entry> ();
+			return {};
 
 		return Handles_.at (tor).Handle_.trackers ();
 	}
diff --git a/src/plugins/bittorrent/torrentplugin.cpp b/src/plugins/bittorrent/torrentplugin.cpp
index b337509..998f0ab 100644
--- a/src/plugins/bittorrent/torrentplugin.cpp
+++ b/src/plugins/bittorrent/torrentplugin.cpp
@@ -827,8 +827,7 @@ namespace BitTorrent
 		{
 			auto those = Core::Instance ()->GetTrackers (Core::Instance ()->
 					GetProxy ()->MapToSource (si).row ());
-			std::copy (those.begin (), those.end (),
-					std::back_inserter (allTrackers));
+			std::copy (those.begin (), those.end (), std::back_inserter (allTrackers));
 		}
 
 		if (allTrackers.empty ())

commit 9ed0bca4ade841391cae0b1631fdfd21ed4c53b6
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Wed May 4 03:35:27 2016 +0100

    [BitTorrent] Added some universally available includes.

diff --git a/src/plugins/bittorrent/livestreamdevice.h b/src/plugins/bittorrent/livestreamdevice.h
index c78d8c5..ff6010e 100644
--- a/src/plugins/bittorrent/livestreamdevice.h
+++ b/src/plugins/bittorrent/livestreamdevice.h
@@ -32,6 +32,7 @@
 #include <QVector>
 #include <QFile>
 #include <libtorrent/torrent_handle.hpp>
+#include <libtorrent/torrent_info.hpp>
 #include <libtorrent/alert_types.hpp>
 
 namespace LeechCraft
diff --git a/src/plugins/bittorrent/torrentinfo.h b/src/plugins/bittorrent/torrentinfo.h
index b7a4eb3..6e9a290 100644
--- a/src/plugins/bittorrent/torrentinfo.h
+++ b/src/plugins/bittorrent/torrentinfo.h
@@ -33,6 +33,7 @@
 #include <QTime>
 #include <libtorrent/torrent_info.hpp>
 #include <libtorrent/torrent_handle.hpp>
+#include <libtorrent/session_status.hpp>
 
 namespace LeechCraft
 {

commit 7947cff1df3e9f7a00487aa242ab411a3a33c16d
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Wed May 4 03:38:59 2016 +0100

    [BitTorrent] Fixed build with libtorrent 1.1.0

diff --git a/src/plugins/bittorrent/addtorrent.cpp b/src/plugins/bittorrent/addtorrent.cpp
index de7fdf5..21a345a 100644
--- a/src/plugins/bittorrent/addtorrent.cpp
+++ b/src/plugins/bittorrent/addtorrent.cpp
@@ -31,6 +31,11 @@
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <boost/filesystem/path.hpp>
 #include <boost/filesystem/operations.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/announce_entry.hpp>
+#endif
+
 #include <QHeaderView>
 #include <QFileDialog>
 #include <QMessageBox>
diff --git a/src/plugins/bittorrent/cachedstatuskeeper.h b/src/plugins/bittorrent/cachedstatuskeeper.h
index 3834e5f..bac1412 100644
--- a/src/plugins/bittorrent/cachedstatuskeeper.h
+++ b/src/plugins/bittorrent/cachedstatuskeeper.h
@@ -32,6 +32,7 @@
 #include <QObject>
 #include <QMap>
 #include <libtorrent/torrent_handle.hpp>
+#include <libtorrent/torrent_status.hpp>
 
 namespace LeechCraft
 {
diff --git a/src/plugins/bittorrent/core.cpp b/src/plugins/bittorrent/core.cpp
index 79092c9..c8350f5 100644
--- a/src/plugins/bittorrent/core.cpp
+++ b/src/plugins/bittorrent/core.cpp
@@ -72,6 +72,12 @@
 #include <libtorrent/ip_filter.hpp>
 #include <libtorrent/version.hpp>
 #include <libtorrent/session.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/lazy_entry.hpp>
+#include <libtorrent/announce_entry.hpp>
+#endif
+
 #include <interfaces/entitytesthandleresult.h>
 #include <interfaces/core/icoreproxy.h>
 #include <interfaces/core/itagsmanager.h>
@@ -1021,7 +1027,11 @@ namespace BitTorrent
 		libtorrent::add_torrent_params atp;
 		try
 		{
+#if LIBTORRENT_VERSION_NUM >= 10100
+			atp.ti = boost::make_shared<libtorrent::torrent_info> (GetTorrentInfo (filename));
+#else
 			atp.ti = new libtorrent::torrent_info (GetTorrentInfo (filename));
+#endif
 			atp.storage_mode = GetCurrentStorageMode ();
 			atp.save_path = std::string (path.toUtf8 ().constData ());
 			if (!autoManaged)
@@ -1667,7 +1677,14 @@ namespace BitTorrent
 
 		QList<FileInfo> result;
 		const auto& handle = Handles_.at (idx).Handle_;
-#if LIBTORRENT_VERSION_NUM >= 10000
+#if LIBTORRENT_VERSION_NUM >= 10100
+		const auto& infoPtr = StatusKeeper_->GetStatus (handle,
+					libtorrent::torrent_handle::query_torrent_file).torrent_file.lock ();
+		if (!infoPtr)
+			return {};
+
+		const auto& info = *infoPtr;
+#elif LIBTORRENT_VERSION_NUM >= 10000
 		const auto& infoPtr = StatusKeeper_->GetStatus (handle,
 					libtorrent::torrent_handle::query_torrent_file).torrent_file;
 		if (!infoPtr)
@@ -1677,7 +1694,8 @@ namespace BitTorrent
 #else
 		const auto& info = handle.get_torrent_info ();
 #endif
-		std::vector<libtorrent::size_type> prbytes;
+
+		std::vector<boost::int64_t> prbytes;
 
 		int flags = 0;
 		if (!XmlSettingsManager::Instance ()->
@@ -1802,7 +1820,11 @@ namespace BitTorrent
 
 			if (priorities.empty ())
 			{
-#if LIBTORRENT_VERSION_NUM >= 10000
+#if LIBTORRENT_VERSION_NUM >= 10100
+				const auto& infoPtr = StatusKeeper_->GetStatus (handle,
+							libtorrent::torrent_handle::query_torrent_file).torrent_file.lock ();
+				const auto numFiles = infoPtr ? infoPtr->num_files () : 0;
+#elif LIBTORRENT_VERSION_NUM >= 10000
 				const auto& infoPtr = StatusKeeper_->GetStatus (handle,
 							libtorrent::torrent_handle::query_torrent_file).torrent_file;
 				const auto numFiles = infoPtr ? infoPtr->num_files () : 0;
@@ -1872,7 +1894,11 @@ namespace BitTorrent
 		try
 		{
 			libtorrent::add_torrent_params atp;
+#if LIBTORRENT_VERSION_NUM >= 10100
+			atp.ti = boost::make_shared<libtorrent::torrent_info> (e);
+#else
 			atp.ti = new libtorrent::torrent_info (e);
+#endif
 			atp.storage_mode = GetCurrentStorageMode ();
 			atp.save_path = path.string ();
 			if (!automanaged)
@@ -1919,7 +1945,12 @@ namespace BitTorrent
 #if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& name = QString::fromStdString (status.name);
 
-		if (!status.torrent_file)
+	#if LIBTORRENT_VERSION_NUM >= 10100
+		const auto filePtr = status.torrent_file.lock ();
+	#else
+		const auto filePtr = status.torrent_file;
+	#endif
+		if (!filePtr)
 		{
 			qWarning () << Q_FUNC_INFO
 					<< "torrent"
@@ -1927,7 +1958,7 @@ namespace BitTorrent
 					<< "has finished, but we don't have its info";
 			return;
 		}
-		const auto& info = *status.torrent_file;
+		const auto& info = *filePtr;
 #else
 		const auto& info = torrent.Handle_.get_torrent_info ();
 		const auto& name = QString::fromUtf8 (info.name ().c_str ());
diff --git a/src/plugins/bittorrent/livestreamdevice.cpp b/src/plugins/bittorrent/livestreamdevice.cpp
index 24141c9..f9cec65 100644
--- a/src/plugins/bittorrent/livestreamdevice.cpp
+++ b/src/plugins/bittorrent/livestreamdevice.cpp
@@ -47,7 +47,11 @@ namespace BitTorrent
 	{
 		[&]
 		{
+#if LIBTORRENT_VERSION_NUM >= 10100
+			const auto tf = keeper->GetStatus (h, th::query_pieces | th::query_torrent_file).torrent_file.lock ();
+#else
 			const auto tf = keeper->GetStatus (h, th::query_pieces | th::query_torrent_file).torrent_file;
+#endif
 			if (!tf)
 				throw std::runtime_error { LiveStreamDevice::tr ("No metadata is available yet.").toStdString () };
 			return *tf;
diff --git a/src/plugins/bittorrent/sessionsettingsmanager.cpp b/src/plugins/bittorrent/sessionsettingsmanager.cpp
index 6bb9ee3..310c680 100644
--- a/src/plugins/bittorrent/sessionsettingsmanager.cpp
+++ b/src/plugins/bittorrent/sessionsettingsmanager.cpp
@@ -544,8 +544,6 @@ namespace BitTorrent
 			property ("UPNPIgnoreNonrouters").toBool ();
 		settings.send_buffer_watermark = XmlSettingsManager::Instance ()->
 			property ("SendBufferWatermark").toInt () * 1024;
-		settings.auto_upload_slots = XmlSettingsManager::Instance ()->
-			property ("AutoUploadSlots").toBool ();
 		settings.use_parole_mode = XmlSettingsManager::Instance ()->
 			property ("UseParoleMode").toBool ();
 		settings.cache_size = 1048576 / 16384 * XmlSettingsManager::Instance ()->
@@ -557,7 +555,14 @@ namespace BitTorrent
 
 		const auto& ports = XmlSettingsManager::Instance ()->property ("OutgoingPorts").toList ();
 		if (ports.size () == 2)
+#if LIBTORRENT_VERSION_NUM >= 10100
+		{
+			settings.outgoing_port = ports.at (0).toInt ();
+			settings.num_outgoing_ports = ports.at (1).toInt () - ports.at (0).toInt ();
+		}
+#else
 			settings.outgoing_ports = std::make_pair (ports.at (0).toInt (), ports.at (1).toInt ());
+#endif
 
 		settings.use_read_cache = XmlSettingsManager::Instance ()->
 			property ("UseReadCache").toBool ();
diff --git a/src/plugins/bittorrent/torrentplugin.cpp b/src/plugins/bittorrent/torrentplugin.cpp
index 998f0ab..dced3b9 100644
--- a/src/plugins/bittorrent/torrentplugin.cpp
+++ b/src/plugins/bittorrent/torrentplugin.cpp
@@ -53,6 +53,11 @@
 #include <boost/preprocessor/repetition/repeat.hpp>
 #include <libtorrent/session.hpp>
 #include <libtorrent/version.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/announce_entry.hpp>
+#endif
+
 #include <interfaces/entitytesthandleresult.h>
 #include <interfaces/core/icoreproxy.h>
 #include <interfaces/core/itagsmanager.h>
diff --git a/src/plugins/bittorrent/torrenttab.cpp b/src/plugins/bittorrent/torrenttab.cpp
index daae54f..ee55f6f 100644
--- a/src/plugins/bittorrent/torrenttab.cpp
+++ b/src/plugins/bittorrent/torrenttab.cpp
@@ -36,6 +36,11 @@
 #include <QToolBar>
 #include <QMenu>
 #include <libtorrent/session.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/announce_entry.hpp>
+#endif
+
 #include <util/tags/tagscompleter.h>
 #include <util/gui/clearlineeditaddon.h>
 #include <util/gui/lineeditbuttonmanager.h>
diff --git a/src/plugins/bittorrent/torrenttabwidget.cpp b/src/plugins/bittorrent/torrenttabwidget.cpp
index f7cf4c5..a3efbb1 100644
--- a/src/plugins/bittorrent/torrenttabwidget.cpp
+++ b/src/plugins/bittorrent/torrenttabwidget.cpp
@@ -28,9 +28,15 @@
  **********************************************************************/
 
 #include "torrenttabwidget.h"
+#include <chrono>
 #include <QSortFilterProxyModel>
 #include <QUrl>
 #include <libtorrent/session.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/lazy_entry.hpp>
+#endif
+
 #include <util/util.h>
 #include <util/xpc/util.h>
 #include <util/tags/tagscompleter.h>
@@ -389,6 +395,13 @@ namespace BitTorrent
 
 	namespace
 	{
+#if LIBTORRENT_VERSION_NUM >= 10100
+		QTime Announce2Time (const libtorrent::time_duration& announce)
+		{
+			return QTime { 0, 0 }
+					.addMSecs (std::chrono::duration_cast<std::chrono::seconds> (announce).count ());
+		}
+#else
 		QTime Announce2Time (const boost::posix_time::time_duration& announce)
 		{
 			return QTime
@@ -398,6 +411,7 @@ namespace BitTorrent
 				announce.seconds ()
 			};
 		}
+#endif
 	}
 
 	void TorrentTabWidget::UpdateTorrentControl ()
diff --git a/src/plugins/bittorrent/trackerschanger.cpp b/src/plugins/bittorrent/trackerschanger.cpp
index 5594a0d..bdf60b6 100644
--- a/src/plugins/bittorrent/trackerschanger.cpp
+++ b/src/plugins/bittorrent/trackerschanger.cpp
@@ -30,6 +30,12 @@
 #include "trackerschanger.h"
 #include <QMessageBox>
 #include <QMainWindow>
+#include <libtorrent/version.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
+#include <libtorrent/announce_entry.hpp>
+#endif
+
 #include <interfaces/core/icoreproxy.h>
 #include <interfaces/core/irootwindowsmanager.h>
 #include "core.h"

commit 9355b1448d0d58eaef64506fcb7b07981f9514b6
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu May 5 01:05:00 2016 +0100

    [BT] Fixed build on libtorrent < 1.1.0.

diff --git a/src/plugins/bittorrent/cachedstatuskeeper.h b/src/plugins/bittorrent/cachedstatuskeeper.h
index bac1412..8f4b6fe 100644
--- a/src/plugins/bittorrent/cachedstatuskeeper.h
+++ b/src/plugins/bittorrent/cachedstatuskeeper.h
@@ -32,7 +32,10 @@
 #include <QObject>
 #include <QMap>
 #include <libtorrent/torrent_handle.hpp>
+
+#if LIBTORRENT_VERSION_NUM >= 10100
 #include <libtorrent/torrent_status.hpp>
+#endif
 
 namespace LeechCraft
 {

commit a837c64cd28c37915ec49144b445b2cd1fbfb913
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu May 5 01:21:23 2016 +0100

    [BT] Also include version.hpp.

diff --git a/src/plugins/bittorrent/cachedstatuskeeper.h b/src/plugins/bittorrent/cachedstatuskeeper.h
index 8f4b6fe..40b9060 100644
--- a/src/plugins/bittorrent/cachedstatuskeeper.h
+++ b/src/plugins/bittorrent/cachedstatuskeeper.h
@@ -31,6 +31,7 @@
 
 #include <QObject>
 #include <QMap>
+#include <libtorrent/version.hpp>
 #include <libtorrent/torrent_handle.hpp>
 
 #if LIBTORRENT_VERSION_NUM >= 10100
commit 547fa4cae9f41c4b8c0424a494ea7a587be7dd82
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Sun May 8 14:01:28 2016 -0400

    [BT] Dropped libtorrent < 1.0.

diff --git a/src/plugins/bittorrent/core.cpp b/src/plugins/bittorrent/core.cpp
index c8350f5..ecb6b75 100644
--- a/src/plugins/bittorrent/core.cpp
+++ b/src/plugins/bittorrent/core.cpp
@@ -501,12 +501,8 @@ namespace BitTorrent
 
 		const auto& h = Handles_.at (row).Handle_;
 		const auto& status = StatusKeeper_->GetStatus (h,
-#if LIBTORRENT_VERSION_NUM >= 10000
 				libtorrent::torrent_handle::query_name |
 				libtorrent::torrent_handle::query_save_path);
-#else
-				0);
-#endif
 
 		switch (role)
 		{
@@ -542,11 +538,7 @@ namespace BitTorrent
 			case ColumnID:
 				return row + 1;
 			case ColumnName:
-#if LIBTORRENT_VERSION_NUM >= 10000
 				return QString::fromStdString (status.name);
-#else
-				return QString::fromUtf8 (h.name ().c_str ());
-#endif
 			case ColumnState:
 				return status.paused ?
 						-1 :
@@ -584,11 +576,7 @@ namespace BitTorrent
 			case ColumnID:
 				return row + 1;
 			case ColumnName:
-#if LIBTORRENT_VERSION_NUM >= 10000
 				return QString::fromStdString (status.name);
-#else
-				return QString::fromUtf8 (h.name ().c_str ());
-#endif
 			case ColumnState:
 				return GetStringForStatus (status);
 			{
@@ -688,18 +676,10 @@ namespace BitTorrent
 		case Qt::ToolTipRole:
 		{
 			QString result;
-#if LIBTORRENT_VERSION_NUM >= 10000
 			const auto& name = QString::fromStdString (status.name);
-#else
-			const auto& name = QString::fromUtf8 (h.name ().c_str ());
-#endif
 			result += tr ("Name:") + " " + name + "\n";
 			result += tr ("Destination:") + " " +
-#if LIBTORRENT_VERSION_NUM >= 10000
 				QString::fromStdString (status.save_path) + "\n";
-#else
-				QString::fromUtf8 (h.save_path ().c_str ()) + "\n";
-#endif
 			result += tr ("Progress:") + " " +
 				QString (tr ("%1% (%2 of %3)")
 						.arg (status.progress * 100, 0, 'f', 2)
@@ -847,14 +827,9 @@ namespace BitTorrent
 
 		std::unique_ptr<TorrentInfo> result (new TorrentInfo);
 		result->Status_ = StatusKeeper_->GetStatus (handle, 0xffffffff);
-#if LIBTORRENT_VERSION_NUM >= 10000
 		if (const auto info = handle.torrent_file ())
 			result->Info_.reset (new libtorrent::torrent_info (*info));
 		result->Destination_ = QString::fromStdString (result->Status_.save_path);
-#else
-		result->Info_.reset (new libtorrent::torrent_info (handle.get_torrent_info ()));
-		result->Destination_ = QString::fromUtf8 (handle.save_path ().c_str ());
-#endif
 		result->State_ = GetStringForStatus (result->Status_);
 
 		if (!result->Status_.error.empty ())
@@ -1072,12 +1047,8 @@ namespace BitTorrent
 		handle.auto_managed (autoManaged);
 
 		beginInsertRows (QModelIndex (), Handles_.size (), Handles_.size ());
-#if LIBTORRENT_VERSION_NUM >= 10000
 		auto torrentFileName = QString::fromStdString (handle
 					.status (libtorrent::torrent_handle::query_name).name);
-#else
-		QString torrentFileName = QString::fromUtf8 (handle.name ().c_str ());
-#endif
 		if (!torrentFileName.endsWith (".torrent"))
 			torrentFileName.append (".torrent");
 
@@ -1324,13 +1295,9 @@ namespace BitTorrent
 		if (!CheckValidity (idx))
 			return QString ();
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& handle = Handles_.at (idx).Handle_;
 		const auto& path = StatusKeeper_->GetStatus (handle,
 					libtorrent::torrent_handle::query_save_path).save_path;
-#else
-		const auto& path = Handles_.at (idx).Handle_.save_path ();
-#endif
 		return QString::fromStdString (path);
 	}
 
@@ -1477,12 +1444,8 @@ namespace BitTorrent
 		{
 			qWarning () << Q_FUNC_INFO
 					<< "not saving erroneous torrent:"
-#if LIBTORRENT_VERSION_NUM >= 10000
 					<< StatusKeeper_->GetStatus (a.handle, libtorrent::torrent_handle::query_name)
 							.name.c_str ();
-#else
-					<< a.handle.name ().c_str ();
-#endif
 			return;
 		}
 
@@ -1516,7 +1479,6 @@ namespace BitTorrent
 			return;
 		}
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& file = a.handle.torrent_file ();
 		if (!file)
 		{
@@ -1526,9 +1488,6 @@ namespace BitTorrent
 		}
 
 		const auto& info = *file;
-#else
-		const auto& info = a.handle.get_torrent_info ();
-#endif
 		torrent->TorrentFileName_ = QString::fromUtf8 (info.name ().c_str ()) + ".torrent";
 		torrent->FilePriorities_.resize (info.num_files ());
 		std::fill (torrent->FilePriorities_.begin (),
@@ -1577,12 +1536,8 @@ namespace BitTorrent
 		{
 			qWarning () << Q_FUNC_INFO
 					<< "unknown torrent handle"
-#if LIBTORRENT_VERSION_NUM >= 10000
 					<< StatusKeeper_->GetStatus (h, libtorrent::torrent_handle::query_name)
 							.name.c_str ();
-#else
-					<< h.name ().c_str ();
-#endif
 			return;
 		}
 
@@ -1684,15 +1639,13 @@ namespace BitTorrent
 			return {};
 
 		const auto& info = *infoPtr;
-#elif LIBTORRENT_VERSION_NUM >= 10000
+#else
 		const auto& infoPtr = StatusKeeper_->GetStatus (handle,
 					libtorrent::torrent_handle::query_torrent_file).torrent_file;
 		if (!infoPtr)
 			return {};
 
 		const auto& info = *infoPtr;
-#else
-		const auto& info = handle.get_torrent_info ();
 #endif
 
 		std::vector<boost::int64_t> prbytes;
@@ -1824,12 +1777,10 @@ namespace BitTorrent
 				const auto& infoPtr = StatusKeeper_->GetStatus (handle,
 							libtorrent::torrent_handle::query_torrent_file).torrent_file.lock ();
 				const auto numFiles = infoPtr ? infoPtr->num_files () : 0;
-#elif LIBTORRENT_VERSION_NUM >= 10000
+#else
 				const auto& infoPtr = StatusKeeper_->GetStatus (handle,
 							libtorrent::torrent_handle::query_torrent_file).torrent_file;
 				const auto numFiles = infoPtr ? infoPtr->num_files () : 0;
-#else
-				const auto numFiles = handle.get_torrent_info ().num_files ();
 #endif
 				priorities.resize (numFiles);
 				std::fill (priorities.begin (), priorities.end (), 1);
@@ -1907,16 +1858,9 @@ namespace BitTorrent
 				atp.flags |= libtorrent::add_torrent_params::flag_paused;
 			atp.flags |= libtorrent::add_torrent_params::flag_duplicate_is_error;
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 			std::copy (resumeData.constData (),
 					resumeData.constData () + resumeData.size (),
 					std::back_inserter (atp.resume_data));
-#else
-			atp.resume_data = new std::vector<char>;
-			std::copy (resumeData.constData (),
-					resumeData.constData () + resumeData.size (),
-					std::back_inserter (*atp.resume_data));
-#endif
 
 			handle = Session_->add_torrent (atp);
 			if (XmlSettingsManager::Instance ()->property ("ResolveCountries").toBool ())
@@ -1935,14 +1879,11 @@ namespace BitTorrent
 	{
 		TorrentStruct torrent = Handles_.at (i);
 		const auto& status = StatusKeeper_->GetStatus (torrent.Handle_,
-#if LIBTORRENT_VERSION_NUM >= 10000
 				libtorrent::torrent_handle::query_save_path |
 				libtorrent::torrent_handle::query_torrent_file |
 				libtorrent::torrent_handle::query_name |
-#endif
 				libtorrent::torrent_handle::query_pieces);
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& name = QString::fromStdString (status.name);
 
 	#if LIBTORRENT_VERSION_NUM >= 10100
@@ -1959,10 +1900,6 @@ namespace BitTorrent
 			return;
 		}
 		const auto& info = *filePtr;
-#else
-		const auto& info = torrent.Handle_.get_torrent_info ();
-		const auto& name = QString::fromUtf8 (info.name ().c_str ());
-#endif
 
 		if (LiveStreamManager_->IsEnabledOn (torrent.Handle_) &&
 				status.num_pieces != info.num_pieces ())
@@ -1977,11 +1914,7 @@ namespace BitTorrent
 				"org.LC.Plugins.BitTorrent.DLFinished/" + name,
 				QStringList (name));
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& savePath = status.save_path;
-#else
-		const auto& savePath = torrent.Handle_.save_path ();
-#endif
 		const auto& savePathStr = QString::fromUtf8 (savePath.c_str ());
 
 		const auto iem = Proxy_->GetEntityManager ();
@@ -2141,12 +2074,8 @@ namespace BitTorrent
 					if (handle.need_save_resume_data ())
 						handle.save_resume_data ();
 
-#if LIBTORRENT_VERSION_NUM >= 10000
 					const auto& savePath = StatusKeeper_->GetStatus (handle,
 								libtorrent::torrent_handle::query_save_path).save_path;
-#else
-					const auto& savePath = Handles_.at (i).Handle_.save_path ();
-#endif
 					settings.setValue ("SavePath",
 							QString::fromUtf8 (savePath.c_str ()));
 					settings.setValue ("Filename",
@@ -2408,13 +2337,9 @@ namespace BitTorrent
 	private:
 		QString GetTorrentName (const libtorrent::torrent_handle& handle) const
 		{
-#if LIBTORRENT_VERSION_NUM >= 10000
 			const auto& status = Core::Instance ()->GetStatusKeeper ()->
 					GetStatus (handle, libtorrent::torrent_handle::query_name);
 			return QString::fromStdString (status.name);
-#else
-			return QString::fromStdString (handle.name ());
-#endif
 		}
 	};
 
diff --git a/src/plugins/bittorrent/livestreamdevice.cpp b/src/plugins/bittorrent/livestreamdevice.cpp
index f9cec65..1bae83d 100644
--- a/src/plugins/bittorrent/livestreamdevice.cpp
+++ b/src/plugins/bittorrent/livestreamdevice.cpp
@@ -42,7 +42,6 @@ namespace BitTorrent
 	: QIODevice (parent)
 	, StatusKeeper_ (keeper)
 	, Handle_ (h)
-#if LIBTORRENT_VERSION_NUM >= 10000
 	, TI_
 	{
 		[&]
@@ -57,15 +56,8 @@ namespace BitTorrent
 			return *tf;
 		} ()
 	}
-#else
-	, TI_ { h.get_torrent_info () }
-#endif
 	{
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& tpath = keeper->GetStatus (h, th::query_save_path).save_path;
-#else
-		const auto& tpath = h.save_path ();
-#endif
 		const auto& fpath = TI_.file_at (0).path;
 		File_.setFileName (QString::fromStdString (tpath + '/' + fpath));
 
diff --git a/src/plugins/bittorrent/sessionsettingsmanager.cpp b/src/plugins/bittorrent/sessionsettingsmanager.cpp
index 310c680..c49e386 100644
--- a/src/plugins/bittorrent/sessionsettingsmanager.cpp
+++ b/src/plugins/bittorrent/sessionsettingsmanager.cpp
@@ -58,11 +58,6 @@ namespace BitTorrent
 		sslPortChanged ();
 		tcpPortRangeChanged ();
 
-#if LIBTORRENT_VERSION_NUM < 10000
-		if (XmlSettingsManager::Instance ()->
-				property ("EnableMetadata").toBool ())
-			Session_->add_extension (&libtorrent::create_metadata_plugin);
-#endif
 		if (XmlSettingsManager::Instance ()->
 				property ("EnablePEX").toBool ())
 			Session_->add_extension (&libtorrent::create_ut_pex_plugin);
diff --git a/src/plugins/bittorrent/tabwidget.cpp b/src/plugins/bittorrent/tabwidget.cpp
index 2e7faa9..7341be7 100644
--- a/src/plugins/bittorrent/tabwidget.cpp
+++ b/src/plugins/bittorrent/tabwidget.cpp
@@ -140,14 +140,7 @@ namespace BitTorrent
 		Ui_.LabelWantedSize_->setText (Util::MakePrettySize (i->Status_.total_wanted));
 		Ui_.LabelTotalUploaded_->setText (Util::MakePrettySize (i->Status_.all_time_upload));
 		Ui_.PiecesWidget_->setPieceMap (i->Status_.pieces);
-#if LIBTORRENT_VERSION_NUM >= 10000
 		Ui_.LabelName_->setText (QString::fromStdString (i->Status_.name));
-#else
-		if (i->Info_)
-			Ui_.LabelName_->setText (QString::fromStdString (i->Info_->name ()));
-		else
-			Ui_.LabelName_->setText ({});
-#endif
 	}
 
 	void TabWidget::on_OverallDownloadRateController__valueChanged (int val)
diff --git a/src/plugins/bittorrent/torrentfilesmodel.cpp b/src/plugins/bittorrent/torrentfilesmodel.cpp
index d2a1959..47154a6 100644
--- a/src/plugins/bittorrent/torrentfilesmodel.cpp
+++ b/src/plugins/bittorrent/torrentfilesmodel.cpp
@@ -379,12 +379,8 @@ namespace BitTorrent
 	void TorrentFilesModel::update ()
 	{
 		const auto& handle = Core::Instance ()->GetTorrentHandle (Index_);
-#if LIBTORRENT_VERSION_NUM >= 10000
 		const auto& base = Core::Instance ()->GetStatusKeeper ()->
 				GetStatus (handle, libtorrent::torrent_handle::query_save_path).save_path;
-#else
-		const auto& base = handle.save_path ();
-#endif
 
 		const auto& files = Core::Instance ()->GetTorrentFiles (Index_);
 		UpdateFiles (base, files);
diff --git a/src/plugins/bittorrent/torrentsettings.xml b/src/plugins/bittorrent/torrentsettings.xml
index e86d736..6bca3f7 100644
--- a/src/plugins/bittorrent/torrentsettings.xml
+++ b/src/plugins/bittorrent/torrentsettings.xml
@@ -106,11 +106,8 @@
 				<item type="checkbox" property="EnablePEX" default="true">
 					<label lang="en" value="Enable PeX" />
 				</item>
-				<item type="checkbox" property="EnableMetadata" default="true">
-					<label lang="en" value="Allow to download metadata from the swarm" />
-				</item>
 				<item type="checkbox" property="EnableUTMetadata" default="true">
-					<label lang="en" value="Same as the above, but µTorrent-compatible" />
+					<label lang="en" value="Allow downloading the metadata from the swarm in a µTorrent-compatible way" />
 				</item>
 				<item type="checkbox" property="EnableSmartBan" default="true">
 					<label lang="en" value="Enable Smart Ban" />
diff --git a/src/plugins/bittorrent/torrenttabwidget.cpp b/src/plugins/bittorrent/torrenttabwidget.cpp
index a3efbb1..9c4a051 100644
--- a/src/plugins/bittorrent/torrenttabwidget.cpp
+++ b/src/plugins/bittorrent/torrenttabwidget.cpp
@@ -473,11 +473,7 @@ namespace BitTorrent
 		Ui_.LabelTracker_->setText (QString::fromStdString (i->Status_.current_tracker));
 		Ui_.LabelDestination_->setText (QString ("<a href='%1'>%1</a>")
 					.arg (i->Destination_));
-#if LIBTORRENT_VERSION_NUM >= 10000
 		Ui_.LabelName_->setText (QString::fromStdString (i->Status_.name));
-#else
-		Ui_.LabelName_->setText (QString::fromStdString (i->Info_->name ()));
-#endif
 		Ui_.LabelCreator_->setText (QString::fromStdString (i->Info_->creator ()));
 
 		const auto& commentString = QString::fromStdString (i->Info_->comment ());

commit 81cd2d82a0f49b935c61c336f8322d46375c6c25
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Sun May 8 19:06:20 2016 +0100

    [BT] Fixed build with libtorrent 1.1 and boost.chrono.

diff --git a/src/plugins/bittorrent/torrenttabwidget.cpp b/src/plugins/bittorrent/torrenttabwidget.cpp
index a3efbb1..d15affe 100644
--- a/src/plugins/bittorrent/torrenttabwidget.cpp
+++ b/src/plugins/bittorrent/torrenttabwidget.cpp
@@ -399,7 +399,7 @@ namespace BitTorrent
 		QTime Announce2Time (const libtorrent::time_duration& announce)
 		{
 			return QTime { 0, 0 }
-					.addMSecs (std::chrono::duration_cast<std::chrono::seconds> (announce).count ());
+					.addMSecs (libtorrent::duration_cast<libtorrent::seconds> (announce).count ());
 		}
 #else
 		QTime Announce2Time (const boost::posix_time::time_duration& announce)

commit f36242163844e9e1d8b722ea0cf3b4d82def9269
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu Jun 30 03:45:41 2016 +0100

    [BT] Don't define BOOST_ASIO_DYN_LINK.
    
    Seems to fix defining some asio symbols with libtorrent 1.1.0.

diff --git a/src/plugins/bittorrent/CMakeLists.txt b/src/plugins/bittorrent/CMakeLists.txt
index 3ebef80..d75d260 100644
--- a/src/plugins/bittorrent/CMakeLists.txt
+++ b/src/plugins/bittorrent/CMakeLists.txt
@@ -127,10 +127,6 @@ if (UNIX)
 		)
 	message (STATUS "BitTorrent: fetched flags for version ${RB_LT_VERSION}: ${RB_LT_CFLAGS}")
 	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RB_LT_CFLAGS}")
-
-	if (RB_LT_VERSION VERSION_GREATER 0.15.9999)
-		add_definitions (-DBOOST_ASIO_DYN_LINK)
-	endif ()
 endif ()
 
 if (WIN32)
commit 83dc80a1d238a0fb9d305f509eb4ba687e06a0ac
Author: 0xd34df00d <0xd34df00d@gmail.com>
Date:   Thu Jun 30 03:51:53 2016 +0100

    [BT] Set empty IP filter after initializing the session.
    
    Seems to fix a crash with libtorrent 1.1.0.

diff --git a/src/plugins/bittorrent/core.cpp b/src/plugins/bittorrent/core.cpp
index ecb6b75..1ce65a2 100644
--- a/src/plugins/bittorrent/core.cpp
+++ b/src/plugins/bittorrent/core.cpp
@@ -188,6 +188,7 @@ namespace BitTorrent
 						ver.at (2).digitValue (),
 						ver.at (3).digitValue ()),
 					0);
+			Session_->set_ip_filter ({});
 
 			SessionSettingsMgr_ = new SessionSettingsManager { Session_, Proxy_, this };
 
diff --git a/src/plugins/bittorrent/CMakeLists.txt b/src/plugins/bittorrent/CMakeLists.txt
index d75d260..d522a7c 100644
--- a/src/plugins/bittorrent/CMakeLists.txt
+++ b/src/plugins/bittorrent/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 2.8)
 project (leechcraft_bittorrent)
 include (InitLCPlugin OPTIONAL)
 
-find_package (Boost REQUIRED COMPONENTS date_time filesystem system thread)
+find_package (Boost REQUIRED COMPONENTS chrono date_time filesystem system thread)
 
 set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 
@@ -161,6 +161,7 @@ target_link_libraries (leechcraft_bittorrent
 	${Boost_THREAD_LIBRARY}
 	${Boost_DATE_TIME_LIBRARY}
 	${Boost_FILESYSTEM_LIBRARY}
+	${Boost_CHRONO_LIBRARY}
 	${QT_LIBRARIES}
 	${RBTorrent_LIBRARY}
 	${LEECHCRAFT_LIBRARIES}
openSUSE Build Service is sponsored by