/
Team8
/
kittycad
Обзор
Документация
Войти
/
Team8
/
kittycad
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/gui/utils.h
38 строк
1 KB
levovix
fix: icons are now embeded into binary
07 янв 2026, 19:47
07 янв 2026, 19:47
48fb22d
Код
Авторство
О чём код?
#pragma once #include <QWidget> #include <QLayout> #include <QFile> #include <QSvgRenderer> #include <QGraphicsSvgItem> #include <QPainter> #include <QApplication> #include <QRegularExpression> inline QWidget* asWidget(QLayout* layout) { QWidget* res = new QWidget; layout->setParent(res); res->setLayout(layout); return res; } inline QIcon qIconFromResources(std::string_view name) { auto f = QFile(":/resources/icons/" + QString::fromUtf8(QByteArrayView(name.data(), name.size())) + ".svg"); (void)f.open(QIODevice::ReadOnly | QIODevice::Text); QString content = f.readAll(); QPalette palette = QApplication::palette(); QColor color = palette.color(QPalette::ColorRole::BrightText); content.replace(QRegularExpression( ".ColorScheme-Text { color:#[a-fA-F0-9]+;"), ".ColorScheme-Text { color:" + color.name() + ";" ); QSvgRenderer renderer = QSvgRenderer(content.toUtf8()); auto pixmap = QPixmap(QSize(22, 22)); pixmap.fill(Qt::transparent); auto painter = QPainter(&pixmap); renderer.render(&painter); return QIcon(pixmap); }