1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-29 02:56:11 +00:00
transmission/qt/MainWindow.h
Mike Gelfand 585e3df30c Show notice on top of filtered torrents list
This has a couple of benefits: 1) it is clearly visible to the user that
the list is filtered (doesn't display all the torrents) even when filter
bar is hidden, 2) doesn't lead to filter bar controls being shifted to
the left/right as when "Show:" label text changes.
2015-10-19 20:30:26 +00:00

180 lines
4.4 KiB
C++

/*
* This file Copyright (C) 2009-2015 Mnemosyne LLC
*
* It may be used under the GNU GPL versions 2 or 3
* or any future license endorsed by Mnemosyne LLC.
*
* $Id$
*/
#ifndef QTR_MAIN_WINDOW_H
#define QTR_MAIN_WINDOW_H
#include <ctime>
#include <QMainWindow>
#include <QNetworkReply>
#include <QPointer>
#include <QSet>
#include <QSystemTrayIcon>
#include <QTimer>
#include <QWidgetList>
#include "Filters.h"
#include "TorrentFilter.h"
#include "ui_MainWindow.h"
class QAction;
class QIcon;
class QMenu;
class AboutDialog;
class AddData;
class DetailsDialog;
class Prefs;
class PrefsDialog;
class Session;
class SessionDialog;
class StatsDialog;
class TorrentDelegate;
class TorrentDelegateMin;
class TorrentModel;
extern "C"
{
struct tr_variant;
}
class MainWindow: public QMainWindow
{
Q_OBJECT
public:
MainWindow (Session&, Prefs&, TorrentModel&, bool minized);
virtual ~MainWindow ();
QSystemTrayIcon& trayIcon () { return myTrayIcon; }
public slots:
void startAll ();
void startSelected ();
void startSelectedNow ();
void pauseAll ();
void pauseSelected ();
void removeSelected ();
void deleteSelected ();
void verifySelected ();
void queueMoveTop ();
void queueMoveUp ();
void queueMoveDown ();
void queueMoveBottom ();
void reannounceSelected ();
void onNetworkTimer ();
void setToolbarVisible (bool);
void setFilterbarVisible (bool);
void setStatusbarVisible (bool);
void setCompactView (bool);
void refreshActionSensitivity ();
void refreshActionSensitivitySoon ();
void wrongAuthentication ();
void openSession ();
protected:
// QWidget
virtual void contextMenuEvent (QContextMenuEvent *);
virtual void dragEnterEvent (QDragEnterEvent *);
virtual void dropEvent (QDropEvent *);
private:
QIcon getStockIcon (const QString&, int fallback = -1);
QSet<int> getSelectedTorrents (bool withMetadataOnly = false) const;
void updateNetworkIcon ();
QMenu * createOptionsMenu ();
QMenu * createStatsModeMenu ();
void initStatusBar ();
void clearSelection ();
void addTorrent (const AddData& addMe, bool showOptions);
// QWidget
virtual void hideEvent (QHideEvent * event);
virtual void showEvent (QShowEvent * event);
private slots:
void openPreferences ();
void refreshTitle ();
void refreshStatusBar ();
void refreshTrayIcon ();
void refreshTrayIconSoon ();
void refreshTorrentViewHeader ();
void openTorrent ();
void openURL ();
void newTorrent ();
void trayActivated (QSystemTrayIcon::ActivationReason);
void refreshPref (int key);
void addTorrents (const QStringList& filenames);
void removeTorrents (const bool deleteFiles);
void openStats ();
void openDonate ();
void openAbout ();
void openHelp ();
void openFolder ();
void copyMagnetLinkToClipboard ();
void setLocation ();
void openProperties ();
void toggleSpeedMode ();
void dataReadProgress ();
void dataSendProgress ();
void onError (QNetworkReply::NetworkError);
void errorMessage (const QString&);
void toggleWindows (bool doShow);
void onSetPrefs ();
void onSetPrefs (bool);
void onSessionSourceChanged ();
void onModelReset ();
void setSortAscendingPref (bool);
void onStatsModeChanged (QAction * action);
void onSortModeChanged (QAction * action);
private:
Session& mySession;
Prefs& myPrefs;
TorrentModel& myModel;
Ui_MainWindow ui;
time_t myLastFullUpdateTime;
QPointer<SessionDialog> mySessionDialog;
QPointer<PrefsDialog> myPrefsDialog;
QPointer<AboutDialog> myAboutDialog;
QPointer<StatsDialog> myStatsDialog;
QPointer<DetailsDialog> myDetailsDialog;
QSystemTrayIcon myTrayIcon;
TorrentFilter myFilterModel;
TorrentDelegate * myTorrentDelegate;
TorrentDelegateMin * myTorrentDelegateMin;
time_t myLastSendTime;
time_t myLastReadTime;
QTimer myNetworkTimer;
bool myNetworkError;
QTimer myRefreshTrayIconTimer;
QTimer myRefreshActionSensitivityTimer;
QAction * myDlimitOffAction;
QAction * myDlimitOnAction;
QAction * myUlimitOffAction;
QAction * myUlimitOnAction;
QAction * myRatioOffAction;
QAction * myRatioOnAction;
QWidgetList myHidden;
QWidget * myFilterBar;
QAction * myAltSpeedAction;
QString myErrorMessage;
};
#endif // QTR_MAIN_WINDOW_H