mirror of https://github.com/KLayout/klayout.git
Implementation proposal
The solution tries to be a bit more generic: - four buttons are there to synchronize coordinates - three buttons to snap p1, p2 and auto-measure from p1.
This commit is contained in:
parent
1106d3faac
commit
9fa5277e41
File diff suppressed because it is too large
Load Diff
|
|
@ -31,14 +31,32 @@ namespace ant
|
|||
// -------------------------------------------------------------------------
|
||||
// PropertiesPage implementation
|
||||
|
||||
PropertiesPage::PropertiesPage (ant::Service *rulers, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, rulers), mp_rulers (rulers), m_enable_cb_callback (true)
|
||||
PropertiesPage::PropertiesPage (ant::Service *rulers, db::Manager *manager, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, manager, rulers), mp_rulers (rulers), m_enable_cb_callback (true)
|
||||
{
|
||||
mp_rulers->get_selection (m_selection);
|
||||
m_pos = m_selection.begin ();
|
||||
|
||||
setupUi (this);
|
||||
|
||||
connect (p1x_to_p2x, SIGNAL (clicked ()), this, SLOT (xfer_coord_clicked ()));
|
||||
connect (p2x_to_p1x, SIGNAL (clicked ()), this, SLOT (xfer_coord_clicked ()));
|
||||
connect (p1y_to_p2y, SIGNAL (clicked ()), this, SLOT (xfer_coord_clicked ()));
|
||||
connect (p2y_to_p1y, SIGNAL (clicked ()), this, SLOT (xfer_coord_clicked ()));
|
||||
|
||||
connect (p1_to_layout, SIGNAL (clicked ()), this, SLOT (snap_to_layout_clicked ()));
|
||||
connect (p2_to_layout, SIGNAL (clicked ()), this, SLOT (snap_to_layout_clicked ()));
|
||||
connect (both_to_layout, SIGNAL (clicked ()), this, SLOT (snap_to_layout_clicked ()));
|
||||
|
||||
p1x_to_p2x->setEnabled (! readonly());
|
||||
p2x_to_p1x->setEnabled (! readonly());
|
||||
p1y_to_p2y->setEnabled (! readonly());
|
||||
p2y_to_p1y->setEnabled (! readonly());
|
||||
|
||||
p1_to_layout->setEnabled (! readonly());
|
||||
p2_to_layout->setEnabled (! readonly());
|
||||
both_to_layout->setEnabled (! readonly());
|
||||
|
||||
lay::activate_help_links (help_label);
|
||||
|
||||
mp_rulers->clear_highlights ();
|
||||
|
|
@ -61,6 +79,115 @@ PropertiesPage::front ()
|
|||
m_pos = m_selection.begin ();
|
||||
}
|
||||
|
||||
void
|
||||
PropertiesPage::xfer_coord_clicked ()
|
||||
{
|
||||
if (readonly ()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (sender () == p1x_to_p2x) {
|
||||
x2->setText (x1->text ());
|
||||
} else if (sender () == p2x_to_p1x) {
|
||||
x1->setText (x2->text ());
|
||||
} else if (sender () == p1y_to_p2y) {
|
||||
y2->setText (y1->text ());
|
||||
} else if (sender () == p2y_to_p1y) {
|
||||
y1->setText (y2->text ());
|
||||
}
|
||||
|
||||
db::Transaction t (manager (), tl::to_string (QObject::tr ("Copy ruler coordinates")));
|
||||
apply ();
|
||||
}
|
||||
|
||||
void
|
||||
PropertiesPage::snap_to_layout_clicked ()
|
||||
{
|
||||
if (readonly ()) {
|
||||
return;
|
||||
}
|
||||
|
||||
ant::Service *service = dynamic_cast<ant::Service *> (editable ());
|
||||
tl_assert (service != 0);
|
||||
|
||||
double dx1 = 0.0, dy1 = 0.0, dx2 = 0.0, dy2 = 0.0;
|
||||
tl::from_string (tl::to_string (x1->text ()), dx1);
|
||||
tl::from_string (tl::to_string (x2->text ()), dx2);
|
||||
tl::from_string (tl::to_string (y1->text ()), dy1);
|
||||
tl::from_string (tl::to_string (y2->text ()), dy2);
|
||||
|
||||
db::DPoint p1 (dx1, dy1), p2 (dx2, dy2);
|
||||
|
||||
ant::Object r = current ();
|
||||
|
||||
// for auto-metric we need some cutline constraint - any or global won't do.
|
||||
lay::angle_constraint_type ac = r.angle_constraint ();
|
||||
if (ac == lay::AC_Global) {
|
||||
ac = service->snap_mode ();
|
||||
}
|
||||
if (ac == lay::AC_Global) {
|
||||
ac = lay::AC_Diagonal;
|
||||
}
|
||||
|
||||
db::DVector g;
|
||||
if (service->grid_snap ()) {
|
||||
g = db::DVector (service->grid (), service->grid ());
|
||||
}
|
||||
|
||||
if (sender () == p1_to_layout || sender () == p2_to_layout) {
|
||||
|
||||
double snap_range = service->widget ()->mouse_event_trans ().inverted ().ctrans (service->snap_range ());
|
||||
double max_range = 1000 * snap_range;
|
||||
|
||||
while (snap_range < max_range) {
|
||||
|
||||
std::pair<bool, db::DPoint> pp = lay::obj_snap (service->view (), p1, p1, g, ac, snap_range);
|
||||
if (pp.first) {
|
||||
|
||||
QString xs = tl::to_qstring (tl::micron_to_string (pp.second.x ()));
|
||||
QString ys = tl::to_qstring (tl::micron_to_string (pp.second.y ()));
|
||||
|
||||
if (sender () == p1_to_layout) {
|
||||
x1->setText (xs);
|
||||
y1->setText (ys);
|
||||
} else {
|
||||
x2->setText (xs);
|
||||
y2->setText (ys);
|
||||
}
|
||||
|
||||
db::Transaction t (manager (), tl::to_string (sender () == p1_to_layout ? QObject::tr ("Snap first ruler point") : QObject::tr ("Snap second ruler point")));
|
||||
apply ();
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// no point found -> one more iteration with increased range
|
||||
snap_range *= 2.0;
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
double snap_range = service->widget ()->mouse_event_trans ().inverted ().ctrans (service->snap_range ());
|
||||
snap_range *= 0.5;
|
||||
|
||||
std::pair<bool, db::DEdge> ee = lay::obj_snap2 (service->view (), p1, g, ac, snap_range, snap_range * 1000.0);
|
||||
if (ee.first) {
|
||||
|
||||
x1->setText (tl::to_qstring (tl::micron_to_string (ee.second.p1 ().x ())));
|
||||
y1->setText (tl::to_qstring (tl::micron_to_string (ee.second.p1 ().y ())));
|
||||
x2->setText (tl::to_qstring (tl::micron_to_string (ee.second.p2 ().x ())));
|
||||
y2->setText (tl::to_qstring (tl::micron_to_string (ee.second.p2 ().y ())));
|
||||
|
||||
db::Transaction t (manager (), tl::to_string (QObject::tr ("Snap both ruler points")));
|
||||
apply ();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const ant::Object &
|
||||
PropertiesPage::current () const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class PropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PropertiesPage (ant::Service *rulers, QWidget *parent);
|
||||
PropertiesPage (ant::Service *rulers, db::Manager *manager, QWidget *parent);
|
||||
~PropertiesPage ();
|
||||
|
||||
virtual void back ();
|
||||
|
|
@ -53,6 +53,10 @@ public:
|
|||
virtual bool readonly ();
|
||||
virtual void apply ();
|
||||
|
||||
private slots:
|
||||
void xfer_coord_clicked ();
|
||||
void snap_to_layout_clicked ();
|
||||
|
||||
private:
|
||||
std::vector <ant::Service::obj_iterator> m_selection;
|
||||
std::vector <ant::Service::obj_iterator>::iterator m_pos;
|
||||
|
|
|
|||
|
|
@ -2067,9 +2067,9 @@ Service::display_status (bool transient)
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
Service::properties_page (QWidget *parent)
|
||||
Service::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new PropertiesPage (this, parent);
|
||||
return new PropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ public:
|
|||
/**
|
||||
* @brief Create the properties page
|
||||
*/
|
||||
virtual lay::PropertiesPage *properties_page (QWidget * /*parent*/);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
|
||||
/**
|
||||
* @brief Get the selection for the properties page
|
||||
|
|
@ -415,7 +415,39 @@ public:
|
|||
{
|
||||
return mp_view;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gets the snap range
|
||||
*/
|
||||
int snap_range () const
|
||||
{
|
||||
return m_snap_range;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets the global snap mode
|
||||
*/
|
||||
lay::angle_constraint_type snap_mode () const
|
||||
{
|
||||
return m_snap_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets the grid
|
||||
*/
|
||||
double grid () const
|
||||
{
|
||||
return m_grid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets a value indicating whether to snap to grid
|
||||
*/
|
||||
bool grid_snap () const
|
||||
{
|
||||
return m_grid_snap;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Implement the menu response function
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ namespace edt
|
|||
// -------------------------------------------------------------------------
|
||||
// InstPropertiesPage implementation
|
||||
|
||||
InstPropertiesPage::InstPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, service), mp_service (service), m_enable_cb_callback (true), mp_pcell_parameters (0)
|
||||
InstPropertiesPage::InstPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, manager, service), mp_service (service), m_enable_cb_callback (true), mp_pcell_parameters (0)
|
||||
{
|
||||
m_selection_ptrs.reserve (service->selection ().size ());
|
||||
for (edt::Service::obj_iterator s = service->selection ().begin (); s != service->selection ().end (); ++s) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class InstPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
InstPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
InstPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
~InstPropertiesPage ();
|
||||
|
||||
virtual void back ();
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ namespace edt
|
|||
// -------------------------------------------------------------------------
|
||||
// ShapePropertiesPage implementation
|
||||
|
||||
ShapePropertiesPage::ShapePropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, service),
|
||||
ShapePropertiesPage::ShapePropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, manager, service),
|
||||
mp_service (service), m_enable_cb_callback (true)
|
||||
{
|
||||
m_selection_ptrs.reserve (service->selection ().size ());
|
||||
|
|
@ -403,8 +403,8 @@ ShapePropertiesPage::readonly ()
|
|||
// -------------------------------------------------------------------------
|
||||
// PolygonPropertiesPage implementation
|
||||
|
||||
PolygonPropertiesPage::PolygonPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: ShapePropertiesPage (service, parent)
|
||||
PolygonPropertiesPage::PolygonPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: ShapePropertiesPage (service, manager, parent)
|
||||
{
|
||||
setupUi (this);
|
||||
setup ();
|
||||
|
|
@ -517,8 +517,8 @@ PolygonPropertiesPage::create_applicator (db::Shapes & /*shapes*/, const db::Sha
|
|||
|
||||
static bool s_coordinateMode = true;
|
||||
|
||||
BoxPropertiesPage::BoxPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: ShapePropertiesPage (service, parent),
|
||||
BoxPropertiesPage::BoxPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: ShapePropertiesPage (service, manager, parent),
|
||||
m_recursion_sentinel (false), m_tab_index (0), m_dbu (1.0), m_lr_swapped (false), m_tb_swapped (false)
|
||||
{
|
||||
setupUi (this);
|
||||
|
|
@ -669,8 +669,8 @@ BoxPropertiesPage::changed ()
|
|||
// -------------------------------------------------------------------------
|
||||
// TextPropertiesPage implementation
|
||||
|
||||
TextPropertiesPage::TextPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: ShapePropertiesPage (service, parent)
|
||||
TextPropertiesPage::TextPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: ShapePropertiesPage (service, manager, parent)
|
||||
{
|
||||
setupUi (this);
|
||||
setup ();
|
||||
|
|
@ -755,8 +755,8 @@ TextPropertiesPage::create_applicator (db::Shapes & /*shapes*/, const db::Shape
|
|||
// -------------------------------------------------------------------------
|
||||
// PathPropertiesPage implementation
|
||||
|
||||
PathPropertiesPage::PathPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: ShapePropertiesPage (service, parent)
|
||||
PathPropertiesPage::PathPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: ShapePropertiesPage (service, manager, parent)
|
||||
{
|
||||
setupUi (this);
|
||||
setup ();
|
||||
|
|
@ -857,8 +857,8 @@ PathPropertiesPage::create_applicator (db::Shapes & /*shapes*/, const db::Shape
|
|||
// -------------------------------------------------------------------------
|
||||
// EditablePathPropertiesPage implementation
|
||||
|
||||
EditablePathPropertiesPage::EditablePathPropertiesPage (edt::Service *service, QWidget *parent)
|
||||
: ShapePropertiesPage (service, parent)
|
||||
EditablePathPropertiesPage::EditablePathPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: ShapePropertiesPage (service, manager, parent)
|
||||
{
|
||||
setupUi (this);
|
||||
setup ();
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class ShapePropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ShapePropertiesPage (edt::Service *service, QWidget *parent);
|
||||
ShapePropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
~ShapePropertiesPage ();
|
||||
|
||||
virtual void back ();
|
||||
|
|
@ -96,7 +96,7 @@ class PolygonPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PolygonPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
PolygonPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
|
||||
virtual void do_update (const db::Shape &shape, double dbu, const std::string &lname);
|
||||
virtual ChangeApplicator *create_applicator (db::Shapes &shapes, const db::Shape &shape, double dbu);
|
||||
|
|
@ -113,7 +113,7 @@ class BoxPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
BoxPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
BoxPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
|
||||
virtual void do_update (const db::Shape &shape, double dbu, const std::string &lname);
|
||||
virtual ChangeApplicator *create_applicator (db::Shapes &shapes, const db::Shape &shape, double dbu);
|
||||
|
|
@ -142,7 +142,7 @@ class TextPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TextPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
TextPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
|
||||
virtual void do_update (const db::Shape &shape, double dbu, const std::string &lname);
|
||||
virtual ChangeApplicator *create_applicator (db::Shapes &shapes, const db::Shape &shape, double dbu);
|
||||
|
|
@ -159,7 +159,7 @@ class PathPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PathPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
PathPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
|
||||
virtual void do_update (const db::Shape &shape, double dbu, const std::string &lname);
|
||||
virtual ChangeApplicator *create_applicator (db::Shapes &shapes, const db::Shape &shape, double dbu);
|
||||
|
|
@ -176,7 +176,7 @@ class EditablePathPropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
EditablePathPropertiesPage (edt::Service *service, QWidget *parent);
|
||||
EditablePathPropertiesPage (edt::Service *service, db::Manager *manager, QWidget *parent);
|
||||
|
||||
virtual void do_update (const db::Shape &shape, double dbu, const std::string &lname);
|
||||
virtual ChangeApplicator *create_applicator (db::Shapes &shapes, const db::Shape &shape, double dbu);
|
||||
|
|
|
|||
|
|
@ -296,9 +296,9 @@ PolygonService::PolygonService (db::Manager *manager, lay::LayoutView *view)
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
PolygonService::properties_page (QWidget *parent)
|
||||
PolygonService::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new edt::PolygonPropertiesPage (this, parent);
|
||||
return new edt::PolygonPropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -624,9 +624,9 @@ BoxService::BoxService (db::Manager *manager, lay::LayoutView *view)
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
BoxService::properties_page (QWidget *parent)
|
||||
BoxService::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new edt::BoxPropertiesPage (this, parent);
|
||||
return new edt::BoxPropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -712,9 +712,9 @@ TextService::~TextService ()
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
TextService::properties_page (QWidget *parent)
|
||||
TextService::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new edt::TextPropertiesPage (this, parent);
|
||||
return new edt::TextPropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -895,12 +895,12 @@ PathService::~PathService ()
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
PathService::properties_page (QWidget *parent)
|
||||
PathService::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
if (view ()->is_editable ()) {
|
||||
return new edt::EditablePathPropertiesPage (this, parent);
|
||||
return new edt::EditablePathPropertiesPage (this, manager, parent);
|
||||
} else {
|
||||
return new edt::PathPropertiesPage (this, parent);
|
||||
return new edt::PathPropertiesPage (this, manager, parent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1120,9 +1120,9 @@ InstService::InstService (db::Manager *manager, lay::LayoutView *view)
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
InstService::properties_page (QWidget *parent)
|
||||
InstService::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new edt::InstPropertiesPage (this, parent);
|
||||
return new edt::InstPropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class PolygonService
|
|||
public:
|
||||
PolygonService (db::Manager *manager, lay::LayoutView *view);
|
||||
|
||||
virtual lay::PropertiesPage *properties_page (QWidget *parent);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
virtual void do_begin_edit (const db::DPoint &p);
|
||||
virtual void do_mouse_move (const db::DPoint &p);
|
||||
virtual bool do_mouse_click (const db::DPoint &p);
|
||||
|
|
@ -114,7 +114,7 @@ class BoxService
|
|||
public:
|
||||
BoxService (db::Manager *manager, lay::LayoutView *view);
|
||||
|
||||
virtual lay::PropertiesPage *properties_page (QWidget *parent);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
virtual void do_begin_edit (const db::DPoint &p);
|
||||
virtual void do_mouse_move (const db::DPoint &p);
|
||||
virtual bool do_mouse_click (const db::DPoint &p);
|
||||
|
|
@ -139,7 +139,7 @@ public:
|
|||
TextService (db::Manager *manager, lay::LayoutView *view);
|
||||
~TextService ();
|
||||
|
||||
virtual lay::PropertiesPage *properties_page (QWidget *parent);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
virtual void do_begin_edit (const db::DPoint &p);
|
||||
virtual void do_mouse_transform (const db::DPoint &p, db::DFTrans trans);
|
||||
virtual void do_mouse_move (const db::DPoint &p);
|
||||
|
|
@ -170,7 +170,7 @@ public:
|
|||
PathService (db::Manager *manager, lay::LayoutView *view);
|
||||
~PathService ();
|
||||
|
||||
virtual lay::PropertiesPage *properties_page (QWidget *parent);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
virtual void do_begin_edit (const db::DPoint &p);
|
||||
virtual void do_mouse_move (const db::DPoint &p);
|
||||
virtual bool do_mouse_click (const db::DPoint &p);
|
||||
|
|
@ -204,7 +204,7 @@ class InstService
|
|||
public:
|
||||
InstService (db::Manager *manager, lay::LayoutView *view);
|
||||
|
||||
virtual lay::PropertiesPage *properties_page (QWidget *parent);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
virtual void do_begin_edit (const db::DPoint &p);
|
||||
virtual void do_mouse_move (const db::DPoint &p);
|
||||
virtual bool do_mouse_click (const db::DPoint &p);
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ const double max_gamma = 3.0;
|
|||
// -------------------------------------------------------------------------
|
||||
// PropertiesPage implementation
|
||||
|
||||
PropertiesPage::PropertiesPage (img::Service *service, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, service), mp_service (service), mp_direct_image (0)
|
||||
PropertiesPage::PropertiesPage (img::Service *service, db::Manager *manager, QWidget *parent)
|
||||
: lay::PropertiesPage (parent, manager, service), mp_service (service), mp_direct_image (0)
|
||||
{
|
||||
mp_service->get_selection (m_selection);
|
||||
m_pos = m_selection.begin ();
|
||||
|
|
@ -48,7 +48,7 @@ PropertiesPage::PropertiesPage (img::Service *service, QWidget *parent)
|
|||
}
|
||||
|
||||
PropertiesPage::PropertiesPage (QWidget *parent)
|
||||
: lay::PropertiesPage (parent, 0), mp_service (0), mp_direct_image (0)
|
||||
: lay::PropertiesPage (parent, 0, 0), mp_service (0), mp_direct_image (0)
|
||||
{
|
||||
init ();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ class PropertiesPage
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PropertiesPage (img::Service *service, QWidget *parent);
|
||||
PropertiesPage (img::Service *service, db::Manager *manager, QWidget *parent);
|
||||
PropertiesPage (QWidget *parent);
|
||||
~PropertiesPage ();
|
||||
|
||||
|
|
|
|||
|
|
@ -1312,9 +1312,9 @@ Service::display_status (bool transient)
|
|||
}
|
||||
|
||||
lay::PropertiesPage *
|
||||
Service::properties_page (QWidget *parent)
|
||||
Service::properties_page (db::Manager *manager, QWidget *parent)
|
||||
{
|
||||
return new img::PropertiesPage (this, parent);
|
||||
return new img::PropertiesPage (this, manager, parent);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ public:
|
|||
/**
|
||||
* @brief Create the properties page
|
||||
*/
|
||||
virtual lay::PropertiesPage *properties_page (QWidget * /*parent*/);
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager *manager, QWidget *parent);
|
||||
|
||||
/**
|
||||
* @brief Get the selection for the properties page
|
||||
|
|
|
|||
|
|
@ -331,7 +331,7 @@ public:
|
|||
* by the caller. The return value is 0 if the Editable object does
|
||||
* not support a properties page.
|
||||
*/
|
||||
virtual lay::PropertiesPage *properties_page (QWidget * /*parent*/)
|
||||
virtual lay::PropertiesPage *properties_page (db::Manager * /*manager*/, QWidget * /*parent*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@
|
|||
namespace lay
|
||||
{
|
||||
|
||||
PropertiesPage::PropertiesPage (QWidget *parent, lay::Editable *editable)
|
||||
: QFrame (parent), mp_editable (editable)
|
||||
PropertiesPage::PropertiesPage (QWidget *parent, db::Manager *manager, lay::Editable *editable)
|
||||
: QFrame (parent), mp_manager (manager), mp_editable (editable)
|
||||
{
|
||||
// .. nothing else ..
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public:
|
|||
* empty, at_start () is supposed to return true then.
|
||||
* The dialog will call update () to update the display accordingly.
|
||||
*/
|
||||
PropertiesPage (QWidget *parent, lay::Editable *editable);
|
||||
PropertiesPage (QWidget *parent, db::Manager *manager, lay::Editable *editable);
|
||||
|
||||
/**
|
||||
* @brief The destructor
|
||||
|
|
@ -210,7 +210,17 @@ public:
|
|||
return mp_editable;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Gets the transaction manager object
|
||||
* Use this object to implement undable operations on the properties page.
|
||||
*/
|
||||
db::Manager *manager ()
|
||||
{
|
||||
return mp_manager;
|
||||
}
|
||||
|
||||
private:
|
||||
db::Manager *mp_manager;
|
||||
lay::Editable *mp_editable;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ PropertiesDialog::PropertiesDialog (QWidget * /*parent*/, db::Manager *manager,
|
|||
mp_stack = new QStackedLayout;
|
||||
|
||||
for (lay::Editables::iterator e = mp_editables->begin (); e != mp_editables->end (); ++e) {
|
||||
mp_properties_pages.push_back (e->properties_page (content_frame));
|
||||
mp_properties_pages.push_back (e->properties_page (mp_manager, content_frame));
|
||||
if (mp_properties_pages.back ()) {
|
||||
mp_stack->addWidget (mp_properties_pages.back ());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue