Browse Source

Merge pull request #2302 from buinsky/WebUI2

Accept multiple files at once. Closes #2253
adaptive-webui-19844
sledgehammer999 10 years ago
parent
commit
6d6e3042c2
  1. 38
      src/main.cpp
  2. 421
      src/mainwindow.cpp
  3. 9
      src/mainwindow.h

38
src/main.cpp

@ -74,6 +74,20 @@ Q_IMPORT_PLUGIN(qico) @@ -74,6 +74,20 @@ Q_IMPORT_PLUGIN(qico)
#include "misc.h"
#include "preferences.h"
class MessagesCollector : public QObject
{
Q_OBJECT
public slots:
void collectMessage(const QString& message)
{
messages.append(message.split("|", QString::SkipEmptyParts));
}
public:
QStringList messages;
};
#include "main.moc"
#if defined(Q_OS_WIN) && !defined(QBT_HAS_GETCURRENTPID)
#error You seem to have updated QtSingleApplication without porting our custom QtSingleApplication::getRunningPid() function. Please see previous version to understate how it works.
#endif
@ -113,6 +127,10 @@ int main(int argc, char *argv[]) @@ -113,6 +127,10 @@ int main(int argc, char *argv[])
// Create Application
Application app("qBittorrent-" + misc::getUserIDString(), argc, argv);
MessagesCollector* messagesCollector = new MessagesCollector();
QObject::connect(&app, SIGNAL(messageReceived(const QString &)),
messagesCollector, SLOT(collectMessage(const QString &)));
#ifndef DISABLE_GUI
parseCommandLine(showVersion, showUsage, noSplash, torrents);
#else
@ -131,9 +149,8 @@ int main(int argc, char *argv[]) @@ -131,9 +149,8 @@ int main(int argc, char *argv[])
return EXIT_SUCCESS;
// Set environment variable
if (!qputenv("QBITTORRENT", QByteArray(VERSION))) {
if (!qputenv("QBITTORRENT", QByteArray(VERSION)))
std::cerr << "Couldn't set environment variable...\n";
}
if (!userAgreesWithLegalNotice())
return EXIT_SUCCESS;
@ -141,6 +158,7 @@ int main(int argc, char *argv[]) @@ -141,6 +158,7 @@ int main(int argc, char *argv[])
// Check if qBittorrent is already running for this user
if (app.isRunning()) {
qDebug("qBittorrent is already running for this user.");
misc::msleep(300);
#ifdef Q_OS_WIN
DWORD pid = (DWORD)app.getRunningPid();
if (pid > 0) {
@ -181,8 +199,12 @@ int main(int argc, char *argv[]) @@ -181,8 +199,12 @@ int main(int argc, char *argv[])
#ifndef DISABLE_GUI
MainWindow window(0, torrents);
QObject::connect(&app, SIGNAL(messageReceived(const QString&)),
&window, SLOT(processParams(const QString&)));
QObject::connect(&app, SIGNAL(messageReceived(const QString &)),
&window, SLOT(processParams(const QString &)));
QObject::disconnect(&app, SIGNAL(messageReceived(const QString &)),
messagesCollector, SLOT(collectMessage(const QString &)));
window.processParams(messagesCollector->messages);
delete messagesCollector;
app.setActivationWindow(&window);
#ifdef Q_OS_MAC
static_cast<QMacApplication*>(&app)->setReadyToProcessEvents();
@ -190,8 +212,12 @@ int main(int argc, char *argv[]) @@ -190,8 +212,12 @@ int main(int argc, char *argv[])
#else
// Load Headless class
HeadlessLoader loader(torrents);
QObject::connect(&app, SIGNAL(messageReceived(const QString&)),
&loader, SLOT(processParams(const QString&)));
QObject::connect(&app, SIGNAL(messageReceived(const QString &)),
&loader, SLOT(processParams(const QString &)));
QObject::disconnect(&app, SIGNAL(messageReceived(const QString &)),
messagesCollector, SLOT(collectMessage(const QString &)));
loader.processParams(messagesCollector->messages);
delete messagesCollector;
#endif
int ret = app.exec();

421
src/mainwindow.cpp

File diff suppressed because it is too large Load Diff

9
src/mainwindow.h

@ -66,12 +66,13 @@ class QTabWidget; @@ -66,12 +66,13 @@ class QTabWidget;
class QTimer;
QT_END_NAMESPACE
class MainWindow : public QMainWindow, private Ui::MainWindow{
class MainWindow: public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
public:
// Construct / Destruct
MainWindow(QWidget *parent=0, const QStringList& torrentCmdLine = QStringList());
MainWindow(QWidget *parent = 0, const QStringList& torrentCmdLine = QStringList());
// Methods
QWidget* getCurrentTabWidget() const;
TransferListWidget* getTransferList() const { return transferList; }
@ -86,6 +87,7 @@ public slots: @@ -86,6 +87,7 @@ public slots:
void updateAltSpeedsBtn(bool alternative);
void updateNbTorrents();
void shutdownCleanUp();
void processParams(const QStringList& params);
protected slots:
// GUI related slots
@ -125,9 +127,8 @@ protected slots: @@ -125,9 +127,8 @@ protected slots:
void on_actionDocumentation_triggered() const;
void on_actionOpen_triggered();
void updateGUI();
void loadPreferences(bool configure_session=true);
void loadPreferences(bool configure_session = true);
void processParams(const QString& params);
void processParams(const QStringList& params);
void addTorrent(QString path);
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
void processDownloadedFiles(QString path, QString url);

Loading…
Cancel
Save