mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-26 23:05:25 +00:00
089be2b87c
Refactor Theme Editor
106 lines
3.0 KiB
C++
106 lines
3.0 KiB
C++
#include "core/MainWindow.h"
|
|
#include "CutterConfig.h"
|
|
|
|
#include "common/Helpers.h"
|
|
#include "WelcomeDialog.h"
|
|
#include "AboutDialog.h"
|
|
|
|
#include "ui_WelcomeDialog.h"
|
|
|
|
/**
|
|
* @brief Constructs a WelcomeDialog object
|
|
* @param parent
|
|
*/
|
|
WelcomeDialog::WelcomeDialog(QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::WelcomeDialog)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlag(Qt::WindowContextHelpButtonHint, false);
|
|
ui->logoSvgWidget->load(Config()->getLogoFile());
|
|
ui->versionLabel->setText("<font color='#a4a9b2'>" + tr("Version ") + CUTTER_VERSION_FULL + "</font>");
|
|
ui->themeComboBox->setCurrentIndex(Config()->getInterfaceTheme());
|
|
|
|
QSignalBlocker s(ui->updatesCheckBox);
|
|
ui->updatesCheckBox->setChecked(Config()->getAutoUpdateEnabled());
|
|
|
|
QStringList langs = Config()->getAvailableTranslations();
|
|
ui->languageComboBox->addItems(langs);
|
|
QString curr = Config()->getCurrLocale().nativeLanguageName();
|
|
curr = curr.at(0).toUpper() + curr.right(curr.length() - 1);
|
|
if (!langs.contains(curr)) {
|
|
curr = "English";
|
|
}
|
|
ui->languageComboBox->setCurrentText(curr);
|
|
connect(ui->languageComboBox,
|
|
static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
|
this,
|
|
&WelcomeDialog::onLanguageComboBox_currentIndexChanged);
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief Destroys the WelcomeDialog
|
|
*/
|
|
WelcomeDialog::~WelcomeDialog()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
/**
|
|
* @brief change Cutter's QT Theme as selected by the user
|
|
* @param index - a Slot being called after theme's value changes its index
|
|
*/
|
|
void WelcomeDialog::on_themeComboBox_currentIndexChanged(int index)
|
|
{
|
|
Config()->setInterfaceTheme(index);
|
|
|
|
// use "ayu" as the default color theme for dark interface
|
|
if (Config()->windowColorIsDark()) {
|
|
Config()->setColorTheme("ayu");
|
|
}
|
|
|
|
// make sure that Cutter's logo changes its color according to the selected theme
|
|
ui->logoSvgWidget->load(Config()->getLogoFile());
|
|
}
|
|
|
|
/**
|
|
* @brief change Cutter's interface language as selected by the user
|
|
* @param index - a Slot being called after language combo box value changes its index
|
|
*/
|
|
void WelcomeDialog::onLanguageComboBox_currentIndexChanged(int index)
|
|
{
|
|
QString language = ui->languageComboBox->itemText(index).toLower();
|
|
Config()->setLocaleByName(language);
|
|
|
|
QMessageBox mb;
|
|
mb.setWindowTitle(tr("Language settings"));
|
|
mb.setText(tr("Language will be changed after next application start."));
|
|
mb.setIcon(QMessageBox::Information);
|
|
mb.setStandardButtons(QMessageBox::Ok);
|
|
mb.exec();
|
|
}
|
|
|
|
/**
|
|
* @brief show Cutter's About dialog
|
|
*/
|
|
void WelcomeDialog::on_checkUpdateButton_clicked()
|
|
{
|
|
AboutDialog *a = new AboutDialog(this);
|
|
a->setAttribute(Qt::WA_DeleteOnClose);
|
|
a->open();
|
|
}
|
|
|
|
/**
|
|
* @brief accept user preferences, close the window and continue Cutter's execution
|
|
*/
|
|
void WelcomeDialog::on_continueButton_clicked()
|
|
{
|
|
accept();
|
|
}
|
|
|
|
void WelcomeDialog::on_updatesCheckBox_stateChanged(int)
|
|
{
|
|
Config()->setAutoUpdateEnabled(!Config()->getAutoUpdateEnabled());
|
|
}
|