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:
commit
7c0fa46b42
|
@ -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);
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
void loadHistory(QDateTime since, bool processUndelivered = false);
|
||||
|
||||
void dischargeReceipt(int receipt);
|
||||
bool getIsTyping();
|
||||
void setFriendTyping(bool isTyping);
|
||||
OfflineMsgEngine* getOfflineMsgEngine();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user