mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-10-31 15:47:10 -04:00
131 lines
3.6 KiB
C++
131 lines
3.6 KiB
C++
#include "colorhighlighting.h"
|
|
|
|
#include <QApplication>
|
|
#include <QString>
|
|
|
|
#include "SettingsGroup.hpp"
|
|
#include "models/DecodeHighlightingModel.hpp"
|
|
|
|
#include "ui_colorhighlighting.h"
|
|
#include "moc_colorhighlighting.cpp"
|
|
|
|
ColorHighlighting::ColorHighlighting (QSettings * settings, DecodeHighlightingModel const& highlight_model, QWidget * parent)
|
|
: QDialog {parent}
|
|
, ui {new Ui::ColorHighlighting}
|
|
, settings_ {settings}
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowTitle (QApplication::applicationName () + " - Colors");
|
|
read_settings ();
|
|
set_items (highlight_model);
|
|
}
|
|
|
|
ColorHighlighting::~ColorHighlighting()
|
|
{
|
|
if (isVisible ()) write_settings ();
|
|
}
|
|
|
|
void ColorHighlighting::read_settings ()
|
|
{
|
|
SettingsGroup group {settings_, "ColorScheme"};
|
|
restoreGeometry (settings_->value ("window/geometry").toByteArray ());
|
|
}
|
|
|
|
void ColorHighlighting::write_settings ()
|
|
{
|
|
SettingsGroup group {settings_, "ColorScheme"};
|
|
settings_->setValue ("window/geometry", saveGeometry ());
|
|
}
|
|
|
|
void ColorHighlighting::set_items (DecodeHighlightingModel const& highlighting_model)
|
|
{
|
|
int index {0};
|
|
for (auto const& item : highlighting_model.items ())
|
|
{
|
|
QLabel * example;
|
|
QLabel * label;
|
|
switch (index++)
|
|
{
|
|
case 0:
|
|
example = ui->example1_label;
|
|
label = ui->p1_label;
|
|
break;
|
|
case 1:
|
|
example = ui->example2_label;
|
|
label = ui->p2_label;
|
|
break;
|
|
case 2:
|
|
example = ui->example3_label;
|
|
label = ui->p3_label;
|
|
break;
|
|
case 3:
|
|
example = ui->example4_label;
|
|
label = ui->p4_label;
|
|
break;
|
|
case 4:
|
|
example = ui->example5_label;
|
|
label = ui->p5_label;
|
|
break;
|
|
case 5:
|
|
example = ui->example6_label;
|
|
label = ui->p6_label;
|
|
break;
|
|
case 6:
|
|
example = ui->example7_label;
|
|
label = ui->p7_label;
|
|
break;
|
|
case 7:
|
|
example = ui->example8_label;
|
|
label = ui->p8_label;
|
|
break;
|
|
case 8:
|
|
example = ui->example9_label;
|
|
label = ui->p9_label;
|
|
break;
|
|
case 9:
|
|
example = ui->example10_label;
|
|
label = ui->p10_label;
|
|
break;
|
|
case 10:
|
|
example = ui->example11_label;
|
|
label = ui->p11_label;
|
|
break;
|
|
case 11:
|
|
example = ui->example12_label;
|
|
label = ui->p12_label;
|
|
break;
|
|
case 12:
|
|
example = ui->example13_label;
|
|
label = ui->p13_label;
|
|
break;
|
|
case 13:
|
|
example = ui->example14_label;
|
|
label = ui->p14_label;
|
|
break;
|
|
case 14:
|
|
example = ui->example15_label;
|
|
label = ui->p15_label;
|
|
break;
|
|
case 15:
|
|
example = ui->example16_label;
|
|
label = ui->p16_label;
|
|
break;
|
|
default:
|
|
continue;
|
|
}
|
|
auto style_sheet = example->parentWidget ()->styleSheet ();
|
|
if (Qt::NoBrush != item.background_.style ())
|
|
{
|
|
style_sheet += QString {"; background-color: #%1"}.arg (item.background_.color ().rgb (), 8, 16, QLatin1Char {'0'});
|
|
}
|
|
if (Qt::NoBrush != item.foreground_.style ())
|
|
{
|
|
style_sheet += QString {"; color: #%1"}.arg (item.foreground_.color ().rgb (), 8, 16, QLatin1Char {'0'});
|
|
}
|
|
example->setStyleSheet (style_sheet);
|
|
example->setEnabled (item.enabled_);
|
|
label->setText (DecodeHighlightingModel::highlight_name (item.type_));
|
|
label->setEnabled (item.enabled_);
|
|
}
|
|
}
|