mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
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.
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
/*
|
|
* This file Copyright (C) 2010-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_FILTER_BAR_H
|
|
#define QTR_FILTER_BAR_H
|
|
|
|
#include <QWidget>
|
|
|
|
class QLabel;
|
|
class QStandardItemModel;
|
|
class QTimer;
|
|
|
|
class FilterBarComboBox;
|
|
class FilterBarLineEdit;
|
|
class Prefs;
|
|
class TorrentFilter;
|
|
class TorrentModel;
|
|
|
|
class FilterBar: public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
FilterBar (Prefs& prefs, const TorrentModel& torrents, const TorrentFilter& filter, QWidget * parent = nullptr);
|
|
virtual ~FilterBar ();
|
|
|
|
private:
|
|
FilterBarComboBox * createTrackerCombo (QStandardItemModel *);
|
|
FilterBarComboBox * createActivityCombo ();
|
|
void refreshTrackers ();
|
|
QString getCountString (int n) const;
|
|
|
|
private slots:
|
|
void recountSoon ();
|
|
void recount ();
|
|
void refreshPref (int key);
|
|
void onActivityIndexChanged (int index);
|
|
void onTrackerIndexChanged (int index);
|
|
void onTextChanged (const QString&);
|
|
|
|
private:
|
|
Prefs& myPrefs;
|
|
const TorrentModel& myTorrents;
|
|
const TorrentFilter& myFilter;
|
|
|
|
FilterBarComboBox * myActivityCombo;
|
|
FilterBarComboBox * myTrackerCombo;
|
|
QLabel * myCountLabel;
|
|
QStandardItemModel * myTrackerModel;
|
|
QTimer * myRecountTimer;
|
|
bool myIsBootstrapping;
|
|
FilterBarLineEdit * myLineEdit;
|
|
};
|
|
|
|
#endif // QTR_FILTER_BAR_H
|