SVN commit 1003747 by abnerf: Cancelling editing presence msg when it lost focus. M +16 -8 presencewidget.cpp M +2 -1 presencewidget.h --- trunk/playground/base/plasma/applets/presence/presencewidget.cpp #1003746:1003747 @@ -174,8 +174,8 @@ m_presenceMessageLabel->nativeWidget()->setWordWrap(false); m_presenceMessageLabel->nativeWidget()->setAlignment(Qt::AlignTop | Qt::AlignCenter); - m_presenceMessageLabel->nativeWidget()->setSizePolicy(QSizePolicy::Expanding, - QSizePolicy::Fixed); + m_presenceMessageLabel->nativeWidget()->setSizePolicy( + QSizePolicy::Expanding, QSizePolicy::Fixed); setPresenceMessage("Set presence message here"); // Create the presence msg lineedit @@ -187,12 +187,16 @@ m_presenceMessage->nativeWidget()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); connect(m_presenceMessage->nativeWidget(), SIGNAL(returnPressed()), - this, SLOT(onPresenceMsgClicked())); + this, SLOT(onPresenceMsgReturn())); connect(m_presenceMessageLabel->nativeWidget(), SIGNAL(linkActivated(const QString&)), - this, SLOT(onPresenceMsgClicked())); + this, SLOT(onPresenceMsgSwitch())); + connect(m_presenceMessage->nativeWidget(), + SIGNAL(editingFinished()), + this, SLOT(onPresenceMsgSwitch())); + m_layout->addItem(m_presenceMessageLabel); m_layout->setAlignment(m_presenceMessageLabel, Qt::AlignTop | Qt::AlignCenter); @@ -220,8 +224,14 @@ } } -void PresenceWidget::onPresenceMsgClicked() +void PresenceWidget::onPresenceMsgReturn() { + if (m_presenceMsg != m_presenceMessage->nativeWidget()->text()) + setPresenceMessage(m_presenceMessage->nativeWidget()->text()); +} + +void PresenceWidget::onPresenceMsgSwitch() +{ if (m_presenceMessageLabel->isVisible()) { m_presenceMessageLabel->hide(); m_layout->removeItem(m_presenceMessageLabel); @@ -241,12 +251,10 @@ m_layout->setAlignment(m_presenceMessageLabel, Qt::AlignTop | Qt::AlignCenter); - if (m_presenceMsg != m_presenceMessage->nativeWidget()->text()) { - setPresenceMessage(m_presenceMessage->nativeWidget()->text()); - } m_presenceMessageLabel->show(); } } + void PresenceWidget::setPresenceMessage(const QString &msg) { m_presenceMsg = msg; --- trunk/playground/base/plasma/applets/presence/presencewidget.h #1003746:1003747 @@ -45,7 +45,8 @@ private Q_SLOTS: void onCurrentStatusClicked(); - void onPresenceMsgClicked(); + void onPresenceMsgReturn(); + void onPresenceMsgSwitch(); private: void setPresenceMessage(const QString &msg);