1 // Copyright 2015 Citra Emulator Project
2 // Licensed under GPLv2 or any later version
3 // Refer to the license.txt file included.
4
5 #include <array>
6 #include <cmath>
7 #include <QPainter>
8 #include "yuzu/util/util.h"
9
GetMonospaceFont()10 QFont GetMonospaceFont() {
11 QFont font(QStringLiteral("monospace"));
12 // Automatic fallback to a monospace font on on platforms without a font called "monospace"
13 font.setStyleHint(QFont::Monospace);
14 font.setFixedPitch(true);
15 return font;
16 }
17
ReadableByteSize(qulonglong size)18 QString ReadableByteSize(qulonglong size) {
19 static constexpr std::array units{"B", "KiB", "MiB", "GiB", "TiB", "PiB"};
20 if (size == 0) {
21 return QStringLiteral("0");
22 }
23
24 const int digit_groups = std::min(static_cast<int>(std::log10(size) / std::log10(1024)),
25 static_cast<int>(units.size()));
26 return QStringLiteral("%L1 %2")
27 .arg(size / std::pow(1024, digit_groups), 0, 'f', 1)
28 .arg(QString::fromUtf8(units[digit_groups]));
29 }
30
CreateCirclePixmapFromColor(const QColor & color)31 QPixmap CreateCirclePixmapFromColor(const QColor& color) {
32 QPixmap circle_pixmap(16, 16);
33 circle_pixmap.fill(Qt::transparent);
34 QPainter painter(&circle_pixmap);
35 painter.setRenderHint(QPainter::Antialiasing);
36 painter.setPen(color);
37 painter.setBrush(color);
38 painter.drawEllipse({circle_pixmap.width() / 2.0, circle_pixmap.height() / 2.0}, 7.0, 7.0);
39 return circle_pixmap;
40 }
41