mirror of https://github.com/KLayout/klayout.git
Fixed issue #1287
The problem was introduced during implementation of multi-segment rulers. This patch also fixes the tab order of the ruler properties dialog and adds some tests.
This commit is contained in:
parent
6a36bfa7c0
commit
a2aead8c5c
|
|
@ -6,7 +6,7 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>622</width>
|
<width>669</width>
|
||||||
<height>621</height>
|
<height>621</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -1142,10 +1142,34 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<tabstops>
|
<tabstops>
|
||||||
|
<tabstop>fmt_le</tabstop>
|
||||||
|
<tabstop>main_position</tabstop>
|
||||||
|
<tabstop>main_xalign</tabstop>
|
||||||
|
<tabstop>main_yalign</tabstop>
|
||||||
<tabstop>fmt_x_le</tabstop>
|
<tabstop>fmt_x_le</tabstop>
|
||||||
|
<tabstop>xlabel_xalign</tabstop>
|
||||||
|
<tabstop>xlabel_yalign</tabstop>
|
||||||
<tabstop>fmt_y_le</tabstop>
|
<tabstop>fmt_y_le</tabstop>
|
||||||
|
<tabstop>ylabel_xalign</tabstop>
|
||||||
|
<tabstop>ylabel_yalign</tabstop>
|
||||||
<tabstop>style_cb</tabstop>
|
<tabstop>style_cb</tabstop>
|
||||||
<tabstop>outline_cb</tabstop>
|
<tabstop>outline_cb</tabstop>
|
||||||
|
<tabstop>segments_tab</tabstop>
|
||||||
|
<tabstop>x0</tabstop>
|
||||||
|
<tabstop>y0</tabstop>
|
||||||
|
<tabstop>x1</tabstop>
|
||||||
|
<tabstop>y1</tabstop>
|
||||||
|
<tabstop>x2</tabstop>
|
||||||
|
<tabstop>y2</tabstop>
|
||||||
|
<tabstop>swap_points</tabstop>
|
||||||
|
<tabstop>p1_to_layout</tabstop>
|
||||||
|
<tabstop>p2_to_layout</tabstop>
|
||||||
|
<tabstop>both_to_layout</tabstop>
|
||||||
|
<tabstop>dx</tabstop>
|
||||||
|
<tabstop>dy</tabstop>
|
||||||
|
<tabstop>dd</tabstop>
|
||||||
|
<tabstop>point_list</tabstop>
|
||||||
|
<tabstop>points_edit</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
|
||||||
|
|
@ -331,7 +331,7 @@ Object::seg_p2 (size_t seg_index, const db::DPoint &p)
|
||||||
void
|
void
|
||||||
Object::p1 (const db::DPoint &p)
|
Object::p1 (const db::DPoint &p)
|
||||||
{
|
{
|
||||||
if (! p1 ().equal (p)) {
|
if (m_points.size () < 1 || ! p1 ().equal (p)) {
|
||||||
if (m_points.size () < 1) {
|
if (m_points.size () < 1) {
|
||||||
m_points.push_back (p);
|
m_points.push_back (p);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -348,7 +348,7 @@ Object::p1 (const db::DPoint &p)
|
||||||
void
|
void
|
||||||
Object::p2 (const db::DPoint &p)
|
Object::p2 (const db::DPoint &p)
|
||||||
{
|
{
|
||||||
if (! p2 ().equal (p)) {
|
if (m_points.size () < 2 || ! p2 ().equal (p)) {
|
||||||
if (m_points.size () < 2) {
|
if (m_points.size () < 2) {
|
||||||
if (m_points.empty ()) {
|
if (m_points.empty ()) {
|
||||||
m_points.push_back (db::DPoint ());
|
m_points.push_back (db::DPoint ());
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@
|
||||||
#include "antObject.h"
|
#include "antObject.h"
|
||||||
#include "antTemplate.h"
|
#include "antTemplate.h"
|
||||||
|
|
||||||
|
// NOTE: most tests are in ruby/antTest.rb
|
||||||
|
|
||||||
TEST(1)
|
TEST(1)
|
||||||
{
|
{
|
||||||
ant::Template tmp = ant::Template ("title", "fmt_x", "fmt_y", "fmt",
|
ant::Template tmp = ant::Template ("title", "fmt_x", "fmt_y", "fmt",
|
||||||
|
|
@ -48,3 +50,84 @@ TEST(1)
|
||||||
EXPECT_EQ (a.category (), "cat");
|
EXPECT_EQ (a.category (), "cat");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(2)
|
||||||
|
{
|
||||||
|
ant::Template tmp = ant::Template ("title", "fmt_x", "fmt_y", "fmt",
|
||||||
|
ant::Object::STY_arrow_both,
|
||||||
|
ant::Object::OL_diag_xy,
|
||||||
|
true,
|
||||||
|
lay::AC_Ortho,
|
||||||
|
"cat");
|
||||||
|
|
||||||
|
ant::Object obj;
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "0,0");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "0,0");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 0);
|
||||||
|
|
||||||
|
obj.p1 (db::DPoint (1, 2));
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "1,2");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "1,2");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 1);
|
||||||
|
|
||||||
|
obj.p2 (db::DPoint (2, 3));
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "1,2");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "2,3");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 2);
|
||||||
|
|
||||||
|
obj = ant::Object ();
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "0,0");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "0,0");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 0);
|
||||||
|
|
||||||
|
obj.p1 (db::DPoint ());
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "0,0");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "0,0");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 1);
|
||||||
|
|
||||||
|
obj.p2 (db::DPoint ());
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "0,0");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "0,0");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 1);
|
||||||
|
|
||||||
|
obj = ant::Object (db::DPoint (1, 2), db::DPoint (2, 3), 0, tmp);
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "1,2");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "2,3");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 2);
|
||||||
|
|
||||||
|
obj = ant::Object (db::DPoint (1, 2), db::DPoint (1, 2), 0, tmp);
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "1,2");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "1,2");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 1);
|
||||||
|
|
||||||
|
obj = ant::Object (db::DPoint (), db::DPoint (), 0, tmp);
|
||||||
|
|
||||||
|
EXPECT_EQ (obj.p1 ().to_string (), "0,0");
|
||||||
|
EXPECT_EQ (obj.p2 ().to_string (), "0,0");
|
||||||
|
|
||||||
|
EXPECT_EQ (int (obj.segments ()), 1);
|
||||||
|
EXPECT_EQ (int (obj.points ().size ()), 1);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue