forked from qt-creator/qt-creator
		
	Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (C) 2020 The Qt Company Ltd.
 | 
						|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
 | 
						|
 | 
						|
#include "themeselector.h"
 | 
						|
 | 
						|
#include <utils/stylehelper.h>
 | 
						|
#include <utils/theme/theme.h>
 | 
						|
#include <utils/theme/theme_p.h>
 | 
						|
 | 
						|
#include <coreplugin/manhattanstyle.h>
 | 
						|
 | 
						|
#include <QApplication>
 | 
						|
#include <QDir>
 | 
						|
#include <QSettings>
 | 
						|
 | 
						|
namespace ManualTest {
 | 
						|
 | 
						|
static const char themeNameKey[] = "ThemeName";
 | 
						|
 | 
						|
void ThemeSelector::setTheme(const QString &themeFile)
 | 
						|
{
 | 
						|
    using namespace Utils;
 | 
						|
 | 
						|
    static Theme theme("");
 | 
						|
    QSettings settings(themeFile, QSettings::IniFormat);
 | 
						|
    theme.readSettings(settings);
 | 
						|
    setCreatorTheme(&theme);
 | 
						|
    StyleHelper::setBaseColor(QColor(StyleHelper::DEFAULT_BASE_COLOR));
 | 
						|
    QApplication::setStyle(new ManhattanStyle(creatorTheme()->preferredStyles().value(0)));
 | 
						|
    QApplication::setPalette(theme.palette());
 | 
						|
}
 | 
						|
 | 
						|
ThemeSelector::ThemeSelector(QWidget *parent)
 | 
						|
    : QComboBox(parent)
 | 
						|
{
 | 
						|
    QCoreApplication::setOrganizationName("QtProject");
 | 
						|
    QCoreApplication::setApplicationName("tst_manual");
 | 
						|
 | 
						|
    for (const QFileInfo &themeFile : QDir(":/themes/", "*.creatortheme").entryInfoList()) {
 | 
						|
        QSettings settings(themeFile.absoluteFilePath(), QSettings::IniFormat);
 | 
						|
        addItem(settings.value("ThemeName").toString(), themeFile.absoluteFilePath());
 | 
						|
    }
 | 
						|
 | 
						|
    QSettings appSettings;
 | 
						|
    setCurrentText(appSettings.value(themeNameKey, "Flat Dark").toString());
 | 
						|
    setTheme(currentData().toString());
 | 
						|
 | 
						|
    connect(this, &QComboBox::currentTextChanged, [this]{
 | 
						|
        setTheme(currentData().toString());
 | 
						|
        QSettings appSettings;
 | 
						|
        appSettings.setValue(themeNameKey, currentText());
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
} // namespace ManualTest
 |