source: trunk/qt/mainwin.h @ 14379

Last change on this file since 14379 was 14379, checked in by mikedld, 8 years ago

Fix various cppcheck comments for Qt client code

  • Property svn:keywords set to Date Rev Author Id
File size: 5.0 KB
Line 
1/*
2 * This file Copyright (C) 2009-2014 Mnemosyne LLC
3 *
4 * It may be used under the GNU GPL versions 2 or 3
5 * or any future license endorsed by Mnemosyne LLC.
6 *
7 * $Id: mainwin.h 14379 2014-12-12 23:52:17Z mikedld $
8 */
9
10#ifndef MAIN_WINDOW_H
11#define MAIN_WINDOW_H
12
13#include <ctime>
14#include <QLineEdit>
15#include <QIcon>
16#include <QMainWindow>
17#include <QMap>
18#include <QPushButton>
19#include <QSet>
20#include <QSystemTrayIcon>
21#include <QTimer>
22#include <QWidgetList>
23#include <QNetworkReply>
24
25extern "C"
26{
27  struct tr_variant;
28}
29
30#include "filters.h"
31#include "torrent-filter.h"
32#include "ui_mainwin.h"
33
34class AddData;
35class ActionDelegator;
36class Prefs;
37class Details;
38class Session;
39class TorrentDelegate;
40class TorrentDelegateMin;
41class TorrentModel;
42class QAction;
43class QLabel;
44class QMenu;
45class QModelIndex;
46class QSortFilterProxyModel;
47class Filterbar;
48
49class TrMainWindow: public QMainWindow
50{
51    Q_OBJECT
52
53  private:
54    virtual void hideEvent (QHideEvent * event);
55    virtual void showEvent (QShowEvent * event);
56
57  private:
58    time_t myLastFullUpdateTime;
59    QDialog * mySessionDialog;
60    QDialog * myPrefsDialog;
61    QDialog * myAboutDialog;
62    QDialog * myStatsDialog;
63    Details * myDetailsDialog;
64    QSystemTrayIcon myTrayIcon;
65    TorrentFilter myFilterModel;
66    TorrentDelegate * myTorrentDelegate;
67    TorrentDelegateMin * myTorrentDelegateMin;
68    Session& mySession;
69    Prefs& myPrefs;
70    TorrentModel& myModel;
71    Ui_MainWindow ui;
72    QIcon mySpeedModeOffIcon;
73    QIcon mySpeedModeOnIcon;
74    time_t myLastSendTime;
75    time_t myLastReadTime;
76    QTimer myNetworkTimer;
77    bool myNetworkError;
78    QTimer myRefreshTrayIconTimer;
79    QTimer myRefreshActionSensitivityTimer;
80    QAction * myDlimitOffAction;
81    QAction * myDlimitOnAction;
82    QAction * myUlimitOffAction;
83    QAction * myUlimitOnAction;
84    QAction * myRatioOffAction;
85    QAction * myRatioOnAction;
86
87  private:
88    QIcon getStockIcon (const QString&, int fallback=-1);
89
90  private:
91    QSet<int> getSelectedTorrents () const;
92    void updateNetworkIcon ();
93    QWidgetList myHidden;
94
95  private slots:
96    void onPrefsDestroyed ();
97    void openPreferences ();
98    void onDetailsDestroyed ();
99    void showTotalRatio ();
100    void showTotalTransfer ();
101    void showSessionRatio ();
102    void showSessionTransfer ();
103    void refreshTitle ();
104    void refreshStatusBar ();
105    void refreshTrayIcon ();
106    void refreshTrayIconSoon ();
107    void openTorrent ();
108    void openURL ();
109    void newTorrent ();
110    void trayActivated (QSystemTrayIcon::ActivationReason);
111    void refreshPref (int key);
112    void addTorrents (const QStringList& filenames);
113    void removeTorrents (const bool deleteFiles);
114    void openDonate ();
115    void openHelp ();
116    void openFolder ();
117    void copyMagnetLinkToClipboard ();
118    void setLocation ();
119    void openProperties ();
120    void toggleSpeedMode ();
121    void dataReadProgress ();
122    void dataSendProgress ();
123    void onError (QNetworkReply::NetworkError);
124    void errorMessage (const QString&);
125    void toggleWindows (bool doShow);
126    void onSetPrefs ();
127    void onSetPrefs (bool);
128    void onSessionSourceChanged ();
129    void onModelReset ();
130
131  private slots:
132    void setSortPref (int);
133    void setSortAscendingPref (bool);
134    void onSortByActivityToggled (bool);
135    void onSortByAgeToggled (bool);
136    void onSortByETAToggled (bool);
137    void onSortByNameToggled (bool);
138    void onSortByProgressToggled (bool);
139    void onSortByQueueToggled (bool);
140    void onSortByRatioToggled (bool);
141    void onSortBySizeToggled (bool);
142    void onSortByStateToggled (bool);
143
144  private:
145    QWidget * myFilterBar;
146
147  private:
148    QMenu * createOptionsMenu (void);
149    QWidget * createStatusBar (void);
150    QWidget * myStatusBar;
151    QPushButton * myAltSpeedButton;
152    QAction * myAltSpeedAction;
153    QPushButton * myOptionsButton;
154    QPushButton * myStatsModeButton;
155    QLabel * myStatsLabel;
156    QLabel * myDownloadSpeedLabel;
157    QLabel * myUploadSpeedLabel;
158    QLabel * myNetworkLabel;
159    QString myErrorMessage;
160
161  public slots:
162    void startAll ();
163    void startSelected ();
164    void startSelectedNow ();
165    void pauseAll ();
166    void pauseSelected ();
167    void removeSelected ();
168    void deleteSelected ();
169    void verifySelected ();
170    void queueMoveTop ();
171    void queueMoveUp ();
172    void queueMoveDown ();
173    void queueMoveBottom ();
174    void reannounceSelected ();
175    void onNetworkTimer ();
176
177  private:
178    void clearSelection ();
179    void addTorrent (const AddData& addMe, bool showOptions);
180
181  public slots:
182    void setToolbarVisible (bool);
183    void setFilterbarVisible (bool);
184    void setStatusbarVisible (bool);
185    void setCompactView (bool);
186    void refreshActionSensitivity ();
187    void refreshActionSensitivitySoon ();
188    void wrongAuthentication ();
189
190  public:
191    TrMainWindow (Session&, Prefs&, TorrentModel&, bool minized);
192    virtual ~TrMainWindow ();
193
194  protected:
195    virtual void contextMenuEvent (QContextMenuEvent *);
196    virtual void dragEnterEvent (QDragEnterEvent *);
197    virtual void dropEvent (QDropEvent *);
198};
199
200#endif
Note: See TracBrowser for help on using the repository browser.