From 1539439b1e5326ba54990c2b02c1ef915fa22d49 Mon Sep 17 00:00:00 2001 From: rekols Date: Thu, 8 Nov 2018 17:04:29 +0800 Subject: [PATCH] feat(DPasswdEditAnimated): add updateAlertPosition() func. Change-Id: I04ae0a9da5e5116690cae3f3648d690cc295af5b --- src/widgets/dpasswdeditanimated.cpp | 28 ++++++++++++++++++++-------- src/widgets/dpasswdeditanimated.h | 2 ++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/widgets/dpasswdeditanimated.cpp b/src/widgets/dpasswdeditanimated.cpp index 6135a3a2f..fc5ab5512 100644 --- a/src/widgets/dpasswdeditanimated.cpp +++ b/src/widgets/dpasswdeditanimated.cpp @@ -451,14 +451,7 @@ void DPasswdEditAnimated::showAlert(const QString &message) //d->m_invalidTip->setContent(d->m_invalidMessage); //d->m_invalidTip->adjustSize(); - QPoint pos = mapToGlobal(rect().bottomLeft()); - QFontMetrics fm((QFont())); - d->m_invalidTip->setGeometry(pos.x(), pos.y() + 5, fm.width(message) + 20, fm.height() + 20); - d->m_invalidMessage->move(10, 15); - - d->m_invalidTip->setArrowX(20); - d->m_invalidMessage->show(); - d->m_invalidTip->QWidget::show(); + updateAlertPosition(); Q_EMIT alertChanged(true); } @@ -491,6 +484,25 @@ void DPasswdEditAnimated::abortAuth() } } +/** + * \~chinese \brief 更新警告提示框正确位置 + */ +void DPasswdEditAnimated::updateAlertPosition() +{ + D_D(DPasswdEditAnimated); + + const QString &message = d->m_invalidMessage->text(); + + QPoint pos = mapToGlobal(rect().bottomLeft()); + QFontMetrics fm((QFont())); + d->m_invalidTip->setGeometry(pos.x(), pos.y() + 5, fm.width(message) + 20, fm.height() + 20); + d->m_invalidMessage->move(10, 15); + + d->m_invalidTip->setArrowX(20); + d->m_invalidMessage->show(); + d->m_invalidTip->QWidget::show(); +} + /** * \~chinese \property DPasswdEditAnimated::alert * \~chinese \brief 警告信息的显示状态。 diff --git a/src/widgets/dpasswdeditanimated.h b/src/widgets/dpasswdeditanimated.h index c2ae2152a..3c0587746 100644 --- a/src/widgets/dpasswdeditanimated.h +++ b/src/widgets/dpasswdeditanimated.h @@ -45,6 +45,8 @@ public Q_SLOTS: void hideAlert(); void abortAuth(); + void updateAlertPosition(); + public: bool alert();