Commit 46508b52 authored by Andreas Traczyk's avatar Andreas Traczyk

ui: fixes to font sizes and update scaling at app start

Change-Id: Ie2b68929369d3d3f084025dd16a30aabdf43a9eb
parent 868c3d65
......@@ -26,6 +26,7 @@
#include "accountlistmodel.h"
#include "ringthemeutils.h"
#include "lrcinstance.h"
#include "mainwindow.h"
#undef REGISTERED
......@@ -63,8 +64,18 @@ AccountItemDelegate::paint(QPainter* painter,
QRect &rect = opt.rect;
QFont font(painter->font());
font.setPointSize(fontSize_);
// define and set the two fonts
QFont fontPrimary = painter->font();
QFont fontSecondary = painter->font();
fontPrimary.setWeight(QFont::ExtraLight);
auto scalingRatio = MainWindow::instance().getCurrentScalingRatio();
if (scalingRatio > 1.0) {
fontPrimary.setPointSize(fontSize_ - 1);
fontSecondary.setPointSize(fontSize_ - 2);
} else {
fontPrimary.setPointSize(fontSize_);
fontSecondary.setPointSize(fontSize_ - 1);
}
QPen pen(painter->pen());
......@@ -72,8 +83,8 @@ AccountItemDelegate::paint(QPainter* painter,
if (index.row() == LRCInstance::accountModel().getAccountList().size()) {
pen.setColor(RingTheme::lightBlack_);
painter->setPen(pen);
painter->setFont(font);
QFontMetrics fontMetrics(font);
painter->setFont(fontPrimary);
QFontMetrics fontMetrics(fontPrimary);
painter->drawText(rect, Qt::AlignVCenter | Qt::AlignHCenter, tr("Add Account") + "+");
return;
}
......@@ -117,12 +128,12 @@ AccountItemDelegate::paint(QPainter* painter,
QVariant name = index.data(static_cast<int>(AccountListModel::Role::Alias));
if (name.isValid())
{
font.setItalic(false);
font.setBold(false);
fontPrimary.setItalic(false);
fontPrimary.setBold(false);
pen.setColor(RingTheme::lightBlack_);
painter->setPen(pen);
painter->setFont(font);
QFontMetrics fontMetrics(font);
painter->setFont(fontPrimary);
QFontMetrics fontMetrics(fontPrimary);
QString nameStr = fontMetrics.elidedText(name.value<QString>(), Qt::ElideRight,
rectTexts.width() - avatarSize_ - leftPadding_ - rightPadding_ * 2);
painter->drawText(rectTexts, Qt::AlignVCenter | Qt::AlignLeft, nameStr);
......@@ -132,12 +143,12 @@ AccountItemDelegate::paint(QPainter* painter,
QString idStr = index.data(static_cast<int>(AccountListModel::Role::Username)).value<QString>();
if (idStr != name.toString()) {
font.setItalic(false);
font.setBold(false);
fontSecondary.setItalic(false);
fontSecondary.setBold(false);
pen.setColor(RingTheme::grey_);
painter->setPen(pen);
painter->setFont(font);
QFontMetrics fontMetrics(font);
painter->setFont(fontSecondary);
QFontMetrics fontMetrics(fontSecondary);
if (!idStr.isNull()) {
idStr = fontMetrics.elidedText(idStr, Qt::ElideRight,
rectTexts.width() - avatarSize_ - leftPadding_ - rightPadding_ * 2);
......
......@@ -31,7 +31,7 @@ protected:
QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const;
private:
constexpr static int fontSize_ = 10;
constexpr static int fontSize_ = 11;
const QFont font_ = QFont("Arial", fontSize_);
constexpr static int topPadding_ = 6;
constexpr static int bottomPadding_ = 6;
......
......@@ -162,15 +162,18 @@ ConversationItemDelegate::paintRingConversationItem(QPainter* painter,
{
Q_UNUSED(option);
QFont font(painter->font());
font.setPointSize(fontSize_);
QPen pen(painter->pen());
painter->setPen(pen);
int infoTextWidthModifier = 0;
int infoText2HeightModifier = 0;
auto scalingRatio = MainWindow::instance().getCurrentScalingRatio();
if (scalingRatio > 1.0) {
font.setPointSize(fontSize_ - 1);
font.setPointSize(fontSize_ - 2);
infoTextWidthModifier = 12;
infoText2HeightModifier = 2;
} else {
font.setPointSize(fontSize_);
}
auto leftMargin = dx_ + sizeImage_ + dx_;
......@@ -194,9 +197,9 @@ ConversationItemDelegate::paintRingConversationItem(QPainter* painter,
rect.height() / 2 - 2);
QRect rectInfo2(rectInfo1.left(),
rectInfo1.top() + rectInfo1.height(),
rectInfo1.top() + rectInfo1.height() - infoText2HeightModifier,
rectInfo1.width(),
rectInfo1.height() - bottomMargin);
rectInfo1.height() - bottomMargin + infoText2HeightModifier);
QFontMetrics fontMetrics(font);
......@@ -240,6 +243,7 @@ ConversationItemDelegate::paintRingConversationItem(QPainter* painter,
QString interactionStr = index.data(static_cast<int>(SmartListModel::Role::LastInteraction)).value<QString>();
if (!interactionStr.isNull()) {
painter->save();
font.setWeight(QFont::ExtraLight);
interactionStr = interactionStr.simplified();
auto type = Utils::toEnum<lrc::api::interaction::Type>(index
.data(static_cast<int>(SmartListModel::Role::LastInteractionType))
......@@ -263,7 +267,7 @@ ConversationItemDelegate::paintRingConversationItem(QPainter* painter,
QFont emojiMsgFont(QStringLiteral("Segoe UI Emoji"));
emojiMsgFont.setItalic(false);
emojiMsgFont.setBold(false);
emojiMsgFont.setPointSize(fontSize_);
emojiMsgFont.setPointSize(scalingRatio > 1.0 ? fontSize_ - 2 : fontSize_);
painter->setOpacity(0.7);
painter->setFont(emojiMsgFont);
}
......
......@@ -42,7 +42,7 @@ private:
constexpr static int cellHeight_ = 60;
constexpr static int dy_ = 6;
constexpr static int dx_ = 12;
constexpr static int fontSize_ = 10;
constexpr static int fontSize_ = 11;
constexpr static int infoTextWidth_ = 144;
mutable std::map<int, bool> highlightMap_;
......
......@@ -18,16 +18,16 @@
**************************************************************************/
#include "currentaccountcombobox.h"
#include <accountitemdelegate.h>
#include "pixbufmanipulator.h"
#include <QPixmap>
#include <QMouseEvent>
#include "accountitemdelegate.h"
#include "pixbufmanipulator.h"
#include "utils.h"
#include "ringthemeutils.h"
#include "lrcinstance.h"
#include <QPixmap>
#include "callwidget.h"
#include "ui_callwidget.h"
#include "mainwindow.h"
#undef REGISTERED
......@@ -86,10 +86,15 @@ CurrentAccountComboBox::paintEvent(QPaintEvent* e)
// define and set the two fonts
QFont fontPrimary = painter.font();
QFont fontSecondary = painter.font();
fontPrimary.setPointSize(11);
fontPrimary.setWeight(QFont::ExtraLight);
fontSecondary.setPointSize(10);
auto scalingRatio = MainWindow::instance().getCurrentScalingRatio();
if (scalingRatio > 1.0) {
fontPrimary.setPointSize(10);
fontSecondary.setPointSize(9);
} else {
fontPrimary.setPointSize(11);
fontSecondary.setPointSize(10);
}
QFontMetrics fontMetricPrimary(fontPrimary);
QFontMetrics fontMetricSecondary(fontSecondary);
......
......@@ -149,15 +149,6 @@ MainWindow::MainWindow(QWidget* parent) :
}
lastScr_ = startScreen;
activeChangedConnection_ = connect(windowHandle(), &QWindow::activeChanged,
[this]() {
auto screenNumber = qApp->desktop()->screenNumber();
QScreen* screen = qApp->screens().at(screenNumber);
windowHandle()->setScreen(nullptr);
windowHandle()->setScreen(screen);
});
}
MainWindow::~MainWindow()
......@@ -351,12 +342,23 @@ MainWindow::show()
disconnect(screenChangedConnection_);
screenChangedConnection_ = connect(windowHandle(), &QWindow::screenChanged,
this, &MainWindow::slotScreenChanged);
disconnect(activeChangedConnection_);
activeChangedConnection_ = connect(windowHandle(), &QWindow::activeChanged,
[this]() {
auto screenNumber = qApp->desktop()->screenNumber();
windowHandle()->setScreen(nullptr);
QScreen* screen = qApp->screens().at(screenNumber);
windowHandle()->setScreen(screen);
});
auto screenNumber = qApp->desktop()->screenNumber();
QScreen* screen = qApp->screens().at(screenNumber);
currentScalingRatio_ = screen->logicalDotsPerInchX() / 96;
qobject_cast<NavWidget*>(ui->navStack->currentWidget())->updateCustomUI();
}
void
MainWindow::slotScreenChanged(QScreen* screen)
{
Q_UNUSED(screen);
adjustSize();
updateGeometry();
update();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment