QtMaterialTextField: implemeted hiding of underscore

This commit is contained in:
Francesco Perillo 2017-10-05 15:31:14 +02:00
parent a624aa4653
commit 1c7892d8b1
6 changed files with 46 additions and 6 deletions

View File

@ -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<qreal>(wd/2);
painter.drawRect(w+2.5, height()-2, wd-w*2, 2);
}
}
}

View File

@ -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;

View File

@ -29,6 +29,7 @@ public:
QString labelString;
qreal labelFontSize;
bool showLabel;
bool showUnderscore;
bool useThemeColors;
};

View File

@ -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() );
}

View File

@ -18,6 +18,7 @@ protected slots:
void setupForm();
void updateWidget();
void selectColor();
void setShowUnderscore();
private:
Ui::TextFieldSettingsForm *const ui;

View File

@ -167,6 +167,16 @@
</item>
</layout>
</item>
<item row="10" column="0">
<widget class="QLabel" name="labelShowUnderscore">
<property name="text">
<string>Underscore</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="QCheckBox" name="underscoreCheckBox"/>
</item>
</layout>
</widget>
</widget>