File indexing completed on 2024-04-21 03:57:50
0001 /* 0002 SPDX-FileCopyrightText: 2011-2018 Dominik Haumann <dhaumann@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef VARIABLE_EDITOR_H 0008 #define VARIABLE_EDITOR_H 0009 0010 #include <QWidget> 0011 0012 class KateHelpButton; 0013 0014 class VariableBoolItem; 0015 class VariableColorItem; 0016 class VariableFontItem; 0017 class VariableItem; 0018 class VariableStringListItem; 0019 class VariableIntItem; 0020 class VariableStringItem; 0021 class VariableSpellCheckItem; 0022 class VariableRemoveSpacesItem; 0023 0024 class KColorCombo; 0025 class QFontComboBox; 0026 class QCheckBox; 0027 class QComboBox; 0028 class QLabel; 0029 class QLineEdit; 0030 class QSpinBox; 0031 0032 namespace Sonnet 0033 { 0034 class DictionaryComboBox; 0035 } 0036 0037 class VariableEditor : public QWidget 0038 { 0039 Q_OBJECT 0040 0041 public: 0042 explicit VariableEditor(VariableItem *item, QWidget *parent = nullptr); 0043 0044 VariableItem *item() const; 0045 0046 Q_SIGNALS: 0047 void valueChanged(); 0048 0049 protected Q_SLOTS: 0050 void itemEnabled(bool enabled); 0051 void activateItem(); 0052 0053 protected: 0054 void paintEvent(QPaintEvent *event) override; 0055 void enterEvent(QEnterEvent *event) override; 0056 void leaveEvent(QEvent *event) override; 0057 0058 private: 0059 VariableItem *m_item; 0060 0061 QCheckBox *m_checkBox; 0062 QLabel *m_variable; 0063 QLabel *m_helpText; 0064 KateHelpButton *m_btnHelp; 0065 }; 0066 0067 class VariableIntEditor : public VariableEditor 0068 { 0069 public: 0070 VariableIntEditor(VariableIntItem *item, QWidget *parent); 0071 0072 protected: 0073 void setItemValue(int newValue); 0074 0075 private: 0076 QSpinBox *m_spinBox; 0077 }; 0078 0079 class VariableBoolEditor : public VariableEditor 0080 { 0081 public: 0082 VariableBoolEditor(VariableBoolItem *item, QWidget *parent); 0083 0084 protected: 0085 void setItemValue(int enabled); 0086 0087 private: 0088 QComboBox *m_comboBox; 0089 }; 0090 0091 class VariableStringListEditor : public VariableEditor 0092 { 0093 public: 0094 VariableStringListEditor(VariableStringListItem *item, QWidget *parent); 0095 0096 protected: 0097 void setItemValue(const QString &newValue); 0098 0099 private: 0100 QComboBox *m_comboBox; 0101 }; 0102 0103 class VariableColorEditor : public VariableEditor 0104 { 0105 public: 0106 VariableColorEditor(VariableColorItem *item, QWidget *parent); 0107 0108 protected: 0109 void setItemValue(const QColor &newValue); 0110 0111 private: 0112 KColorCombo *m_comboBox; 0113 }; 0114 0115 class VariableFontEditor : public VariableEditor 0116 { 0117 public: 0118 VariableFontEditor(VariableFontItem *item, QWidget *parent); 0119 0120 protected: 0121 void setItemValue(const QFont &newValue); 0122 0123 private: 0124 QFontComboBox *m_comboBox; 0125 }; 0126 0127 class VariableStringEditor : public VariableEditor 0128 { 0129 public: 0130 VariableStringEditor(VariableStringItem *item, QWidget *parent); 0131 0132 protected: 0133 void setItemValue(const QString &newValue); 0134 0135 private: 0136 QLineEdit *m_lineEdit; 0137 }; 0138 0139 class VariableSpellCheckEditor : public VariableEditor 0140 { 0141 public: 0142 VariableSpellCheckEditor(VariableSpellCheckItem *item, QWidget *parent); 0143 0144 protected: 0145 void setItemValue(const QString &newValue); 0146 0147 private: 0148 Sonnet::DictionaryComboBox *m_dictionaryCombo; 0149 }; 0150 0151 class VariableRemoveSpacesEditor : public VariableEditor 0152 { 0153 public: 0154 VariableRemoveSpacesEditor(VariableRemoveSpacesItem *item, QWidget *parent); 0155 0156 protected: 0157 void setItemValue(int enabled); 0158 0159 private: 0160 QComboBox *m_comboBox; 0161 }; 0162 0163 #endif