Maraiah/tycho/cc/utility.cc

39 lines
1.0 KiB
C++

#include "tycho.h"
QIcon getIcon(QString const &name)
{
constexpr auto sizes = std::array{std::make_pair(16, "_16.svgz"),
std::make_pair(24, "_24.svgz"),
std::make_pair(32, "_32.svgz"),
std::make_pair(64, "_64.svgz"),
std::make_pair(128, "_128.svgz"),
std::make_pair(256, "_256.svgz"),
std::make_pair(512, "_512.svgz"),
std::make_pair(1024, "_1024.svgz")};
QIcon icon;
for(auto const &sz : sizes) {
auto res = ":/tycho/icons/" + name + sz.second;
if(QFile(res).exists()) {
icon.addFile(res, QSize(sz.first, sz.first));
}
}
if(icon.isNull()) {
return QIcon::fromTheme(name);
} else {
return icon;
}
}
extern "C" {
void critical_msg(char const *title, char const *msg)
{
QMessageBox::critical(nullptr, QObject::tr(title), QObject::tr(msg));
}
}
// EOF