Chatterino
EditableModelView.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QWidget>
4 
5 #include <pajlada/signals/signal.hpp>
6 
7 class QAbstractTableModel;
8 class QTableView;
9 class QHBoxLayout;
10 
11 namespace chatterino {
12 
13 class EditableModelView : public QWidget
14 {
15 public:
16  EditableModelView(QAbstractTableModel *model, bool movable = true);
17 
18  void setTitles(std::initializer_list<QString> titles);
19  void setValidationRegexp(QRegularExpression regexp);
20 
21  QTableView *getTableView();
22  QAbstractTableModel *getModel();
23 
24  pajlada::Signals::NoArgSignal addButtonPressed;
25 
26  void addCustomButton(QWidget *widget);
27  void addRegexHelpLink();
28 
29 private:
30  QTableView *tableView_{};
31  QAbstractTableModel *model_{};
32  QHBoxLayout *buttons_{};
33 
34  void moveRow(int dir);
35 
36 public:
37  void selectRow(int row);
38 };
39 
40 } // namespace chatterino
void setTitles(std::initializer_list< QString > titles)
Definition: EditableModelView.cpp:99
EditableModelView(QAbstractTableModel *model, bool movable=true)
Definition: EditableModelView.cpp:17
void selectRow(int row)
Definition: EditableModelView.cpp:155
Definition: Application.cpp:48
Definition: EditableModelView.hpp:13
QTableView * getTableView()
Definition: EditableModelView.cpp:114
void addCustomButton(QWidget *widget)
Definition: EditableModelView.cpp:124
void setValidationRegexp(QRegularExpression regexp)
Definition: EditableModelView.cpp:94
pajlada::Signals::NoArgSignal addButtonPressed
Definition: EditableModelView.hpp:24
void addRegexHelpLink()
Definition: EditableModelView.cpp:129
QAbstractTableModel * getModel()
Definition: EditableModelView.cpp:119