• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • applications API Reference
  • KDE Home
  • Contact Us
 

Kate

  • kde-4.14
  • applications
  • kate
  • part
  • variableeditor
variableeditor.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2011 Dominik Haumann <dhaumann kde org>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include "variableeditor.h"
22 #include "variableitem.h"
23 #include "katehelpbutton.h"
24 
25 #include <QtCore/QVariant>
26 #include <QtGui/QCheckBox>
27 #include <QtGui/QComboBox>
28 #include <QtGui/QGridLayout>
29 #include <QtGui/QLabel>
30 #include <QtGui/QLineEdit>
31 #include <QtGui/QPainter>
32 #include <QtGui/QSpinBox>
33 
34 #include <kfontcombobox.h>
35 #include <kiconloader.h>
36 #include <klocale.h>
37 #include <kcolorcombo.h>
38 #include <sonnet/dictionarycombobox.h>
39 
40 //BEGIN VariableEditor
41 VariableEditor::VariableEditor(VariableItem* item, QWidget* parent)
42  : QWidget(parent)
43  , m_item(item)
44 {
45  setAttribute(Qt::WA_Hover);
46 
47  setAutoFillBackground(true);
48  QGridLayout* l = new QGridLayout(this);
49  l->setMargin(10);
50 
51  m_checkBox = new QCheckBox(this);
52  m_variable = new QLabel(item->variable(), this);
53  m_variable->setFocusPolicy(Qt::ClickFocus);
54  m_variable->setFocusProxy(m_checkBox);
55  m_btnHelp = new KateHelpButton(this);
56  m_btnHelp->setIconState(KateHelpButton::IconHidden);
57  m_btnHelp->setEnabled(false);
58  m_btnHelp->setSection(QLatin1String("variable-") + item->variable());
59 
60  m_helpText = new QLabel(item->helpText(), this);
61  m_helpText->setWordWrap(true);
62 
63  l->addWidget(m_checkBox, 0, 0, Qt::AlignLeft);
64  l->addWidget(m_variable, 0, 1, Qt::AlignLeft);
65  l->addWidget(m_btnHelp, 0, 3, Qt::AlignRight);
66  l->addWidget(m_helpText, 1, 1, 1, 3);
67 
68  l->setColumnStretch(0, 0);
69  l->setColumnStretch(1, 1);
70  l->setColumnStretch(2, 1);
71  l->setColumnStretch(3, 0);
72 
73  setLayout(l);
74 
75  connect(m_checkBox, SIGNAL(toggled(bool)), this, SLOT(itemEnabled(bool)));
76  m_checkBox->setChecked(item->isActive());
77 
78  connect(m_checkBox, SIGNAL(toggled(bool)), this, SIGNAL(valueChanged()));
79  setMouseTracking(true);
80 }
81 
82 VariableEditor::~VariableEditor()
83 {
84 }
85 
86 void VariableEditor::enterEvent(QEvent* event)
87 {
88  QWidget::enterEvent(event);
89  m_btnHelp->setIconState(KateHelpButton::IconColored);
90  m_btnHelp->setEnabled(true);
91 
92  update();
93 }
94 
95 void VariableEditor::leaveEvent(QEvent* event)
96 {
97  QWidget::leaveEvent(event);
98  m_btnHelp->setIconState(KateHelpButton::IconHidden);
99  m_btnHelp->setEnabled(false);
100 
101  update();
102 }
103 
104 void VariableEditor::paintEvent(QPaintEvent* event)
105 {
106  QWidget::paintEvent(event);
107 
108  // draw highlighting rect like in plasma
109  if (underMouse()) {
110  QPainter painter(this);
111 
112  painter.setRenderHint(QPainter::Antialiasing);
113 
114  QColor cornerColor = palette().color(QPalette::Highlight);
115  cornerColor.setAlphaF(0.2);
116 
117  QColor midColor = palette().color(QPalette::Highlight);
118  midColor.setAlphaF(0.5);
119 
120  QRect highlightRect = rect().adjusted(2, 2, -2, -2);
121 
122  QPen outlinePen;
123  outlinePen.setWidth(2);
124 
125  QLinearGradient gradient(highlightRect.topLeft(), highlightRect.topRight());
126  gradient.setColorAt(0, cornerColor);
127  gradient.setColorAt(0.3, midColor);
128  gradient.setColorAt(1, cornerColor);
129  outlinePen.setBrush(gradient);
130  painter.setPen(outlinePen);
131 
132  const int radius = 5;
133  painter.drawRoundedRect(highlightRect, radius, radius);
134  }
135 }
136 
137 void VariableEditor::itemEnabled(bool enabled)
138 {
139  if (enabled) {
140  m_variable->setText("<b>" + m_item->variable() + "</b>");
141  } else {
142  m_variable->setText(m_item->variable());
143  }
144  m_item->setActive(enabled);
145 }
146 
147 void VariableEditor::activateItem()
148 {
149  m_checkBox->setChecked(true);
150 }
151 
152 VariableItem* VariableEditor::item() const
153 {
154  return m_item;
155 }
156 //END VariableEditor
157 
158 
159 
160 
161 //BEGIN VariableUintEditor
162 VariableIntEditor::VariableIntEditor(VariableIntItem* item, QWidget* parent)
163  : VariableEditor(item, parent)
164 {
165  QGridLayout* l = (QGridLayout *) layout();
166 
167  m_spinBox = new QSpinBox(this);
168  m_spinBox->setValue(item->value());
169  m_spinBox->setMinimum(item->minValue());
170  m_spinBox->setMaximum(item->maxValue());
171 
172  l->addWidget(m_spinBox, 0, 2, Qt::AlignLeft);
173 
174  connect(m_spinBox, SIGNAL(valueChanged(int)), this, SIGNAL(valueChanged()));
175  connect(m_spinBox, SIGNAL(valueChanged(int)), this, SLOT(activateItem()));
176  connect(m_spinBox, SIGNAL(valueChanged(int)), this, SLOT(setItemValue(int)));
177 }
178 
179 void VariableIntEditor::setItemValue(int newValue)
180 {
181  static_cast<VariableIntItem*>(item())->setValue(newValue);
182 }
183 //END VariableUintEditor
184 
185 
186 
187 //BEGIN VariableBoolEditor
188 VariableBoolEditor::VariableBoolEditor(VariableBoolItem* item, QWidget* parent)
189  : VariableEditor(item, parent)
190 {
191  QGridLayout* l = (QGridLayout *) layout();
192 
193  m_comboBox = new QComboBox(this);
194  m_comboBox->addItem(i18n("true"));
195  m_comboBox->addItem(i18n("false"));
196  m_comboBox->setCurrentIndex(item->value() ? 0 : 1);
197  l->addWidget(m_comboBox, 0, 2, Qt::AlignLeft);
198 
199  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(valueChanged()));
200  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(activateItem()));
201  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setItemValue(int)));
202 }
203 
204 void VariableBoolEditor::setItemValue(int enabled)
205 {
206  static_cast<VariableBoolItem*>(item())->setValue(enabled == 0);
207 }
208 //END VariableBoolEditor
209 
210 
211 
212 
213 //BEGIN VariableStringListEditor
214 VariableStringListEditor::VariableStringListEditor(VariableStringListItem* item, QWidget* parent)
215  : VariableEditor(item, parent)
216 {
217  QGridLayout* l = (QGridLayout *) layout();
218 
219  m_comboBox = new QComboBox(this);
220  m_comboBox->addItems(item->stringList());
221  int index = 0;
222  for (int i = 0; i < item->stringList().size(); ++i) {
223  if (item->stringList().at(i) == item->value()) {
224  index = i;
225  break;
226  }
227  }
228  m_comboBox->setCurrentIndex(index);
229  l->addWidget(m_comboBox, 0, 2, Qt::AlignLeft);
230 
231  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(valueChanged()));
232  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(activateItem()));
233  connect(m_comboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(setItemValue(QString)));
234 }
235 
236 void VariableStringListEditor::setItemValue(const QString& newValue)
237 {
238  static_cast<VariableStringListItem*>(item())->setValue(newValue);
239 }
240 //END VariableStringListEditor
241 
242 
243 
244 //BEGIN VariableColorEditor
245 VariableColorEditor::VariableColorEditor(VariableColorItem* item, QWidget* parent)
246  : VariableEditor(item, parent)
247 {
248  QGridLayout* l = (QGridLayout *) layout();
249 
250  m_comboBox = new KColorCombo(this);
251  m_comboBox->setColor(item->value());
252  l->addWidget(m_comboBox, 0, 2, Qt::AlignLeft);
253 
254  connect(m_comboBox, SIGNAL(activated(QColor)), this, SIGNAL(valueChanged()));
255  connect(m_comboBox, SIGNAL(activated(QColor)), this, SLOT(activateItem()));
256  connect(m_comboBox, SIGNAL(activated(QColor)), this, SLOT(setItemValue(QColor)));
257 }
258 
259 void VariableColorEditor::setItemValue(const QColor& newValue)
260 {
261  static_cast<VariableColorItem*>(item())->setValue(newValue);
262 }
263 //END VariableColorEditor
264 
265 
266 
267 //BEGIN VariableFontEditor
268 VariableFontEditor::VariableFontEditor(VariableFontItem* item, QWidget* parent)
269  : VariableEditor(item, parent)
270 {
271  QGridLayout* l = (QGridLayout *) layout();
272 
273  m_comboBox = new KFontComboBox(this);
274  m_comboBox->setCurrentFont(item->value());
275  l->addWidget(m_comboBox, 0, 2, Qt::AlignLeft);
276 
277  connect(m_comboBox, SIGNAL(currentFontChanged(QFont)), this, SIGNAL(valueChanged()));
278  connect(m_comboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(activateItem()));
279  connect(m_comboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(setItemValue(QFont)));
280 }
281 
282 void VariableFontEditor::setItemValue(const QFont& newValue)
283 {
284  static_cast<VariableFontItem*>(item())->setValue(newValue);
285 }
286 //END VariableFontEditor
287 
288 
289 
290 //BEGIN VariableStringEditor
291 VariableStringEditor::VariableStringEditor(VariableStringItem *item, QWidget *parent)
292  :VariableEditor(item, parent)
293 {
294  QGridLayout *l = (QGridLayout*) layout();
295 
296  m_lineEdit = new QLineEdit(this);
297  m_lineEdit->setText(item->value());
298  l->addWidget(m_lineEdit, 0, 2, Qt::AlignLeft);
299 
300  connect(m_lineEdit, SIGNAL(textChanged(QString)), this, SIGNAL(valueChanged()));
301  connect(m_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(activateItem()));
302  connect(m_lineEdit, SIGNAL(textChanged(QString)), this, SLOT(setItemValue(QString)));
303 }
304 
305 void VariableStringEditor::setItemValue(const QString &newValue)
306 {
307  static_cast <VariableStringItem*>(item())->setValue(newValue);
308 }
309 //END VariableStringEditor
310 
311 
312 
313 //BEGIN VariableSpellCheckEditor
314 VariableSpellCheckEditor::VariableSpellCheckEditor(VariableSpellCheckItem *item, QWidget *parent)
315  : VariableEditor(item, parent)
316 {
317  QGridLayout *l = (QGridLayout*) layout();
318 
319  m_dictionaryCombo = new Sonnet::DictionaryComboBox(this);
320  m_dictionaryCombo->setCurrentByDictionary(item->value());
321  l->addWidget(m_dictionaryCombo, 0, 2, Qt::AlignLeft);
322 
323  connect(m_dictionaryCombo, SIGNAL(dictionaryNameChanged(QString)), this, SIGNAL(valueChanged()));
324  connect(m_dictionaryCombo, SIGNAL(dictionaryNameChanged(QString)), this, SLOT(activateItem()));
325  connect(m_dictionaryCombo, SIGNAL(dictionaryChanged(QString)), this, SLOT(setItemValue(QString)));
326 }
327 
328 void VariableSpellCheckEditor::setItemValue(const QString &newValue)
329 {
330  static_cast <VariableSpellCheckItem*>(item())->setValue(newValue);
331 }
332 
333 //END VariableSpellCheckEditor
334 
335 
336 
337 //BEGIN VariableRemoveSpacesEditor
338 VariableRemoveSpacesEditor::VariableRemoveSpacesEditor(VariableRemoveSpacesItem* item, QWidget* parent)
339  : VariableEditor(item, parent)
340 {
341  QGridLayout* l = (QGridLayout *) layout();
342 
343  m_comboBox = new QComboBox(this);
344  m_comboBox->addItem(i18nc("value for variable remove-trailing-spaces", "none"));
345  m_comboBox->addItem(i18nc("value for variable remove-trailing-spaces", "modified"));
346  m_comboBox->addItem(i18nc("value for variale remove-trailing-spaces", "all"));
347  m_comboBox->setCurrentIndex(item->value());
348  l->addWidget(m_comboBox, 0, 2, Qt::AlignLeft);
349 
350  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SIGNAL(valueChanged()));
351  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(activateItem()));
352  connect(m_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setItemValue(int)));
353 }
354 
355 void VariableRemoveSpacesEditor::setItemValue(int enabled)
356 {
357  static_cast<VariableRemoveSpacesItem*>(item())->setValue(enabled == 0);
358 }
359 //END VariableRemoveSpacesEditor
360 
361 // kate: indent-width 2; replace-tabs on;
QWidget::layout
QLayout * layout() const
VariableEditor::itemEnabled
void itemEnabled(bool enabled)
Definition: variableeditor.cpp:137
VariableEditor::~VariableEditor
virtual ~VariableEditor()
Definition: variableeditor.cpp:82
VariableEditor::VariableEditor
VariableEditor(VariableItem *item, QWidget *parent=0)
Definition: variableeditor.cpp:41
QSpinBox::setMinimum
void setMinimum(int min)
QEvent
QWidget
QWidget::underMouse
bool underMouse() const
VariableFontEditor::setItemValue
void setItemValue(const QFont &newValue)
Definition: variableeditor.cpp:282
variableeditor.h
Kate::Script::i18n
QScriptValue i18n(QScriptContext *context, QScriptEngine *engine)
i18n("text", arguments [optional])
Definition: katescripthelpers.cpp:186
QWidget::palette
const QPalette & palette() const
QRect::topRight
QPoint topRight() const
VariableRemoveSpacesEditor::VariableRemoveSpacesEditor
VariableRemoveSpacesEditor(VariableRemoveSpacesItem *item, QWidget *parent)
Definition: variableeditor.cpp:338
VariableIntEditor::VariableIntEditor
VariableIntEditor(VariableIntItem *item, QWidget *parent)
Definition: variableeditor.cpp:162
VariableColorEditor::VariableColorEditor
VariableColorEditor(VariableColorItem *item, QWidget *parent)
Definition: variableeditor.cpp:245
QPainter::setRenderHint
void setRenderHint(RenderHint hint, bool on)
VariableStringItem::value
QString value() const
Definition: variableitem.cpp:282
QGridLayout::addWidget
void addWidget(QWidget *widget, int row, int column, QFlags< Qt::AlignmentFlag > alignment)
katehelpbutton.h
QLineEdit::setText
void setText(const QString &)
VariableItem::setActive
void setActive(bool active)
Definition: variableitem.cpp:56
Kate::Script::i18nc
QScriptValue i18nc(QScriptContext *context, QScriptEngine *engine)
i18nc("context", "text", arguments [optional])
Definition: katescripthelpers.cpp:210
VariableColorEditor::setItemValue
void setItemValue(const QColor &newValue)
Definition: variableeditor.cpp:259
VariableStringListItem::stringList
QStringList stringList() const
Definition: variableitem.cpp:125
QWidget::setFocusPolicy
void setFocusPolicy(Qt::FocusPolicy policy)
QGradient::setColorAt
void setColorAt(qreal position, const QColor &color)
QFont
KateHelpButton::setSection
void setSection(const QString &section)
Definition: katehelpbutton.cpp:59
VariableFontEditor::VariableFontEditor
VariableFontEditor(VariableFontItem *item, QWidget *parent)
Definition: variableeditor.cpp:268
QPalette::color
const QColor & color(ColorGroup group, ColorRole role) const
QList::at
const T & at(int i) const
VariableSpellCheckEditor::VariableSpellCheckEditor
VariableSpellCheckEditor(VariableSpellCheckItem *item, QWidget *parent)
Definition: variableeditor.cpp:314
KateHelpButton::IconHidden
Definition: katehelpbutton.h:34
QWidget::setAttribute
void setAttribute(Qt::WidgetAttribute attribute, bool on)
QGridLayout
VariableStringListItem
Definition: variableitem.h:93
VariableStringListItem::value
QString value() const
Definition: variableitem.cpp:130
VariableBoolEditor::setItemValue
void setItemValue(int enabled)
Definition: variableeditor.cpp:204
QLinearGradient
QPen::setBrush
void setBrush(const QBrush &brush)
VariableRemoveSpacesItem
Definition: variableitem.h:219
VariableStringListEditor::VariableStringListEditor
VariableStringListEditor(VariableStringListItem *item, QWidget *parent)
Definition: variableeditor.cpp:214
KateHelpButton::setIconState
void setIconState(IconState state)
Definition: katehelpbutton.cpp:41
VariableIntItem
Definition: variableitem.h:67
QWidget::update
void update()
VariableBoolEditor::VariableBoolEditor
VariableBoolEditor(VariableBoolItem *item, QWidget *parent)
Definition: variableeditor.cpp:188
QList::size
int size() const
VariableEditor::paintEvent
virtual void paintEvent(QPaintEvent *event)
Definition: variableeditor.cpp:104
QObject::event
virtual bool event(QEvent *e)
VariableIntEditor::setItemValue
void setItemValue(int newValue)
Definition: variableeditor.cpp:179
QComboBox::addItem
void addItem(const QString &text, const QVariant &userData)
QRect
VariableIntItem::maxValue
int maxValue() const
Definition: variableitem.cpp:109
VariableItem
Definition: variableitem.h:32
QWidget::setEnabled
void setEnabled(bool)
VariableStringEditor::VariableStringEditor
VariableStringEditor(VariableStringItem *item, QWidget *parent)
Definition: variableeditor.cpp:291
QWidget::paintEvent
virtual void paintEvent(QPaintEvent *event)
VariableStringListEditor::setItemValue
void setItemValue(const QString &newValue)
Definition: variableeditor.cpp:236
QWidget::setLayout
void setLayout(QLayout *layout)
QPainter::setPen
void setPen(const QColor &color)
QCheckBox
QPainter::drawRoundedRect
void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode)
VariableIntItem::value
int value() const
Definition: variableitem.cpp:73
QPainter
QWidget::setFocusProxy
void setFocusProxy(QWidget *w)
VariableRemoveSpacesItem::value
int value() const
Definition: variableitem.cpp:339
VariableBoolItem
Definition: variableitem.h:117
VariableEditor::activateItem
void activateItem()
Definition: variableeditor.cpp:147
VariableEditor::leaveEvent
virtual void leaveEvent(QEvent *event)
Definition: variableeditor.cpp:95
VariableColorItem
Definition: variableitem.h:138
VariableItem::variable
QString variable() const
Definition: variableitem.cpp:36
QLabel::setText
void setText(const QString &)
QString
QColor
QWidget::enterEvent
virtual void enterEvent(QEvent *event)
QLayout::setMargin
void setMargin(int margin)
QWidget::rect
QRect rect() const
VariableColorItem::value
QColor value() const
Definition: variableitem.cpp:202
QRect::adjusted
QRect adjusted(int dx1, int dy1, int dx2, int dy2) const
QSpinBox
VariableFontItem::value
QFont value() const
Definition: variableitem.cpp:237
QSpinBox::setMaximum
void setMaximum(int max)
QAbstractButton::setChecked
void setChecked(bool)
VariableEditor
Definition: variableeditor.h:50
VariableSpellCheckItem
Definition: variableitem.h:200
QPen::setWidth
void setWidth(int width)
QLatin1String
VariableItem::isActive
bool isActive() const
Definition: variableitem.cpp:51
QGridLayout::setColumnStretch
void setColumnStretch(int column, int stretch)
QSpinBox::setValue
void setValue(int val)
VariableStringEditor::setItemValue
void setItemValue(const QString &newValue)
Definition: variableeditor.cpp:305
QComboBox::setCurrentIndex
void setCurrentIndex(int index)
QRect::topLeft
QPoint topLeft() const
QWidget::setMouseTracking
void setMouseTracking(bool enable)
QPen
VariableIntItem::minValue
int minValue() const
Definition: variableitem.cpp:104
QColor::setAlphaF
void setAlphaF(qreal alpha)
QWidget::setAutoFillBackground
void setAutoFillBackground(bool enabled)
QComboBox::addItems
void addItems(const QStringList &texts)
VariableBoolItem::value
bool value() const
Definition: variableitem.cpp:165
QLineEdit
VariableItem::helpText
QString helpText() const
Definition: variableitem.cpp:41
QPaintEvent
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QLabel
QObject::parent
QObject * parent() const
VariableEditor::valueChanged
void valueChanged()
KateHelpButton::IconColored
Definition: katehelpbutton.h:32
QWidget::leaveEvent
virtual void leaveEvent(QEvent *event)
VariableRemoveSpacesEditor::setItemValue
void setItemValue(int enabled)
Definition: variableeditor.cpp:355
VariableSpellCheckItem::value
QString value() const
Definition: variableitem.cpp:306
VariableStringItem
Definition: variableitem.h:180
VariableSpellCheckEditor::setItemValue
void setItemValue(const QString &newValue)
Definition: variableeditor.cpp:328
QLabel::setWordWrap
void setWordWrap(bool on)
VariableFontItem
Definition: variableitem.h:159
variableitem.h
VariableEditor::item
VariableItem * item() const
Definition: variableeditor.cpp:152
VariableEditor::enterEvent
virtual void enterEvent(QEvent *event)
Definition: variableeditor.cpp:86
KateHelpButton
Definition: katehelpbutton.h:26
QComboBox
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Sat May 9 2020 03:56:59 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

Kate

Skip menu "Kate"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

applications API Reference

Skip menu "applications API Reference"
  •   kate
  •       kate
  •   KTextEditor
  •   Kate
  • Konsole

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal