From 7c776779a6ac98605d5d9002782c3091273f2ebd Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 27 Aug 2022 14:09:09 +0200 Subject: [PATCH] Bugfix: D25 view background color synchronized with layout view now --- .../tools/view_25d/lay_plugin/layD25View.cc | 28 +++++++++++++++---- .../tools/view_25d/lay_plugin/layD25View.h | 1 + .../view_25d/lay_plugin/templates/d25.lym | 2 +- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/plugins/tools/view_25d/lay_plugin/layD25View.cc b/src/plugins/tools/view_25d/lay_plugin/layD25View.cc index 455a6cf08..529001fba 100644 --- a/src/plugins/tools/view_25d/lay_plugin/layD25View.cc +++ b/src/plugins/tools/view_25d/lay_plugin/layD25View.cc @@ -25,6 +25,8 @@ #include "layD25View.h" #include "layLayoutView.h" +#include "layConverters.h" +#include "laybasicConfig.h" #include "layQtTools.h" #include "ui_D25View.h" @@ -77,11 +79,6 @@ D25View::D25View (lay::Dispatcher *root, LayoutViewBase *view) view->cellviews_changed_event.add (this, &D25View::cellviews_changed); view->layer_list_changed_event.add (this, &D25View::layer_properties_changed); - QPalette palette = mp_ui->material_list->palette (); - palette.setColor (QPalette::Base, Qt::black); - palette.setColor (QPalette::Text, Qt::white); - mp_ui->material_list->setPalette (palette); - QFont font = mp_ui->material_list->font (); font.setWeight (QFont::Bold); mp_ui->material_list->setFont (font); @@ -119,6 +116,27 @@ D25View::layer_properties_changed (int) // .. nothing yet .. } +bool D25View::configure(const std::string &name, const std::string &value) +{ + if (name == lay::cfg_background_color) { + + lay::ColorConverter lc; + + tl::Color bg; + lc.from_string (value, bg); + + QPalette palette = mp_ui->material_list->palette (); + palette.setColor (QPalette::Base, bg.to_qc ()); + palette.setColor (QPalette::Text, bg.to_mono () ? Qt::black : Qt::white); + mp_ui->material_list->setPalette (palette); + + mp_ui->d25_view->update (); + + } + + return lay::Browser::configure (name, value); +} + void D25View::menu_activated (const std::string &symbol) { diff --git a/src/plugins/tools/view_25d/lay_plugin/layD25View.h b/src/plugins/tools/view_25d/lay_plugin/layD25View.h index 55708b8fb..38a664413 100644 --- a/src/plugins/tools/view_25d/lay_plugin/layD25View.h +++ b/src/plugins/tools/view_25d/lay_plugin/layD25View.h @@ -60,6 +60,7 @@ public: D25View (lay::Dispatcher *root, lay::LayoutViewBase *view); ~D25View (); + virtual bool configure (const std::string &name, const std::string &value); virtual void menu_activated (const std::string &symbol); virtual void deactivated (); virtual void activated (); diff --git a/src/plugins/tools/view_25d/lay_plugin/templates/d25.lym b/src/plugins/tools/view_25d/lay_plugin/templates/d25.lym index 7580c81c6..b66e09651 100644 --- a/src/plugins/tools/view_25d/lay_plugin/templates/d25.lym +++ b/src/plugins/tools/view_25d/lay_plugin/templates/d25.lym @@ -53,7 +53,7 @@ z(input(1, 0), 0.1 .. 0.2) z(input(2, 0), height: 250.nm, color: 0xffbc80) -zz(like: 7/0, name: "Metal") do +zz(like: "7/0", name: "Metal") do z(input(7, 0), height: 100.nm) z(input(8, 0), height: 150.nm) end