Made user information window resizable (#4009)
This commit is contained in:
parent
a76a3e5db6
commit
fe63dfa762
2 changed files with 16 additions and 7 deletions
|
@ -27,11 +27,11 @@ UserInfoBox::UserInfoBox(AbstractClient *_client, bool _editable, QWidget *paren
|
||||||
nameFont.setPointSize(nameFont.pointSize() * 1.5);
|
nameFont.setPointSize(nameFont.pointSize() * 1.5);
|
||||||
nameLabel.setFont(nameFont);
|
nameLabel.setFont(nameFont);
|
||||||
|
|
||||||
avatarLabel.setMaximumWidth(400);
|
avatarLabel.setMinimumSize(200, 200);
|
||||||
avatarLabel.setMaximumHeight(200);
|
avatarLabel.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
|
||||||
QGridLayout *mainLayout = new QGridLayout;
|
QGridLayout *mainLayout = new QGridLayout;
|
||||||
mainLayout->addWidget(&avatarLabel, 0, 0, 1, 3, Qt::AlignCenter);
|
mainLayout->addWidget(&avatarLabel, 0, 1, 1, 1);
|
||||||
mainLayout->addWidget(&nameLabel, 1, 0, 1, 3);
|
mainLayout->addWidget(&nameLabel, 1, 0, 1, 3);
|
||||||
mainLayout->addWidget(&realNameLabel1, 2, 0, 1, 1);
|
mainLayout->addWidget(&realNameLabel1, 2, 0, 1, 1);
|
||||||
mainLayout->addWidget(&realNameLabel2, 2, 1, 1, 2);
|
mainLayout->addWidget(&realNameLabel2, 2, 1, 1, 2);
|
||||||
|
@ -43,7 +43,7 @@ UserInfoBox::UserInfoBox(AbstractClient *_client, bool _editable, QWidget *paren
|
||||||
mainLayout->addWidget(&userLevelLabel3, 5, 2, 1, 1);
|
mainLayout->addWidget(&userLevelLabel3, 5, 2, 1, 1);
|
||||||
mainLayout->addWidget(&accountAgeLebel1, 6, 0, 1, 1);
|
mainLayout->addWidget(&accountAgeLebel1, 6, 0, 1, 1);
|
||||||
mainLayout->addWidget(&accountAgeLabel2, 6, 2, 1, 1);
|
mainLayout->addWidget(&accountAgeLabel2, 6, 2, 1, 1);
|
||||||
mainLayout->setColumnStretch(2, 10);
|
mainLayout->setColumnStretch(1, 10);
|
||||||
|
|
||||||
if (editable) {
|
if (editable) {
|
||||||
QHBoxLayout *buttonsLayout = new QHBoxLayout;
|
QHBoxLayout *buttonsLayout = new QHBoxLayout;
|
||||||
|
@ -78,12 +78,11 @@ void UserInfoBox::updateInfo(const ServerInfo_User &user)
|
||||||
{
|
{
|
||||||
const UserLevelFlags userLevel(user.user_level());
|
const UserLevelFlags userLevel(user.user_level());
|
||||||
|
|
||||||
QPixmap avatarPixmap;
|
|
||||||
const std::string bmp = user.avatar_bmp();
|
const std::string bmp = user.avatar_bmp();
|
||||||
if (!avatarPixmap.loadFromData((const uchar *)bmp.data(), bmp.size()))
|
if (!avatarPixmap.loadFromData((const uchar *)bmp.data(), bmp.size()))
|
||||||
avatarPixmap =
|
avatarPixmap =
|
||||||
UserLevelPixmapGenerator::generatePixmap(64, userLevel, false, QString::fromStdString(user.privlevel()));
|
UserLevelPixmapGenerator::generatePixmap(64, userLevel, false, QString::fromStdString(user.privlevel()));
|
||||||
avatarLabel.setPixmap(avatarPixmap.scaled(avatarLabel.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
|
avatarLabel.setPixmap(avatarPixmap.scaled(400, 200, Qt::KeepAspectRatio, Qt::SmoothTransformation));
|
||||||
|
|
||||||
nameLabel.setText(QString::fromStdString(user.name()));
|
nameLabel.setText(QString::fromStdString(user.name()));
|
||||||
realNameLabel2.setText(QString::fromStdString(user.real_name()));
|
realNameLabel2.setText(QString::fromStdString(user.real_name()));
|
||||||
|
@ -163,7 +162,6 @@ void UserInfoBox::processResponse(const Response &r)
|
||||||
{
|
{
|
||||||
const Response_GetUserInfo &response = r.GetExtension(Response_GetUserInfo::ext);
|
const Response_GetUserInfo &response = r.GetExtension(Response_GetUserInfo::ext);
|
||||||
updateInfo(response.user_info());
|
updateInfo(response.user_info());
|
||||||
setFixedSize(sizeHint());
|
|
||||||
show();
|
show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -295,3 +293,10 @@ void UserInfoBox::processAvatarResponse(const Response &r)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UserInfoBox::resizeEvent(QResizeEvent *event)
|
||||||
|
{
|
||||||
|
QPixmap resizedPixmap = avatarPixmap.scaled(avatarLabel.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||||
|
avatarLabel.setPixmap(resizedPixmap);
|
||||||
|
QWidget::resizeEvent(event);
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ private:
|
||||||
QLabel avatarLabel, nameLabel, realNameLabel1, realNameLabel2, countryLabel1, countryLabel2, countryLabel3,
|
QLabel avatarLabel, nameLabel, realNameLabel1, realNameLabel2, countryLabel1, countryLabel2, countryLabel3,
|
||||||
userLevelLabel1, userLevelLabel2, userLevelLabel3, accountAgeLebel1, accountAgeLabel2;
|
userLevelLabel1, userLevelLabel2, userLevelLabel3, accountAgeLebel1, accountAgeLabel2;
|
||||||
QPushButton editButton, passwordButton, avatarButton;
|
QPushButton editButton, passwordButton, avatarButton;
|
||||||
|
QPixmap avatarPixmap;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
UserInfoBox(AbstractClient *_client, bool editable, QWidget *parent = nullptr, Qt::WindowFlags flags = {});
|
UserInfoBox(AbstractClient *_client, bool editable, QWidget *parent = nullptr, Qt::WindowFlags flags = {});
|
||||||
|
@ -35,6 +36,9 @@ private slots:
|
||||||
public slots:
|
public slots:
|
||||||
void updateInfo(const ServerInfo_User &user);
|
void updateInfo(const ServerInfo_User &user);
|
||||||
void updateInfo(const QString &userName);
|
void updateInfo(const QString &userName);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue