| 
									
										
										
										
											2018-08-25 11:19:43 -04:00
										 |  |  | #include "colorhighlighting.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-25 11:52:41 -04:00
										 |  |  | #include <QApplication>
 | 
					
						
							| 
									
										
										
										
											2018-08-25 11:19:43 -04:00
										 |  |  | #include <QDebug>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  | #include "SettingsGroup.hpp"
 | 
					
						
							| 
									
										
										
										
											2018-11-07 17:49:45 +00:00
										 |  |  | #include "models/DecodeHighlightingModel.hpp"
 | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #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} | 
					
						
							| 
									
										
										
										
											2018-08-25 11:19:43 -04:00
										 |  |  | { | 
					
						
							|  |  |  |   ui->setupUi(this); | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  |   setWindowTitle (QApplication::applicationName () + " - Colors"); | 
					
						
							| 
									
										
										
										
											2018-08-25 15:37:30 -04:00
										 |  |  |   read_settings (); | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  |   set_items (highlight_model); | 
					
						
							| 
									
										
										
										
											2018-08-25 11:19:43 -04:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ColorHighlighting::~ColorHighlighting() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-08-25 15:37:30 -04:00
										 |  |  |   if (isVisible ()) write_settings (); | 
					
						
							| 
									
										
										
										
											2018-08-25 11:19:43 -04:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2018-08-25 11:52:41 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-25 15:37:30 -04:00
										 |  |  | 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 ()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  | void ColorHighlighting::set_items (DecodeHighlightingModel const& highlighting_model) | 
					
						
							| 
									
										
										
										
											2018-08-25 11:52:41 -04:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  |   int index {0}; | 
					
						
							|  |  |  |   for (auto const& item : highlighting_model.items ()) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2019-07-02 21:07:43 +01:00
										 |  |  |       QLabel * example; | 
					
						
							|  |  |  |       QLabel * label; | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  |       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; | 
					
						
							| 
									
										
										
										
											2018-10-26 03:24:36 +01:00
										 |  |  |         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; | 
					
						
							| 
									
										
										
										
											2019-07-02 21:07:43 +01:00
										 |  |  |         default: | 
					
						
							|  |  |  |           continue; | 
					
						
							| 
									
										
										
										
											2018-10-17 00:26:04 +01:00
										 |  |  |         } | 
					
						
							|  |  |  |       auto palette = example->parentWidget ()->palette (); | 
					
						
							|  |  |  |       if (Qt::NoBrush != item.background_.style ()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           palette.setColor (QPalette::Window, item.background_.color ()); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       if (Qt::NoBrush != item.foreground_.style ()) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           palette.setColor (QPalette::WindowText, item.foreground_.color ()); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       example->setPalette (palette); | 
					
						
							|  |  |  |       example->setEnabled (item.enabled_); | 
					
						
							|  |  |  |       label->setText (DecodeHighlightingModel::highlight_name (item.type_)); | 
					
						
							|  |  |  |       label->setEnabled (item.enabled_); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-08-25 11:52:41 -04:00
										 |  |  | } |