You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-10-30 23:30:54 +01:00 
			
		
		
		
	Compare commits
	
		
			17 Commits
		
	
	
		
			release-4.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 8664140275 | ||
|   | 0b9640d471 | ||
|   | d66c88d59e | ||
|   | b92c152d30 | ||
|   | 148ec32825 | ||
|   | 8298b62f56 | ||
|   | 53f46875d8 | ||
|   | a67caf1730 | ||
|   | 6a38f69fad | ||
|   | d5bf2b2e1f | ||
|   | f6df1c7fed | ||
|   | fa88bce77d | ||
|   | 571465ff7e | ||
|   | 09a3f78a28 | ||
|   | f98520e6c2 | ||
|   | 0211f3aee3 | ||
|   | 0dcd33fb6d | 
							
								
								
									
										14
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								Changelog
									
									
									
									
									
								
							| @@ -1,3 +1,17 @@ | ||||
| * Sun Dec 19 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.2 | ||||
|     - BUGFIX: Fix alternative speed icon staying pressed when disabled | ||||
|     - BUGFIX: Fix slot warning on startup | ||||
|     - BUGFIX: Fix alignment issues in program preferences | ||||
|     - BUGFIX: Make sure we don't move completed torrent to the temp directory | ||||
|     for checking (closes #602938) | ||||
|     - BUGFIX: Fix some 'File Not found' warning in the Web UI | ||||
|     - BUGFIX: Fix dangerous usage of vector iterator | ||||
|     - BUGFIX: No longer expand the first folder in the torrent content list | ||||
|     - BUGFIX: Fixes possible crash in the RSS Downloader dialog (closes #691426) | ||||
|  | ||||
| * Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.1 | ||||
|     - BUGFIX: Fix possible crash when right-clicking on a torrent | ||||
|  | ||||
| * Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.0 | ||||
|     - FEATURE: qBittorrent can now act as a tracker | ||||
|     - FEATURE: New and improved RSS feed automated downloader | ||||
|   | ||||
							
								
								
									
										5
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -32,7 +32,8 @@ Dependency options: | ||||
|                                                  executable (please follow | ||||
|                                                  instructions in | ||||
|                                                  src/geoip/README) | ||||
|   --disable-qtsingleapplication                  Disable use of libboost | ||||
|   --disable-qtsingleapplication                  Disable use of | ||||
|                                                  qtsingleapplication | ||||
|   --with-qtsingleapplication=[system|shipped]     Use the shipped | ||||
|                                                  qtsingleapplication library | ||||
|                                                  or the system one | ||||
| @@ -609,7 +610,7 @@ public: | ||||
| #line 1 "qtsingleapplication.qcm" | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libboost | ||||
| name: qtsingleapplication | ||||
| arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one | ||||
| -----END QCMOD----- | ||||
| */ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libboost | ||||
| name: qtsingleapplication | ||||
| arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one | ||||
| -----END QCMOD----- | ||||
| */ | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| [Desktop Entry] | ||||
| Categories=Qt;Network;P2P; | ||||
| Comment=V2.5.0 | ||||
| Comment=V2.5.2 | ||||
| Exec=qbittorrent %f | ||||
| GenericName=Bittorrent client | ||||
| GenericName[ar]=العميل Bittorrent | ||||
|   | ||||
| @@ -47,7 +47,7 @@ | ||||
| 	<key>CFBundlePackageType</key> | ||||
| 	<string>APPL</string> | ||||
| 	<key>CFBundleGetInfoString</key> | ||||
| 	<string>2.5.0</string> | ||||
| 	<string>2.5.2</string> | ||||
| 	<key>CFBundleSignature</key> | ||||
| 	<string>????</string> | ||||
| 	<key>CFBundleExecutable</key> | ||||
|   | ||||
| @@ -3986,12 +3986,12 @@ Please install it manually.</source> | ||||
|         <translation>اضغط هنا لتشغيل حد السرعة البديل</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>حد سرعة التحميل العامة</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>حد سرعة الرفع العامة</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3927,12 +3927,12 @@ Please install it manually.</source> | ||||
|         <translation>Щракни за включване на други ограничения за скорост</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Общ лимит Скорост на сваляне</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Общ лимит Скорост на качване</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3758,12 +3758,12 @@ Si us plau, instal-li'l de forma manual.</translation> | ||||
|         <translation>Click per activar els límits de velocitat alternativa</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Velocitat límit global de descàrrega</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Velocitat límit global de pujada</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3990,12 +3990,12 @@ Nainstalujte jej prosím ručně.</translation> | ||||
|         <translation>Kliknutí zapne alternativní limity rychlosti</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Celkový limit rychlosti stahování</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Celkový limit rychlosti nahrávání</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3500,12 +3500,12 @@ Please install it manually.</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Global begrænsning af downloadhastighed</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Global begrænsning af upload hastighed</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3883,12 +3883,12 @@ Please install it manually.</source> | ||||
|         <translation>Klicken um alternative Geschwindigkeitsbegrenzungen zu aktivieren</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Begrenzung der globalen DL-Rate</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Begrenzung der globalen UL-Rate</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3938,12 +3938,12 @@ Please install it manually.</source> | ||||
|         <translation>Κλικ για ενεργοποίηση εναλλακτικών ορίων ταχύτητας</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Συνολικό Όριο Ταχύτητας Λήψης</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Συνολικό Όριο Ταχύτητας Αποστολής</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3024,12 +3024,12 @@ Please install it manually.</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3762,12 +3762,12 @@ Por favor, instálelo de forma manual.</translation> | ||||
|         <translation>Click para activar los límites de velocidad alternativa</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Velocidad límite global de descarga</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Velocidad límite global de subida</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3896,12 +3896,12 @@ Asenna se itse.</translation> | ||||
|         <translation>Napsauta ottaaksesi vaihtoehtoinen nopeusrajoitus käyttöön</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Yleinen latausnopeusrajoitus</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Yleinen lähetysnopeusrajoitus</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3977,12 +3977,12 @@ Veuillez l'installer manuellement.</translation> | ||||
|         <translation>Cliquer pour activer les limites de vitesse alternatives</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Limite globale de la vitesse de réception</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Limite globale de la vitesse d'envoi</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3933,12 +3933,12 @@ Kérlek telepítsd manuálisan.</translation> | ||||
|         <translation>Alternatív sebesség korlátok engedélyezéséhez kattints ide</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Teljes letöltési sebesség korlát</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Teljes feltöltési sebesség korlát</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -4019,12 +4019,12 @@ Per favore installalo manualmente.</translation> | ||||
|         <translation>Clicca per abilitare i limiti alternativi di velocità</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>Limite globale download</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>Limite globale upload</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3259,12 +3259,12 @@ Please install it manually.</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3564,12 +3564,12 @@ Please install it manually.</source> | ||||
|         <translation>설정한 속도 제한을 사용하기</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation>전체 다운 속도 제한</translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation>전체 업로드 속도 제한</translation> | ||||
|     </message> | ||||
|   | ||||
| @@ -3141,12 +3141,12 @@ Please install it manually.</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="226"/> | ||||
|         <location filename="../statusbar.h" line="227"/> | ||||
|         <source>Global Download Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|     <message> | ||||
|         <location filename="../statusbar.h" line="246"/> | ||||
|         <location filename="../statusbar.h" line="247"/> | ||||
|         <source>Global Upload Speed Limit</source> | ||||
|         <translation type="unfinished"></translation> | ||||
|     </message> | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -98,7 +98,7 @@ MainWindow::MainWindow(QWidget *parent, QStringList torrentCmdLine) : QMainWindo | ||||
|   setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION))); | ||||
|   displaySpeedInTitle = pref.speedInTitleBar(); | ||||
|   // Clean exit on log out | ||||
|   connect(static_cast<SessionApplication*>(qApp), SIGNAL(sessionIsShuttingDown()), this, SLOT(deleteQBtSession::instance()())); | ||||
|   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"))); | ||||
| @@ -515,7 +515,14 @@ void MainWindow::displayRSSTab() const { | ||||
| void MainWindow::askRecursiveTorrentDownloadConfirmation(const QTorrentHandle &h) { | ||||
|   Preferences pref; | ||||
|   if(pref.recursiveDownloadDisabled()) return; | ||||
|   QMessageBox confirmBox(QMessageBox::Question, tr("Recursive download confirmation"), tr("The torrent %1 contains torrent files, do you want to proceed with their download?").arg(h.name())); | ||||
|   // Get Torrent name | ||||
|   QString torrent_name; | ||||
|   try { | ||||
|     torrent_name = h.name(); | ||||
|   } catch(invalid_handle&){ | ||||
|     return; | ||||
|   } | ||||
|   QMessageBox confirmBox(QMessageBox::Question, tr("Recursive download confirmation"), tr("The torrent %1 contains torrent files, do you want to proceed with their download?").arg(torrent_name)); | ||||
|   QPushButton *yes = confirmBox.addButton(tr("Yes"), QMessageBox::YesRole); | ||||
|   /*QPushButton *no = */confirmBox.addButton(tr("No"), QMessageBox::NoRole); | ||||
|   QPushButton *never = confirmBox.addButton(tr("Never"), QMessageBox::NoRole); | ||||
|   | ||||
| @@ -566,7 +566,7 @@ | ||||
|                  <property name="styleSheet"> | ||||
|                   <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
| @@ -642,7 +642,7 @@ QGroupBox { | ||||
|                  <property name="styleSheet"> | ||||
|                   <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
| @@ -706,7 +706,7 @@ QGroupBox { | ||||
|                  <property name="styleSheet"> | ||||
|                   <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
| @@ -806,7 +806,7 @@ QGroupBox { | ||||
|                  <property name="styleSheet"> | ||||
|                   <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
| @@ -939,7 +939,7 @@ QGroupBox { | ||||
|            <property name="geometry"> | ||||
|             <rect> | ||||
|              <x>0</x> | ||||
|              <y>0</y> | ||||
|              <y>-51</y> | ||||
|              <width>507</width> | ||||
|              <height>485</height> | ||||
|             </rect> | ||||
| @@ -1797,7 +1797,7 @@ QGroupBox { | ||||
|            <property name="geometry"> | ||||
|             <rect> | ||||
|              <x>0</x> | ||||
|              <y>0</y> | ||||
|              <y>-25</y> | ||||
|              <width>570</width> | ||||
|              <height>422</height> | ||||
|             </rect> | ||||
| @@ -1814,7 +1814,7 @@ QGroupBox { | ||||
|                  <property name="styleSheet"> | ||||
|                   <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
| @@ -1836,7 +1836,7 @@ QGroupBox { | ||||
|                     <property name="styleSheet"> | ||||
|                      <string notr="true">QGroupBox::title { | ||||
| font-weight: normal; | ||||
| margin-left: 10px; | ||||
| margin-left: 0px; | ||||
| margin-top: 5px; | ||||
| } | ||||
| QGroupBox { | ||||
|   | ||||
| @@ -247,8 +247,6 @@ void PropertiesWidget::loadTorrentInfos(const QTorrentHandle &_h) { | ||||
|       loadUrlSeeds(); | ||||
|       // List files in torrent | ||||
|       PropListModel->setupModelData(h.get_torrent_info()); | ||||
|       // Expand first item if possible | ||||
|       filesList->expand(PropListModel->index(0, 0)); | ||||
|     } | ||||
|   } catch(invalid_handle& e) { | ||||
|  | ||||
|   | ||||
| @@ -321,18 +321,15 @@ void TrackerList::deleteSelectedTrackers(){ | ||||
|     delete item; | ||||
|   } | ||||
|   // Iterate of trackers and remove selected ones | ||||
|   std::vector<announce_entry> remaining_trackers; | ||||
|   std::vector<announce_entry> trackers = h.trackers(); | ||||
|   std::vector<announce_entry>::iterator it = trackers.begin(); | ||||
|   while(it != trackers.end()) { | ||||
|     int index = urls_to_remove.indexOf(misc::toQString((*it).url)); | ||||
|     if(index >= 0) { | ||||
|       trackers.erase(it); | ||||
|       urls_to_remove.removeAt(index); | ||||
|     } else { | ||||
|       it++; | ||||
|   std::vector<announce_entry>::iterator it; | ||||
|   for(it = trackers.begin(); it != trackers.end(); it++) { | ||||
|     if(!urls_to_remove.contains(misc::toQString((*it).url))) { | ||||
|       remaining_trackers.push_back(*it); | ||||
|     } | ||||
|   } | ||||
|   h.replace_trackers(trackers); | ||||
|   h.replace_trackers(remaining_trackers); | ||||
|   h.force_reannounce(); | ||||
|   // Reload Trackers | ||||
|   loadTrackers(); | ||||
|   | ||||
| @@ -1045,7 +1045,9 @@ QTorrentHandle QBtSession::addTorrent(QString path, bool fromScanDir, QString fr | ||||
|   TorrentPersistentData::setRootFolder(hash, root_folder); | ||||
|  | ||||
|   // If temp path is enabled, move torrent | ||||
|   if(!defaultTempPath.isEmpty() && !resumed) { | ||||
|   // XXX: The torrent is moved after the torrent_checked_alert | ||||
|   // is received to make sure we don't move a completed torrent (#602938) | ||||
|   /*if(!defaultTempPath.isEmpty() && !resumed) { | ||||
|     qDebug("Temp folder is enabled, moving new torrent to temp folder"); | ||||
|     QString torrent_tmp_path = defaultTempPath.replace("\\", "/"); | ||||
|     if(!root_folder.isEmpty()) { | ||||
| @@ -1053,7 +1055,7 @@ QTorrentHandle QBtSession::addTorrent(QString path, bool fromScanDir, QString fr | ||||
|       torrent_tmp_path += root_folder; | ||||
|     } | ||||
|     h.move_storage(torrent_tmp_path); | ||||
|   } | ||||
|   }*/ | ||||
|  | ||||
|   loadTorrentSettings(h); | ||||
|  | ||||
| @@ -1362,7 +1364,7 @@ void QBtSession::loadSessionState() { | ||||
|   } | ||||
| #if LIBTORRENT_VERSION_MINOR > 14 | ||||
|   std::vector<char> in; | ||||
|   if (load_file(state_path.toLocal8Bit().constData(), in) == 0) | ||||
|   if (load_file(state_path.toUtf8().constData(), in) == 0) | ||||
|   { | ||||
|     lazy_entry e; | ||||
| #if LIBTORRENT_VERSION_MINOR > 15 | ||||
| @@ -1376,7 +1378,7 @@ void QBtSession::loadSessionState() { | ||||
| #endif | ||||
|   } | ||||
| #else | ||||
|   boost::filesystem::ifstream ses_state_file(state_path.toLocal8Bit().constData() | ||||
|   boost::filesystem::ifstream ses_state_file(state_path.toUtf8().constData() | ||||
|                                              , std::ios_base::binary); | ||||
|   ses_state_file.unsetf(std::ios_base::skipws); | ||||
|   s->load_state(bdecode( | ||||
| @@ -1395,13 +1397,13 @@ void QBtSession::saveSessionState() { | ||||
|   bencode(std::back_inserter(out), session_state); | ||||
|   file f; | ||||
|   error_code ec; | ||||
|   if (!f.open(state_path.toLocal8Bit().constData(), file::write_only, ec)) return; | ||||
|   if (!f.open(state_path.toUtf8().constData(), file::write_only, ec)) return; | ||||
|   if (ec) return; | ||||
|   file::iovec_t b = {&out[0], out.size()}; | ||||
|   f.writev(0, &b, 1, ec); | ||||
| #else | ||||
|   entry session_state = s->state(); | ||||
|   boost::filesystem::ofstream out(state_path.toLocal8Bit().constData() | ||||
|   boost::filesystem::ofstream out(state_path.toUtf8().constData() | ||||
|                                   , std::ios_base::binary); | ||||
|   out.unsetf(std::ios_base::skipws); | ||||
|   bencode(std::ostream_iterator<char>(out), session_state); | ||||
| @@ -1416,7 +1418,7 @@ bool QBtSession::enableDHT(bool b) { | ||||
|       entry dht_state; | ||||
|       const QString dht_state_path = misc::cacheLocation()+QDir::separator()+QString::fromUtf8("dht_state"); | ||||
|       if(QFile::exists(dht_state_path)) { | ||||
|         boost::filesystem::ifstream dht_state_file(dht_state_path.toLocal8Bit().constData(), std::ios_base::binary); | ||||
|         boost::filesystem::ifstream dht_state_file(dht_state_path.toUtf8().constData(), std::ios_base::binary); | ||||
|         dht_state_file.unsetf(std::ios_base::skipws); | ||||
|         try{ | ||||
|           dht_state = bdecode(std::istream_iterator<char>(dht_state_file), std::istream_iterator<char>()); | ||||
| @@ -1900,23 +1902,23 @@ void QBtSession::setProxySettings(const proxy_settings &proxySettings) { | ||||
| } | ||||
|  | ||||
| void QBtSession::recursiveTorrentDownload(const QTorrentHandle &h) { | ||||
|   torrent_info::file_iterator it; | ||||
|   for(it = h.get_torrent_info().begin_files(); it != h.get_torrent_info().end_files(); it++)  { | ||||
|     const QString torrent_relpath = h.filepath(*it); | ||||
|     if(torrent_relpath.endsWith(".torrent")) { | ||||
|       addConsoleMessage(tr("Recursive download of file %1 embedded in torrent %2", "Recursive download of test.torrent embedded in torrent test2").arg(torrent_relpath).arg(h.name())); | ||||
|       const QString torrent_fullpath = h.save_path()+QDir::separator()+torrent_relpath; | ||||
|       try { | ||||
|   try { | ||||
|     torrent_info::file_iterator it; | ||||
|     for(it = h.get_torrent_info().begin_files(); it != h.get_torrent_info().end_files(); it++)  { | ||||
|       const QString torrent_relpath = h.filepath(*it); | ||||
|       if(torrent_relpath.endsWith(".torrent")) { | ||||
|         addConsoleMessage(tr("Recursive download of file %1 embedded in torrent %2", "Recursive download of test.torrent embedded in torrent test2").arg(torrent_relpath).arg(h.name())); | ||||
|         const QString torrent_fullpath = h.save_path()+QDir::separator()+torrent_relpath; | ||||
|  | ||||
|         boost::intrusive_ptr<torrent_info> t = new torrent_info(torrent_fullpath.toUtf8().constData()); | ||||
|         const QString sub_hash = misc::toQString(t->info_hash()); | ||||
|         // Passing the save path along to the sub torrent file | ||||
|         TorrentTempData::setSavePath(sub_hash, h.save_path()); | ||||
|         addTorrent(torrent_fullpath); | ||||
|       } catch(std::exception&) { | ||||
|         qDebug("Caught error loading torrent"); | ||||
|         addConsoleMessage(tr("Unable to decode %1 torrent file.").arg(torrent_fullpath), QString::fromUtf8("red")); | ||||
|       } | ||||
|     } | ||||
|   } catch(std::exception&) { | ||||
|     qDebug("Caught error loading torrent"); | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -2332,6 +2334,7 @@ void QBtSession::readAlerts() { | ||||
|           const QDir current_dir(h.save_path()); | ||||
|           const QDir save_dir(getSavePath(h.hash())); | ||||
|           if(current_dir == save_dir) { | ||||
|             qDebug("Moving the torrent to the temp directory..."); | ||||
|             QString root_folder = TorrentPersistentData::getRootFolder(hash); | ||||
|             QString torrent_tmp_path = defaultTempPath.replace("\\", "/"); | ||||
|             if(!root_folder.isEmpty()) { | ||||
|   | ||||
| @@ -126,10 +126,16 @@ void AutomatedRssDownloader::loadFeedList() | ||||
|   const RssSettings settings; | ||||
|   const QStringList feed_aliases = settings.getRssFeedsAliases(); | ||||
|   const QStringList feed_urls = settings.getRssFeedsUrls(); | ||||
|   QStringList existing_urls; | ||||
|   for(int i=0; i<feed_aliases.size(); ++i) { | ||||
|     QString feed_url = feed_urls.at(i); | ||||
|     feed_url = feed_url.split("\\").last(); | ||||
|     qDebug() << Q_FUNC_INFO << feed_url; | ||||
|     if(existing_urls.contains(feed_url)) continue; | ||||
|     QListWidgetItem *item = new QListWidgetItem(feed_aliases.at(i), ui->listFeeds); | ||||
|     item->setData(Qt::UserRole, feed_urls.at(i)); | ||||
|     item->setData(Qt::UserRole, feed_url); | ||||
|     item->setFlags(item->flags()|Qt::ItemIsUserCheckable); | ||||
|     existing_urls << feed_url; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @@ -438,8 +444,12 @@ void AutomatedRssDownloader::updateMatchingArticles() | ||||
|     RssDownloadRule rule = m_ruleList->getRule(rule_item->text()); | ||||
|     if(!rule.isValid()) continue; | ||||
|     foreach(const QString &feed_url, rule.rssFeeds()) { | ||||
|       qDebug() << Q_FUNC_INFO << feed_url; | ||||
|       Q_ASSERT(all_feeds.contains(feed_url)); | ||||
|       if(!all_feeds.contains(feed_url)) continue; | ||||
|       const RssFeed *feed = all_feeds.value(feed_url); | ||||
|       Q_ASSERT(feed); | ||||
|       if(!feed) continue; | ||||
|       const QStringList matching_articles = rule.findMatchingArticles(feed); | ||||
|       if(!matching_articles.isEmpty()) | ||||
|         addFeedArticlesToTree(feed, matching_articles); | ||||
|   | ||||
| @@ -28,6 +28,8 @@ | ||||
|  * Contact: chris@qbittorrent.org, arnaud@qbittorrent.org | ||||
|  */ | ||||
|  | ||||
| #include <QDebug> | ||||
|  | ||||
| #include "rssfolder.h" | ||||
| #include "rssarticle.h" | ||||
| #include "qbtsession.h" | ||||
| @@ -268,7 +270,9 @@ QHash<QString, RssFeed*> RssFolder::getAllFeedsAsHash() const { | ||||
|   QHash<QString, RssFeed*> ret; | ||||
|   foreach(RssFile *item, this->values()) { | ||||
|     if(item->getType() == RssFile::FEED) { | ||||
|       RssFeed* feed = static_cast<RssFeed*>(item); | ||||
|       RssFeed* feed = dynamic_cast<RssFeed*>(item); | ||||
|       Q_ASSERT(feed); | ||||
|       qDebug() << Q_FUNC_INFO << feed->getUrl(); | ||||
|       ret[feed->getUrl()] = feed; | ||||
|     } else { | ||||
|       ret.unite(static_cast<RssFolder*>(item)->getAllFeedsAsHash()); | ||||
|   | ||||
| @@ -214,6 +214,7 @@ public slots: | ||||
|     } else { | ||||
|       altSpeedsBtn->setIcon(QIcon(":/Icons/slow_off.png")); | ||||
|       altSpeedsBtn->setToolTip(tr("Click to enable alternative speed limits")); | ||||
|       altSpeedsBtn->setDown(false); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -217,9 +217,11 @@ void HttpConnection::respond() { | ||||
|       } else { | ||||
|         if(list[1] == "preferences") { | ||||
|           respondPreferencesJson(); | ||||
|           return; | ||||
|         } else { | ||||
|           if(list[1] == "transferInfo") { | ||||
|             respondGlobalTransferInfoJson(); | ||||
|             return; | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user