From bbf621411a5615362ac7eef8e27738dba71037f7 Mon Sep 17 00:00:00 2001 From: Alessandro Pasotti Date: Fri, 2 Feb 2018 08:12:12 +0100 Subject: [PATCH] Add method to set line edit alignment in Qgs(Double)SpinBox --- python/gui/editorwidgets/qgsdoublespinbox.sip.in | 7 +++++++ python/gui/editorwidgets/qgsspinbox.sip.in | 7 +++++++ src/gui/editorwidgets/qgsdoublespinbox.cpp | 6 +++++- src/gui/editorwidgets/qgsdoublespinbox.h | 6 ++++++ src/gui/editorwidgets/qgsrangewidgetwrapper.cpp | 2 ++ src/gui/editorwidgets/qgsspinbox.cpp | 6 +++++- src/gui/editorwidgets/qgsspinbox.h | 6 ++++++ 7 files changed, 38 insertions(+), 2 deletions(-) diff --git a/python/gui/editorwidgets/qgsdoublespinbox.sip.in b/python/gui/editorwidgets/qgsdoublespinbox.sip.in index 29e8b229944..517ca229708 100644 --- a/python/gui/editorwidgets/qgsdoublespinbox.sip.in +++ b/python/gui/editorwidgets/qgsdoublespinbox.sip.in @@ -117,6 +117,13 @@ Defines if the clear value should be the minimum or maximum values of the widget Returns the value used when clear() is called. .. seealso:: :py:func:`setClearValue` +%End + + void setLineEditAlignment( Qt::Alignment alignment ); +%Docstring +Set alignment in the embedded line edit widget + +:param alignment: %End virtual double valueFromText( const QString &text ) const; diff --git a/python/gui/editorwidgets/qgsspinbox.sip.in b/python/gui/editorwidgets/qgsspinbox.sip.in index 044dfb07684..44dc719ca0a 100644 --- a/python/gui/editorwidgets/qgsspinbox.sip.in +++ b/python/gui/editorwidgets/qgsspinbox.sip.in @@ -117,6 +117,13 @@ Defines if the clear value should be the minimum or maximum values of the widget Returns the value used when clear() is called. .. seealso:: :py:func:`setClearValue` +%End + + void setLineEditAlignment( Qt::Alignment alignment ); +%Docstring +Set alignment in the embedded line edit widget + +:param alignment: %End virtual int valueFromText( const QString &text ) const; diff --git a/src/gui/editorwidgets/qgsdoublespinbox.cpp b/src/gui/editorwidgets/qgsdoublespinbox.cpp index 7dd79404778..54c624cd989 100644 --- a/src/gui/editorwidgets/qgsdoublespinbox.cpp +++ b/src/gui/editorwidgets/qgsdoublespinbox.cpp @@ -34,7 +34,6 @@ QgsDoubleSpinBox::QgsDoubleSpinBox( QWidget *parent ) // By default, group separator is off setLocale( QLocale( QgsApplication::locale( ) ) ); setLineEdit( mLineEdit ); - mLineEdit->setAlignment( Qt::AlignRight ); QSize msz = minimumSizeHint(); setMinimumSize( msz.width() + CLEAR_ICON_SIZE + 9 + frameWidth() * 2 + 2, @@ -137,6 +136,11 @@ double QgsDoubleSpinBox::clearValue() const return mCustomClearValue; } +void QgsDoubleSpinBox::setLineEditAlignment( Qt::Alignment alignment ) +{ + mLineEdit->setAlignment( alignment ); +} + QString QgsDoubleSpinBox::stripped( const QString &originalText ) const { //adapted from QAbstractSpinBoxPrivate::stripped diff --git a/src/gui/editorwidgets/qgsdoublespinbox.h b/src/gui/editorwidgets/qgsdoublespinbox.h index 3344885506f..c39e637efbe 100644 --- a/src/gui/editorwidgets/qgsdoublespinbox.h +++ b/src/gui/editorwidgets/qgsdoublespinbox.h @@ -126,6 +126,12 @@ class GUI_EXPORT QgsDoubleSpinBox : public QDoubleSpinBox */ double clearValue() const; + /** + * Set alignment in the embedded line edit widget + * \param alignment + */ + void setLineEditAlignment( Qt::Alignment alignment ); + double valueFromText( const QString &text ) const override; QValidator::State validate( QString &input, int &pos ) const override; void paintEvent( QPaintEvent *e ) override; diff --git a/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp b/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp index 8d187c40076..b49c37a7374 100644 --- a/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp @@ -47,12 +47,14 @@ QWidget *QgsRangeWidgetWrapper::createWidget( QWidget *parent ) case QVariant::Double: { editor = new QgsDoubleSpinBox( parent ); + static_cast( editor )->setLineEditAlignment( Qt::AlignRight ); break; } case QVariant::Int: case QVariant::LongLong: default: editor = new QgsSpinBox( parent ); + static_cast( editor )->setLineEditAlignment( Qt::AlignRight ); break; } } diff --git a/src/gui/editorwidgets/qgsspinbox.cpp b/src/gui/editorwidgets/qgsspinbox.cpp index 5813472aed7..aeb42ed8644 100644 --- a/src/gui/editorwidgets/qgsspinbox.cpp +++ b/src/gui/editorwidgets/qgsspinbox.cpp @@ -30,7 +30,6 @@ QgsSpinBox::QgsSpinBox( QWidget *parent ) : QSpinBox( parent ) { mLineEdit = new QgsSpinBoxLineEdit(); - mLineEdit->setAlignment( Qt::AlignRight ); setLineEdit( mLineEdit ); QSize msz = minimumSizeHint(); @@ -133,6 +132,11 @@ int QgsSpinBox::clearValue() const return mCustomClearValue; } +void QgsSpinBox::setLineEditAlignment( Qt::Alignment alignment ) +{ + mLineEdit->setAlignment( alignment ); +} + int QgsSpinBox::valueFromText( const QString &text ) const { if ( !mExpressionsEnabled ) diff --git a/src/gui/editorwidgets/qgsspinbox.h b/src/gui/editorwidgets/qgsspinbox.h index 26ae68f742a..486e13d549b 100644 --- a/src/gui/editorwidgets/qgsspinbox.h +++ b/src/gui/editorwidgets/qgsspinbox.h @@ -126,6 +126,12 @@ class GUI_EXPORT QgsSpinBox : public QSpinBox */ int clearValue() const; + /** + * Set alignment in the embedded line edit widget + * \param alignment + */ + void setLineEditAlignment( Qt::Alignment alignment ); + int valueFromText( const QString &text ) const override; QValidator::State validate( QString &input, int &pos ) const override;