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.
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
}
 |