diff --git a/components/qtmaterialtextfield.cpp b/components/qtmaterialtextfield.cpp index 86643d6..4e1a8a3 100644 --- a/components/qtmaterialtextfield.cpp +++ b/components/qtmaterialtextfield.cpp @@ -29,6 +29,7 @@ void QtMaterialTextFieldPrivate::init() label = 0; labelFontSize = 9.5; showLabel = false; + showUnderscore = true; useThemeColors = true; q->setFrame(false); @@ -231,6 +232,20 @@ QColor QtMaterialTextField::underlineColor() const } } +void QtMaterialTextField::setShowUnderscore(bool value) +{ + Q_D(QtMaterialTextField); + + if (d->showUnderscore == value) { + return; + } + + d->showUnderscore = value; + + update(); +} + + /*! * \reimp */ @@ -274,12 +289,15 @@ void QtMaterialTextField::paintEvent(QPaintEvent *event) const int y = height()-1; const int wd = width()-5; - QPen pen; - pen.setWidth(1); - pen.setColor(underlineColor()); - painter.setPen(pen); - painter.setOpacity(1); - painter.drawLine(2.5, y, wd, y); + + if( d->showUnderscore ) + { + QPen pen; + pen.setWidth(1); + pen.setColor(underlineColor()); + painter.setPen(pen); + painter.setOpacity(1); + painter.drawLine(2.5, y, wd, y); QBrush brush; brush.setStyle(Qt::SolidPattern); @@ -292,4 +310,5 @@ void QtMaterialTextField::paintEvent(QPaintEvent *event) const int w = (1-progress)*static_cast(wd/2); painter.drawRect(w+2.5, height()-2, wd-w*2, 2); } + } } diff --git a/components/qtmaterialtextfield.h b/components/qtmaterialtextfield.h index 81f740b..6622515 100644 --- a/components/qtmaterialtextfield.h +++ b/components/qtmaterialtextfield.h @@ -41,6 +41,7 @@ public: void setUnderlineColor(const QColor &color); QColor underlineColor() const; + void setShowUnderscore(bool value); protected: bool event(QEvent *event) Q_DECL_OVERRIDE; diff --git a/components/qtmaterialtextfield_p.h b/components/qtmaterialtextfield_p.h index ad4db28..7924a1d 100644 --- a/components/qtmaterialtextfield_p.h +++ b/components/qtmaterialtextfield_p.h @@ -29,6 +29,7 @@ public: QString labelString; qreal labelFontSize; bool showLabel; + bool showUnderscore; bool useThemeColors; }; diff --git a/examples/textfieldsettingseditor.cpp b/examples/textfieldsettingseditor.cpp index dcb7069..ddad14f 100644 --- a/examples/textfieldsettingseditor.cpp +++ b/examples/textfieldsettingseditor.cpp @@ -41,6 +41,7 @@ TextFieldSettingsEditor::TextFieldSettingsEditor(QWidget *parent) connect(ui->inkColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); connect(ui->underlineColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); connect(ui->labelColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); + connect(ui->underscoreCheckBox, SIGNAL(toggled(bool)), this, SLOT(setShowUnderscore())); connect(m_textField, SIGNAL(textChanged(QString)), this, SLOT(setupForm())); } @@ -58,6 +59,7 @@ void TextFieldSettingsEditor::setupForm() ui->labelCheckBox->setChecked(m_textField->hasLabel()); ui->labelTextLineEdit->setText(m_textField->label()); ui->useThemeColorsCheckBox->setChecked(m_textField->useThemeColors()); + ui->underscoreCheckBox->setChecked( true ); } void TextFieldSettingsEditor::updateWidget() @@ -68,6 +70,7 @@ void TextFieldSettingsEditor::updateWidget() m_textField->setLabel(ui->labelTextLineEdit->text()); m_textField->setShowLabel(ui->labelCheckBox->isChecked()); m_textField->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); + m_textField->setShowUnderscore(ui->underscoreCheckBox->isChecked()); } void TextFieldSettingsEditor::selectColor() @@ -92,3 +95,8 @@ void TextFieldSettingsEditor::selectColor() } setupForm(); } + +void TextFieldSettingsEditor::setShowUnderscore() +{ + m_textField->setShowUnderscore( ui->underscoreCheckBox->isChecked() ); +} diff --git a/examples/textfieldsettingseditor.h b/examples/textfieldsettingseditor.h index 21c69f5..ed5a3c2 100644 --- a/examples/textfieldsettingseditor.h +++ b/examples/textfieldsettingseditor.h @@ -18,6 +18,7 @@ protected slots: void setupForm(); void updateWidget(); void selectColor(); + void setShowUnderscore(); private: Ui::TextFieldSettingsForm *const ui; diff --git a/examples/textfieldsettingsform.ui b/examples/textfieldsettingsform.ui index 106c58c..9edac01 100644 --- a/examples/textfieldsettingsform.ui +++ b/examples/textfieldsettingsform.ui @@ -167,6 +167,16 @@ + + + + Underscore + + + + + +