Chatterino
ChannelFilterEditorDialog.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QComboBox>
4 #include <QDialog>
5 #include <QHBoxLayout>
6 #include <QLineEdit>
7 #include <QVBoxLayout>
8 
9 namespace chatterino {
10 class ChannelFilterEditorDialog : public QDialog
11 {
12 public:
13  ChannelFilterEditorDialog(QWidget *parent);
14 
15  const QString getFilter() const;
16  const QString getTitle() const;
17 
18 private:
19  class ExpressionSpecifier
20  {
21  public:
22  virtual QLayout *layout() const = 0;
23  virtual QString expressionText() = 0;
24  virtual void setEnabled(bool enabled) = 0;
25  };
26 
27  class ValueSpecifier : public ExpressionSpecifier
28  {
29  public:
30  ValueSpecifier();
31 
32  QLayout *layout() const override;
33  QString expressionText() override;
34  void setEnabled(bool enabled) override;
35 
36  void setType(const QString &type);
37  void setValue(const QString &value);
38 
39  private:
40  QComboBox *typeCombo_, *varCombo_;
41  QHBoxLayout *layout_;
42  QLineEdit *valueInput_;
43  };
44 
45  class BinaryOperationSpecifier : public ExpressionSpecifier
46  {
47  public:
48  BinaryOperationSpecifier(ExpressionSpecifier *left,
49  ExpressionSpecifier *right);
50 
51  QLayout *layout() const override;
52  QString expressionText() override;
53  void setEnabled(bool enabled) override;
54 
55  void setOperation(const QString &op);
56 
57  private:
58  QComboBox *opCombo_;
59  QVBoxLayout *layout_;
60  ExpressionSpecifier *left_, *right_;
61  };
62 
63  QString startFilter_;
64  ExpressionSpecifier *expressionSpecifier_;
65  QLineEdit *titleInput_;
66 };
67 } // namespace chatterino
Definition: Application.cpp:48
const QString getFilter() const
Definition: ChannelFilterEditorDialog.cpp:83
Definition: ChannelFilterEditorDialog.hpp:10
ChannelFilterEditorDialog(QWidget *parent)
Definition: ChannelFilterEditorDialog.cpp:21
const QString getTitle() const
Definition: ChannelFilterEditorDialog.cpp:88