64 lines
2.0 KiB
C++
64 lines
2.0 KiB
C++
#include "settingdialog.h"
|
|
#include "ui_settingdialog.h"
|
|
#include <QColorDialog>
|
|
#include <QPalette>
|
|
#include <QSettings>
|
|
|
|
SettingDialog::SettingDialog(QWidget *parent)
|
|
: QDialog(parent), ui(new Ui::SettingDialog) {
|
|
ui->setupUi(this);
|
|
ui->retranslateUi(this);
|
|
settings = Settings::instance();
|
|
settings->getAllColor(elf_header_color, program_table_color,
|
|
section_header_color, symbol_color, dysymbol_color);
|
|
QPalette pe;
|
|
pe.setColor(QPalette::ButtonText, elf_header_color);
|
|
ui->btn_elf_header->setPalette(pe);
|
|
pe.setColor(QPalette::ButtonText, program_table_color);
|
|
ui->btn_program_table->setPalette(pe);
|
|
pe.setColor(QPalette::ButtonText, section_header_color);
|
|
ui->btn_section_header->setPalette(pe);
|
|
pe.setColor(QPalette::ButtonText, symbol_color);
|
|
ui->btn_symbol->setPalette(pe);
|
|
pe.setColor(QPalette::ButtonText, dysymbol_color);
|
|
ui->btn_dysymbol->setPalette(pe);
|
|
}
|
|
|
|
SettingDialog::~SettingDialog() { delete ui; }
|
|
|
|
#define CHOOSECOLOR(color) \
|
|
if (chooseColor(color, color)) { \
|
|
settings->saveColor(SettingColor::color, color); \
|
|
}
|
|
|
|
void SettingDialog::on_btn_elf_header_clicked() {
|
|
CHOOSECOLOR(elf_header_color)
|
|
}
|
|
|
|
void SettingDialog::on_btn_program_table_clicked() {
|
|
CHOOSECOLOR(program_table_color)
|
|
}
|
|
|
|
void SettingDialog::on_btn_section_header_clicked() {
|
|
CHOOSECOLOR(section_header_color)
|
|
}
|
|
|
|
void SettingDialog::on_btn_symbol_clicked() { CHOOSECOLOR(symbol_color) }
|
|
|
|
void SettingDialog::on_btn_dysymbol_clicked() { CHOOSECOLOR(dysymbol_color) }
|
|
|
|
void SettingDialog::on_buttonBox_accepted() {
|
|
settings->saveAllColor(elf_header_color, program_table_color,
|
|
section_header_color, symbol_color, dysymbol_color);
|
|
}
|
|
|
|
bool SettingDialog::chooseColor(QColor orign, QColor &color) {
|
|
QColorDialog d;
|
|
d.setCurrentColor(orign);
|
|
if (d.exec()) {
|
|
color = d.currentColor();
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|