File indexing completed on 2024-05-05 16:18:15
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(QEvent *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 Q_OBJECT 0070 public: 0071 VariableIntEditor(VariableIntItem *item, QWidget *parent); 0072 0073 protected Q_SLOTS: 0074 void setItemValue(int newValue); 0075 0076 private: 0077 QSpinBox *m_spinBox; 0078 }; 0079 0080 class VariableBoolEditor : public VariableEditor 0081 { 0082 Q_OBJECT 0083 public: 0084 VariableBoolEditor(VariableBoolItem *item, QWidget *parent); 0085 0086 protected Q_SLOTS: 0087 void setItemValue(int enabled); 0088 0089 private: 0090 QComboBox *m_comboBox; 0091 }; 0092 0093 class VariableStringListEditor : public VariableEditor 0094 { 0095 Q_OBJECT 0096 public: 0097 VariableStringListEditor(VariableStringListItem *item, QWidget *parent); 0098 0099 protected Q_SLOTS: 0100 void setItemValue(const QString &newValue); 0101 0102 private: 0103 QComboBox *m_comboBox; 0104 }; 0105 0106 class VariableColorEditor : public VariableEditor 0107 { 0108 Q_OBJECT 0109 public: 0110 VariableColorEditor(VariableColorItem *item, QWidget *parent); 0111 0112 protected Q_SLOTS: 0113 void setItemValue(const QColor &newValue); 0114 0115 private: 0116 KColorCombo *m_comboBox; 0117 }; 0118 0119 class VariableFontEditor : public VariableEditor 0120 { 0121 Q_OBJECT 0122 public: 0123 VariableFontEditor(VariableFontItem *item, QWidget *parent); 0124 0125 protected Q_SLOTS: 0126 void setItemValue(const QFont &newValue); 0127 0128 private: 0129 QFontComboBox *m_comboBox; 0130 }; 0131 0132 class VariableStringEditor : public VariableEditor 0133 { 0134 Q_OBJECT 0135 public: 0136 VariableStringEditor(VariableStringItem *item, QWidget *parent); 0137 0138 protected Q_SLOTS: 0139 void setItemValue(const QString &newValue); 0140 0141 private: 0142 QLineEdit *m_lineEdit; 0143 }; 0144 0145 class VariableSpellCheckEditor : public VariableEditor 0146 { 0147 Q_OBJECT 0148 public: 0149 VariableSpellCheckEditor(VariableSpellCheckItem *item, QWidget *parent); 0150 0151 protected Q_SLOTS: 0152 void setItemValue(const QString &newValue); 0153 0154 private: 0155 Sonnet::DictionaryComboBox *m_dictionaryCombo; 0156 }; 0157 0158 class VariableRemoveSpacesEditor : public VariableEditor 0159 { 0160 Q_OBJECT 0161 public: 0162 VariableRemoveSpacesEditor(VariableRemoveSpacesItem *item, QWidget *parent); 0163 0164 protected Q_SLOTS: 0165 void setItemValue(int enabled); 0166 0167 private: 0168 QComboBox *m_comboBox; 0169 }; 0170 0171 #endif