diff --git a/ui/widgets/input_fields.cpp b/ui/widgets/input_fields.cpp index 6154ae0..75cfc30 100644 --- a/ui/widgets/input_fields.cpp +++ b/ui/widgets/input_fields.cpp @@ -617,7 +617,6 @@ private: }; -template class InputStyle : public QCommonStyle { public: InputStyle() { @@ -626,22 +625,13 @@ public: void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const override { } - QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = nullptr) const override { - switch (r) { - case SE_LineEditContents: - const auto w = widget ? qobject_cast(widget) : nullptr; - return w ? w->getTextRect() : QCommonStyle::subElementRect(r, opt, widget); - break; - } - return QCommonStyle::subElementRect(r, opt, widget); - } - static InputStyle *instance() { + static InputStyle *instance() { if (!_instance) { if (!QGuiApplication::instance()) { return nullptr; } - _instance = new InputStyle(); + _instance = new InputStyle(); } return _instance; } @@ -651,12 +641,11 @@ public: } private: - static InputStyle *_instance; + static InputStyle *_instance; }; -template -InputStyle *InputStyle::_instance = nullptr; +InputStyle *InputStyle::_instance = nullptr; template QString AccumulateText(Iterator begin, Iterator end) { @@ -1000,9 +989,10 @@ FlatInput::FlatInput( Integration::Instance().textActionsUpdated(); }); - setStyle(InputStyle::instance()); + setStyle(InputStyle::instance()); QLineEdit::setTextMargins(0, 0, 0, 0); - setContentsMargins(0, 0, 0, 0); + setContentsMargins(_textMrg + QMargins(-2, -1, -2, -1)); + setFrame(false); setAttribute(Qt::WA_AcceptTouchEvents); _touchTimer.setSingleShot(true); @@ -1083,14 +1073,11 @@ void FlatInput::touchEvent(QTouchEvent *e) { void FlatInput::setTextMrg(const QMargins &textMrg) { _textMrg = textMrg; + setContentsMargins(_textMrg + QMargins(-2, -1, -2, -1)); refreshPlaceholder(_placeholderFull.current()); update(); } -QRect FlatInput::getTextRect() const { - return rect().marginsRemoved(_textMrg + QMargins(-2, -1, -2, -1)); -} - void FlatInput::finishAnimations() { _placeholderFocusedAnimation.stop(); _placeholderVisibleAnimation.stop(); @@ -3787,9 +3774,10 @@ MaskedInputField::MaskedInputField( Integration::Instance().textActionsUpdated(); }); - setStyle(InputStyle::instance()); + setStyle(InputStyle::instance()); QLineEdit::setTextMargins(0, 0, 0, 0); - setContentsMargins(0, 0, 0, 0); + setContentsMargins(_textMargins + QMargins(-2, -1, -2, -1)); + setFrame(false); setAttribute(Qt::WA_AcceptTouchEvents); _touchTimer.setSingleShot(true); @@ -3837,6 +3825,7 @@ int MaskedInputField::borderAnimationStart() const { void MaskedInputField::setTextMargins(const QMargins &mrg) { _textMargins = mrg; + setContentsMargins(_textMargins + QMargins(-2, -1, -2, -1)); refreshPlaceholder(_placeholderFull.current()); } @@ -3901,10 +3890,6 @@ void MaskedInputField::touchEvent(QTouchEvent *e) { } } -QRect MaskedInputField::getTextRect() const { - return rect().marginsRemoved(_textMargins + QMargins(-2, -1, -2, -1)); -} - void MaskedInputField::paintEvent(QPaintEvent *e) { Painter p(this); diff --git a/ui/widgets/input_fields.h b/ui/widgets/input_fields.h index 846f18b..b86bbac 100644 --- a/ui/widgets/input_fields.h +++ b/ui/widgets/input_fields.h @@ -56,7 +56,6 @@ enum class InputSubmitSettings { }; class FlatInput : public RpWidgetBase { - // The Q_OBJECT meta info is used for qobject_cast! Q_OBJECT using Parent = RpWidgetBase; @@ -74,7 +73,6 @@ public: void finishAnimations(); void setTextMrg(const QMargins &textMrg); - QRect getTextRect() const; QSize sizeHint() const override; QSize minimumSizeHint() const override; @@ -557,7 +555,6 @@ private: }; class MaskedInputField : public RpWidgetBase { - // The Q_OBJECT meta info is used for qobject_cast! Q_OBJECT using Parent = RpWidgetBase; @@ -572,8 +569,6 @@ public: void showErrorNoFocus(); void hideError(); - QRect getTextRect() const; - QSize sizeHint() const override; QSize minimumSizeHint() const override;