Fixed #271 (proposal, more choices for the cell origin on 'make cell')

This commit is contained in:
Matthias Koefferlein 2019-06-18 00:50:21 +02:00
parent f59e49d678
commit eecb62906c
7 changed files with 580 additions and 167 deletions

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>MakeCellOptionsDialog</class> <class>MakeCellOptionsDialog</class>
<widget class="QDialog" name="MakeCellOptionsDialog"> <widget class="QDialog" name="MakeCellOptionsDialog">
@ -5,41 +6,336 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>462</width> <width>483</width>
<height>159</height> <height>367</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Dialog</string> <string>Make Cell</string>
</property> </property>
<layout class="QVBoxLayout"> <layout class="QVBoxLayout">
<property name="margin" >
<number>9</number>
</property>
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="title"> <property name="title">
<string>Make Cell</string> <string>Name of cell to make from selected shapes and instances:</string>
</property> </property>
<layout class="QVBoxLayout"> <layout class="QVBoxLayout">
<property name="margin" > <property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>9</number> <number>9</number>
</property> </property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QLineEdit" name="cell_name_le"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="origin_groupbox">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="title">
<string>Put origin relative to cell's bounding bo&amp;x at ...</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QHBoxLayout" name="_2">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>64</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="_3">
<property name="leftMargin">
<number>15</number>
</property>
<property name="topMargin">
<number>15</number>
</property>
<property name="rightMargin">
<number>15</number>
</property>
<property name="bottomMargin">
<number>15</number>
</property>
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<item> <item row="0" column="2">
<widget class="QLabel" name="label" > <widget class="QToolButton" name="ct">
<property name="text"> <property name="text">
<string>Name of cell to make from selected shapes and instances:</string> <string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/ct.png</normaloff>:/ct.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QToolButton" name="lt">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lt.png</normaloff>:/lt.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QToolButton" name="rt">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rt.png</normaloff>:/rt.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QToolButton" name="lc">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lc.png</normaloff>:/lc.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QToolButton" name="cc">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/cc.png</normaloff>:/cc.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QToolButton" name="rc">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rc.png</normaloff>:/rc.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QToolButton" name="lb">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lb.png</normaloff>:/lb.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QToolButton" name="cb">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/cb.png</normaloff>:/cb.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QToolButton" name="rb">
<property name="text">
<string>...</string>
</property>
<property name="icon">
<iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rb.png</normaloff>:/rb.png</iconset>
</property>
<property name="iconSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QLineEdit" name="cell_name_le" /> <spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>88</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
@ -49,7 +345,7 @@
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>16</height> <height>16</height>
@ -63,13 +359,15 @@
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<resources/> <resources>
<include location="../../lay/lay/layResources.qrc"/>
</resources>
<connections> <connections>
<connection> <connection>
<sender>buttonBox</sender> <sender>buttonBox</sender>

View File

@ -336,28 +336,80 @@ MakeCellOptionsDialog::MakeCellOptionsDialog (QWidget *parent)
: QDialog (parent) : QDialog (parent)
{ {
setupUi (this); setupUi (this);
setObjectName (QString::fromUtf8 ("make_cell_options_dialog"));
QToolButton *buttons[3][3] = { { lb, cb, rb }, { lc, cc, rc }, { lt, ct, rt } };
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
connect (buttons[i][j], SIGNAL (clicked ()), this, SLOT (button_clicked ()));
}
}
} }
bool bool
MakeCellOptionsDialog::exec_dialog (const db::Layout &layout, std::string &name) MakeCellOptionsDialog::exec_dialog (const db::Layout &layout, std::string &name, int &mode_x, int &mode_y)
{ {
do { do {
BEGIN_PROTECTED BEGIN_PROTECTED
QToolButton *buttons[3][3] = { { lb, cb, rb }, { lc, cc, rc }, { lt, ct, rt } };
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
buttons[i][j]->setChecked (j - 1 == mode_x && i - 1 == mode_y);
}
}
origin_groupbox->setChecked (mode_x >= -1);
if (QDialog::exec ()) { if (QDialog::exec ()) {
if (origin_groupbox->isChecked ()) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
if (buttons[i][j]->isChecked ()) {
mode_x = j - 1;
mode_y = i - 1;
}
}
}
} else {
mode_x = mode_y = -2;
}
name = tl::to_string (cell_name_le->text ()); name = tl::to_string (cell_name_le->text ());
if (name.empty ()) { if (name.empty ()) {
throw tl::Exception (tl::to_string (QObject::tr ("Cell name must not be empty"))); throw tl::Exception (tl::to_string (QObject::tr ("Cell name must not be empty")));
} else if (layout.cell_by_name (name.c_str ()).first) { } else if (layout.cell_by_name (name.c_str ()).first) {
throw tl::Exception (tl::to_string (QObject::tr ("A cell with that name already exists: ")) + name); throw tl::Exception (tl::to_string (QObject::tr ("A cell with that name already exists: ")) + name);
} }
return true; return true;
} else { } else {
return false; return false;
} }
END_PROTECTED END_PROTECTED
} while (true); } while (true);
} }
void
MakeCellOptionsDialog::button_clicked ()
{
QToolButton *buttons[3][3] = { { lb, cb, rb }, { lc, cc, rc }, { lt, ct, rt } };
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
if (buttons [i][j] != sender ()) {
buttons [i][j]->setChecked (false);
}
}
}
}
// -------------------------------------------------------------------------------- // --------------------------------------------------------------------------------
// RoundCornerOptionsDialog implementation // RoundCornerOptionsDialog implementation

View File

@ -134,9 +134,14 @@ class MakeCellOptionsDialog
: public QDialog, : public QDialog,
private Ui::MakeCellOptionsDialog private Ui::MakeCellOptionsDialog
{ {
Q_OBJECT
public: public:
MakeCellOptionsDialog (QWidget *parent); MakeCellOptionsDialog (QWidget *parent);
bool exec_dialog (const db::Layout &layout, std::string &name); bool exec_dialog (const db::Layout &layout, std::string &name, int &mode_x, int &mode_y);
private slots:
void button_clicked ();
}; };
/** /**
@ -146,6 +151,8 @@ class MakeArrayOptionsDialog
: public QDialog, : public QDialog,
private Ui::MakeArrayOptionsDialog private Ui::MakeArrayOptionsDialog
{ {
Q_OBJECT
public: public:
MakeArrayOptionsDialog (QWidget *parent); MakeArrayOptionsDialog (QWidget *parent);
bool exec_dialog (db::DVector &a, unsigned int &na, db::DVector &b, unsigned int &nb); bool exec_dialog (db::DVector &a, unsigned int &na, db::DVector &b, unsigned int &nb);
@ -160,6 +167,8 @@ class RoundCornerOptionsDialog
: public QDialog, : public QDialog,
private Ui::RoundCornerOptionsDialog private Ui::RoundCornerOptionsDialog
{ {
Q_OBJECT
public: public:
RoundCornerOptionsDialog (QWidget *parent); RoundCornerOptionsDialog (QWidget *parent);
~RoundCornerOptionsDialog (); ~RoundCornerOptionsDialog ();

View File

@ -58,11 +58,11 @@ MainService::MainService (db::Manager *manager, lay::LayoutView *view, lay::Plug
m_flatten_insts_levels (std::numeric_limits<int>::max ()), m_flatten_insts_levels (std::numeric_limits<int>::max ()),
m_flatten_prune (false), m_flatten_prune (false),
m_align_hmode (0), m_align_vmode (0), m_align_visible_layers (false), m_align_hmode (0), m_align_vmode (0), m_align_visible_layers (false),
m_origin_mode_x (-1), m_origin_mode_y (-1), m_origin_visible_layers_for_bbox (false),
m_array_a (0.0, 1.0), m_array_b (1.0, 0.0), m_array_a (0.0, 1.0), m_array_b (1.0, 0.0),
m_array_na (1), m_array_nb (1) m_array_na (1), m_array_nb (1)
{ {
// collect the options pages and build the options dialog // .. nothing yet ..
std::vector<edt::Service *> edt_services = mp_view->get_plugins <edt::Service> ();
} }
MainService::~MainService () MainService::~MainService ()
@ -912,7 +912,7 @@ MainService::cm_make_cell ()
const lay::CellView &cv = view ()->cellview (cv_index); const lay::CellView &cv = view ()->cellview (cv_index);
if (dialog.exec_dialog (cv->layout (), m_make_cell_name)) { if (dialog.exec_dialog (cv->layout (), m_make_cell_name, m_origin_mode_x, m_origin_mode_y)) {
// Compute the selection's bbox to establish a good origin for the new cell // Compute the selection's bbox to establish a good origin for the new cell
db::Box selection_bbox; db::Box selection_bbox;
@ -940,8 +940,13 @@ MainService::cm_make_cell ()
db::Cell &target_cell = cv->layout ().cell (target_ci); db::Cell &target_cell = cv->layout ().cell (target_ci);
// create target cell instance // create target cell instance
db::Instance target_cell_inst = cv.cell ()->insert (db::CellInstArray (db::CellInst (target_ci), db::Trans (selection_bbox.lower_left () - db::Point ()))); db::Vector ref;
db::ICplxTrans to = db::ICplxTrans (db::Trans (db::Point () - selection_bbox.lower_left ())); if (m_origin_mode_x >= -1) {
ref = db::Vector (selection_bbox.left () + ((m_origin_mode_x + 1) * selection_bbox.width ()) / 2, selection_bbox.bottom () + ((m_origin_mode_y + 1) * selection_bbox.height ()) / 2);
}
db::Instance target_cell_inst = cv.cell ()->insert (db::CellInstArray (db::CellInst (target_ci), db::Trans (ref)));
db::ICplxTrans to = db::ICplxTrans (db::Trans (-ref));
for (std::vector<edt::Service *>::const_iterator es = edt_services.begin (); es != edt_services.end (); ++es) { for (std::vector<edt::Service *>::const_iterator es = edt_services.begin (); es != edt_services.end (); ++es) {

View File

@ -201,6 +201,8 @@ private:
int m_align_vmode; int m_align_vmode;
bool m_align_visible_layers; bool m_align_visible_layers;
std::string m_make_cell_name; std::string m_make_cell_name;
int m_origin_mode_x, m_origin_mode_y;
bool m_origin_visible_layers_for_bbox;
db::DVector m_array_a, m_array_b; db::DVector m_array_a, m_array_b;
unsigned int m_array_na, m_array_nb; unsigned int m_array_na, m_array_nb;

View File

@ -99,3 +99,6 @@ plugins.depends += lib rdb db
} }
unit_tests.depends += plugins $$MAIN_DEPENDS unit_tests.depends += plugins $$MAIN_DEPENDS
RESOURCES += \
laybasic/laybasic/layResources.qrc

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>AlignCellOptionsDialog</class> <class>AlignCellOptionsDialog</class>
<widget class="QDialog" name="AlignCellOptionsDialog"> <widget class="QDialog" name="AlignCellOptionsDialog">
@ -10,15 +11,24 @@
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Align Cell</string> <string>Adjust Cell Origin</string>
</property> </property>
<layout class="QVBoxLayout"> <layout class="QVBoxLayout">
<property name="margin" >
<number>9</number>
</property>
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
@ -29,9 +39,7 @@
<item> <item>
<widget class="QFrame" name="frame_2"> <widget class="QFrame" name="frame_2">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -43,18 +51,27 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QHBoxLayout"> <layout class="QHBoxLayout">
<property name="margin" >
<number>9</number>
</property>
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item> <item>
<spacer> <spacer>
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>64</width> <width>64</width>
<height>20</height> <height>20</height>
@ -71,7 +88,16 @@
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QGridLayout"> <layout class="QGridLayout">
<property name="margin" > <property name="leftMargin">
<number>15</number>
</property>
<property name="topMargin">
<number>15</number>
</property>
<property name="rightMargin">
<number>15</number>
</property>
<property name="bottomMargin">
<number>15</number> <number>15</number>
</property> </property>
<property name="spacing"> <property name="spacing">
@ -83,7 +109,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/ct.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/ct.png</normaloff>:/ct.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -102,7 +129,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/lt.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lt.png</normaloff>:/lt.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -121,7 +149,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/rt.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rt.png</normaloff>:/rt.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -140,7 +169,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/lc.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lc.png</normaloff>:/lc.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -159,7 +189,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/cc.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/cc.png</normaloff>:/cc.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -178,7 +209,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/rc.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rc.png</normaloff>:/rc.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -197,7 +229,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/lb.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/lb.png</normaloff>:/lb.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -216,7 +249,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/cb.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/cb.png</normaloff>:/cb.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -235,7 +269,8 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="layResources.qrc" >:/rb.png</iconset> <iconset resource="../../lay/lay/layResources.qrc">
<normaloff>:/rb.png</normaloff>:/rb.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -256,7 +291,7 @@
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>88</width> <width>88</width>
<height>20</height> <height>20</height>
@ -289,7 +324,7 @@
<property name="sizeType"> <property name="sizeType">
<enum>QSizePolicy::Fixed</enum> <enum>QSizePolicy::Fixed</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>8</height> <height>8</height>
@ -306,18 +341,27 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QHBoxLayout"> <layout class="QHBoxLayout">
<property name="margin" >
<number>0</number>
</property>
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<spacer> <spacer>
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>209</width> <width>209</width>
<height>20</height> <height>20</height>
@ -362,7 +406,7 @@
<tabstop>vis_only_cbx</tabstop> <tabstop>vis_only_cbx</tabstop>
</tabstops> </tabstops>
<resources> <resources>
<include location="layResources.qrc" /> <include location="../../lay/lay/layResources.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>