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,55 +1,351 @@
<ui version="4.0" > <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MakeCellOptionsDialog</class> <class>MakeCellOptionsDialog</class>
<widget class="QDialog" name="MakeCellOptionsDialog" > <widget class="QDialog" name="MakeCellOptionsDialog">
<property name="geometry" > <property name="geometry">
<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" > <property name="spacing">
<number>9</number>
</property>
<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>9</number>
</property>
<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="QLineEdit" name="cell_name_le"/>
<property name="text" >
<string>Name of cell to make from selected shapes and instances:</string>
</property>
</widget>
</item> </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> <item>
<widget class="QLineEdit" name="cell_name_le" /> <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">
<number>6</number>
</property>
<item row="0" column="2">
<widget class="QToolButton" name="ct">
<property name="text">
<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>
</widget>
</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>
<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>
</item> </item>
<item> <item>
<spacer> <spacer>
<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>
@ -58,18 +354,20 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox" > <widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation" > <property name="orientation">
<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>
@ -77,11 +375,11 @@
<receiver>MakeCellOptionsDialog</receiver> <receiver>MakeCellOptionsDialog</receiver>
<slot>accept()</slot> <slot>accept()</slot>
<hints> <hints>
<hint type="sourcelabel" > <hint type="sourcelabel">
<x>248</x> <x>248</x>
<y>254</y> <y>254</y>
</hint> </hint>
<hint type="destinationlabel" > <hint type="destinationlabel">
<x>157</x> <x>157</x>
<y>274</y> <y>274</y>
</hint> </hint>
@ -93,11 +391,11 @@
<receiver>MakeCellOptionsDialog</receiver> <receiver>MakeCellOptionsDialog</receiver>
<slot>reject()</slot> <slot>reject()</slot>
<hints> <hints>
<hint type="sourcelabel" > <hint type="sourcelabel">
<x>316</x> <x>316</x>
<y>260</y> <y>260</y>
</hint> </hint>
<hint type="destinationlabel" > <hint type="destinationlabel">
<x>286</x> <x>286</x>
<y>274</y> <y>274</y>
</hint> </hint>

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,7 +1,8 @@
<ui version="4.0" > <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AlignCellOptionsDialog</class> <class>AlignCellOptionsDialog</class>
<widget class="QDialog" name="AlignCellOptionsDialog" > <widget class="QDialog" name="AlignCellOptionsDialog">
<property name="geometry" > <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
@ -9,52 +10,68 @@
<height>342</height> <height>342</height>
</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" > <property name="spacing">
<number>9</number>
</property>
<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">
<string>Put origin relative to cell's bounding box at ...</string> <string>Put origin relative to cell's bounding box at ...</string>
</property> </property>
</widget> </widget>
</item> </item>
<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>
</property> </property>
<property name="frameShape" > <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow" > <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout">
<property name="margin" > <property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>9</number> <number>9</number>
</property> </property>
<property name="spacing" > <property name="topMargin">
<number>6</number> <number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property> </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>
@ -63,187 +80,205 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QFrame" name="frame_3" > <widget class="QFrame" name="frame_3">
<property name="frameShape" > <property name="frameShape">
<enum>QFrame::Box</enum> <enum>QFrame::Box</enum>
</property> </property>
<property name="frameShadow" > <property name="frameShadow">
<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> <number>15</number>
</property> </property>
<property name="spacing" > <property name="topMargin">
<number>15</number>
</property>
<property name="rightMargin">
<number>15</number>
</property>
<property name="bottomMargin">
<number>15</number>
</property>
<property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<item row="0" column="2" > <item row="0" column="2">
<widget class="QToolButton" name="ct" > <widget class="QToolButton" name="ct">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0" > <item row="0" column="0">
<widget class="QToolButton" name="lt" > <widget class="QToolButton" name="lt">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3" > <item row="0" column="3">
<widget class="QToolButton" name="rt" > <widget class="QToolButton" name="rt">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0" > <item row="1" column="0">
<widget class="QToolButton" name="lc" > <widget class="QToolButton" name="lc">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2" > <item row="1" column="2">
<widget class="QToolButton" name="cc" > <widget class="QToolButton" name="cc">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="3" > <item row="1" column="3">
<widget class="QToolButton" name="rc" > <widget class="QToolButton" name="rc">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0" > <item row="2" column="0">
<widget class="QToolButton" name="lb" > <widget class="QToolButton" name="lb">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="2" > <item row="2" column="2">
<widget class="QToolButton" name="cb" > <widget class="QToolButton" name="cb">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="3" > <item row="2" column="3">
<widget class="QToolButton" name="rb" > <widget class="QToolButton" name="rb">
<property name="text" > <property name="text">
<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>
<width>31</width> <width>31</width>
<height>31</height> <height>31</height>
</size> </size>
</property> </property>
<property name="checkable" > <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
@ -253,10 +288,10 @@
</item> </item>
<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>88</width> <width>88</width>
<height>20</height> <height>20</height>
@ -268,28 +303,28 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="vis_only_cbx" > <widget class="QCheckBox" name="vis_only_cbx">
<property name="text" > <property name="text">
<string>Use visible layers only for bounding box</string> <string>Use visible layers only for bounding box</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="adjust_calls_cbx" > <widget class="QCheckBox" name="adjust_calls_cbx">
<property name="text" > <property name="text">
<string>Adjust instances in parents</string> <string>Adjust instances in parents</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<spacer> <spacer>
<property name="orientation" > <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<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>
@ -298,26 +333,35 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QFrame" name="frame" > <widget class="QFrame" name="frame">
<property name="frameShape" > <property name="frameShape">
<enum>QFrame::NoFrame</enum> <enum>QFrame::NoFrame</enum>
</property> </property>
<property name="frameShadow" > <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout">
<property name="margin" > <property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number> <number>0</number>
</property> </property>
<property name="spacing" > <property name="topMargin">
<number>6</number> <number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property> </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>
@ -326,18 +370,18 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton" > <widget class="QPushButton" name="pushButton">
<property name="text" > <property name="text">
<string>Ok</string> <string>Ok</string>
</property> </property>
<property name="default" > <property name="default">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton_2" > <widget class="QPushButton" name="pushButton_2">
<property name="text" > <property name="text">
<string>Cancel</string> <string>Cancel</string>
</property> </property>
</widget> </widget>
@ -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>
@ -371,11 +415,11 @@
<receiver>AlignCellOptionsDialog</receiver> <receiver>AlignCellOptionsDialog</receiver>
<slot>accept()</slot> <slot>accept()</slot>
<hints> <hints>
<hint type="sourcelabel" > <hint type="sourcelabel">
<x>237</x> <x>237</x>
<y>203</y> <y>203</y>
</hint> </hint>
<hint type="destinationlabel" > <hint type="destinationlabel">
<x>147</x> <x>147</x>
<y>81</y> <y>81</y>
</hint> </hint>
@ -387,11 +431,11 @@
<receiver>AlignCellOptionsDialog</receiver> <receiver>AlignCellOptionsDialog</receiver>
<slot>reject()</slot> <slot>reject()</slot>
<hints> <hints>
<hint type="sourcelabel" > <hint type="sourcelabel">
<x>325</x> <x>325</x>
<y>202</y> <y>202</y>
</hint> </hint>
<hint type="destinationlabel" > <hint type="destinationlabel">
<x>325</x> <x>325</x>
<y>57</y> <y>57</y>
</hint> </hint>