mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-05 11:24:15 +00:00
- Move Web UI code to Bittorrent class
This commit is contained in:
parent
cedc87a703
commit
d3c59f0814
32
src/GUI.cpp
32
src/GUI.cpp
@ -62,7 +62,6 @@
|
||||
#include "preferences.h"
|
||||
#include <stdlib.h>
|
||||
#include "console_imp.h"
|
||||
#include "httpserver.h"
|
||||
#include "torrentPersistentData.h"
|
||||
#include "TransferListFiltersWidget.h"
|
||||
#include "propertieswidget.h"
|
||||
@ -171,10 +170,6 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis
|
||||
BTSession->startUpTorrents();
|
||||
// Add torrent given on command line
|
||||
processParams(torrentCmdLine);
|
||||
// Initialize Web UI
|
||||
if(Preferences::isWebUiEnabled()) {
|
||||
initWebUi(Preferences::getWebUiUsername(), Preferences::getWebUiPassword(), Preferences::getWebUiPort());
|
||||
}
|
||||
// Use a tcp server to allow only one instance of qBittorrent
|
||||
localServer = new QLocalServer();
|
||||
QString uid = QString::number(getuid());
|
||||
@ -238,9 +233,6 @@ GUI::~GUI() {
|
||||
localServer->close();
|
||||
delete localServer;
|
||||
delete tabs;
|
||||
// HTTP Server
|
||||
if(httpServer)
|
||||
delete httpServer;
|
||||
qDebug("3");
|
||||
// Keyboard shortcuts
|
||||
delete switchSearchShortcut;
|
||||
@ -702,16 +694,6 @@ void GUI::loadPreferences(bool configure_session) {
|
||||
}
|
||||
systrayIntegration = newSystrayIntegration;
|
||||
}
|
||||
// XXX: Should probably be done in bittorrent, not here
|
||||
// Update Web UI
|
||||
if (Preferences::isWebUiEnabled()) {
|
||||
quint16 port = Preferences::getWebUiPort();
|
||||
QString username = Preferences::getWebUiUsername();
|
||||
QString password = Preferences::getWebUiPassword();
|
||||
initWebUi(username, password, port);
|
||||
} else if(httpServer) {
|
||||
delete httpServer;
|
||||
}
|
||||
// General
|
||||
bool new_displaySpeedInTitle = Preferences::speedInTitleBar();
|
||||
if(!new_displaySpeedInTitle && new_displaySpeedInTitle != displaySpeedInTitle) {
|
||||
@ -893,20 +875,6 @@ void GUI::on_actionOptions_triggered() {
|
||||
connect(options, SIGNAL(status_changed()), this, SLOT(optionsSaved()));
|
||||
}
|
||||
|
||||
bool GUI::initWebUi(QString username, QString password, int port) {
|
||||
if(httpServer)
|
||||
httpServer->close();
|
||||
else
|
||||
httpServer = new HttpServer(BTSession, 3000, this);
|
||||
httpServer->setAuthorization(username, password);
|
||||
bool success = httpServer->listen(QHostAddress::Any, port);
|
||||
if (success)
|
||||
qDebug("Web UI listening on port %d", port);
|
||||
else
|
||||
QMessageBox::critical(this, "Web User Interface Error", "Unable to initialize HTTP Server on port " + misc::toQString(port));
|
||||
return success;
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* HTTP Downloader *
|
||||
|
@ -53,7 +53,6 @@ class options_imp;
|
||||
class QTabWidget;
|
||||
class QLabel;
|
||||
class QModelIndex;
|
||||
class HttpServer;
|
||||
class QFrame;
|
||||
class TransferListWidget;
|
||||
class TransferListFiltersWidget;
|
||||
@ -97,8 +96,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
SearchEngine *searchEngine;
|
||||
// RSS
|
||||
QPointer<RSSImp> rssWidget;
|
||||
// Web UI
|
||||
QPointer<HttpServer> httpServer;
|
||||
// Misc
|
||||
QLocalServer *localServer;
|
||||
QLocalSocket *clientConnection;
|
||||
@ -142,8 +139,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void processDownloadedFiles(QString path, QString url);
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void finishedTorrent(QTorrentHandle& h) const;
|
||||
//void updateLists(bool force=false);
|
||||
bool initWebUi(QString username, QString password, int port);
|
||||
// Options slots
|
||||
void on_actionOptions_triggered();
|
||||
void optionsSaved();
|
||||
|
@ -42,9 +42,10 @@
|
||||
#include "preferences.h"
|
||||
#include "geoip.h"
|
||||
#include "torrentPersistentData.h"
|
||||
#include "httpserver.h"
|
||||
#include <libtorrent/extensions/ut_metadata.hpp>
|
||||
#ifdef LIBTORRENT_0_15
|
||||
#include <libtorrent/extensions/lt_trackers.hpp>
|
||||
#include <libtorrent/extensions/lt_trackers.hpp>
|
||||
#endif
|
||||
#include <libtorrent/extensions/ut_pex.hpp>
|
||||
#include <libtorrent/extensions/smart_ban.hpp>
|
||||
@ -119,6 +120,9 @@ bittorrent::~bittorrent() {
|
||||
if(FSWatcher) {
|
||||
delete FSWatcher;
|
||||
}
|
||||
// HTTP Server
|
||||
if(httpServer)
|
||||
delete httpServer;
|
||||
if(timerETA)
|
||||
delete timerETA;
|
||||
// Delete BT session
|
||||
@ -370,6 +374,15 @@ void bittorrent::configureSession() {
|
||||
}else{
|
||||
disableIPFilter();
|
||||
}
|
||||
// Update Web UI
|
||||
if (Preferences::isWebUiEnabled()) {
|
||||
quint16 port = Preferences::getWebUiPort();
|
||||
QString username = Preferences::getWebUiUsername();
|
||||
QString password = Preferences::getWebUiPassword();
|
||||
initWebUi(username, password, port);
|
||||
} else if(httpServer) {
|
||||
delete httpServer;
|
||||
}
|
||||
// * Proxy settings
|
||||
proxy_settings proxySettings;
|
||||
if(Preferences::isProxyEnabled()) {
|
||||
@ -438,6 +451,20 @@ void bittorrent::configureSession() {
|
||||
qDebug("Session configured");
|
||||
}
|
||||
|
||||
bool bittorrent::initWebUi(QString username, QString password, int port) {
|
||||
if(httpServer)
|
||||
httpServer->close();
|
||||
else
|
||||
httpServer = new HttpServer(this, 3000, this);
|
||||
httpServer->setAuthorization(username, password);
|
||||
bool success = httpServer->listen(QHostAddress::Any, port);
|
||||
if (success)
|
||||
qDebug("Web UI listening on port %d", port);
|
||||
else
|
||||
addConsoleMessage(tr("Web User Interface Error - Unable to bind Web UI to port %1").arg(port), QColor("red"));
|
||||
return success;
|
||||
}
|
||||
|
||||
void bittorrent::takeETASamples() {
|
||||
bool change = false;;
|
||||
foreach(const QString &hash, ETA_samples.keys()) {
|
||||
|
@ -48,6 +48,7 @@ class downloadThread;
|
||||
class QTimer;
|
||||
class FileSystemWatcher;
|
||||
class FilterParserThread;
|
||||
class HttpServer;
|
||||
|
||||
class bittorrent : public QObject {
|
||||
Q_OBJECT
|
||||
@ -79,9 +80,12 @@ class bittorrent : public QObject {
|
||||
bool geoipDBLoaded;
|
||||
QPointer<QTimer> timerETA;
|
||||
QHash<QString, QList<int> > ETA_samples;
|
||||
// Web UI
|
||||
QPointer<HttpServer> httpServer;
|
||||
|
||||
protected:
|
||||
QString getSavePath(QString hash);
|
||||
bool initWebUi(QString username, QString password, int port);
|
||||
|
||||
public:
|
||||
// Constructor / Destructor
|
||||
|
Loading…
x
Reference in New Issue
Block a user