This commit is contained in:
Matthias Koefferlein
2026-08-17 01:50:51 +02:00
parent 64e83c96dd
commit 07e057e182
3 changed files with 30 additions and 13 deletions
+9 -9
View File
@@ -212,7 +212,7 @@ static void set_value (const db::PCellParameterDeclaration &p, QWidget *widget,
PCellParametersPage::PCellParametersPage ()
: PCellParametersPageBase ()
{
// .. nothing yet ..
m_s2s_parameter_changed_slot.triggered.add (this, &PCellParametersPage::parameter_changed_slot);
}
void
@@ -361,7 +361,7 @@ PCellParametersPage::build_widgets (QFrame *container)
inner_grid->addWidget (f, row, 2);
m_all_widgets.back ().push_back (f);
connect (le, SIGNAL (editingFinished ()), this, SLOT (parameter_changed_slot ()));
QObject::connect (le, SIGNAL (editingFinished ()), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
}
break;
@@ -379,7 +379,7 @@ PCellParametersPage::build_widgets (QFrame *container)
inner_grid->addWidget (pb, row, 2);
m_all_widgets.back ().push_back (pb);
connect (pb, SIGNAL (clicked ()), this, SLOT (parameter_changed_slot ()));
QObject::connect (pb, SIGNAL (clicked ()), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
}
break;
@@ -396,7 +396,7 @@ PCellParametersPage::build_widgets (QFrame *container)
inner_grid->addWidget (le, row, 2);
m_all_widgets.back ().push_back (le);
connect (le, SIGNAL (editingFinished ()), this, SLOT (parameter_changed_slot ()));
QObject::connect (le, SIGNAL (editingFinished ()), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
}
break;
@@ -426,7 +426,7 @@ PCellParametersPage::build_widgets (QFrame *container)
inner_grid->addWidget (f, row, 2);
m_all_widgets.back ().push_back (f);
connect (ly, SIGNAL (activated (int)), this, SLOT (parameter_changed_slot ()));
QObject::connect (ly, SIGNAL (activated (int)), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
}
break;
@@ -442,7 +442,7 @@ PCellParametersPage::build_widgets (QFrame *container)
inner_grid->addWidget (cbx, row, 2);
m_all_widgets.back ().push_back (cbx);
connect (cbx, SIGNAL (stateChanged (int)), this, SLOT (parameter_changed_slot ()));
QObject::connect (cbx, SIGNAL (stateChanged (int)), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
}
break;
@@ -477,7 +477,7 @@ PCellParametersPage::build_widgets (QFrame *container)
}
}
connect (cb, SIGNAL (activated (int)), this, SLOT (parameter_changed_slot ()));
QObject::connect (cb, SIGNAL (activated (int)), &m_s2s_parameter_changed_slot, SLOT (trigger ()));
m_widgets.push_back (cb);
@@ -500,7 +500,7 @@ PCellParametersPage::build_widgets (QFrame *container)
}
void
PCellParametersPage::parameter_changed_slot ()
PCellParametersPage::parameter_changed_slot (QObject *sender)
{
if (! pcell_decl ()) {
return;
@@ -509,7 +509,7 @@ PCellParametersPage::parameter_changed_slot ()
const std::vector<db::PCellParameterDeclaration> &pcp = pcell_decl ()->parameter_declarations ();
const db::PCellParameterDeclaration *pd = 0;
for (auto w = m_widgets.begin (); w != m_widgets.end (); ++w) {
if (*w == sender ()) {
if (*w == sender) {
pd = &pcp [w - m_widgets.begin ()];
break;
}
+3 -4
View File
@@ -36,8 +36,6 @@ namespace edt
class PCellParametersPage
: public PCellParametersPageBase
{
Q_OBJECT
public:
/**
* @brief Constructor
@@ -50,14 +48,15 @@ protected:
virtual void apply_states (const db::ParameterStates &states);
virtual void apply_values (const db::ParameterStates &states);
private slots:
void parameter_changed_slot ();
private:
void parameter_changed_slot (QObject *sender);
private:
std::vector<QGroupBox *> mp_groups;
std::vector<QWidget *> m_widgets;
std::vector<QLabel *> m_icon_widgets;
std::vector<std::vector<QWidget *> > m_all_widgets;
SignalToEventAddSender m_s2s_parameter_changed_slot;
};
}
+18
View File
@@ -106,6 +106,24 @@ private:
int m_v;
};
/**
* @brief A helper object to translate between a (parameterless) Qt signal and an event with a single int argument
*
* TODO: this is generic, move it somewhere else
*/
class SignalToEventAddSender
: public QObject
{
Q_OBJECT
public:
SignalToEventAddSender () : QObject () { }
tl::event<QObject *> triggered;
public slots:
void trigger () { triggered (sender ()); }
};
/**
* @brief A proxy for a PCell parameters editing page
*