Files
BudgetPro/utils/filtertableheader.h
T
2026-05-24 23:21:33 +02:00

48 lines
1.2 KiB
C++

#ifndef FILTERTABLEHEADER_H
#define FILTERTABLEHEADER_H
#include <QHeaderView>
#include <vector>
class QTableView;
class FilterLineEdit;
class FilterTableHeader : public QHeaderView
{
Q_OBJECT
public:
explicit FilterTableHeader(QTableView* parent = nullptr);
QSize sizeHint() const override;
bool hasFilters() const {return (filterWidgets.size() > 0);}
QString filterValue(size_t column) const;
void setFocusColumn(size_t column);
public slots:
void generateFilters(size_t number, size_t number_of_hidden_filters = 1);
void adjustPositions();
void clearFilters();
void setFilter(size_t column, const QString& value);
signals:
void filterChanged(size_t column, QString value);
void filterFocused();
void addCondFormat(size_t column, QString filter);
void allCondFormatsCleared(size_t column);
void condFormatsEdited(size_t column);
protected:
void updateGeometries() override;
private slots:
void inputChanged(const QString& new_value);
void addFilterAsCondFormat(const QString& filter);
void clearAllCondFormats();
void editCondFormats();
private:
std::vector<FilterLineEdit*> filterWidgets;
};
#endif