subsurface/desktop-widgets/filterwidget2.h
Berthold Stoeger 581eb1f563 filter: create a primitive "create filter preset" dialog
The dialog asks the user for a name and warns if the name
already exists, i.e. an old filter preset will be overwritten.
Possibly, this should contain an auto-completion facility in
the case that the user wants to overwrite old presets.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-09-29 16:13:03 -07:00

48 lines
1.2 KiB
C++

#ifndef FILTERWIDGET_2_H
#define FILTERWIDGET_2_H
#include <QHideEvent>
#include <QShowEvent>
#include <vector>
#include <memory>
#include "ui_filterwidget2.h"
#include "core/divefilter.h"
#include "qt-models/filterconstraintmodel.h"
class FilterConstraintWidget;
class FilterWidget2 : public QWidget {
Q_OBJECT
public:
explicit FilterWidget2(QWidget *parent = 0);
~FilterWidget2();
QString shownText();
protected:
void hideEvent(QHideEvent *event) override;
void showEvent(QShowEvent *event) override;
private slots:
void clearFilter();
void closeFilter();
void updateFilter();
void constraintAdded(const QModelIndex &parent, int first, int last);
void constraintRemoved(const QModelIndex &parent, int first, int last);
void constraintChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
void constraintsReset();
void on_addSetButton_clicked();
private:
bool ignoreSignal;
Ui::FilterWidget2 ui;
FilterConstraintModel constraintModel;
bool validFilter;
void addConstraint(filter_constraint_type type);
std::vector<std::unique_ptr<FilterConstraintWidget>> constraintWidgets;
FilterData createFilterData() const;
};
#endif