2009-04-09 18:55:47 +00:00
|
|
|
/*
|
2015-06-10 21:27:11 +00:00
|
|
|
* This file Copyright (C) 2009-2015 Mnemosyne LLC
|
2009-04-09 18:55:47 +00:00
|
|
|
*
|
2014-01-21 03:10:30 +00:00
|
|
|
* It may be used under the GNU GPL versions 2 or 3
|
2014-01-19 01:09:44 +00:00
|
|
|
* or any future license endorsed by Mnemosyne LLC.
|
2009-04-09 18:55:47 +00:00
|
|
|
*
|
2009-05-31 19:33:48 +00:00
|
|
|
* $Id$
|
2009-04-09 18:55:47 +00:00
|
|
|
*/
|
|
|
|
|
2015-06-10 21:27:11 +00:00
|
|
|
#ifndef QTR_DETAILS_DIALOG_H
|
|
|
|
#define QTR_DETAILS_DIALOG_H
|
2009-04-09 18:55:47 +00:00
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
#include <QMap>
|
|
|
|
#include <QSet>
|
|
|
|
#include <QTimer>
|
|
|
|
|
2015-09-01 20:19:26 +00:00
|
|
|
#include "BaseDialog.h"
|
|
|
|
|
2015-06-10 21:27:11 +00:00
|
|
|
#include "ui_DetailsDialog.h"
|
2014-12-14 18:12:21 +00:00
|
|
|
|
2009-04-09 18:55:47 +00:00
|
|
|
class QTreeWidgetItem;
|
2015-06-12 22:12:12 +00:00
|
|
|
|
|
|
|
class Prefs;
|
2009-04-09 18:55:47 +00:00
|
|
|
class Session;
|
|
|
|
class Torrent;
|
2009-04-18 23:18:28 +00:00
|
|
|
class TorrentModel;
|
2010-07-27 19:43:32 +00:00
|
|
|
class TrackerDelegate;
|
|
|
|
class TrackerModel;
|
2010-07-28 14:43:47 +00:00
|
|
|
class TrackerModelFilter;
|
2009-04-09 18:55:47 +00:00
|
|
|
|
2015-09-01 20:19:26 +00:00
|
|
|
class DetailsDialog: public BaseDialog
|
2009-04-09 18:55:47 +00:00
|
|
|
{
|
2013-01-26 01:19:54 +00:00
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2015-06-12 22:12:12 +00:00
|
|
|
DetailsDialog (Session&, Prefs&, const TorrentModel&, QWidget * parent = nullptr);
|
|
|
|
virtual ~DetailsDialog ();
|
|
|
|
|
2013-01-26 01:19:54 +00:00
|
|
|
void setIds (const QSet<int>& ids);
|
2015-06-12 22:12:12 +00:00
|
|
|
|
|
|
|
// QWidget
|
2013-08-24 20:34:43 +00:00
|
|
|
virtual QSize sizeHint () const { return QSize (440, 460); }
|
2013-01-26 01:19:54 +00:00
|
|
|
|
|
|
|
private:
|
2014-12-14 18:12:21 +00:00
|
|
|
void initPeersTab ();
|
|
|
|
void initTrackerTab ();
|
|
|
|
void initInfoTab ();
|
|
|
|
void initFilesTab ();
|
|
|
|
void initOptionsTab ();
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
void getNewData ();
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
QIcon getStockIcon (const QString& freedesktop_name, int fallback);
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
private slots:
|
|
|
|
void refresh ();
|
|
|
|
void refreshPref (int key);
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
void onTorrentChanged ();
|
|
|
|
void onTimer ();
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
// Tracker tab
|
|
|
|
void onTrackerSelectionChanged ();
|
|
|
|
void onAddTrackerClicked ();
|
|
|
|
void onEditTrackerClicked ();
|
|
|
|
void onRemoveTrackerClicked ();
|
|
|
|
void onShowTrackerScrapesToggled (bool);
|
|
|
|
void onShowBackupTrackersToggled (bool);
|
2013-01-26 01:19:54 +00:00
|
|
|
|
2015-06-12 22:12:12 +00:00
|
|
|
// Files tab
|
2013-01-26 01:19:54 +00:00
|
|
|
void onFilePriorityChanged (const QSet<int>& fileIndices, int);
|
|
|
|
void onFileWantedChanged (const QSet<int>& fileIndices, bool);
|
|
|
|
void onPathEdited (const QString& oldpath, const QString& newname);
|
2013-09-08 19:03:25 +00:00
|
|
|
void onOpenRequested (const QString& path);
|
2015-06-12 22:12:12 +00:00
|
|
|
|
|
|
|
// Options tab
|
|
|
|
void onBandwidthPriorityChanged (int);
|
2013-01-26 01:19:54 +00:00
|
|
|
void onHonorsSessionLimitsToggled (bool);
|
|
|
|
void onDownloadLimitedToggled (bool);
|
|
|
|
void onSpinBoxEditingFinished ();
|
|
|
|
void onUploadLimitedToggled (bool);
|
|
|
|
void onRatioModeChanged (int);
|
|
|
|
void onIdleModeChanged (int);
|
2014-12-22 03:06:09 +00:00
|
|
|
void onIdleLimitChanged ();
|
2015-06-12 22:12:12 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
Session& mySession;
|
|
|
|
Prefs& myPrefs;
|
|
|
|
const TorrentModel& myModel;
|
|
|
|
|
|
|
|
Ui::DetailsDialog ui;
|
|
|
|
|
|
|
|
QSet<int> myIds;
|
|
|
|
QTimer myTimer;
|
|
|
|
bool myChangedTorrents;
|
|
|
|
bool myHavePendingRefresh;
|
|
|
|
|
|
|
|
TrackerModel * myTrackerModel;
|
|
|
|
TrackerModelFilter * myTrackerFilter;
|
|
|
|
TrackerDelegate * myTrackerDelegate;
|
|
|
|
|
|
|
|
QMap<QString, QTreeWidgetItem*> myPeers;
|
2009-04-09 18:55:47 +00:00
|
|
|
};
|
|
|
|
|
2015-06-10 21:27:11 +00:00
|
|
|
#endif // QTR_DETAILS_DIALOG_H
|