EditTagDialog: Make reset feedback work by calling
`set_reset_button()` in `UpdateModifiedField()` and catering for non-text in `IsValueModified()` (-1 original being same as 0); use new `ExtendedEditor::set_font()`; connect reset for "rating". Make "comment" `tabChangesFocus` to keep tab chain. ExtendedEditor: New `set_font()` to get emboldened font to work and make reset feedback work for `CheckBox` and `RatingBox` by overriding `Resize()`. RatingWidget: Allow tabbed focus and implement keyboard input.
This commit is contained in:
@@ -48,6 +48,7 @@ class LineEditInterface {
|
||||
virtual ~LineEditInterface() {}
|
||||
|
||||
virtual void set_enabled(const bool enabled) = 0;
|
||||
virtual void set_font(const QFont &font) = 0;
|
||||
virtual void set_focus() = 0;
|
||||
|
||||
virtual void clear() = 0;
|
||||
@@ -90,7 +91,7 @@ class ExtendedEditor : public LineEditInterface {
|
||||
|
||||
protected:
|
||||
void Paint(QPaintDevice *device);
|
||||
void Resize();
|
||||
virtual void Resize();
|
||||
|
||||
private:
|
||||
void UpdateButtonGeometry();
|
||||
@@ -121,6 +122,7 @@ class LineEdit : public QLineEdit, public ExtendedEditor {
|
||||
|
||||
// ExtendedEditor
|
||||
void set_enabled(bool enabled) override { QLineEdit::setEnabled(enabled); }
|
||||
void set_font(const QFont &font) override { QLineEdit::setFont(font); }
|
||||
|
||||
QVariant value() const override { return QLineEdit::text(); }
|
||||
void set_value(const QVariant &value) override { QLineEdit::setText(value.toString()); }
|
||||
@@ -130,8 +132,8 @@ class LineEdit : public QLineEdit, public ExtendedEditor {
|
||||
void clear() override { QLineEdit::clear(); }
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent*) override;
|
||||
void resizeEvent(QResizeEvent*) override;
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
|
||||
private:
|
||||
bool is_rtl() const { return is_rtl_; }
|
||||
@@ -155,6 +157,7 @@ class TextEdit : public QPlainTextEdit, public ExtendedEditor {
|
||||
|
||||
// ExtendedEditor
|
||||
void set_enabled(bool enabled) override { QPlainTextEdit::setEnabled(enabled); }
|
||||
void set_font(const QFont &font) override { QPlainTextEdit::setFont(font); }
|
||||
|
||||
QVariant value() const override { return QPlainTextEdit::toPlainText(); }
|
||||
void set_value(const QVariant &value) override { QPlainTextEdit::setPlainText(value.toString()); }
|
||||
@@ -164,8 +167,8 @@ class TextEdit : public QPlainTextEdit, public ExtendedEditor {
|
||||
void clear() override { QPlainTextEdit::clear(); }
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent*) override;
|
||||
void resizeEvent(QResizeEvent*) override;
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void Reset();
|
||||
@@ -185,6 +188,7 @@ class SpinBox : public QSpinBox, public ExtendedEditor {
|
||||
|
||||
// ExtendedEditor
|
||||
void set_enabled(bool enabled) override { QSpinBox::setEnabled(enabled); }
|
||||
void set_font(const QFont &font) override { QSpinBox::setFont(font); }
|
||||
|
||||
QVariant value() const override { return QSpinBox::value(); }
|
||||
void set_value(const QVariant &value) override { QSpinBox::setValue(value.toInt()); }
|
||||
@@ -195,8 +199,8 @@ class SpinBox : public QSpinBox, public ExtendedEditor {
|
||||
void clear() override { QSpinBox::clear(); }
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent*) override;
|
||||
void resizeEvent(QResizeEvent*) override;
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void Reset();
|
||||
@@ -213,19 +217,23 @@ class CheckBox : public QCheckBox, public ExtendedEditor {
|
||||
|
||||
// ExtendedEditor
|
||||
void set_enabled(bool enabled) override { QCheckBox::setEnabled(enabled); }
|
||||
void set_font(const QFont &font) override { QCheckBox::setFont(font); }
|
||||
|
||||
bool is_empty() const override { return text().isEmpty() || text() == QStringLiteral("0"); }
|
||||
QVariant value() const override { return QCheckBox::isChecked(); }
|
||||
void set_value(const QVariant &value) override { QCheckBox::setCheckState(value.toBool() ? Qt::Checked : Qt::Unchecked); }
|
||||
void set_partially() override { QCheckBox::setCheckState(Qt::PartiallyChecked); }
|
||||
|
||||
protected:
|
||||
void Resize() override;
|
||||
|
||||
public Q_SLOTS:
|
||||
void set_focus() override { QCheckBox::setFocus(); }
|
||||
void clear() override { QCheckBox::setChecked(false); }
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent*) override;
|
||||
void resizeEvent(QResizeEvent*) override;
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void Reset();
|
||||
@@ -240,16 +248,27 @@ class RatingBox : public RatingWidget, public ExtendedEditor {
|
||||
explicit RatingBox(QWidget *parent = nullptr);
|
||||
|
||||
void set_enabled(bool enabled) override { RatingWidget::setEnabled(enabled); }
|
||||
void set_font(const QFont &font) override { RatingWidget::setFont(font); }
|
||||
|
||||
QVariant value() const override { return RatingWidget::rating(); }
|
||||
void set_value(const QVariant &value) override { RatingWidget::set_rating(value.toFloat()); }
|
||||
|
||||
void set_partially() override { RatingWidget::set_rating(0.0F); }
|
||||
|
||||
protected:
|
||||
void Resize() override;
|
||||
|
||||
public Q_SLOTS:
|
||||
void set_focus() override { RatingWidget::setFocus(); }
|
||||
void clear() override {}
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *e) override;
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void Reset();
|
||||
|
||||
};
|
||||
|
||||
#endif // LINEEDIT_H
|
||||
|
||||
Reference in New Issue
Block a user