mirror of
https://gitlab.com/comunic/comunicmessages
synced 2024-12-04 19:24:11 +00:00
Automatically refresh conversations list
This commit is contained in:
parent
4fda88d735
commit
222ed61c8a
@ -23,12 +23,19 @@
|
|||||||
#define API_SERVICE_TOKEN "cWHlmMS5A1"
|
#define API_SERVICE_TOKEN "cWHlmMS5A1"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Conversations list information
|
||||||
|
*/
|
||||||
|
#define CONVERSATION_LIST_REFRESH_INTERVAL 10
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Settings information
|
* Settings information
|
||||||
*/
|
*/
|
||||||
#define SETTINGS_ACCOUNT_LOGIN_TOKEN_1 "account_login_token_1"
|
#define SETTINGS_ACCOUNT_LOGIN_TOKEN_1 "account_login_token_1"
|
||||||
#define SETTINGS_ACCOUNT_LOGIN_TOKEN_2 "account_login_token_2"
|
#define SETTINGS_ACCOUNT_LOGIN_TOKEN_2 "account_login_token_2"
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Conversations information
|
* Conversations information
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
#include "conversationslistwidget.h"
|
#include "conversationslistwidget.h"
|
||||||
#include "conversationitemwidget.h"
|
#include "conversationitemwidget.h"
|
||||||
@ -7,6 +8,7 @@
|
|||||||
#include "../helpers/usershelper.h"
|
#include "../helpers/usershelper.h"
|
||||||
#include "../data/conversationslist.h"
|
#include "../data/conversationslist.h"
|
||||||
#include "../utils/uiutils.h"
|
#include "../utils/uiutils.h"
|
||||||
|
#include "../config.h"
|
||||||
|
|
||||||
ConversationsListWidget::ConversationsListWidget(QWidget *parent) :
|
ConversationsListWidget::ConversationsListWidget(QWidget *parent) :
|
||||||
QWidget(parent)
|
QWidget(parent)
|
||||||
@ -21,6 +23,12 @@ ConversationsListWidget::ConversationsListWidget(QWidget *parent) :
|
|||||||
|
|
||||||
//Set conversations list layout
|
//Set conversations list layout
|
||||||
new QVBoxLayout(this);
|
new QVBoxLayout(this);
|
||||||
|
|
||||||
|
//Automatically refresh at a regular interval the list of conversations
|
||||||
|
mTimer = new QTimer();
|
||||||
|
mTimer->setInterval(CONVERSATION_LIST_REFRESH_INTERVAL*1000);
|
||||||
|
connect(mTimer, &QTimer::timeout, this, &ConversationsListWidget::refresh);
|
||||||
|
mTimer->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
ConversationsListWidget::~ConversationsListWidget()
|
ConversationsListWidget::~ConversationsListWidget()
|
||||||
@ -69,6 +77,9 @@ void ConversationsListWidget::onGotUsersInfo(bool success, const UsersList &user
|
|||||||
connect(item, &ConversationItemWidget::openConversation, this, &ConversationsListWidget::onRequestOpenConversation);
|
connect(item, &ConversationItemWidget::openConversation, this, &ConversationsListWidget::onRequestOpenConversation);
|
||||||
layout()->addWidget(item);
|
layout()->addWidget(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Make sure selected conversation is highlighted
|
||||||
|
refreshSelectedConversation();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConversationsListWidget::onRequestOpenConversation()
|
void ConversationsListWidget::onRequestOpenConversation()
|
||||||
@ -86,9 +97,14 @@ void ConversationsListWidget::setCurrentConversation(const Conversation ¤t
|
|||||||
{
|
{
|
||||||
mCurrentConversation = currentConversation;
|
mCurrentConversation = currentConversation;
|
||||||
|
|
||||||
|
refreshSelectedConversation();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConversationsListWidget::refreshSelectedConversation()
|
||||||
|
{
|
||||||
//Update UI
|
//Update UI
|
||||||
for(int i = 0; i < layout()->count(); i++){
|
for(int i = 0; i < layout()->count(); i++){
|
||||||
ConversationItemWidget *widget = qobject_cast<ConversationItemWidget *>(layout()->itemAt(i)->widget());
|
ConversationItemWidget *widget = qobject_cast<ConversationItemWidget *>(layout()->itemAt(i)->widget());
|
||||||
widget->setActive(widget->currentConversation().iD() == currentConversation.iD());
|
widget->setActive(widget->currentConversation().iD() == mCurrentConversation.iD());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
#include "../data/userslist.h"
|
#include "../data/userslist.h"
|
||||||
#include "../data/user.h"
|
#include "../data/user.h"
|
||||||
|
|
||||||
|
class QTimer;
|
||||||
|
|
||||||
class ConversationsListHelper;
|
class ConversationsListHelper;
|
||||||
class UsersHelper;
|
class UsersHelper;
|
||||||
|
|
||||||
@ -18,11 +20,6 @@ public:
|
|||||||
explicit ConversationsListWidget(QWidget *parent = nullptr);
|
explicit ConversationsListWidget(QWidget *parent = nullptr);
|
||||||
~ConversationsListWidget();
|
~ConversationsListWidget();
|
||||||
|
|
||||||
/**
|
|
||||||
* Refresh the list of conversations of the user
|
|
||||||
*/
|
|
||||||
void refresh();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is used to update the currently active conversation
|
* This method is used to update the currently active conversation
|
||||||
*
|
*
|
||||||
@ -30,6 +27,19 @@ public:
|
|||||||
*/
|
*/
|
||||||
void setCurrentConversation(const Conversation ¤tConversation);
|
void setCurrentConversation(const Conversation ¤tConversation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the UI to select the currently active conversation
|
||||||
|
*/
|
||||||
|
void refreshSelectedConversation();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh the list of conversations of the user
|
||||||
|
*/
|
||||||
|
void refresh();
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,6 +82,9 @@ private:
|
|||||||
|
|
||||||
//Current opened conversation
|
//Current opened conversation
|
||||||
Conversation mCurrentConversation;
|
Conversation mCurrentConversation;
|
||||||
|
|
||||||
|
//Refresh timer
|
||||||
|
QTimer *mTimer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CONVERSATIONSLISTWIDGET_H
|
#endif // CONVERSATIONSLISTWIDGET_H
|
||||||
|
Loading…
Reference in New Issue
Block a user