mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-09 05:14:23 +00:00
use post_status_update()
Conflicts: src/qtlibtorrent/qbtsession.cpp
This commit is contained in:
parent
eb46326d23
commit
b50d7331c7
@ -2568,6 +2568,9 @@ void QBtSession::handleAlert(libtorrent::alert* a) {
|
|||||||
boost::system::error_code ec;
|
boost::system::error_code ec;
|
||||||
addConsoleMessage(tr("External IP: %1", "e.g. External IP: 192.168.0.1").arg(p->external_address.to_string(ec).c_str()), "blue");
|
addConsoleMessage(tr("External IP: %1", "e.g. External IP: 192.168.0.1").arg(p->external_address.to_string(ec).c_str()), "blue");
|
||||||
}
|
}
|
||||||
|
else if (state_update_alert *p = dynamic_cast<state_update_alert *>(a)) {
|
||||||
|
emit stateUpdate(p->status);
|
||||||
|
}
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception& e) {
|
||||||
qWarning() << "Caught exception in readAlerts(): " << e.what();
|
qWarning() << "Caught exception in readAlerts(): " << e.what();
|
||||||
}
|
}
|
||||||
@ -2819,6 +2822,10 @@ quint64 QBtSession::getAlltimeUL() const {
|
|||||||
return m_speedMonitor->getAlltimeUL();
|
return m_speedMonitor->getAlltimeUL();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QBtSession::postTorrentUpdate() {
|
||||||
|
s->post_torrent_updates();
|
||||||
|
}
|
||||||
|
|
||||||
void QBtSession::handleIPFilterParsed(int ruleCount)
|
void QBtSession::handleIPFilterParsed(int ruleCount)
|
||||||
{
|
{
|
||||||
addConsoleMessage(tr("Successfully parsed the provided IP filter: %1 rules were applied.", "%1 is a number").arg(ruleCount));
|
addConsoleMessage(tr("Successfully parsed the provided IP filter: %1 rules were applied.", "%1 is a number").arg(ruleCount));
|
||||||
|
@ -111,6 +111,7 @@ public:
|
|||||||
inline bool isQueueingEnabled() const { return queueingEnabled; }
|
inline bool isQueueingEnabled() const { return queueingEnabled; }
|
||||||
quint64 getAlltimeDL() const;
|
quint64 getAlltimeDL() const;
|
||||||
quint64 getAlltimeUL() const;
|
quint64 getAlltimeUL() const;
|
||||||
|
void postTorrentUpdate();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false);
|
QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false);
|
||||||
@ -232,6 +233,7 @@ signals:
|
|||||||
void recursiveTorrentDownloadPossible(const QTorrentHandle &h);
|
void recursiveTorrentDownloadPossible(const QTorrentHandle &h);
|
||||||
void ipFilterParsed(bool error, int ruleCount);
|
void ipFilterParsed(bool error, int ruleCount);
|
||||||
void metadataReceivedHidden(const QTorrentHandle &h);
|
void metadataReceivedHidden(const QTorrentHandle &h);
|
||||||
|
void stateUpdate(const std::vector<libtorrent::torrent_status> &statuses);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Bittorrent
|
// Bittorrent
|
||||||
|
@ -101,11 +101,9 @@ TorrentModelItem::TorrentModelItem(const QTorrentHandle &h)
|
|||||||
m_name = h.name();
|
m_name = h.name();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TorrentModelItem::refreshStatus()
|
void TorrentModelItem::refreshStatus(libtorrent::torrent_status const& status)
|
||||||
{
|
{
|
||||||
try {
|
m_lastStatus = status;
|
||||||
m_lastStatus = m_torrent.status();
|
|
||||||
} catch(invalid_handle&) {}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TorrentModelItem::State TorrentModelItem::state() const
|
TorrentModelItem::State TorrentModelItem::state() const
|
||||||
@ -309,6 +307,7 @@ void TorrentModel::populate() {
|
|||||||
connect(QBtSession::instance(), SIGNAL(resumedTorrent(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
connect(QBtSession::instance(), SIGNAL(resumedTorrent(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
||||||
connect(QBtSession::instance(), SIGNAL(pausedTorrent(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
connect(QBtSession::instance(), SIGNAL(pausedTorrent(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
||||||
connect(QBtSession::instance(), SIGNAL(torrentFinishedChecking(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
connect(QBtSession::instance(), SIGNAL(torrentFinishedChecking(QTorrentHandle)), SLOT(handleTorrentUpdate(QTorrentHandle)));
|
||||||
|
connect(QBtSession::instance(), SIGNAL(stateUpdate(std::vector<libtorrent::torrent_status>)), SLOT(stateUpdated(std::vector<libtorrent::torrent_status>)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TorrentModel::~TorrentModel() {
|
TorrentModel::~TorrentModel() {
|
||||||
@ -441,6 +440,7 @@ void TorrentModel::handleTorrentUpdate(const QTorrentHandle &h)
|
|||||||
{
|
{
|
||||||
const int row = torrentRow(h.hash());
|
const int row = torrentRow(h.hash());
|
||||||
if (row >= 0) {
|
if (row >= 0) {
|
||||||
|
m_torrents[row]->refreshStatus(h.status(torrent_handle::query_accurate_download_counters));
|
||||||
notifyTorrentChanged(row);
|
notifyTorrentChanged(row);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -453,6 +453,7 @@ void TorrentModel::handleFinishedTorrent(const QTorrentHandle& h)
|
|||||||
|
|
||||||
// Update completion date
|
// Update completion date
|
||||||
m_torrents[row]->setData(TorrentModelItem::TR_SEED_DATE, QDateTime::currentDateTime(), Qt::DisplayRole);
|
m_torrents[row]->setData(TorrentModelItem::TR_SEED_DATE, QDateTime::currentDateTime(), Qt::DisplayRole);
|
||||||
|
m_torrents[row]->refreshStatus(h.status(torrent_handle::query_accurate_download_counters));
|
||||||
notifyTorrentChanged(row);
|
notifyTorrentChanged(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -472,14 +473,8 @@ void TorrentModel::setRefreshInterval(int refreshInterval)
|
|||||||
|
|
||||||
void TorrentModel::forceModelRefresh()
|
void TorrentModel::forceModelRefresh()
|
||||||
{
|
{
|
||||||
QList<TorrentModelItem*>::const_iterator it = m_torrents.constBegin();
|
|
||||||
QList<TorrentModelItem*>::const_iterator itend = m_torrents.constEnd();
|
|
||||||
for ( ; it != itend; ++it) {
|
|
||||||
TorrentModelItem* item = *it;
|
|
||||||
item->refreshStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
emit dataChanged(index(0, 0), index(rowCount()-1, columnCount()-1));
|
emit dataChanged(index(0, 0), index(rowCount()-1, columnCount()-1));
|
||||||
|
QBtSession::instance()->postTorrentUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
TorrentStatusReport TorrentModel::getTorrentStatusReport() const
|
TorrentStatusReport TorrentModel::getTorrentStatusReport() const
|
||||||
@ -554,6 +549,20 @@ void TorrentModel::handleTorrentAboutToBeRemoved(const QTorrentHandle &h)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TorrentModel::stateUpdated(const std::vector<libtorrent::torrent_status> &statuses)
|
||||||
|
{
|
||||||
|
typedef std::vector<libtorrent::torrent_status> statuses_t;
|
||||||
|
|
||||||
|
for (statuses_t::const_iterator i = statuses.begin(), end = statuses.end(); i != end; ++i)
|
||||||
|
{
|
||||||
|
libtorrent::torrent_status const& status = *i;
|
||||||
|
|
||||||
|
const int row = torrentRow(misc::toQString(status.handle.info_hash()));
|
||||||
|
if (row >= 0)
|
||||||
|
m_torrents[row]->refreshStatus(status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool TorrentModel::inhibitSystem()
|
bool TorrentModel::inhibitSystem()
|
||||||
{
|
{
|
||||||
QList<TorrentModelItem*>::const_iterator it = m_torrents.constBegin();
|
QList<TorrentModelItem*>::const_iterator it = m_torrents.constBegin();
|
||||||
|
@ -53,7 +53,7 @@ public:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
TorrentModelItem(const QTorrentHandle& h);
|
TorrentModelItem(const QTorrentHandle& h);
|
||||||
void refreshStatus();
|
void refreshStatus(libtorrent::torrent_status const& status);
|
||||||
inline int columnCount() const { return NB_COLUMNS; }
|
inline int columnCount() const { return NB_COLUMNS; }
|
||||||
QVariant data(int column, int role = Qt::DisplayRole) const;
|
QVariant data(int column, int role = Qt::DisplayRole) const;
|
||||||
bool setData(int column, const QVariant &value, int role = Qt::DisplayRole);
|
bool setData(int column, const QVariant &value, int role = Qt::DisplayRole);
|
||||||
@ -112,6 +112,7 @@ private slots:
|
|||||||
void forceModelRefresh();
|
void forceModelRefresh();
|
||||||
void handleTorrentLabelChange(QString previous, QString current);
|
void handleTorrentLabelChange(QString previous, QString current);
|
||||||
void handleTorrentAboutToBeRemoved(const QTorrentHandle & h);
|
void handleTorrentAboutToBeRemoved(const QTorrentHandle & h);
|
||||||
|
void stateUpdated(const std::vector<libtorrent::torrent_status> &statuses);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void beginInsertTorrent(int row);
|
void beginInsertTorrent(int row);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user