source: trunk/qt/details.h @ 11452

Last change on this file since 11452 was 11452, checked in by charles, 10 years ago

(trunk qt) #3772 "users' changes in the Preferences and Properties dialog get applied before they're done editing" -- fixed.

  • Property svn:keywords set to Date Rev Author Id
File size: 4.4 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 11452 2010-12-04 00:19:52Z charles $
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 onHonorsSessionLimitsToggled( bool );
144        void onDownloadLimitedToggled( bool );
145        void onSpinBoxEditingFinished( );
146        void onUploadLimitedToggled( bool );
147        void onRatioModeChanged( int );
148        void onIdleModeChanged( int );
149        void onShowTrackerScrapesToggled( bool );
150        void onShowBackupTrackersToggled( bool );
151        void onTrackerSelectionChanged( );
152        void onAddTrackerClicked( );
153        void onEditTrackerClicked( );
154        void onRemoveTrackerClicked( );
155        void refresh( );
156};
157
158#endif
Note: See TracBrowser for help on using the repository browser.