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 "citra_qt/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 const std::array<const char*, 6> units = {"B", "KiB", "MiB", "GiB", "TiB", "PiB"};
20 if (size == 0)
21 return QStringLiteral("0");
22 int digit_groups = std::min<int>(static_cast<int>(std::log10(size) / std::log10(1024)),
23 static_cast<int>(units.size()));
24 return QStringLiteral("%L1 %2")
25 .arg(size / std::pow(1024, digit_groups), 0, 'f', 1)
26 .arg(QString::fromUtf8(units[digit_groups]));
27 }
28
CreateCirclePixmapFromColor(const QColor & color)29 QPixmap CreateCirclePixmapFromColor(const QColor& color) {
30 QPixmap circle_pixmap(16, 16);
31 circle_pixmap.fill(Qt::transparent);
32 QPainter painter(&circle_pixmap);
33 painter.setRenderHint(QPainter::Antialiasing);
34 painter.setPen(color);
35 painter.setBrush(color);
36 painter.drawEllipse({circle_pixmap.width() / 2.0, circle_pixmap.height() / 2.0}, 7.0, 7.0);
37 return circle_pixmap;
38 }
39