replaced qt font scaling

remove the qt font scaling and added code that uses the actual scale/dpi value
This commit is contained in:
fourtf
2017-12-23 21:18:13 +01:00
parent c9aa716f58
commit fc81b118c7
21 changed files with 298 additions and 155 deletions
+6 -6
View File
@@ -45,8 +45,8 @@ void EmotePopup::loadChannel(std::shared_ptr<Channel> _channel)
// TITLE
messages::MessageBuilder builder1;
builder1.appendWord(
Word(title, Word::Type::Text, MessageColor(MessageColor::Text), QString(), QString()));
builder1.appendWord(Word(title, Word::Flags::Text, MessageColor(MessageColor::Text),
FontManager::Medium, QString(), QString()));
builder1.getMessage()->centered = true;
emoteChannel->addMessage(builder1.getMessage());
@@ -56,7 +56,7 @@ void EmotePopup::loadChannel(std::shared_ptr<Channel> _channel)
builder2.getMessage()->centered = true;
map.each([&](const QString &key, const EmoteData &value) {
builder2.appendWord(Word(value.image, Word::Type::AlwaysShow, key, emoteDesc,
builder2.appendWord(Word(value.image, Word::Flags::AlwaysShow, key, emoteDesc,
Link(Link::Type::InsertText, key)));
});
@@ -85,8 +85,8 @@ void EmotePopup::loadEmojis()
// title
messages::MessageBuilder builder1;
builder1.appendWord(
Word("emojis", Word::Type::Text, MessageColor(MessageColor::Text), QString(), QString()));
builder1.appendWord(Word("emojis", Word::Flags::Text, MessageColor(MessageColor::Text),
FontManager::Medium, QString(), QString()));
builder1.getMessage()->centered = true;
emojiChannel->addMessage(builder1.getMessage());
@@ -95,7 +95,7 @@ void EmotePopup::loadEmojis()
messages::MessageBuilder builder;
builder.getMessage()->centered = true;
emojis.each([this, &builder](const QString &key, const EmoteData &value) {
builder.appendWord(Word(value.image, Word::Type::AlwaysShow, key, "emoji",
builder.appendWord(Word(value.image, Word::Flags::AlwaysShow, key, "emoji",
Link(Link::Type::InsertText, key)));
});
emojiChannel->addMessage(builder.getMessage());
+7 -5
View File
@@ -554,12 +554,14 @@ void ChannelView::updateMessageBuffer(messages::MessageRef *messageRef, QPixmap
}
// text
else {
QColor color = wordPart.getWord().getColor().getColor(this->colorScheme);
QColor color = wordPart.getWord().getTextColor().getColor(this->colorScheme);
this->colorScheme.normalizeColor(color);
painter.setPen(color);
painter.setFont(wordPart.getWord().getFont());
painter.setFont(wordPart.getWord().getFont(this->getDpiMultiplier()));
qDebug() << wordPart.getWord().getFont(this->getDpiMultiplier()).pointSize();
painter.drawText(QRectF(wordPart.getX(), wordPart.getY(), 10000, 10000),
wordPart.getText(), QTextOption(Qt::AlignLeft | Qt::AlignTop));
@@ -626,7 +628,7 @@ void ChannelView::drawMessageSelection(QPainter &painter, messages::MessageRef *
int offset = this->selection.min.charIndex - charIndex;
for (int j = 0; j < offset; j++) {
rect.setLeft(rect.left() + part.getCharWidth(j));
rect.setLeft(rect.left() + part.getCharWidth(j, this->getDpiMultiplier()));
}
if (isSingleWord) {
@@ -635,7 +637,7 @@ void ChannelView::drawMessageSelection(QPainter &painter, messages::MessageRef *
rect.setRight(part.getX());
for (int j = 0; j < offset + length; j++) {
rect.setRight(rect.right() + part.getCharWidth(j));
rect.setRight(rect.right() + part.getCharWidth(j, this->getDpiMultiplier()));
}
painter.fillRect(rect, selectionColor);
@@ -692,7 +694,7 @@ void ChannelView::drawMessageSelection(QPainter &painter, messages::MessageRef *
rect.setRight(part.getX());
for (int j = 0; j < offset + length; j++) {
rect.setRight(rect.right() + part.getCharWidth(j));
rect.setRight(rect.right() + part.getCharWidth(j, this->getDpiMultiplier()));
}
} else {
if (this->selection.max.charIndex == charIndex) {
+4 -2
View File
@@ -29,9 +29,11 @@ SplitInput::SplitInput(Split *_chatWidget)
auto &fontManager = FontManager::getInstance();
this->textInput.setFont(fontManager.getFont(FontManager::Type::Medium));
this->textInput.setFont(
fontManager.getFont(FontManager::Type::Medium, this->getDpiMultiplier()));
this->managedConnections.emplace_back(fontManager.fontChanged.connect([this, &fontManager]() {
this->textInput.setFont(fontManager.getFont(FontManager::Type::Medium));
this->textInput.setFont(
fontManager.getFont(FontManager::Type::Medium, this->getDpiMultiplier()));
}));
this->editContainer.addWidget(&this->textInput);
+1 -1
View File
@@ -180,7 +180,7 @@ QVBoxLayout *SettingsDialog::createAppearanceTab()
fontButton->connect(fontButton, &QPushButton::clicked, []() {
auto &fontManager = FontManager::getInstance();
QFontDialog dialog(fontManager.getFont(FontManager::Medium));
QFontDialog dialog(fontManager.getFont(FontManager::Medium, 1.));
dialog.connect(&dialog, &QFontDialog::fontSelected, [](const QFont &font) {
auto &fontManager = FontManager::getInstance();