mirror of
https://gitlab.com/comunic/comunicmessages
synced 2025-06-20 00:45:17 +00:00
Automatically fetch new messages.
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
#include <QMessageBox>
|
||||
#include <algorithm>
|
||||
#include <QTimer>
|
||||
|
||||
#include "conversationwidget.h"
|
||||
#include "ui_conversationwidget.h"
|
||||
@ -27,13 +28,16 @@ ConversationWidget::ConversationWidget(const Conversation &conversation, const U
|
||||
connect(mConversationHelper, &ConversationHelper::sendMessageCallback, this, &ConversationWidget::sendMessageCallback);
|
||||
connect(mConversationHelper, &ConversationHelper::getMessagesCallback, this, &ConversationWidget::getMessagesCallback);
|
||||
|
||||
//Get the latest message of the conversation
|
||||
mConversationHelper->getMessages(conversation.iD());
|
||||
//Initialize refresh timeout
|
||||
mTimer = new QTimer(this);
|
||||
connect(mTimer, &QTimer::timeout, this, &ConversationWidget::refreshTimeout);
|
||||
emit refreshTimeout();
|
||||
}
|
||||
|
||||
ConversationWidget::~ConversationWidget()
|
||||
{
|
||||
delete ui;
|
||||
delete mTimer;
|
||||
}
|
||||
|
||||
void ConversationWidget::sendMessage()
|
||||
@ -63,8 +67,19 @@ void ConversationWidget::sendMessage()
|
||||
mConversationHelper->sendMessage(newMessage);
|
||||
}
|
||||
|
||||
void ConversationWidget::refreshTimeout()
|
||||
{
|
||||
mTimer->stop();
|
||||
|
||||
//Get the latest message of the conversation
|
||||
mConversationHelper->getMessages(mConversation.iD(), mMessages.getLastMessageID());
|
||||
}
|
||||
|
||||
void ConversationWidget::getMessagesCallback(bool success, QList<ConversationMessage> list)
|
||||
{
|
||||
//Restart counter
|
||||
mTimer->start(CONVERSATION_MESSAGES_REFRESH_INTERVAL);
|
||||
|
||||
if(!success){
|
||||
QMessageBox::warning(this, tr("Error while getting messages list"), tr("Could not refresh messages list!"));
|
||||
return;
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "../data/conversation.h"
|
||||
#include "../data/userslist.h"
|
||||
#include "../data/conversationmessage.h"
|
||||
#include "../data/conversationmessageslist.h"
|
||||
|
||||
namespace Ui {
|
||||
class ConversationWidget;
|
||||
@ -40,6 +41,12 @@ public slots:
|
||||
|
||||
private slots:
|
||||
|
||||
/**
|
||||
* This slot is called at regular interval in order to
|
||||
* update regulary the list of messages
|
||||
*/
|
||||
void refreshTimeout();
|
||||
|
||||
/**
|
||||
* Method called once we have got the list of messages
|
||||
*
|
||||
@ -72,10 +79,11 @@ private:
|
||||
|
||||
//Private fields
|
||||
Ui::ConversationWidget *ui;
|
||||
QTimer *mTimer;
|
||||
ConversationHelper *mConversationHelper;
|
||||
Conversation mConversation;
|
||||
UsersList mUsersList;
|
||||
QList<ConversationMessage> mMessages;
|
||||
ConversationMessagesList mMessages;
|
||||
};
|
||||
|
||||
#endif // CONVERSATIONWIDGET_H
|
||||
|
Reference in New Issue
Block a user