Merge branch 'fperillo-textfield-underscore'

This commit is contained in:
johanneshilden 2017-10-05 17:39:28 +03:00
commit 64bbeae93e
6 changed files with 62 additions and 16 deletions

View File

@ -29,6 +29,7 @@ void QtMaterialTextFieldPrivate::init()
label = 0; label = 0;
labelFontSize = 9.5; labelFontSize = 9.5;
showLabel = false; showLabel = false;
showUnderline = true;
useThemeColors = true; useThemeColors = true;
q->setFrame(false); q->setFrame(false);
@ -231,6 +232,25 @@ QColor QtMaterialTextField::underlineColor() const
} }
} }
void QtMaterialTextField::setShowUnderline(bool value)
{
Q_D(QtMaterialTextField);
if (d->showUnderline == value) {
return;
}
d->showUnderline = value;
update();
}
bool QtMaterialTextField::hasUnderline() const
{
Q_D(const QtMaterialTextField);
return d->showUnderline;
}
/*! /*!
* \reimp * \reimp
*/ */
@ -274,6 +294,8 @@ void QtMaterialTextField::paintEvent(QPaintEvent *event)
const int y = height()-1; const int y = height()-1;
const int wd = width()-5; const int wd = width()-5;
if (d->showUnderline)
{
QPen pen; QPen pen;
pen.setWidth(1); pen.setWidth(1);
pen.setColor(underlineColor()); pen.setColor(underlineColor());
@ -292,4 +314,5 @@ void QtMaterialTextField::paintEvent(QPaintEvent *event)
const int w = (1-progress)*static_cast<qreal>(wd/2); const int w = (1-progress)*static_cast<qreal>(wd/2);
painter.drawRect(w+2.5, height()-2, wd-w*2, 2); painter.drawRect(w+2.5, height()-2, wd-w*2, 2);
} }
}
} }

View File

@ -42,6 +42,9 @@ public:
void setUnderlineColor(const QColor &color); void setUnderlineColor(const QColor &color);
QColor underlineColor() const; QColor underlineColor() const;
void setShowUnderline(bool value);
bool hasUnderline() const;
protected: protected:
bool event(QEvent *event) Q_DECL_OVERRIDE; bool event(QEvent *event) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;

View File

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

View File

@ -41,6 +41,7 @@ TextFieldSettingsEditor::TextFieldSettingsEditor(QWidget *parent)
connect(ui->inkColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); connect(ui->inkColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor()));
connect(ui->underlineColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); connect(ui->underlineColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor()));
connect(ui->labelColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor())); connect(ui->labelColorToolButton, SIGNAL(pressed()), this, SLOT(selectColor()));
connect(ui->underlineCheckBox, SIGNAL(toggled(bool)), this, SLOT(setShowUnderline()));
connect(m_textField, SIGNAL(textChanged(QString)), this, SLOT(setupForm())); connect(m_textField, SIGNAL(textChanged(QString)), this, SLOT(setupForm()));
} }
@ -58,6 +59,7 @@ void TextFieldSettingsEditor::setupForm()
ui->labelCheckBox->setChecked(m_textField->hasLabel()); ui->labelCheckBox->setChecked(m_textField->hasLabel());
ui->labelTextLineEdit->setText(m_textField->label()); ui->labelTextLineEdit->setText(m_textField->label());
ui->useThemeColorsCheckBox->setChecked(m_textField->useThemeColors()); ui->useThemeColorsCheckBox->setChecked(m_textField->useThemeColors());
ui->underlineCheckBox->setChecked(m_textField->hasUnderline());
} }
void TextFieldSettingsEditor::updateWidget() void TextFieldSettingsEditor::updateWidget()
@ -68,6 +70,7 @@ void TextFieldSettingsEditor::updateWidget()
m_textField->setLabel(ui->labelTextLineEdit->text()); m_textField->setLabel(ui->labelTextLineEdit->text());
m_textField->setShowLabel(ui->labelCheckBox->isChecked()); m_textField->setShowLabel(ui->labelCheckBox->isChecked());
m_textField->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked()); m_textField->setUseThemeColors(ui->useThemeColorsCheckBox->isChecked());
m_textField->setShowUnderline(ui->underlineCheckBox->isChecked());
} }
void TextFieldSettingsEditor::selectColor() void TextFieldSettingsEditor::selectColor()
@ -92,3 +95,8 @@ void TextFieldSettingsEditor::selectColor()
} }
setupForm(); setupForm();
} }
void TextFieldSettingsEditor::setShowUnderline()
{
m_textField->setShowUnderline( ui->underlineCheckBox->isChecked() );
}

View File

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

View File

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