Merge pull request #1958 from KLayout/bugfix/issue-1953

Fixing bug #1953 (inconsistent behavior of callback) maybe
This commit is contained in:
Matthias Köfferlein 2025-01-04 19:35:36 +01:00 committed by GitHub
commit 64bfe9f118
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 6 deletions

View File

@ -614,7 +614,7 @@ PCellParametersPage::setup (lay::LayoutViewBase *view, int cv_index, const db::P
m_initial_states = m_states;
mp_error_frame->hide ();
update_widgets_from_states (m_states);
update_widgets_from_states (m_states, lazy_evaluation ());
mp_parameters_area->setWidget (mp_main_frame);
mp_main_frame->show ();
@ -713,7 +713,7 @@ PCellParametersPage::do_parameter_changed ()
db::ParameterStates states = m_states;
get_parameters (states, &ok); // includes coerce
if (ok) {
update_widgets_from_states (states);
update_widgets_from_states (states, lazy_evaluation ());
if (! lazy_evaluation ()) {
emit edited ();
}
@ -959,11 +959,11 @@ PCellParametersPage::set_parameters (const std::vector<tl::Variant> &parameters)
m_initial_states = m_states;
mp_error_frame->hide ();
set_parameters_internal (m_states, false);
update_widgets_from_states (m_states, false);
}
void
PCellParametersPage::update_widgets_from_states (const db::ParameterStates &states)
PCellParametersPage::update_widgets_from_states (const db::ParameterStates &states, bool tentatively)
{
if (! mp_pcell_decl) {
return;
@ -1031,7 +1031,7 @@ PCellParametersPage::update_widgets_from_states (const db::ParameterStates &stat
}
set_parameters_internal (states, lazy_evaluation ());
set_parameters_internal (states, tentatively);
// QGridLayouts are bad in handling nested QFrame (or QGroupBox) with their own layouts,
// so we help a little here:

View File

@ -177,7 +177,7 @@ private:
bool lazy_evaluation ();
void set_parameters_internal (const db::ParameterStates &states, bool tentatively);
bool update_current_parameters ();
void update_widgets_from_states (const db::ParameterStates &states);
void update_widgets_from_states (const db::ParameterStates &states, bool tentatively);
void get_parameters_internal (db::ParameterStates &states, bool &edit_error);
std::vector<tl::Variant> parameter_from_states (const db::ParameterStates &states) const;
void states_from_parameters (db::ParameterStates &states, const std::vector<tl::Variant> &parameters);