mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Merge branch 'master' of https://github.com/fourtf/chatterino2
This commit is contained in:
commit
d775123ed0
|
@ -26,6 +26,11 @@ equals(QMAKE_CXX, "clang++")|equals(QMAKE_CXX, "g++") {
|
|||
macx:ICON = resources/images/chatterino2.icns
|
||||
win32:RC_FILE = resources/windows.rc
|
||||
|
||||
|
||||
macx {
|
||||
LIBS += -L/usr/local/lib
|
||||
}
|
||||
|
||||
# Submodules
|
||||
include(dependencies/rapidjson.pri)
|
||||
include(dependencies/settings.pri)
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include "application.hpp"
|
||||
#include "singletons/emotemanager.hpp"
|
||||
#include "singletons/settingsmanager.hpp"
|
||||
#include "util/benchmark.hpp"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
|
@ -47,6 +48,8 @@ int MessageLayout::getHeight() const
|
|||
// return true if redraw is required
|
||||
bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags)
|
||||
{
|
||||
BenchmarkGuard benchmark("MessageLayout::layout()");
|
||||
|
||||
auto app = getApp();
|
||||
|
||||
bool layoutRequired = false;
|
||||
|
@ -73,6 +76,7 @@ bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags)
|
|||
|
||||
// check if timestamp format changed
|
||||
bool timestampFormatChanged = this->timestampFormat != app->settings->timestampFormat;
|
||||
this->timestampFormat = app->settings->timestampFormat.getValue();
|
||||
|
||||
layoutRequired |= timestampFormatChanged;
|
||||
|
||||
|
@ -83,6 +87,8 @@ bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags)
|
|||
imagesChanged |= scaleChanged;
|
||||
textChanged |= scaleChanged;
|
||||
|
||||
// assert(layoutRequired);
|
||||
|
||||
// update word sizes if needed
|
||||
if (imagesChanged) {
|
||||
// this->container.updateImages();
|
||||
|
@ -97,6 +103,8 @@ bool MessageLayout::layout(int width, float scale, MessageElement::Flags flags)
|
|||
}
|
||||
|
||||
// return if no layout is required
|
||||
qDebug() << layoutRequired;
|
||||
|
||||
if (!layoutRequired) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -115,10 +115,16 @@ FontManager::FontData FontManager::createFontData(Type type, float scale)
|
|||
|
||||
// normal Ui font (use pt size)
|
||||
{
|
||||
#ifdef Q_OS_MAC
|
||||
constexpr float multiplier = 0.8f;
|
||||
#else
|
||||
constexpr float multiplier = 1.f;
|
||||
#endif
|
||||
|
||||
static std::unordered_map<Type, UiFontData> defaultSize{
|
||||
{Tiny, {8, "Monospace", false, QFont::Normal}},
|
||||
{UiMedium, {12, DEFAULT_FONT_FAMILY, false, QFont::Normal}},
|
||||
{UiTabs, {9, "Segoe UI", false, QFont::Normal}},
|
||||
{UiMedium, {int(12 * multiplier), DEFAULT_FONT_FAMILY, false, QFont::Normal}},
|
||||
{UiTabs, {int(9 * multiplier), DEFAULT_FONT_FAMILY, false, QFont::Normal}},
|
||||
};
|
||||
|
||||
UiFontData &data = defaultSize[type];
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
#pragma once
|
||||
|
||||
#include "widgets/window.hpp"
|
||||
#include "widgets/splitcontainer.hpp"
|
||||
|
||||
namespace chatterino {
|
||||
namespace widgets {
|
||||
struct SplitContainer::Node;
|
||||
}
|
||||
//namespace widgets {
|
||||
//struct SplitContainer::Node;
|
||||
//}
|
||||
namespace singletons {
|
||||
|
||||
class WindowManager
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#include <QDebug>
|
||||
#include <QElapsedTimer>
|
||||
#include <boost/current_function.hpp>
|
||||
#include <boost/noncopyable.hpp>
|
||||
|
||||
#define BENCH(x) \
|
||||
QElapsedTimer x; \
|
||||
|
@ -11,3 +12,23 @@
|
|||
#define MARK(x) \
|
||||
qDebug() << BOOST_CURRENT_FUNCTION << __LINE__ \
|
||||
<< static_cast<float>(x.nsecsElapsed()) / 100000.0 << "ms";
|
||||
|
||||
class BenchmarkGuard : boost::noncopyable {
|
||||
QElapsedTimer timer;
|
||||
QString name;
|
||||
|
||||
public:
|
||||
BenchmarkGuard(const QString &_name)
|
||||
:name(_name)
|
||||
{
|
||||
timer.start();
|
||||
}
|
||||
|
||||
~BenchmarkGuard() {
|
||||
qDebug() << this->name << float(timer.nsecsElapsed()) / 100000.0 << "ms";
|
||||
}
|
||||
|
||||
qreal getElapsedMs() {
|
||||
return qreal(timer.nsecsElapsed()) / 100000.0;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -177,7 +177,7 @@ void ChannelView::actuallyLayoutMessages(bool causedByScrollbar)
|
|||
{
|
||||
auto app = getApp();
|
||||
|
||||
// BENCH(timer)
|
||||
BENCH(timer)
|
||||
auto messagesSnapshot = this->getMessagesSnapshot();
|
||||
|
||||
if (messagesSnapshot.getLength() == 0) {
|
||||
|
@ -264,7 +264,7 @@ void ChannelView::actuallyLayoutMessages(bool causedByScrollbar)
|
|||
this->messageWasAdded = false;
|
||||
}
|
||||
|
||||
// MARK(timer);
|
||||
MARK(timer);
|
||||
|
||||
if (redrawRequired) {
|
||||
this->queueUpdate();
|
||||
|
@ -580,7 +580,7 @@ bool ChannelView::isPaused()
|
|||
|
||||
void ChannelView::paintEvent(QPaintEvent * /*event*/)
|
||||
{
|
||||
// BENCH(timer);
|
||||
BENCH(timer);
|
||||
|
||||
QPainter painter(this);
|
||||
|
||||
|
@ -589,7 +589,7 @@ void ChannelView::paintEvent(QPaintEvent * /*event*/)
|
|||
// draw messages
|
||||
this->drawMessages(painter);
|
||||
|
||||
// MARK(timer);
|
||||
MARK(timer);
|
||||
}
|
||||
|
||||
// if overlays is false then it draws the message, if true then it draws things such as the grey
|
||||
|
|
|
@ -86,7 +86,7 @@ void NotebookTab::updateSize()
|
|||
float scale = getScale();
|
||||
|
||||
int width;
|
||||
QFontMetrics metrics = getApp()->fonts->getFontMetrics(FontStyle::UiTabs, this->getScale());
|
||||
QFontMetrics metrics = getApp()->fonts->getFontMetrics(FontStyle::UiTabs, this->getScale() * this->devicePixelRatioF());
|
||||
|
||||
if (this->hasXButton()) {
|
||||
width = (int)((metrics.width(this->title) + 32) * scale);
|
||||
|
@ -188,7 +188,7 @@ void NotebookTab::paintEvent(QPaintEvent *)
|
|||
QPainter painter(this);
|
||||
float scale = this->getScale();
|
||||
|
||||
painter.setFont(getApp()->fonts->getFont(FontStyle::UiTabs, scale));
|
||||
painter.setFont(getApp()->fonts->getFont(FontStyle::UiTabs, scale * this->devicePixelRatioF()));
|
||||
|
||||
int height = (int)(scale * NOTEBOOK_TAB_HEIGHT);
|
||||
// int fullHeight = (int)(scale * 48);
|
||||
|
@ -248,13 +248,13 @@ void NotebookTab::paintEvent(QPaintEvent *)
|
|||
if (true) { // legacy
|
||||
// painter.drawText(rect, this->getTitle(), QTextOption(Qt::AlignCenter));
|
||||
int offset = (int)(scale * 8);
|
||||
QRect textRect(offset, this->selected ? 0 : 1, this->width() - offset - offset, height);
|
||||
QRect textRect(offset, this->selected ? 1 : 2, this->width() - offset - offset, height);
|
||||
|
||||
if (this->shouldDrawXButton()) {
|
||||
textRect.setRight(textRect.right() - this->height() / 2);
|
||||
}
|
||||
|
||||
QTextOption option(Qt::AlignLeft | Qt::AlignVCenter);
|
||||
QTextOption option(Qt::AlignHCenter | Qt::AlignVCenter);
|
||||
option.setWrapMode(QTextOption::NoWrap);
|
||||
painter.drawText(textRect, this->getTitle(), option);
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue