mirror of
https://github.com/KLayout/klayout.git
synced 2026-08-29 01:14:35 +02:00
WIP
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user