39 lines
1.0 KiB
C++
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
|