mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-23 16:58:06 -06:00
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2011 Vladimir Golovnev <glassez@yandex.ru>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -24,16 +24,15 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#include "powermanagement.h"
|
||||
|
||||
#include <QtGlobal>
|
||||
|
||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
||||
#include "powermanagement_x11.h"
|
||||
#endif
|
||||
#include "powermanagement.h"
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
#include <IOKit/pwr_mgt/IOPMLib.h>
|
||||
@@ -43,7 +42,9 @@
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
PowerManagement::PowerManagement(QObject *parent) : QObject(parent), m_busy(false)
|
||||
PowerManagement::PowerManagement(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_busy(false)
|
||||
{
|
||||
#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
||||
m_inhibitor = new PowerManagementInhibitor(this);
|
||||
@@ -56,8 +57,10 @@ PowerManagement::~PowerManagement()
|
||||
|
||||
void PowerManagement::setActivityState(bool busy)
|
||||
{
|
||||
if (busy) setBusy();
|
||||
else setIdle();
|
||||
if (busy)
|
||||
setBusy();
|
||||
else
|
||||
setIdle();
|
||||
}
|
||||
|
||||
void PowerManagement::setBusy()
|
||||
@@ -68,10 +71,11 @@ void PowerManagement::setBusy()
|
||||
#ifdef Q_OS_WIN
|
||||
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
|
||||
#elif (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
||||
m_inhibitor->RequestBusy();
|
||||
m_inhibitor->requestBusy();
|
||||
#elif defined(Q_OS_MAC)
|
||||
IOReturn success = IOPMAssertionCreate(kIOPMAssertionTypeNoIdleSleep, kIOPMAssertionLevelOn, &m_assertionID);
|
||||
if (success != kIOReturnSuccess) m_busy = false;
|
||||
if (success != kIOReturnSuccess)
|
||||
m_busy = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -83,7 +87,7 @@ void PowerManagement::setIdle()
|
||||
#ifdef Q_OS_WIN
|
||||
SetThreadExecutionState(ES_CONTINUOUS);
|
||||
#elif (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && defined(QT_DBUS_LIB)
|
||||
m_inhibitor->RequestIdle();
|
||||
m_inhibitor->requestIdle();
|
||||
#elif defined(Q_OS_MAC)
|
||||
IOPMAssertionRelease(m_assertionID);
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2011 Vladimir Golovnev <glassez@yandex.ru>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -24,8 +24,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef POWERMANAGEMENT_H
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2011 Vladimir Golovnev <glassez@yandex.ru>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -24,48 +24,45 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#include "powermanagement_x11.h"
|
||||
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusMessage>
|
||||
#include <QDBusPendingCall>
|
||||
#include <QDBusPendingReply>
|
||||
|
||||
#include "powermanagement_x11.h"
|
||||
|
||||
PowerManagementInhibitor::PowerManagementInhibitor(QObject *parent) : QObject(parent)
|
||||
PowerManagementInhibitor::PowerManagementInhibitor(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
if (!QDBusConnection::sessionBus().isConnected())
|
||||
{
|
||||
if (!QDBusConnection::sessionBus().isConnected()) {
|
||||
qDebug("D-Bus: Could not connect to session bus");
|
||||
m_state = error;
|
||||
m_state = Error;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = idle;
|
||||
else {
|
||||
m_state = Idle;
|
||||
}
|
||||
|
||||
m_intended_state = idle;
|
||||
m_intendedState = Idle;
|
||||
m_cookie = 0;
|
||||
m_use_gsm = false;
|
||||
m_useGSM = false;
|
||||
}
|
||||
|
||||
PowerManagementInhibitor::~PowerManagementInhibitor()
|
||||
{
|
||||
}
|
||||
|
||||
void PowerManagementInhibitor::RequestIdle()
|
||||
void PowerManagementInhibitor::requestIdle()
|
||||
{
|
||||
m_intended_state = idle;
|
||||
if (m_state == error || m_state == idle || m_state == request_idle || m_state == request_busy)
|
||||
m_intendedState = Idle;
|
||||
if ((m_state == Error) || (m_state == Idle) || (m_state == RequestIdle) || (m_state == RequestBusy))
|
||||
return;
|
||||
|
||||
qDebug("D-Bus: PowerManagementInhibitor: Requesting idle");
|
||||
|
||||
QDBusMessage call;
|
||||
if (!m_use_gsm)
|
||||
if (!m_useGSM)
|
||||
call = QDBusMessage::createMethodCall(
|
||||
"org.freedesktop.PowerManagement",
|
||||
"/org/freedesktop/PowerManagement/Inhibit",
|
||||
@@ -78,7 +75,7 @@ void PowerManagementInhibitor::RequestIdle()
|
||||
"org.gnome.SessionManager",
|
||||
"Uninhibit");
|
||||
|
||||
m_state = request_idle;
|
||||
m_state = RequestIdle;
|
||||
|
||||
QList<QVariant> args;
|
||||
args << m_cookie;
|
||||
@@ -86,20 +83,20 @@ void PowerManagementInhibitor::RequestIdle()
|
||||
|
||||
QDBusPendingCall pcall = QDBusConnection::sessionBus().asyncCall(call, 1000);
|
||||
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this);
|
||||
connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::OnAsyncReply);
|
||||
connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::onAsyncReply);
|
||||
}
|
||||
|
||||
|
||||
void PowerManagementInhibitor::RequestBusy()
|
||||
void PowerManagementInhibitor::requestBusy()
|
||||
{
|
||||
m_intended_state = busy;
|
||||
if (m_state == error || m_state == busy || m_state == request_busy || m_state == request_idle)
|
||||
m_intendedState = Busy;
|
||||
if ((m_state == Error) || (m_state == Busy) || (m_state == RequestBusy) || (m_state == RequestIdle))
|
||||
return;
|
||||
|
||||
qDebug("D-Bus: PowerManagementInhibitor: Requesting busy");
|
||||
|
||||
QDBusMessage call;
|
||||
if (!m_use_gsm)
|
||||
if (!m_useGSM)
|
||||
call = QDBusMessage::createMethodCall(
|
||||
"org.freedesktop.PowerManagement",
|
||||
"/org/freedesktop/PowerManagement/Inhibit",
|
||||
@@ -112,71 +109,64 @@ void PowerManagementInhibitor::RequestBusy()
|
||||
"org.gnome.SessionManager",
|
||||
"Inhibit");
|
||||
|
||||
m_state = request_busy;
|
||||
m_state = RequestBusy;
|
||||
|
||||
QList<QVariant> args;
|
||||
args << "qBittorrent";
|
||||
if (m_use_gsm) args << 0u;
|
||||
if (m_useGSM) args << 0u;
|
||||
args << "Active torrents are presented";
|
||||
if (m_use_gsm) args << 8u;
|
||||
if (m_useGSM) args << 8u;
|
||||
call.setArguments(args);
|
||||
|
||||
QDBusPendingCall pcall = QDBusConnection::sessionBus().asyncCall(call, 1000);
|
||||
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this);
|
||||
connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::OnAsyncReply);
|
||||
connect(watcher, &QDBusPendingCallWatcher::finished, this, &PowerManagementInhibitor::onAsyncReply);
|
||||
}
|
||||
|
||||
void PowerManagementInhibitor::OnAsyncReply(QDBusPendingCallWatcher *call)
|
||||
void PowerManagementInhibitor::onAsyncReply(QDBusPendingCallWatcher *call)
|
||||
{
|
||||
if (m_state == request_idle)
|
||||
{
|
||||
if (m_state == RequestIdle) {
|
||||
QDBusPendingReply<> reply = *call;
|
||||
|
||||
if (reply.isError())
|
||||
{
|
||||
if (reply.isError()) {
|
||||
qDebug("D-Bus: Reply: Error: %s", qUtf8Printable(reply.error().message()));
|
||||
m_state = error;
|
||||
m_state = Error;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = idle;
|
||||
else {
|
||||
m_state = Idle;
|
||||
qDebug("D-Bus: PowerManagementInhibitor: Request successful");
|
||||
if (m_intended_state == busy) RequestBusy();
|
||||
if (m_intendedState == Busy)
|
||||
requestBusy();
|
||||
}
|
||||
}
|
||||
else if (m_state == request_busy)
|
||||
{
|
||||
else if (m_state == RequestBusy) {
|
||||
QDBusPendingReply<uint> reply = *call;
|
||||
|
||||
if (reply.isError())
|
||||
{
|
||||
if (reply.isError()) {
|
||||
qDebug("D-Bus: Reply: Error: %s", qUtf8Printable(reply.error().message()));
|
||||
|
||||
if (!m_use_gsm)
|
||||
{
|
||||
if (!m_useGSM) {
|
||||
qDebug("D-Bus: Falling back to org.gnome.SessionManager");
|
||||
m_use_gsm = true;
|
||||
m_state = idle;
|
||||
if (m_intended_state == busy)
|
||||
RequestBusy();
|
||||
m_useGSM = true;
|
||||
m_state = Idle;
|
||||
if (m_intendedState == Busy)
|
||||
requestBusy();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = error;
|
||||
else {
|
||||
m_state = Error;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = busy;
|
||||
else {
|
||||
m_state = Busy;
|
||||
m_cookie = reply.value();
|
||||
qDebug("D-Bus: PowerManagementInhibitor: Request successful, cookie is %d", m_cookie);
|
||||
if (m_intended_state == idle) RequestIdle();
|
||||
if (m_intendedState == Idle)
|
||||
requestIdle();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
qDebug("D-Bus: Unexpected reply in state %d", m_state);
|
||||
m_state = error;
|
||||
m_state = Error;
|
||||
}
|
||||
|
||||
call->deleteLater();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2011 Vladimir Golovnev <glassez@yandex.ru>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -24,8 +24,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef POWERMANAGEMENTINHIBITOR_H
|
||||
@@ -33,9 +31,7 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QDBusPendingCallWatcher;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class PowerManagementInhibitor : public QObject
|
||||
{
|
||||
@@ -45,27 +41,27 @@ public:
|
||||
PowerManagementInhibitor(QObject *parent = nullptr);
|
||||
virtual ~PowerManagementInhibitor();
|
||||
|
||||
void RequestIdle();
|
||||
void RequestBusy();
|
||||
void requestIdle();
|
||||
void requestBusy();
|
||||
|
||||
private slots:
|
||||
void OnAsyncReply(QDBusPendingCallWatcher *call);
|
||||
void onAsyncReply(QDBusPendingCallWatcher *call);
|
||||
|
||||
private:
|
||||
enum _state
|
||||
enum State
|
||||
{
|
||||
error,
|
||||
idle,
|
||||
request_busy,
|
||||
busy,
|
||||
request_idle
|
||||
Error,
|
||||
Idle,
|
||||
RequestBusy,
|
||||
Busy,
|
||||
RequestIdle
|
||||
};
|
||||
|
||||
enum _state m_state;
|
||||
enum _state m_intended_state;
|
||||
enum State m_state;
|
||||
enum State m_intendedState;
|
||||
unsigned int m_cookie;
|
||||
|
||||
bool m_use_gsm;
|
||||
bool m_useGSM;
|
||||
};
|
||||
|
||||
#endif // POWERMANAGEMENTINHIBITOR_H
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace RSS
|
||||
class Item;
|
||||
}
|
||||
|
||||
class ArticleListWidget: public QListWidget
|
||||
class ArticleListWidget : public QListWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
#include "base/rss/rss_session.h"
|
||||
#include "base/utils/fs.h"
|
||||
#include "base/utils/string.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "autoexpandabledialog.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "ui_automatedrssdownloader.h"
|
||||
#include "utils.h"
|
||||
|
||||
@@ -579,7 +579,7 @@ void AutomatedRssDownloader::updateMatchingArticles()
|
||||
: RSS::AutoDownloader::instance()->ruleByName(ruleItem->text()));
|
||||
foreach (const QString &feedURL, rule.feedURLs()) {
|
||||
auto feed = RSS::Session::instance()->feedByURL(feedURL);
|
||||
if (!feed) continue; // feed doesn't exists
|
||||
if (!feed) continue; // feed doesn't exist
|
||||
|
||||
QStringList matchingArticles;
|
||||
foreach (auto article, feed->articles())
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace RSS
|
||||
class Feed;
|
||||
}
|
||||
|
||||
class AutomatedRssDownloader: public QDialog
|
||||
class AutomatedRssDownloader : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace RSS
|
||||
class Item;
|
||||
}
|
||||
|
||||
class FeedListWidget: public QTreeWidget
|
||||
class FeedListWidget : public QTreeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -308,7 +308,7 @@ void RSSWidget::loadFoldersOpenState()
|
||||
const QStringList openedFolders = Preferences::instance()->getRssOpenFolders();
|
||||
foreach (const QString &varPath, openedFolders) {
|
||||
QTreeWidgetItem *parent = nullptr;
|
||||
foreach (const QString &name, varPath.split("\\")) {
|
||||
foreach (const QString &name, varPath.split('\\')) {
|
||||
int nbChildren = (parent ? parent->childCount() : m_feedListWidget->topLevelItemCount());
|
||||
for (int i = 0; i < nbChildren; ++i) {
|
||||
QTreeWidgetItem *child = (parent ? parent->child(i) : m_feedListWidget->topLevelItem(i));
|
||||
@@ -414,7 +414,7 @@ void RSSWidget::copySelectedFeedsURL()
|
||||
if (auto feed = qobject_cast<RSS::Feed *>(m_feedListWidget->getRSSItem(item)))
|
||||
URLs << feed->url();
|
||||
}
|
||||
qApp->clipboard()->setText(URLs.join("\n"));
|
||||
qApp->clipboard()->setText(URLs.join('\n'));
|
||||
}
|
||||
|
||||
void RSSWidget::handleCurrentFeedItemChanged(QTreeWidgetItem *currentItem)
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Ui
|
||||
class RSSWidget;
|
||||
}
|
||||
|
||||
class RSSWidget: public QWidget
|
||||
class RSSWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#include "pluginselectdlg.h"
|
||||
@@ -41,11 +39,11 @@
|
||||
#include <QMimeData>
|
||||
#include <QTableView>
|
||||
|
||||
#include "autoexpandabledialog.h"
|
||||
#include "base/net/downloadhandler.h"
|
||||
#include "base/net/downloadmanager.h"
|
||||
#include "base/utils/fs.h"
|
||||
#include "base/utils/misc.h"
|
||||
#include "autoexpandabledialog.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "pluginsourcedlg.h"
|
||||
#include "searchwidget.h"
|
||||
@@ -252,7 +250,7 @@ QList<QTreeWidgetItem*> PluginSelectDlg::findItemsWithUrl(QString url)
|
||||
return res;
|
||||
}
|
||||
|
||||
QTreeWidgetItem* PluginSelectDlg::findItemWithID(QString id)
|
||||
QTreeWidgetItem *PluginSelectDlg::findItemWithID(QString id)
|
||||
{
|
||||
for (int i = 0; i < m_ui->pluginsTree->topLevelItemCount(); ++i) {
|
||||
QTreeWidgetItem *item = m_ui->pluginsTree->topLevelItem(i);
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef PLUGINSELECTDLG_H
|
||||
@@ -45,7 +43,7 @@ namespace Ui
|
||||
class PluginSelectDlg;
|
||||
}
|
||||
|
||||
class PluginSelectDlg: public QDialog
|
||||
class PluginSelectDlg : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
@@ -54,7 +52,7 @@ public:
|
||||
~PluginSelectDlg();
|
||||
|
||||
QList<QTreeWidgetItem*> findItemsWithUrl(QString url);
|
||||
QTreeWidgetItem* findItemWithID(QString id);
|
||||
QTreeWidgetItem *findItemWithID(QString id);
|
||||
|
||||
protected:
|
||||
void dropEvent(QDropEvent *event);
|
||||
@@ -67,7 +65,7 @@ private slots:
|
||||
void on_closeButton_clicked();
|
||||
void togglePluginState(QTreeWidgetItem*, int);
|
||||
void setRowColor(int row, QString color);
|
||||
void displayContextMenu(const QPoint& pos);
|
||||
void displayContextMenu(const QPoint &pos);
|
||||
void enableSelection(bool enable);
|
||||
void askForLocalPlugin();
|
||||
void askForPluginUrl();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2006 Christophe Dumez
|
||||
* Copyright (C) 2006 Christophe Dumez <chris@qbittorrent.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -24,8 +24,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#include "pluginsourcedlg.h"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2006 Christophe Dumez
|
||||
* Copyright (C) 2006 Christophe Dumez <chris@qbittorrent.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -24,8 +24,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef PLUGINSOURCEDLG_H
|
||||
@@ -38,7 +36,7 @@ namespace Ui
|
||||
class PluginSourceDlg;
|
||||
}
|
||||
|
||||
class PluginSourceDlg: public QDialog
|
||||
class PluginSourceDlg : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2006 Christophe Dumez
|
||||
* Copyright (C) 2006 Christophe Dumez <chris@qbittorrent.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -24,8 +24,6 @@
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef SEARCHLISTDELEGATE_H
|
||||
@@ -33,7 +31,7 @@
|
||||
|
||||
#include <QItemDelegate>
|
||||
|
||||
class SearchListDelegate: public QItemDelegate
|
||||
class SearchListDelegate : public QItemDelegate
|
||||
{
|
||||
public:
|
||||
explicit SearchListDelegate(QObject *parent);
|
||||
@@ -42,4 +40,4 @@ public:
|
||||
QWidget *createEditor(QWidget *, const QStyleOptionViewItem &, const QModelIndex &) const override;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // SEARCHLISTDELEGATE_H
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2013 sledgehammer999 <hammered999@gmail.com>
|
||||
* Copyright (C) 2013 sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -123,10 +123,10 @@ bool SearchSortModel::lessThan(const QModelIndex &left, const QModelIndex &right
|
||||
|
||||
bool SearchSortModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
|
||||
{
|
||||
const QAbstractItemModel* const sourceModel = this->sourceModel();
|
||||
const QAbstractItemModel *const sourceModel = this->sourceModel();
|
||||
if (m_isNameFilterEnabled && !m_searchTerm.isEmpty()) {
|
||||
QString name = sourceModel->data(sourceModel->index(sourceRow, NAME, sourceParent)).toString();
|
||||
for (const QString& word: m_searchTermWords) {
|
||||
for (const QString &word: m_searchTermWords) {
|
||||
int i = name.indexOf(word, 0, Qt::CaseInsensitive);
|
||||
if (i == -1) {
|
||||
return false;
|
||||
@@ -134,26 +134,26 @@ bool SearchSortModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceP
|
||||
}
|
||||
}
|
||||
|
||||
if (m_minSize > 0 || m_maxSize >= 0) {
|
||||
if ((m_minSize > 0) || (m_maxSize >= 0)) {
|
||||
qlonglong size = sourceModel->data(sourceModel->index(sourceRow, SIZE, sourceParent)).toLongLong();
|
||||
if ((m_minSize > 0 && size < m_minSize)
|
||||
|| (m_maxSize > 0 && size > m_maxSize)) {
|
||||
if (((m_minSize > 0) && (size < m_minSize))
|
||||
|| ((m_maxSize > 0) && (size > m_maxSize))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_minSeeds > 0 || m_maxSeeds >= 0) {
|
||||
if ((m_minSeeds > 0) || (m_maxSeeds >= 0)) {
|
||||
int seeds = sourceModel->data(sourceModel->index(sourceRow, SEEDS, sourceParent)).toInt();
|
||||
if ((m_minSeeds > 0 && seeds < m_minSeeds)
|
||||
|| (m_maxSeeds > 0 && seeds > m_maxSeeds)) {
|
||||
if (((m_minSeeds > 0) && (seeds < m_minSeeds))
|
||||
|| ((m_maxSeeds > 0) && (seeds > m_maxSeeds))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (m_minLeeches > 0 || m_maxLeeches >= 0) {
|
||||
if ((m_minLeeches > 0) || (m_maxLeeches >= 0)) {
|
||||
int leeches = sourceModel->data(sourceModel->index(sourceRow, LEECHES, sourceParent)).toInt();
|
||||
if ((m_minLeeches > 0 && leeches < m_minLeeches)
|
||||
|| (m_maxLeeches > 0 && leeches > m_maxLeeches)) {
|
||||
if (((m_minLeeches > 0) && (leeches < m_minLeeches))
|
||||
|| ((m_maxLeeches > 0) && (leeches > m_maxLeeches))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt and libtorrent.
|
||||
* Copyright (C) 2013 sledgehammer999 <hammered999@gmail.com>
|
||||
* Copyright (C) 2013 sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
@@ -33,7 +33,7 @@
|
||||
#include <QStringList>
|
||||
#include "base/utils/string.h"
|
||||
|
||||
class SearchSortModel: public QSortFilterProxyModel
|
||||
class SearchSortModel : public QSortFilterProxyModel
|
||||
{
|
||||
using base = QSortFilterProxyModel;
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
explicit SearchSortModel(QObject *parent = nullptr);
|
||||
|
||||
void enableNameFilter(bool enabled);
|
||||
void setNameFilter(const QString& searchTerm = QString());
|
||||
void setNameFilter(const QString &searchTerm = QString());
|
||||
|
||||
//! \brief Sets parameters for filtering by size
|
||||
//! \param minSize minimal size in bytes
|
||||
|
||||
@@ -102,7 +102,7 @@ SearchTab::SearchTab(SearchHandler *searchHandler, QWidget *parent)
|
||||
m_ui->resultsBrowser->setAllColumnsShowFocus(true);
|
||||
m_ui->resultsBrowser->setSortingEnabled(true);
|
||||
|
||||
//Ensure that at least one column is visible at all times
|
||||
// Ensure that at least one column is visible at all times
|
||||
bool atLeastOne = false;
|
||||
for (unsigned int i = 0; i < SearchSortModel::DL_LINK; i++) {
|
||||
if (!m_ui->resultsBrowser->isColumnHidden(i)) {
|
||||
@@ -112,9 +112,9 @@ SearchTab::SearchTab(SearchHandler *searchHandler, QWidget *parent)
|
||||
}
|
||||
if (!atLeastOne)
|
||||
m_ui->resultsBrowser->setColumnHidden(SearchSortModel::NAME, false);
|
||||
//To also mitigate the above issue, we have to resize each column when
|
||||
//its size is 0, because explicitly 'showing' the column isn't enough
|
||||
//in the above scenario.
|
||||
// To also mitigate the above issue, we have to resize each column when
|
||||
// its size is 0, because explicitly 'showing' the column isn't enough
|
||||
// in the above scenario.
|
||||
for (unsigned int i = 0; i < SearchSortModel::DL_LINK; i++)
|
||||
if ((m_ui->resultsBrowser->columnWidth(i) <= 0) && !m_ui->resultsBrowser->isColumnHidden(i))
|
||||
m_ui->resultsBrowser->resizeColumnToContents(i);
|
||||
@@ -229,7 +229,7 @@ void SearchTab::copyTorrentURLs()
|
||||
|
||||
if (!urls.empty()) {
|
||||
QClipboard *clipboard = QApplication::clipboard();
|
||||
clipboard->setText(urls.join("\n"));
|
||||
clipboard->setText(urls.join('\n'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ void SearchTab::fillFilterComboBoxes()
|
||||
|
||||
QVariant selectedMode = static_cast<int>(nameFilteringModeSetting().value());
|
||||
int index = m_ui->filterMode->findData(selectedMode);
|
||||
m_ui->filterMode->setCurrentIndex(index == -1 ? 0 : index);
|
||||
m_ui->filterMode->setCurrentIndex((index == -1) ? 0 : index);
|
||||
}
|
||||
|
||||
QString SearchTab::statusText(SearchTab::Status st)
|
||||
|
||||
@@ -34,9 +34,9 @@
|
||||
#define ENGINE_URL_COLUMN 4
|
||||
#define URL_COLUMN 5
|
||||
|
||||
class QHeaderView;
|
||||
class QLabel;
|
||||
class QModelIndex;
|
||||
class QHeaderView;
|
||||
class QStandardItem;
|
||||
class QStandardItemModel;
|
||||
class QVBoxLayout;
|
||||
@@ -44,8 +44,8 @@ class QVBoxLayout;
|
||||
template <typename T> class CachedSettingValue;
|
||||
|
||||
class SearchHandler;
|
||||
class SearchSortModel;
|
||||
class SearchListDelegate;
|
||||
class SearchSortModel;
|
||||
struct SearchResult;
|
||||
|
||||
namespace Ui
|
||||
@@ -110,7 +110,7 @@ private:
|
||||
void setRowColor(int row, const QColor &color);
|
||||
|
||||
static QString statusText(Status st);
|
||||
static CachedSettingValue<NameFilteringMode>& nameFilteringModeSetting();
|
||||
static CachedSettingValue<NameFilteringMode> &nameFilteringModeSetting();
|
||||
|
||||
Ui::SearchTab *m_ui;
|
||||
SearchHandler *m_searchHandler;
|
||||
|
||||
@@ -254,7 +254,7 @@ void SearchWidget::tabChanged(int index)
|
||||
{
|
||||
// when we switch from a tab that is not empty to another that is empty
|
||||
// the download button doesn't have to be available
|
||||
m_currentSearchTab = (index < 0 ? nullptr : m_allTabs.at(m_ui->tabWidget->currentIndex()));
|
||||
m_currentSearchTab = ((index < 0) ? nullptr : m_allTabs.at(m_ui->tabWidget->currentIndex()));
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
@@ -308,10 +308,14 @@ void SearchWidget::on_searchButton_clicked()
|
||||
}
|
||||
|
||||
QStringList plugins;
|
||||
if (selectedPlugin() == "all") plugins = SearchPluginManager::instance()->allPlugins();
|
||||
else if (selectedPlugin() == "enabled") plugins = SearchPluginManager::instance()->enabledPlugins();
|
||||
else if (selectedPlugin() == "multi") plugins = SearchPluginManager::instance()->enabledPlugins();
|
||||
else plugins << selectedPlugin();
|
||||
if (selectedPlugin() == "all")
|
||||
plugins = SearchPluginManager::instance()->allPlugins();
|
||||
else if (selectedPlugin() == "enabled")
|
||||
plugins = SearchPluginManager::instance()->enabledPlugins();
|
||||
else if (selectedPlugin() == "multi")
|
||||
plugins = SearchPluginManager::instance()->enabledPlugins();
|
||||
else
|
||||
plugins << selectedPlugin();
|
||||
|
||||
qDebug("Search with category: %s", qUtf8Printable(selectedCategory()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user