MultiMC5/application/themes/ITheme.cpp
Petr Mrázek ceb5fc6d75 GH-1790 do not apply system theme on launch if it is selected
This prevents some ugly colors to show up on macOS in most cases.
It still looks ugly right after you switch to the it though.
2017-01-18 02:48:29 +01:00

48 lines
1.1 KiB
C++

#include "ITheme.h"
#include "rainbow.h"
#include <QStyleFactory>
#include <QDir>
#include "MultiMC.h"
void ITheme::apply(bool)
{
QApplication::setStyle(QStyleFactory::create(qtTheme()));
if(hasColorScheme())
{
QApplication::setPalette(colorScheme());
}
if(hasStyleSheet())
{
MMC->setStyleSheet(appStyleSheet());
}
else
{
MMC->setStyleSheet(QString());
}
QDir::setSearchPaths("theme", searchPaths());
}
QPalette ITheme::fadeInactive(QPalette in, qreal bias, QColor color)
{
auto blend = [&in, bias, color](QPalette::ColorRole role)
{
QColor from = in.color(QPalette::Active, role);
QColor blended = Rainbow::mix(from, color, bias);
in.setColor(QPalette::Disabled, role, blended);
};
blend(QPalette::Window);
blend(QPalette::WindowText);
blend(QPalette::Base);
blend(QPalette::AlternateBase);
blend(QPalette::ToolTipBase);
blend(QPalette::ToolTipText);
blend(QPalette::Text);
blend(QPalette::Button);
blend(QPalette::ButtonText);
blend(QPalette::BrightText);
blend(QPalette::Link);
blend(QPalette::Highlight);
blend(QPalette::HighlightedText);
return in;
}