WingElfParser/settingdialog.cpp

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;
}