subsurface/desktop-widgets/filterwidget2.h
Berthold Stoeger b76f207158 Filter: split out filter from model
Split out the actual filtering from the MultiFilterSortModel.
Create a DiveFilter class that does the actual filtering.
Currently, mobile and desktop have their own version of this
class, though ultimately we may want to merge them.

The idea here is that the trip-model and undo-commands have
direct access to the filter-function and thus can take care
of keeping track of the number of shown dives, etc.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-11-19 21:13:40 -08:00

45 lines
808 B
C++

#ifndef FILTERWIDGET_2_H
#define FILTERWIDGET_2_H
#include <QWidget>
#include <QHideEvent>
#include <QShowEvent>
#include <memory>
#include "ui_filterwidget2.h"
#include "core/divefilter.h"
namespace Ui {
class FilterWidget2;
}
class FilterWidget2 : public QWidget {
Q_OBJECT
public:
explicit FilterWidget2(QWidget *parent = 0);
void updateFilter();
QString shownText();
protected:
void hideEvent(QHideEvent *event) override;
void showEvent(QShowEvent *event) override;
public slots:
void updatePlanned(int value);
void updateLogged(int value);
private slots:
void clearFilter();
void closeFilter();
void temperatureChanged();
private:
bool ignoreSignal;
bool isActive() const;
Ui::FilterWidget2 ui;
void filterDataChanged(const FilterData &data);
FilterData filterData;
};
#endif