mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 03:00:46 +03:00
Make the timer single shot
This commit is contained in:
parent
792011c1c9
commit
0770f6e6b5
4 changed files with 24 additions and 12 deletions
|
@ -57,6 +57,7 @@ public slots:
|
|||
void fetchRoomAvatar(const QString &roomid, const QUrl &avatar_url);
|
||||
void initialSyncCompleted(const SyncResponse &response);
|
||||
void syncCompleted(const SyncResponse &response);
|
||||
void syncFailed(const QString &msg);
|
||||
void changeTopRoomInfo(const RoomInfo &info);
|
||||
void sendTextMessage(const QString &msg);
|
||||
void messageSent(const QString event_id, int txn_id);
|
||||
|
|
|
@ -67,6 +67,7 @@ signals:
|
|||
void getOwnProfileResponse(const QUrl &avatar_url, const QString &display_name);
|
||||
void initialSyncCompleted(const SyncResponse &response);
|
||||
void syncCompleted(const SyncResponse &response);
|
||||
void syncFailed(const QString &msg);
|
||||
void messageSent(const QString &event_id, const int txn_id);
|
||||
|
||||
private slots:
|
||||
|
|
|
@ -38,6 +38,7 @@ ChatPage::ChatPage(QWidget *parent)
|
|||
content_downloader_ = new QNetworkAccessManager(parent);
|
||||
|
||||
room_list_ = new RoomList(this);
|
||||
ui->sideBarMainLayout->addWidget(room_list_);
|
||||
|
||||
top_bar_ = new TopRoomBar(this);
|
||||
ui->topBarLayout->addWidget(top_bar_);
|
||||
|
@ -49,8 +50,10 @@ ChatPage::ChatPage(QWidget *parent)
|
|||
ui->contentLayout->addWidget(text_input_);
|
||||
|
||||
user_info_widget_ = new UserInfoWidget(ui->sideBarTopWidget);
|
||||
ui->sideBarTopUserInfoLayout->addWidget(user_info_widget_);
|
||||
|
||||
sync_timer_ = new QTimer(this);
|
||||
sync_timer_->setSingleShot(true);
|
||||
connect(sync_timer_, SIGNAL(timeout()), this, SLOT(startSync()));
|
||||
|
||||
connect(user_info_widget_, SIGNAL(logout()), matrix_client_, SLOT(logout()));
|
||||
|
@ -60,12 +63,10 @@ ChatPage::ChatPage(QWidget *parent)
|
|||
SIGNAL(roomChanged(const RoomInfo &)),
|
||||
this,
|
||||
SLOT(changeTopRoomInfo(const RoomInfo &)));
|
||||
|
||||
connect(room_list_,
|
||||
SIGNAL(roomChanged(const RoomInfo &)),
|
||||
view_manager_,
|
||||
SLOT(setHistoryView(const RoomInfo &)));
|
||||
|
||||
connect(room_list_,
|
||||
SIGNAL(fetchRoomAvatar(const QString &, const QUrl &)),
|
||||
this,
|
||||
|
@ -76,21 +77,22 @@ ChatPage::ChatPage(QWidget *parent)
|
|||
this,
|
||||
SLOT(sendTextMessage(const QString &)));
|
||||
|
||||
ui->sideBarTopUserInfoLayout->addWidget(user_info_widget_);
|
||||
ui->sideBarMainLayout->addWidget(room_list_);
|
||||
|
||||
connect(matrix_client_,
|
||||
SIGNAL(initialSyncCompleted(SyncResponse)),
|
||||
SIGNAL(initialSyncCompleted(const SyncResponse &)),
|
||||
this,
|
||||
SLOT(initialSyncCompleted(SyncResponse)));
|
||||
SLOT(initialSyncCompleted(const SyncResponse &)));
|
||||
connect(matrix_client_,
|
||||
SIGNAL(syncCompleted(SyncResponse)),
|
||||
SIGNAL(syncCompleted(const SyncResponse &)),
|
||||
this,
|
||||
SLOT(syncCompleted(SyncResponse)));
|
||||
SLOT(syncCompleted(const SyncResponse &)));
|
||||
connect(matrix_client_,
|
||||
SIGNAL(getOwnProfileResponse(QUrl, QString)),
|
||||
SIGNAL(syncFailed(const QString &)),
|
||||
this,
|
||||
SLOT(updateOwnProfileInfo(QUrl, QString)));
|
||||
SLOT(syncFailed(const QString &)));
|
||||
connect(matrix_client_,
|
||||
SIGNAL(getOwnProfileResponse(const QUrl &, const QString &)),
|
||||
this,
|
||||
SLOT(updateOwnProfileInfo(const QUrl &, const QString &)));
|
||||
connect(matrix_client_,
|
||||
SIGNAL(messageSent(QString, int)),
|
||||
this,
|
||||
|
@ -160,12 +162,20 @@ void ChatPage::setOwnAvatar(const QByteArray &img)
|
|||
user_info_widget_->setAvatar(pixmap.toImage());
|
||||
}
|
||||
|
||||
void ChatPage::syncFailed(const QString &msg)
|
||||
{
|
||||
qWarning() << "Sync error:" << msg;
|
||||
sync_timer_->start(sync_interval_ * 5);
|
||||
}
|
||||
|
||||
void ChatPage::syncCompleted(const SyncResponse &response)
|
||||
{
|
||||
matrix_client_->setNextBatchToken(response.nextBatch());
|
||||
|
||||
/* room_list_->sync(response.rooms()); */
|
||||
view_manager_->sync(response.rooms());
|
||||
|
||||
sync_timer_->start(sync_interval_);
|
||||
}
|
||||
|
||||
void ChatPage::initialSyncCompleted(const SyncResponse &response)
|
||||
|
|
|
@ -206,7 +206,7 @@ void MatrixClient::onSyncResponse(QNetworkReply *reply)
|
|||
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
|
||||
if (status == 0 || status >= 400) {
|
||||
qWarning() << reply->errorString();
|
||||
emit syncFailed(reply->errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue