diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-04-11 02:35:09 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2017-04-11 02:35:09 +0300 |
commit | 0770f6e6b5099602def4966174ece8789996a78c (patch) | |
tree | ce5bfb297d0af8c485019aa548a140bbc58e1414 /src/ChatPage.cc | |
parent | Allow message text selection (diff) | |
download | nheko-0770f6e6b5099602def4966174ece8789996a78c.tar.xz |
Make the timer single shot
Diffstat (limited to 'src/ChatPage.cc')
-rw-r--r-- | src/ChatPage.cc | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/ChatPage.cc b/src/ChatPage.cc index a5e86f1f..87aa8680 100644 --- a/src/ChatPage.cc +++ b/src/ChatPage.cc @@ -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) |