1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

Merge pull request #1221 from TheLastProject/offlineTypingFix

Hide is typing status when friend disconnects
This commit is contained in:
dubslow 2015-02-18 11:57:42 -06:00
commit 7c0fa46b42
3 changed files with 13 additions and 1 deletions

View File

@ -901,6 +901,11 @@ QString ChatForm::secondsToDHMS(quint32 duration)
return cD + res.sprintf("%dd%02dh %02dm %02ds", days, hours, minutes, seconds);
}
bool ChatForm::getIsTyping()
{
return isTyping;
}
void ChatForm::setFriendTyping(bool isTyping)
{
chatWidget->setTypingNotificationVisible(isTyping);

View File

@ -44,6 +44,7 @@ public:
void loadHistory(QDateTime since, bool processUndelivered = false);
void dischargeReceipt(int receipt);
bool getIsTyping();
void setFriendTyping(bool isTyping);
OfflineMsgEngine* getOfflineMsgEngine();

View File

@ -683,7 +683,9 @@ void Widget::onFriendStatusChanged(int friendId, Status status)
case Status::Busy:
fStatus = tr("busy", "contact status"); break;
case Status::Offline:
fStatus = tr("offline", "contact status"); break;
fStatus = tr("offline", "contact status");
f->getChatForm()->setFriendTyping(false); // Hide the "is typing" message when a friend goes offline
break;
default:
fStatus = tr("online", "contact status"); break;
}
@ -695,6 +697,10 @@ void Widget::onFriendStatusChanged(int friendId, Status status)
if (isActualChange && status != Status::Offline)
{ // wait a little
QTimer::singleShot(250, f->getChatForm()->getOfflineMsgEngine(), SLOT(deliverOfflineMsgs()));
// Send another typing notification if the contact comes back online
if (f->getChatForm()->getIsTyping() && Settings::getInstance().isTypingNotificationEnabled())
Core::getInstance()->sendTyping(f->getFriendID(), true);
}
}