diff --git a/src/Config.h b/src/Config.h
index dea8851a..08db958f 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -33,6 +33,24 @@ namespace dialogs {
constexpr int labelSize = 15;
}
+namespace modals {
+constexpr int MIN_WIDGET_WIDTH = 400;
+constexpr int MIN_WIDGET_HEIGHT = 400;
+
+constexpr int WIDGET_MARGIN = 20;
+constexpr int WIDGET_SPACING = 15;
+constexpr int WIDGET_TOP_MARGiN = 2 * WIDGET_MARGIN;
+
+constexpr int TEXT_SPACING = 4;
+
+constexpr int BUTTON_SIZE = 36;
+constexpr int BUTTON_RADIUS = BUTTON_SIZE / 2;
+
+constexpr float BUTTON_TEXT_SIZE_RATIO = 1.3;
+constexpr float LABEL_MEDIUM_SIZE_RATIO = 1.3;
+constexpr float LABEL_BIG_SIZE_RATIO = 2;
+}
+
namespace strings {
const QString url_html = "\\1";
const QRegExp url_regex(
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp
index 4c249369..04ce5b5d 100644
--- a/src/UserSettingsPage.cpp
+++ b/src/UserSettingsPage.cpp
@@ -118,8 +118,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
backBtn_->setIcon(icon);
backBtn_->setIconSize(QSize(24, 24));
- auto heading_ = new QLabel(tr("User Settings"));
- heading_->setStyleSheet("font-weight: bold; font-size: 22px;");
+ QFont font;
+ font.setPointSizeF(font.pointSizeF() * 1.1);
auto versionInfo = new QLabel(QString("%1 | %2").arg(nheko::version).arg(nheko::build_os));
versionInfo->setTextInteractionFlags(Qt::TextBrowserInteraction);
@@ -128,14 +128,13 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
topBarLayout_->setSpacing(0);
topBarLayout_->setMargin(0);
topBarLayout_->addWidget(backBtn_, 1, Qt::AlignLeft | Qt::AlignVCenter);
- topBarLayout_->addWidget(heading_, 0, Qt::AlignBottom);
topBarLayout_->addStretch(1);
auto trayOptionLayout_ = new QHBoxLayout;
trayOptionLayout_->setContentsMargins(0, OptionMargin, 0, OptionMargin);
auto trayLabel = new QLabel(tr("Minimize to tray"), this);
- trayToggle_ = new Toggle(this);
- trayLabel->setStyleSheet("font-size: 15px;");
+ trayLabel->setFont(font);
+ trayToggle_ = new Toggle(this);
trayOptionLayout_->addWidget(trayLabel);
trayOptionLayout_->addWidget(trayToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
@@ -143,10 +142,10 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
auto startInTrayOptionLayout_ = new QHBoxLayout;
startInTrayOptionLayout_->setContentsMargins(0, OptionMargin, 0, OptionMargin);
auto startInTrayLabel = new QLabel(tr("Start in tray"), this);
- startInTrayToggle_ = new Toggle(this);
+ startInTrayLabel->setFont(font);
+ startInTrayToggle_ = new Toggle(this);
if (!settings_->isTrayEnabled())
startInTrayToggle_->setDisabled(true);
- startInTrayLabel->setStyleSheet("font-size: 15px;");
startInTrayOptionLayout_->addWidget(startInTrayLabel);
startInTrayOptionLayout_->addWidget(
@@ -154,9 +153,9 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
auto orderRoomLayout = new QHBoxLayout;
orderRoomLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
- auto orderLabel = new QLabel(tr("Re-order rooms based on activity"), this);
+ auto orderLabel = new QLabel(tr("Re-order rooms based on activity"), this);
+ orderLabel->setFont(font);
roomOrderToggle_ = new Toggle(this);
- orderLabel->setStyleSheet("font-size: 15px;");
orderRoomLayout->addWidget(orderLabel);
orderRoomLayout->addWidget(roomOrderToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
@@ -164,17 +163,17 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
auto groupViewLayout = new QHBoxLayout;
groupViewLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
auto groupViewLabel = new QLabel(tr("Group's sidebar"), this);
- groupViewToggle_ = new Toggle(this);
- groupViewLabel->setStyleSheet("font-size: 15px;");
+ groupViewLabel->setFont(font);
+ groupViewToggle_ = new Toggle(this);
groupViewLayout->addWidget(groupViewLabel);
groupViewLayout->addWidget(groupViewToggle_, 0, Qt::AlignBottom | Qt::AlignRight);
auto typingLayout = new QHBoxLayout;
typingLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
- auto typingLabel = new QLabel(tr("Typing notifications"), this);
+ auto typingLabel = new QLabel(tr("Typing notifications"), this);
+ typingLabel->setFont(font);
typingNotifications_ = new Toggle(this);
- typingLabel->setStyleSheet("font-size: 15px;");
typingLayout->addWidget(typingLabel);
typingLayout->addWidget(typingNotifications_, 0, Qt::AlignBottom | Qt::AlignRight);
@@ -182,8 +181,8 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
auto receiptsLayout = new QHBoxLayout;
receiptsLayout->setContentsMargins(0, OptionMargin, 0, OptionMargin);
auto receiptsLabel = new QLabel(tr("Read receipts"), this);
- readReceipts_ = new Toggle(this);
- receiptsLabel->setStyleSheet("font-size: 15px;");
+ receiptsLabel->setFont(font);
+ readReceipts_ = new Toggle(this);
receiptsLayout->addWidget(receiptsLabel);
receiptsLayout->addWidget(readReceipts_, 0, Qt::AlignBottom | Qt::AlignRight);
@@ -191,17 +190,18 @@ UserSettingsPage::UserSettingsPage(QSharedPointer settings, QWidge
auto themeOptionLayout_ = new QHBoxLayout;
themeOptionLayout_->setContentsMargins(0, OptionMargin, 0, OptionMargin);
auto themeLabel_ = new QLabel(tr("Theme"), this);
- themeCombo_ = new QComboBox(this);
+ themeLabel_->setFont(font);
+ themeCombo_ = new QComboBox(this);
themeCombo_->addItem("Light");
themeCombo_->addItem("Dark");
themeCombo_->addItem("System");
- themeLabel_->setStyleSheet("font-size: 15px;");
themeOptionLayout_->addWidget(themeLabel_);
themeOptionLayout_->addWidget(themeCombo_, 0, Qt::AlignBottom | Qt::AlignRight);
+ font.setWeight(65);
auto general_ = new QLabel(tr("GENERAL"), this);
- general_->setStyleSheet("font-size: 17px");
+ general_->setFont(font);
mainLayout_ = new QVBoxLayout;
mainLayout_->setSpacing(7);
diff --git a/src/dialogs/CreateRoom.cpp b/src/dialogs/CreateRoom.cpp
index 3c538b49..27407d45 100644
--- a/src/dialogs/CreateRoom.cpp
+++ b/src/dialogs/CreateRoom.cpp
@@ -16,21 +16,25 @@ using namespace dialogs;
CreateRoom::CreateRoom(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(520, 600);
+ setMinimumSize(conf::modals::MIN_WIDGET_WIDTH, conf::modals::MIN_WIDGET_HEIGHT);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(0);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
confirmBtn_ = new FlatButton("CREATE", this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new FlatButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(confirmBtn_);
@@ -55,8 +59,7 @@ CreateRoom::CreateRoom(QWidget *parent)
presetLayout->setContentsMargins(0, 10, 0, 10);
auto visibilityLabel = new QLabel(tr("Room Visibility"), this);
- visibilityLabel->setStyleSheet(QString("font-size: %1px;").arg(conf::dialogs::labelSize));
- visibilityCombo_ = new QComboBox(this);
+ visibilityCombo_ = new QComboBox(this);
visibilityCombo_->addItem("Private");
visibilityCombo_->addItem("Public");
@@ -64,8 +67,7 @@ CreateRoom::CreateRoom(QWidget *parent)
visibilityLayout->addWidget(visibilityCombo_, 0, Qt::AlignBottom | Qt::AlignRight);
auto presetLabel = new QLabel(tr("Room Preset"), this);
- presetLabel->setStyleSheet(QString("font-size: %1px;").arg(conf::dialogs::labelSize));
- presetCombo_ = new QComboBox(this);
+ presetCombo_ = new QComboBox(this);
presetCombo_->addItem("Private Chat");
presetCombo_->addItem("Public Chat");
presetCombo_->addItem("Trusted Private Chat");
@@ -74,8 +76,7 @@ CreateRoom::CreateRoom(QWidget *parent)
presetLayout->addWidget(presetCombo_, 0, Qt::AlignBottom | Qt::AlignRight);
auto directLabel_ = new QLabel(tr("Direct Chat"), this);
- directLabel_->setStyleSheet(QString("font-size: %1px;").arg(conf::dialogs::labelSize));
- directToggle_ = new Toggle(this);
+ directToggle_ = new Toggle(this);
directToggle_->setActiveColor(QColor("#38A3D8"));
directToggle_->setInactiveColor(QColor("gray"));
directToggle_->setState(true);
diff --git a/src/dialogs/InviteUsers.cpp b/src/dialogs/InviteUsers.cpp
index bcd163b0..8361468a 100644
--- a/src/dialogs/InviteUsers.cpp
+++ b/src/dialogs/InviteUsers.cpp
@@ -20,29 +20,30 @@ using namespace dialogs;
InviteUsers::InviteUsers(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(400, 350);
+ setMinimumWidth(conf::modals::MIN_WIDGET_WIDTH);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(0);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
confirmBtn_ = new FlatButton("INVITE", this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new FlatButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(confirmBtn_);
buttonLayout->addWidget(cancelBtn_);
- QFont font;
- font.setPixelSize(conf::headerFontSize);
-
inviteeInput_ = new TextField(this);
inviteeInput_->setLabel(tr("User ID to invite"));
@@ -54,8 +55,6 @@ InviteUsers::InviteUsers(QWidget *parent)
errorLabel_ = new QLabel(this);
errorLabel_->setAlignment(Qt::AlignCenter);
- font.setPixelSize(12);
- errorLabel_->setFont(font);
layout->addWidget(inviteeInput_);
layout->addWidget(errorLabel_);
diff --git a/src/dialogs/JoinRoom.cpp b/src/dialogs/JoinRoom.cpp
index 05c0f455..1ff6bba1 100644
--- a/src/dialogs/JoinRoom.cpp
+++ b/src/dialogs/JoinRoom.cpp
@@ -14,41 +14,51 @@ using namespace dialogs;
JoinRoom::JoinRoom(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(400, 400);
+ setMinimumWidth(conf::modals::MIN_WIDGET_WIDTH);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(0);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
confirmBtn_ = new FlatButton("JOIN", this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new FlatButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(confirmBtn_);
buttonLayout->addWidget(cancelBtn_);
- QFont font;
- font.setPixelSize(conf::headerFontSize);
-
roomInput_ = new TextField(this);
roomInput_->setLabel(tr("Room ID or alias"));
layout->addWidget(roomInput_);
layout->addLayout(buttonLayout);
+ layout->addStretch(1);
+
+ connect(roomInput_, &QLineEdit::returnPressed, this, &JoinRoom::handleInput);
+ connect(confirmBtn_, &QPushButton::clicked, this, &JoinRoom::handleInput);
+ connect(cancelBtn_, &QPushButton::clicked, [this]() { emit closing(false, ""); });
+}
+
+void
+JoinRoom::handleInput()
+{
+ if (roomInput_->text().isEmpty())
+ return;
// TODO: input validation with error messages.
- connect(confirmBtn_, &QPushButton::clicked, [this]() {
- emit closing(true, roomInput_->text());
- roomInput_->clear();
- });
- connect(cancelBtn_, &QPushButton::clicked, [this]() { emit closing(false, ""); });
+ emit closing(true, roomInput_->text());
+ roomInput_->clear();
}
void
diff --git a/src/dialogs/JoinRoom.h b/src/dialogs/JoinRoom.h
index 5919f08f..0c2f47d7 100644
--- a/src/dialogs/JoinRoom.h
+++ b/src/dialogs/JoinRoom.h
@@ -20,6 +20,9 @@ protected:
void paintEvent(QPaintEvent *event) override;
void showEvent(QShowEvent *event) override;
+private slots:
+ void handleInput();
+
private:
FlatButton *confirmBtn_;
FlatButton *cancelBtn_;
diff --git a/src/dialogs/LeaveRoom.cpp b/src/dialogs/LeaveRoom.cpp
index 9647d19f..30f8dace 100644
--- a/src/dialogs/LeaveRoom.cpp
+++ b/src/dialogs/LeaveRoom.cpp
@@ -13,28 +13,32 @@ using namespace dialogs;
LeaveRoom::LeaveRoom(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(400, 400);
+ setMinimumWidth(conf::modals::MIN_WIDGET_WIDTH);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(0);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
confirmBtn_ = new FlatButton("LEAVE", this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new FlatButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(confirmBtn_);
buttonLayout->addWidget(cancelBtn_);
QFont font;
- font.setPixelSize(conf::headerFontSize);
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
auto label = new QLabel(tr("Are you sure you want to leave?"), this);
label->setFont(font);
diff --git a/src/dialogs/Logout.cpp b/src/dialogs/Logout.cpp
index e2449817..f790eb92 100644
--- a/src/dialogs/Logout.cpp
+++ b/src/dialogs/Logout.cpp
@@ -31,34 +31,39 @@ using namespace dialogs;
Logout::Logout(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(400, 400);
+ setMinimumWidth(conf::modals::MIN_WIDGET_WIDTH);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(0);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
confirmBtn_ = new FlatButton("OK", this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new FlatButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(confirmBtn_);
buttonLayout->addWidget(cancelBtn_);
QFont font;
- font.setPixelSize(conf::headerFontSize);
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
auto label = new QLabel(tr("Logout. Are you sure?"), this);
label->setFont(font);
layout->addWidget(label);
layout->addLayout(buttonLayout);
+ layout->addStretch(1);
connect(confirmBtn_, &QPushButton::clicked, [this]() { emit closing(true); });
connect(cancelBtn_, &QPushButton::clicked, [this]() { emit closing(false); });
diff --git a/src/dialogs/MemberList.cpp b/src/dialogs/MemberList.cpp
index 60c2eb0a..9757b8af 100644
--- a/src/dialogs/MemberList.cpp
+++ b/src/dialogs/MemberList.cpp
@@ -26,7 +26,7 @@ MemberItem::MemberItem(const RoomMember &member, QWidget *parent)
textLayout_->setSpacing(0);
avatar_ = new Avatar(this);
- avatar_->setSize(44);
+ avatar_->setSize(46);
avatar_->setLetter(utils::firstChar(member.display_name));
if (!member.avatar.isNull())
@@ -37,18 +37,14 @@ MemberItem::MemberItem(const RoomMember &member, QWidget *parent)
this,
[this](const QImage &img) { avatar_->setImage(img); });
- QFont nameFont, idFont;
+ QFont nameFont;
nameFont.setWeight(65);
- nameFont.setPixelSize(conf::receipts::font + 1);
- idFont.setWeight(50);
- idFont.setPixelSize(conf::receipts::font);
+ nameFont.setPointSizeF(nameFont.pointSizeF() * 1.1);
+ userId_ = new QLabel(member.user_id, this);
userName_ = new QLabel(member.display_name, this);
userName_->setFont(nameFont);
- userId_ = new QLabel(member.user_id, this);
- userId_->setFont(idFont);
-
textLayout_->addWidget(userName_);
textLayout_->addWidget(userId_);
@@ -60,12 +56,17 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
: QFrame(parent)
, room_id_{room_id}
{
- setMaximumSize(420, 380);
+ QFont doubleFont;
+ doubleFont.setPointSizeF(doubleFont.pointSizeF() * 2);
+ setMinimumWidth(QFontMetrics(doubleFont).averageCharWidth() * 30);
+ setMinimumHeight(conf::modals::MIN_WIDGET_HEIGHT);
+
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
setAttribute(Qt::WA_DeleteOnClose, true);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
list_ = new QListWidget;
list_->setFrameStyle(QFrame::NoFrame);
@@ -74,7 +75,7 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
list_->setSpacing(5);
QFont font;
- font.setPixelSize(conf::headerFontSize);
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_BIG_SIZE_RATIO);
topLabel_ = new QLabel(tr("Room members"), this);
topLabel_->setAlignment(Qt::AlignCenter);
diff --git a/src/dialogs/PreviewUploadOverlay.cpp b/src/dialogs/PreviewUploadOverlay.cpp
index 7e54ba4e..31167727 100644
--- a/src/dialogs/PreviewUploadOverlay.cpp
+++ b/src/dialogs/PreviewUploadOverlay.cpp
@@ -39,18 +39,23 @@ PreviewUploadOverlay::PreviewUploadOverlay(QWidget *parent)
: QWidget{parent}
, titleLabel_{this}
, fileName_{this}
- , upload_{tr("Upload"), this}
- , cancel_{tr("Cancel"), this}
+ , upload_{tr("Upload").toUpper(), this}
+ , cancel_{tr("Cancel").toUpper(), this}
{
auto hlayout = new QHBoxLayout;
+ hlayout->addStretch(1);
hlayout->addWidget(&upload_);
hlayout->addWidget(&cancel_);
+ hlayout->setSpacing(0);
+ hlayout->setMargin(0);
auto vlayout = new QVBoxLayout{this};
vlayout->addWidget(&titleLabel_);
vlayout->addWidget(&infoLabel_);
vlayout->addWidget(&fileName_);
vlayout->addLayout(hlayout);
+ vlayout->setSpacing(conf::modals::WIDGET_SPACING);
+ vlayout->setMargin(conf::modals::WIDGET_MARGIN);
connect(&upload_, &QPushButton::clicked, [this]() {
emit confirmUpload(data_, mediaType_, fileName_.text());
@@ -79,8 +84,10 @@ PreviewUploadOverlay::init()
setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
setWindowModality(Qt::WindowModal);
- titleLabel_.setStyleSheet(
- QString{"font-weight: bold; font-size: %1px;"}.arg(conf::headerFontSize));
+ QFont font;
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
+
+ titleLabel_.setFont(font);
titleLabel_.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
titleLabel_.setAlignment(Qt::AlignCenter);
infoLabel_.setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
@@ -88,8 +95,11 @@ PreviewUploadOverlay::init()
fileName_.setAlignment(Qt::AlignCenter);
upload_.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
cancel_.setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- upload_.setFontSize(conf::btn::fontSize);
- cancel_.setFontSize(conf::btn::fontSize);
+
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+ upload_.setFont(buttonFont);
+ cancel_.setFont(buttonFont);
if (isImage_) {
infoLabel_.setAlignment(Qt::AlignCenter);
diff --git a/src/dialogs/ReCaptcha.cpp b/src/dialogs/ReCaptcha.cpp
index 9181d588..0995e955 100644
--- a/src/dialogs/ReCaptcha.cpp
+++ b/src/dialogs/ReCaptcha.cpp
@@ -22,21 +22,24 @@ ReCaptcha::ReCaptcha(const QString &session, QWidget *parent)
setWindowModality(Qt::WindowModal);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
auto buttonLayout = new QHBoxLayout();
buttonLayout->setSpacing(8);
buttonLayout->setMargin(0);
+ QFont buttonFont;
+ buttonFont.setPointSizeF(buttonFont.pointSizeF() * conf::modals::BUTTON_TEXT_SIZE_RATIO);
+
openCaptchaBtn_ = new FlatButton("OPEN reCAPTCHA", this);
- openCaptchaBtn_->setFontSize(conf::btn::fontSize);
+ openCaptchaBtn_->setFont(buttonFont);
confirmBtn_ = new RaisedButton(tr("CONFIRM"), this);
- confirmBtn_->setFontSize(conf::btn::fontSize);
+ confirmBtn_->setFont(buttonFont);
cancelBtn_ = new RaisedButton(tr("CANCEL"), this);
- cancelBtn_->setFontSize(conf::btn::fontSize);
+ cancelBtn_->setFont(buttonFont);
buttonLayout->addStretch(1);
buttonLayout->addWidget(openCaptchaBtn_);
@@ -44,7 +47,7 @@ ReCaptcha::ReCaptcha(const QString &session, QWidget *parent)
buttonLayout->addWidget(cancelBtn_);
QFont font;
- font.setPixelSize(conf::headerFontSize);
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
auto label = new QLabel(tr("Solve the reCAPTCHA and press the confirm button"), this);
label->setFont(font);
diff --git a/src/dialogs/ReadReceipts.cpp b/src/dialogs/ReadReceipts.cpp
index c27146ac..f3201de5 100644
--- a/src/dialogs/ReadReceipts.cpp
+++ b/src/dialogs/ReadReceipts.cpp
@@ -28,15 +28,16 @@ ReceiptItem::ReceiptItem(QWidget *parent,
textLayout_ = new QVBoxLayout;
textLayout_->setMargin(0);
- textLayout_->setSpacing(5);
+ textLayout_->setSpacing(conf::modals::TEXT_SPACING);
- QFont font;
- font.setPixelSize(conf::receipts::font);
+ QFont nameFont;
+ nameFont.setWeight(65);
+ nameFont.setPointSizeF(nameFont.pointSizeF() * 1.1);
auto displayName = Cache::displayName(room_id, user_id);
avatar_ = new Avatar(this);
- avatar_->setSize(40);
+ avatar_->setSize(44);
avatar_->setLetter(utils::firstChar(displayName));
// If it's a matrix id we use the second letter.
@@ -44,10 +45,9 @@ ReceiptItem::ReceiptItem(QWidget *parent,
avatar_->setLetter(QChar(displayName.at(1)));
userName_ = new QLabel(displayName, this);
- userName_->setFont(font);
+ userName_->setFont(nameFont);
timestamp_ = new QLabel(dateFormat(QDateTime::fromMSecsSinceEpoch(timestamp)), this);
- timestamp_->setFont(font);
textLayout_->addWidget(userName_);
textLayout_->addWidget(timestamp_);
@@ -80,20 +80,21 @@ ReceiptItem::dateFormat(const QDateTime &then) const
ReadReceipts::ReadReceipts(QWidget *parent)
: QFrame(parent)
{
- setMaximumSize(400, 350);
+ setMinimumSize(conf::modals::MIN_WIDGET_WIDTH, conf::modals::MIN_WIDGET_HEIGHT);
+ setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
auto layout = new QVBoxLayout(this);
- layout->setSpacing(30);
- layout->setMargin(20);
+ layout->setSpacing(conf::modals::WIDGET_SPACING);
+ layout->setMargin(conf::modals::WIDGET_MARGIN);
userList_ = new QListWidget;
userList_->setFrameStyle(QFrame::NoFrame);
userList_->setSelectionMode(QAbstractItemView::NoSelection);
userList_->setAttribute(Qt::WA_MacShowFocusRect, 0);
- userList_->setSpacing(5);
+ userList_->setSpacing(conf::modals::TEXT_SPACING);
QFont font;
- font.setPixelSize(conf::headerFontSize);
+ font.setPointSizeF(font.pointSizeF() * conf::modals::LABEL_MEDIUM_SIZE_RATIO);
topLabel_ = new QLabel(tr("Read receipts"), this);
topLabel_->setAlignment(Qt::AlignCenter);