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