mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
Retrieve the current room state from cache when the edit modal opens
This commit is contained in:
parent
d88dee3185
commit
9eb1c496a0
2 changed files with 16 additions and 8 deletions
|
@ -93,6 +93,8 @@ private:
|
||||||
|
|
||||||
void setAvatar(const QImage &img) { avatarImg_ = img; }
|
void setAvatar(const QImage &img) { avatarImg_ = img; }
|
||||||
void setupEditButton();
|
void setupEditButton();
|
||||||
|
//! Retrieve the current room information from cache.
|
||||||
|
void retrieveRoomInfo();
|
||||||
|
|
||||||
//! Whether the user would be able to change the name or the topic of the room.
|
//! Whether the user would be able to change the name or the topic of the room.
|
||||||
bool hasEditRights_ = true;
|
bool hasEditRights_ = true;
|
||||||
|
|
|
@ -182,14 +182,7 @@ RoomSettings::RoomSettings(const QString &room_id, QWidget *parent)
|
||||||
, room_id_{std::move(room_id)}
|
, room_id_{std::move(room_id)}
|
||||||
{
|
{
|
||||||
setMaximumWidth(420);
|
setMaximumWidth(420);
|
||||||
|
retrieveRoomInfo();
|
||||||
try {
|
|
||||||
info_ = cache::client()->singleRoomInfo(room_id_.toStdString());
|
|
||||||
|
|
||||||
setAvatar(QImage::fromData(cache::client()->image(info_.avatar_url)));
|
|
||||||
} catch (const lmdb::error &e) {
|
|
||||||
qWarning() << "failed to retrieve room info from cache" << room_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
constexpr int SettingsMargin = 2;
|
constexpr int SettingsMargin = 2;
|
||||||
|
|
||||||
|
@ -299,6 +292,8 @@ RoomSettings::setupEditButton()
|
||||||
editFieldsBtn_->setIconSize(QSize(iconSize, iconSize));
|
editFieldsBtn_->setIconSize(QSize(iconSize, iconSize));
|
||||||
|
|
||||||
connect(editFieldsBtn_, &QPushButton::clicked, this, [this]() {
|
connect(editFieldsBtn_, &QPushButton::clicked, this, [this]() {
|
||||||
|
retrieveRoomInfo();
|
||||||
|
|
||||||
auto modal = new EditModal(room_id_, this->parentWidget());
|
auto modal = new EditModal(room_id_, this->parentWidget());
|
||||||
modal->setFields(QString::fromStdString(info_.name),
|
modal->setFields(QString::fromStdString(info_.name),
|
||||||
QString::fromStdString(info_.topic));
|
QString::fromStdString(info_.topic));
|
||||||
|
@ -311,6 +306,17 @@ RoomSettings::setupEditButton()
|
||||||
editLayout_->addWidget(editFieldsBtn_, 0, Qt::AlignRight | Qt::AlignTop);
|
editLayout_->addWidget(editFieldsBtn_, 0, Qt::AlignRight | Qt::AlignTop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
RoomSettings::retrieveRoomInfo()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
info_ = cache::client()->singleRoomInfo(room_id_.toStdString());
|
||||||
|
setAvatar(QImage::fromData(cache::client()->image(info_.avatar_url)));
|
||||||
|
} catch (const lmdb::error &e) {
|
||||||
|
qWarning() << "failed to retrieve room info from cache" << room_id_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RoomSettings::saveSettings()
|
RoomSettings::saveSettings()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue