source: trunk/qt/details.h @ 13893

Last change on this file since 13893 was 13893, checked in by jordan, 8 years ago

(qt) #5252: disable file editing in the options dialog. remove keyboard shortcuts that conflicted with renaming files in file-tree.c. fix refresh issue in the file-tree when renaming files.

  • Property svn:keywords set to Date Rev Author Id
File size: 4.1 KB
Line 
1/*
2 * This file Copyright (C) Mnemosyne LLC
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2
6 * as published by the Free Software Foundation.
7 *
8 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
9 *
10 * $Id: details.h 13893 2013-01-28 07:01:58Z jordan $
11 */
12
13#ifndef DETAILS_DIALOG_H
14#define DETAILS_DIALOG_H
15
16#include <QDialog>
17#include <QString>
18#include <QMap>
19#include <QSet>
20#include <QTimer>
21#include <QWidgetList>
22
23#include "prefs.h"
24
25class FileTreeView;
26class QTreeView;
27class QComboBox;
28class QCheckBox;
29class QDoubleSpinBox;
30class QLabel;
31class QRadioButton;
32class QSpinBox;
33class QTextBrowser;
34class QTreeWidget;
35class QTreeWidgetItem;
36class Session;
37class Torrent;
38class TorrentModel;
39class TrackerDelegate;
40class TrackerModel;
41class TrackerModelFilter;
42
43class Details: public QDialog
44{
45    Q_OBJECT
46
47  private:
48    void getNewData ();
49
50  private slots:
51    void onTorrentChanged ();
52    void onTimer ();
53
54  public:
55    Details (Session&, Prefs&, TorrentModel&, QWidget * parent = 0);
56    ~Details ();
57    void setIds (const QSet<int>& ids);
58
59  private:
60    QWidget * createPeersTab ();
61    QWidget * createTrackerTab ();
62    QWidget * createInfoTab ();
63    QWidget * createFilesTab ();
64    QWidget * createOptionsTab ();
65
66  private:
67    QIcon getStockIcon (const QString& freedesktop_name, int fallback);
68    QString timeToStringRounded (int seconds);
69    QString trimToDesiredWidth (const QString& str);
70    void enableWhenChecked (QCheckBox *, QWidget *);
71
72  private:
73    Session& mySession;
74    Prefs& myPrefs;
75    TorrentModel& myModel;
76    QSet<int> myIds;
77    QTimer myTimer;
78    bool myChangedTorrents;
79    bool myHavePendingRefresh;
80
81    QLabel * myStateLabel;
82    QLabel * myHaveLabel;
83    QLabel * myAvailabilityLabel;
84    QLabel * myDownloadedLabel;
85    QLabel * myUploadedLabel;
86    QLabel * myErrorLabel;
87    QLabel * myRunTimeLabel;
88    QLabel * myETALabel;
89    QLabel * myLastActivityLabel;
90
91    QCheckBox * mySessionLimitCheck;
92    QCheckBox * mySingleDownCheck;
93    QCheckBox * mySingleUpCheck;
94    QCheckBox * myShowTrackerScrapesCheck;
95    QCheckBox * myShowBackupTrackersCheck;
96    QPushButton * myAddTrackerButton;
97    QPushButton * myEditTrackerButton;
98    QPushButton * myRemoveTrackerButton;
99    QSpinBox * mySingleDownSpin;
100    QSpinBox * mySingleUpSpin;
101    QComboBox * myRatioCombo;
102    QDoubleSpinBox * myRatioSpin;
103    QComboBox * myIdleCombo;
104    QSpinBox * myIdleSpin;
105    QSpinBox * myPeerLimitSpin;
106    QComboBox * myBandwidthPriorityCombo;
107
108    QLabel * mySizeLabel;
109    QLabel * myHashLabel;
110    QLabel * myPrivacyLabel;
111    QLabel * myOriginLabel;
112    QLabel * myLocationLabel;
113    QTextBrowser * myCommentBrowser;
114
115    QLabel * myTrackerLabel;
116    QLabel * myScrapeTimePrevLabel;
117    QLabel * myScrapeTimeNextLabel;
118    QLabel * myScrapeResponseLabel;
119    QLabel * myAnnounceTimePrevLabel;
120    QLabel * myAnnounceTimeNextLabel;
121    QLabel * myAnnounceResponseLabel;
122    QLabel * myAnnounceManualLabel;
123
124    TrackerModel * myTrackerModel;
125    TrackerModelFilter * myTrackerFilter;
126    TrackerDelegate * myTrackerDelegate;
127    QTreeView * myTrackerView;
128    //QMap<QString,QTreeWidgetItem*> myTrackerTiers;
129    //QMap<QString,QTreeWidgetItem*> myTrackerItems;
130
131    QTreeWidget * myPeerTree;
132    QMap<QString,QTreeWidgetItem*> myPeers;
133
134    QWidgetList myWidgets;
135
136    FileTreeView * myFileTreeView;
137
138  private slots:
139    void refreshPref (int key);
140    void onBandwidthPriorityChanged (int);
141    void onFilePriorityChanged (const QSet<int>& fileIndices, int);
142    void onFileWantedChanged (const QSet<int>& fileIndices, bool);
143    void onPathEdited (const QString& oldpath, const QString& newname);
144    void onHonorsSessionLimitsToggled (bool);
145    void onDownloadLimitedToggled (bool);
146    void onSpinBoxEditingFinished ();
147    void onUploadLimitedToggled (bool);
148    void onRatioModeChanged (int);
149    void onIdleModeChanged (int);
150    void onShowTrackerScrapesToggled (bool);
151    void onShowBackupTrackersToggled (bool);
152    void onTrackerSelectionChanged ();
153    void onAddTrackerClicked ();
154    void onEditTrackerClicked ();
155    void onRemoveTrackerClicked ();
156    void refresh ();
157};
158
159#endif
Note: See TracBrowser for help on using the repository browser.