This commit is contained in:
Matthias Koefferlein 2022-05-15 10:31:09 +02:00
parent b17b2714a5
commit f5b4bbb62c
57 changed files with 388 additions and 349 deletions

View File

@ -47,7 +47,16 @@ SOURCES += \
gsiDeclAnt.cc \
antForceLink.cc
INCLUDEPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db
INCLUDEPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_layview -lklayout_db
!equals(HAVE_QT, "0") {
INCLUDEPATH += $$LAYUI_INC
DEPENDPATH += $$LAYUI_INC
LIBS += -lklayout_layui
}

View File

@ -23,7 +23,7 @@
#if defined(HAVE_QT)
#include "antPropertiesPage.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
#include "layQtTools.h"
namespace ant

View File

@ -28,7 +28,7 @@
#include "layPlugin.h"
#include "layRenderer.h"
#include "laySnap.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
#include "laybasicConfig.h"
#include "layConverters.h"
#include "layLayoutCanvas.h"
@ -788,7 +788,7 @@ View::render (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas)
// -------------------------------------------------------------
// ant::Service implementation
Service::Service (db::Manager *manager, lay::LayoutView *view)
Service::Service (db::Manager *manager, lay::LayoutViewBase *view)
: lay::EditorServiceBase (view),
lay::Drawing (1/*number of planes*/, view->drawings ()),
db::Object (manager),

View File

@ -201,7 +201,7 @@ public:
*/
enum MoveMode { MoveNone, MoveP1, MoveP2, MoveP12, MoveP21, MoveP1X, MoveP2X, MoveP1Y, MoveP2Y, MoveRuler, MoveSelected };
Service (db::Manager *manager, lay::LayoutView *view);
Service (db::Manager *manager, lay::LayoutViewBase *view);
~Service ();
@ -429,7 +429,7 @@ public:
/**
* @brief Access to the view object
*/
lay::LayoutView *view () const
lay::LayoutViewBase *view () const
{
return mp_view;
}
@ -512,7 +512,7 @@ private:
int m_max_number_of_rulers;
// The layout view that the ruler service is attached to
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
// The ruler view objects representing the selection
// and the moved rules in move mode

View File

@ -25,7 +25,7 @@
#include "antObject.h"
#include "antService.h"
#include "antPlugin.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
namespace gsi
{
@ -70,10 +70,10 @@ static int align_right () { return int (ant::Object::AL_right); }
static int align_top () { return int (ant::Object::AL_top); }
static int align_up () { return int (ant::Object::AL_up); }
static void clear_annotations (lay::LayoutView *view);
static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj);
static void erase_annotation_base (lay::LayoutView *view, int id);
static void replace_annotation_base (lay::LayoutView *view, int id, const AnnotationRef &obj);
static void clear_annotations (lay::LayoutViewBase *view);
static void insert_annotation (lay::LayoutViewBase *view, AnnotationRef *obj);
static void erase_annotation_base (lay::LayoutViewBase *view, int id);
static void replace_annotation_base (lay::LayoutViewBase *view, int id, const AnnotationRef &obj);
/**
* @brief An extension of the ant::Object that provides "live" updates of the view
@ -88,7 +88,7 @@ public:
// .. nothing yet ..
}
AnnotationRef (const ant::Object &other, lay::LayoutView *view)
AnnotationRef (const ant::Object &other, lay::LayoutViewBase *view)
: ant::Object (other), mp_view (view)
{
// .. nothing yet ..
@ -140,10 +140,10 @@ public:
template <class T>
AnnotationRef transformed (const T &t) const
{
return AnnotationRef (ant::Object::transformed<T> (t), const_cast<lay::LayoutView *> (mp_view.get ()));
return AnnotationRef (ant::Object::transformed<T> (t), const_cast<lay::LayoutViewBase *> (mp_view.get ()));
}
void set_view (lay::LayoutView *view)
void set_view (lay::LayoutViewBase *view)
{
mp_view.reset (view);
}
@ -157,10 +157,10 @@ protected:
}
private:
tl::weak_ptr<lay::LayoutView> mp_view;
tl::weak_ptr<lay::LayoutViewBase> mp_view;
};
static void clear_annotations (lay::LayoutView *view)
static void clear_annotations (lay::LayoutViewBase *view)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) {
@ -168,7 +168,7 @@ static void clear_annotations (lay::LayoutView *view)
}
}
static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj)
static void insert_annotation (lay::LayoutViewBase *view, AnnotationRef *obj)
{
if (obj->is_valid ()) {
throw tl::Exception (tl::to_string (tr ("The object is already inserted into a view - detach the object first or create a different object.")));
@ -182,7 +182,7 @@ static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj)
}
}
static void erase_annotation_base (lay::LayoutView *view, int id)
static void erase_annotation_base (lay::LayoutViewBase *view, int id)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) {
@ -195,12 +195,12 @@ static void erase_annotation_base (lay::LayoutView *view, int id)
}
}
static void erase_annotation (lay::LayoutView *view, int id)
static void erase_annotation (lay::LayoutViewBase *view, int id)
{
erase_annotation_base (view, id);
}
static void replace_annotation_base (lay::LayoutView *view, int id, const AnnotationRef &obj)
static void replace_annotation_base (lay::LayoutViewBase *view, int id, const AnnotationRef &obj)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) {
@ -213,12 +213,12 @@ static void replace_annotation_base (lay::LayoutView *view, int id, const Annota
}
}
static void replace_annotation (lay::LayoutView *view, int id, const AnnotationRef &obj)
static void replace_annotation (lay::LayoutViewBase *view, int id, const AnnotationRef &obj)
{
replace_annotation_base (view, id, obj);
}
static AnnotationRef create_measure_ruler (lay::LayoutView *view, const db::DPoint &pt, int angle_constraint)
static AnnotationRef create_measure_ruler (lay::LayoutViewBase *view, const db::DPoint &pt, int angle_constraint)
{
std::vector<ant::Service *> ant_services = view->get_plugins <ant::Service> ();
if (! ant_services.empty ()) {
@ -351,7 +351,7 @@ public:
// .. nothing yet ..
}
AnnotationRefIterator (const ant::AnnotationIterator &iter, lay::LayoutView *view)
AnnotationRefIterator (const ant::AnnotationIterator &iter, lay::LayoutViewBase *view)
: ant::AnnotationIterator (iter), mp_view (view)
{
// .. nothing yet ..
@ -359,14 +359,14 @@ public:
reference operator* () const
{
return reference (ant::AnnotationIterator::operator* (), const_cast<lay::LayoutView * >(mp_view.get ()));
return reference (ant::AnnotationIterator::operator* (), const_cast<lay::LayoutViewBase * >(mp_view.get ()));
}
private:
tl::weak_ptr<lay::LayoutView> mp_view;
tl::weak_ptr<lay::LayoutViewBase> mp_view;
};
static AnnotationRefIterator begin_annotations (lay::LayoutView *view)
static AnnotationRefIterator begin_annotations (lay::LayoutViewBase *view)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) {
@ -376,7 +376,7 @@ static AnnotationRefIterator begin_annotations (lay::LayoutView *view)
}
}
static AnnotationRef get_annotation (lay::LayoutView *view, int id)
static AnnotationRef get_annotation (lay::LayoutViewBase *view, int id)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) {
@ -389,21 +389,21 @@ static AnnotationRef get_annotation (lay::LayoutView *view, int id)
return AnnotationRef ();
}
static tl::Event &get_annotations_changed_event (lay::LayoutView *view)
static tl::Event &get_annotations_changed_event (lay::LayoutViewBase *view)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0);
return ant_service->annotations_changed_event;
}
static tl::Event &get_annotation_selection_changed_event (lay::LayoutView *view)
static tl::Event &get_annotation_selection_changed_event (lay::LayoutViewBase *view)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0);
return ant_service->annotation_selection_changed_event;
}
static tl::event<int> &get_annotation_changed_event (lay::LayoutView *view)
static tl::event<int> &get_annotation_changed_event (lay::LayoutViewBase *view)
{
ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0);
@ -989,7 +989,7 @@ gsi::Class<AnnotationRef> decl_Annotation (decl_BasicAnnotation, "lay", "Annotat
);
static
gsi::ClassExt<lay::LayoutView> layout_view_decl (
gsi::ClassExt<lay::LayoutViewBase> layout_view_decl (
gsi::method_ext ("clear_annotations", &gsi::clear_annotations,
"@brief Clears all annotations on this view"
) +
@ -1123,7 +1123,7 @@ private:
// extend the layout view by "edtService" specific methods
static bool has_annotation_selection (const lay::LayoutView *view)
static bool has_annotation_selection (const lay::LayoutViewBase *view)
{
std::vector<ant::Service *> ant_services = view->get_plugins <ant::Service> ();
for (std::vector<ant::Service *>::const_iterator s = ant_services.begin (); s != ant_services.end (); ++s) {
@ -1134,13 +1134,13 @@ static bool has_annotation_selection (const lay::LayoutView *view)
return false;
}
static AnnotationSelectionIterator begin_annotations_selected (const lay::LayoutView *view)
static AnnotationSelectionIterator begin_annotations_selected (const lay::LayoutViewBase *view)
{
return AnnotationSelectionIterator (view->get_plugins <ant::Service> ());
}
static
gsi::ClassExt<lay::LayoutView> layout_view_decl2 (
gsi::ClassExt<lay::LayoutViewBase> layout_view_decl2 (
gsi::method_ext ("has_annotation_selection?", &has_annotation_selection,
"@brief Returns true, if annotations (rulers) are selected in this view"
"\n"

View File

@ -77,10 +77,10 @@ SOURCES += \
gsiDeclEdt.cc \
edtDistribute.cc \
INCLUDEPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
INCLUDEPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_db
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_layview -lklayout_db
!equals(HAVE_QT, "0") {

View File

@ -70,7 +70,7 @@ static void configure_from_line_edit (lay::Dispatcher *dispatcher, QLineEdit *le
// ------------------------------------------------------------------
// EditorOptionsGeneric implementation
EditorOptionsGeneric::EditorOptionsGeneric (lay::LayoutView *view, lay::Dispatcher *dispatcher)
EditorOptionsGeneric::EditorOptionsGeneric (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
: EditorOptionsPage (view, dispatcher)
{
mp_ui = new Ui::EditorOptionsGeneric ();
@ -207,7 +207,7 @@ EditorOptionsGeneric::setup (lay::Dispatcher *root)
// ------------------------------------------------------------------
// EditorOptionsText implementation
EditorOptionsText::EditorOptionsText (lay::LayoutView *view, lay::Dispatcher *dispatcher)
EditorOptionsText::EditorOptionsText (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
: lay::EditorOptionsPage (view, dispatcher)
{
mp_ui = new Ui::EditorOptionsText ();
@ -285,7 +285,7 @@ EditorOptionsText::setup (lay::Dispatcher *root)
// ------------------------------------------------------------------
// EditorOptionsPath implementation
EditorOptionsPath::EditorOptionsPath (lay::LayoutView *view, lay::Dispatcher *dispatcher)
EditorOptionsPath::EditorOptionsPath (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
: lay::EditorOptionsPage (view, dispatcher)
{
mp_ui = new Ui::EditorOptionsPath ();
@ -386,7 +386,7 @@ EditorOptionsPath::setup (lay::Dispatcher *root)
// ------------------------------------------------------------------
// EditorOptionsInst implementation
EditorOptionsInst::EditorOptionsInst (lay::LayoutView *view, lay::Dispatcher *dispatcher)
EditorOptionsInst::EditorOptionsInst (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
: lay::EditorOptionsPage (view, dispatcher)
{
mp_ui = new Ui::EditorOptionsInst ();
@ -679,7 +679,7 @@ EditorOptionsInst::setup (lay::Dispatcher *root)
// ------------------------------------------------------------------
// EditorOptionsInstPCellParam implementation
EditorOptionsInstPCellParam::EditorOptionsInstPCellParam (lay::LayoutView *view, lay::Dispatcher *dispatcher)
EditorOptionsInstPCellParam::EditorOptionsInstPCellParam (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
: lay::EditorOptionsPage (view, dispatcher), mp_pcell_parameters (0), mp_placeholder_label (0)
{
mp_ui = new Ui::EditorOptionsInstPCellParam ();

View File

@ -1333,7 +1333,7 @@ MainService::cm_convert_to_pcell ()
if (any_non_converted) {
tl::warn << tl::to_string (tr ("Some of the shapes could not be converted to the desired PCell"));
#if defined(HAVE_QT)
QMessageBox::warning (view (), tr ("Warning"), tr ("Some of the shapes could not be converted to the desired PCell"));
QMessageBox::warning (view ()->widget (), tr ("Warning"), tr ("Some of the shapes could not be converted to the desired PCell"));
#endif
}
@ -1812,7 +1812,7 @@ db::DVector compute_alignment_vector (const db::DBox &prim_box, const db::DBox &
}
static db::DBox
inst_bbox (const db::CplxTrans &tr, lay::LayoutView *view, int cv_index, const db::InstElement &inst_element, bool visible_only)
inst_bbox (const db::CplxTrans &tr, lay::LayoutViewBase *view, int cv_index, const db::InstElement &inst_element, bool visible_only)
{
db::DBox box;
@ -2385,7 +2385,7 @@ class NewObjectsSelection
: public db::ClipboardDataInsertReceiver
{
public:
NewObjectsSelection (int cv_index, db::cell_index_type topcell, lay::LayoutView *view)
NewObjectsSelection (int cv_index, db::cell_index_type topcell, lay::LayoutViewBase *view)
: m_cv_index (cv_index), m_topcell (topcell)
{
mp_polygon_service = view->get_plugin <edt::PolygonService> ();

View File

@ -28,7 +28,7 @@
#include "imgService.h"
#include "imgStream.h"
#include "dbTilingProcessor.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
namespace gsi
{
@ -299,8 +299,8 @@ gsi::Class<img::DataMapping> decl_ImageDataMapping ("lay", "ImageDataMapping",
class ImageRef;
static void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj);
static void erase_image_base (lay::LayoutView *view, size_t id);
static void replace_image_base (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj);
static void erase_image_base (lay::LayoutViewBase *view, size_t id);
/**
* @brief An extension of the img::Object that provides "live" updates of the view
@ -321,7 +321,7 @@ public:
// .. nothing yet ..
}
ImageRef (const img::Object &other, lay::LayoutView *view)
ImageRef (const img::Object &other, lay::LayoutViewBase *view)
: img::Object (other), mp_view (view), dm_update_view (this, &ImageRef::do_update_view)
{
// .. nothing yet ..
@ -373,10 +373,10 @@ public:
template <class T>
ImageRef transformed (const T &t) const
{
return ImageRef (img::Object::transformed<T> (t), const_cast<lay::LayoutView *> (mp_view.get ()));
return ImageRef (img::Object::transformed<T> (t), const_cast<lay::LayoutViewBase *> (mp_view.get ()));
}
void set_view (lay::LayoutView *view)
void set_view (lay::LayoutViewBase *view)
{
mp_view.reset (view);
}
@ -403,7 +403,7 @@ protected:
}
private:
tl::weak_ptr<lay::LayoutView> mp_view;
tl::weak_ptr<lay::LayoutViewBase> mp_view;
tl::DeferredMethod<ImageRef> dm_update_view;
};
@ -1073,7 +1073,7 @@ public:
// .. nothing yet ..
}
ImageRefIterator (const img::ImageIterator &iter, lay::LayoutView *view)
ImageRefIterator (const img::ImageIterator &iter, lay::LayoutViewBase *view)
: img::ImageIterator (iter), mp_view (view)
{
// .. nothing yet ..
@ -1081,14 +1081,14 @@ public:
reference operator* () const
{
return reference (img::ImageIterator::operator* (), const_cast<lay::LayoutView * >(mp_view.get ()));
return reference (img::ImageIterator::operator* (), const_cast<lay::LayoutViewBase * >(mp_view.get ()));
}
private:
tl::weak_ptr<lay::LayoutView> mp_view;
tl::weak_ptr<lay::LayoutViewBase> mp_view;
};
static void clear_images (lay::LayoutView *view)
static void clear_images (lay::LayoutViewBase *view)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1096,7 +1096,7 @@ static void clear_images (lay::LayoutView *view)
}
}
static void show_image (lay::LayoutView *view, size_t id, bool visible)
static void show_image (lay::LayoutViewBase *view, size_t id, bool visible)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1114,7 +1114,7 @@ static void show_image (lay::LayoutView *view, size_t id, bool visible)
}
}
void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj)
void replace_image_base (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1129,12 +1129,12 @@ void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj)
}
}
static void replace_image (lay::LayoutView *view, size_t id, ImageRef &new_obj)
static void replace_image (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj)
{
replace_image_base (view, id, new_obj);
}
void erase_image_base (lay::LayoutView *view, size_t id)
void erase_image_base (lay::LayoutViewBase *view, size_t id)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1149,12 +1149,12 @@ void erase_image_base (lay::LayoutView *view, size_t id)
}
}
static void erase_image (lay::LayoutView *view, size_t id)
static void erase_image (lay::LayoutViewBase *view, size_t id)
{
erase_image_base (view, id);
}
static void insert_image (lay::LayoutView *view, ImageRef &obj)
static void insert_image (lay::LayoutViewBase *view, ImageRef &obj)
{
if (obj.is_valid ()) {
throw tl::Exception (tl::to_string (tr ("The object is already inserted into a view - detach the object first or create a different object.")));
@ -1168,7 +1168,7 @@ static void insert_image (lay::LayoutView *view, ImageRef &obj)
}
}
static ImageRef get_image (lay::LayoutView *view, size_t id)
static ImageRef get_image (lay::LayoutViewBase *view, size_t id)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1181,28 +1181,28 @@ static ImageRef get_image (lay::LayoutView *view, size_t id)
return ImageRef ();
}
static tl::Event &get_images_changed_event (lay::LayoutView *view)
static tl::Event &get_images_changed_event (lay::LayoutViewBase *view)
{
img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0);
return img_service->images_changed_event;
}
static tl::Event &get_image_selection_changed_event (lay::LayoutView *view)
static tl::Event &get_image_selection_changed_event (lay::LayoutViewBase *view)
{
img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0);
return img_service->image_selection_changed_event;
}
static tl::event<int> &get_image_changed_event (lay::LayoutView *view)
static tl::event<int> &get_image_changed_event (lay::LayoutViewBase *view)
{
img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0);
return img_service->image_changed_event;
}
static ImageRefIterator begin_images (lay::LayoutView *view)
static ImageRefIterator begin_images (lay::LayoutViewBase *view)
{
img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) {
@ -1213,7 +1213,7 @@ static ImageRefIterator begin_images (lay::LayoutView *view)
}
static
gsi::ClassExt<lay::LayoutView> layout_view_decl (
gsi::ClassExt<lay::LayoutViewBase> layout_view_decl (
gsi::method_ext ("clear_images", &gsi::clear_images,
"@brief Clear all images on this view"
) +
@ -1342,7 +1342,7 @@ private:
// extend the layout view by "edtService" specific methods
static bool has_image_selection (const lay::LayoutView *view)
static bool has_image_selection (const lay::LayoutViewBase *view)
{
std::vector<img::Service *> img = view->get_plugins <img::Service> ();
for (std::vector<img::Service *>::const_iterator s = img.begin (); s != img.end (); ++s) {
@ -1353,14 +1353,14 @@ static bool has_image_selection (const lay::LayoutView *view)
return false;
}
static SelectionIterator begin_images_selected (const lay::LayoutView *view)
static SelectionIterator begin_images_selected (const lay::LayoutViewBase *view)
{
return SelectionIterator (view->get_plugins <img::Service> ());
}
static
gsi::ClassExt<lay::LayoutView> layout_view_decl2 (
gsi::ClassExt<lay::LayoutViewBase> layout_view_decl2 (
gsi::method_ext ("has_image_selection?", &has_image_selection,
"@brief Returns true, if images are selected in this view"
"\n"

View File

@ -47,7 +47,15 @@ SOURCES += \
imgForceLink.cc \
imgStream.cc
INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
DEPENDPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_db -lklayout_gsi -lklayout_laybasic -lklayout_db
INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
DEPENDPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_db -lklayout_gsi -lklayout_laybasic -lklayout_layview -lklayout_db
!equals(HAVE_QT, "0") {
INCLUDEPATH += $$LAYUI_INC
DEPENDPATH += $$LAYUI_INC
LIBS += -lklayout_layui
}

View File

@ -145,7 +145,7 @@ class LandmarkEditorService
: public lay::ViewService
{
public:
LandmarkEditorService (lay::LayoutView *view, img::Object *img)
LandmarkEditorService (lay::LayoutViewBase *view, img::Object *img)
: lay::ViewService (view->view_object_widget ()),
mp_image (img), m_selected (-1), m_dragging (false),
m_mode (LandmarksDialog::None)

View File

@ -55,7 +55,7 @@ public:
void background_color (QColor c);
img::Object *setup (lay::Dispatcher *root, img::Object *img);
lay::LayoutView *view ()
lay::LayoutView *view ()
{
return mp_view;
}
@ -63,7 +63,7 @@ public:
void activate_service (lay::ViewService *service);
private:
lay::LayoutView *mp_view;
lay::LayoutView *mp_view;
lay::ZoomService *mp_zoom_service;
};

View File

@ -30,7 +30,7 @@
#include "layPlugin.h"
#include "layRenderer.h"
#include "laySnap.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
#include "laybasicConfig.h"
#if defined(HAVE_QT)
# include "layProperties.h"
@ -409,7 +409,7 @@ View::render (const lay::Viewport &vp, lay::ViewObjectCanvas &canvas)
// -------------------------------------------------------------
// img::Service implementation
Service::Service (db::Manager *manager, lay::LayoutView *view)
Service::Service (db::Manager *manager, lay::LayoutViewBase *view)
: lay::BackgroundViewObject (view->view_object_widget ()),
lay::Editable (view),
lay::Plugin (view),

View File

@ -203,7 +203,7 @@ public:
typedef lay::AnnotationShapes::iterator obj_iterator;
enum MoveMode { move_none, move_selected, move_landmark, move_l, move_r, move_t, move_b, move_lr, move_tr, move_ll, move_tl, move_all };
Service (db::Manager *manager, lay::LayoutView *view);
Service (db::Manager *manager, lay::LayoutViewBase *view);
~Service ();
@ -434,7 +434,7 @@ public:
/**
* @brief Access to the view object
*/
lay::LayoutView *view () const
lay::LayoutViewBase *view () const
{
return mp_view;
}
@ -482,7 +482,7 @@ public:
private:
// The layout view that the image service is attached to
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
// The view objects representing the selection and the moved images in move mode
std::vector<View *> m_selected_image_views;

View File

@ -56,7 +56,6 @@ HEADERS = \
laySignalHandler.h \
layLibraryController.h \
layFontController.h \
layNativePlugin.h \
laySystemPaths.h \
layMacroEditorSetupPage.h \
layPasswordDialog.h \
@ -164,7 +163,6 @@ SOURCES = \
laySignalHandler.cc \
layLibraryController.cc \
layFontController.cc \
layNativePlugin.cc \
laySystemPaths.cc \
layMacroEditorSetupPage.cc \
layPasswordDialog.cc \
@ -179,9 +177,9 @@ RESOURCES = layBuildInMacros.qrc \
laySaltTemplates.qrc \
layDRCLVSHelpResources.qrc
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym -lklayout_laybasic -lklayout_ant -lklayout_img -lklayout_edt
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
LIBS += -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym -lklayout_laybasic -lklayout_layview -lklayout_layui -lklayout_ant -lklayout_img -lklayout_edt
win32 {
# for stack trace support:

View File

@ -66,7 +66,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new ClipDialogPl
// ------------------------------------------------------------
ClipDialog::ClipDialog (lay::Dispatcher *root, LayoutView *vw)
ClipDialog::ClipDialog (lay::Dispatcher *root, LayoutViewBase *vw)
: lay::Browser (root, vw),
Ui::ClipDialog ()
{

View File

@ -40,7 +40,7 @@ class ClipDialog
Q_OBJECT
public:
ClipDialog (lay::Dispatcher *root, lay::LayoutView *view);
ClipDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
~ClipDialog ();
public slots:

View File

@ -73,7 +73,7 @@ static tl::RegisteredClass<lay::PluginDeclaration> config_decl (new FillDialogPl
// ------------------------------------------------------------
FillDialog::FillDialog (lay::Dispatcher *main, LayoutView *view)
FillDialog::FillDialog (lay::Dispatcher *main, LayoutViewBase *view)
: QDialog (view->widget ()),
lay::Plugin (main),
Ui::FillDialog (),

View File

@ -76,7 +76,7 @@ class LAY_PUBLIC FillDialog
Q_OBJECT
public:
FillDialog (lay::Dispatcher *root, lay::LayoutView *view);
FillDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
~FillDialog ();
public slots:
@ -95,7 +95,7 @@ private:
void generate_fill (const FillParameters &fp);
FillParameters get_fill_parameters ();
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
};
}

View File

@ -699,7 +699,7 @@ fill_ctx_cbx (QComboBox *cbx)
cbx->addItem (QObject::tr ("All cells"));
}
SearchReplaceDialog::SearchReplaceDialog (lay::Dispatcher *root, lay::LayoutView *view)
SearchReplaceDialog::SearchReplaceDialog (lay::Dispatcher *root, LayoutViewBase *view)
: lay::Browser (root, view),
Ui::SearchReplaceDialog (),
mp_view (view),

View File

@ -164,7 +164,7 @@ public:
std::string text;
};
SearchReplaceDialog (lay::Dispatcher *root, lay::LayoutView *view);
SearchReplaceDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
~SearchReplaceDialog ();
private:
@ -174,7 +174,7 @@ private:
// implementation of the lay::Plugin interface
void menu_activated (const std::string &symbol);
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
std::vector<std::string> m_mru;
std::vector<SavedQuery> m_saved;
int m_current_mode;

View File

@ -320,7 +320,7 @@ class SearchInstanceProperties
private Ui::SearchPropertiesInstance
{
public:
SearchInstanceProperties (QStackedWidget *sw, lay::LayoutView * /*view*/, int /*cv_index*/)
SearchInstanceProperties (QStackedWidget *sw, lay::LayoutViewBase * /*view*/, int /*cv_index*/)
: SearchPropertiesWidget (sw)
{
setupUi (this);
@ -377,7 +377,7 @@ class SearchShapeProperties
protected Ui::SearchPropertiesShape
{
public:
SearchShapeProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
SearchShapeProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw)
{
setupUi (this);
@ -449,7 +449,7 @@ class SearchPolygonProperties
: public SearchShapeProperties
{
public:
SearchPolygonProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
SearchPolygonProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchShapeProperties (sw, view, cv_index)
{
// .. nothing yet ..
@ -518,7 +518,7 @@ class SearchBoxProperties
private Ui::SearchPropertiesBox
{
public:
SearchBoxProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
SearchBoxProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw)
{
setupUi (this);
@ -593,7 +593,7 @@ class SearchPathProperties
private Ui::SearchPropertiesPath
{
public:
SearchPathProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
SearchPathProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw)
{
setupUi (this);
@ -666,7 +666,7 @@ class SearchTextProperties
private Ui::SearchPropertiesText
{
public:
SearchTextProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
SearchTextProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw)
{
setupUi (this);
@ -748,7 +748,7 @@ class ReplaceInstanceProperties
private Ui::ReplacePropertiesInstance
{
public:
ReplaceInstanceProperties (QStackedWidget *sw, lay::LayoutView * /*view*/, int /*cv_index*/)
ReplaceInstanceProperties (QStackedWidget *sw, lay::LayoutViewBase * /*view*/, int /*cv_index*/)
: ReplacePropertiesWidget (sw)
{
setupUi (this);
@ -787,7 +787,7 @@ class ReplaceShapeProperties
protected Ui::ReplacePropertiesShape
{
public:
ReplaceShapeProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
ReplaceShapeProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw)
{
setupUi (this);
@ -828,7 +828,7 @@ class ReplacePolygonProperties
: public ReplaceShapeProperties
{
public:
ReplacePolygonProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
ReplacePolygonProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplaceShapeProperties (sw, view, cv_index)
{
// .. nothing yet ..
@ -867,7 +867,7 @@ class ReplaceBoxProperties
private Ui::ReplacePropertiesBox
{
public:
ReplaceBoxProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
ReplaceBoxProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw)
{
setupUi (this);
@ -919,7 +919,7 @@ class ReplacePathProperties
private Ui::ReplacePropertiesPath
{
public:
ReplacePathProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
ReplacePathProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw)
{
setupUi (this);
@ -966,7 +966,7 @@ class ReplaceTextProperties
private Ui::ReplacePropertiesText
{
public:
ReplaceTextProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
ReplaceTextProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw)
{
setupUi (this);
@ -1018,7 +1018,7 @@ public:
// ----------------------------------------------------------------------------
void fill_find_pages (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
void fill_find_pages (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
{
while (sw->count () > 0) {
sw->removeWidget (sw->widget (0));
@ -1031,7 +1031,7 @@ void fill_find_pages (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
sw->addWidget (new SearchTextProperties (sw, view, cv_index));
}
void fill_replace_pages (QStackedWidget *sw, lay::LayoutView *view, int cv_index)
void fill_replace_pages (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
{
while (sw->count () > 0) {
sw->removeWidget (sw->widget (0));

View File

@ -86,12 +86,12 @@ public:
/**
* @brief Fill the given stack widget with pairs of items plus properties widget
*/
void fill_find_pages (QStackedWidget *sw, lay::LayoutView *view, int cv_index);
void fill_find_pages (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index);
/**
* @brief Fill the given stack widget with pairs of items plus properties widget
*/
void fill_replace_pages (QStackedWidget *sw, lay::LayoutView *view, int cv_index);
void fill_replace_pages (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index);
/**
* @brief Get an object id from a page index

View File

@ -10,8 +10,8 @@ SOURCES = \
laySalt.cc \
laySessionTests.cc
INCLUDEPATH += $$LAY_INC $$TL_INC $$LAYBASIC_INC $$DB_INC $$GSI_INC $$ANT_INC $$IMG_INC $$RDB_INC
DEPENDPATH += $$LAY_INC $$TL_INC $$LAYBASIC_INC $$DB_INC $$GSI_INC $$ANT_INC $$IMG_INC $$RDB_INC
INCLUDEPATH += $$LAY_INC $$TL_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$DB_INC $$GSI_INC $$ANT_INC $$IMG_INC $$RDB_INC
DEPENDPATH += $$LAY_INC $$TL_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$DB_INC $$GSI_INC $$ANT_INC $$IMG_INC $$RDB_INC
LIBS += -L$$DESTDIR_UT -lklayout_lay -lklayout_laybasic -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_ant -lklayout_img -lklayout_rdb
LIBS += -L$$DESTDIR_UT -lklayout_lay -lklayout_laybasic -lklayout_layui -lklayout_layview -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_ant -lklayout_img -lklayout_rdb

View File

@ -462,9 +462,9 @@ static LayerPropertiesConstIteratorWrapper each_layer2 (lay::LayoutViewBase *vie
}
#if defined(HAVE_QT)
Class<lay::LayoutViewBase> decl_LayoutViewBase (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutViewBase",
LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutViewBase",
#else
Class<lay::LayoutViewBase> decl_LayoutViewBase (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutViewBase",
LAYBASIC_PUBLIC Class<lay::LayoutViewBase> decl_LayoutViewBase (QT_EXTERNAL_BASE (QWidget) "lay", "LayoutViewBase",
#endif
gsi::constant ("LV_NoLayers", (unsigned int) lay::LayoutViewBase::LV_NoLayers,
"@brief With this option, no layers view will be provided (see \\layer_control_frame)\n"

View File

@ -3,6 +3,8 @@
#ifndef HDR_layFixedFont
#define HDR_layFixedFont
#include "laybasicCommon.h"
#include <stdint.h>
namespace lay
@ -12,7 +14,7 @@ namespace lay
* @brief A descriptor class for a fixed font
*/
class FixedFont
class LAYBASIC_PUBLIC FixedFont
{
public:
/**

View File

@ -24,11 +24,7 @@
#ifndef HDR_layLayoutCanvas
#define HDR_layLayoutCanvas
#include <vector>
#include <map>
#include <set>
#include <utility>
#include "laybasicCommon.h"
#include "dbTrans.h"
#include "dbBox.h"
#include "layViewport.h"
@ -44,6 +40,11 @@
#include "tlDeferredExecution.h"
#include "tlThreads.h"
#include <vector>
#include <map>
#include <set>
#include <utility>
namespace lay
{
@ -132,7 +133,7 @@ private:
* and to manage the auxiliary objects like rulers etc.
*/
class LayoutCanvas
class LAYBASIC_PUBLIC LayoutCanvas
: public lay::ViewObjectWidget,
public lay::BitmapViewObjectCanvas,
public lay::BitmapRedrawThreadCanvas,

View File

@ -23,6 +23,7 @@
#ifndef HDR_layMove
#define HDR_layMove
#include "laybasicCommon.h"
#include "dbManager.h"
#include "layViewObject.h"
@ -33,7 +34,7 @@ namespace lay {
class Editables;
class LayoutViewBase;
class MoveService :
class LAYBASIC_PUBLIC MoveService :
public lay::ViewService
{
public:

View File

@ -23,7 +23,7 @@
#ifndef HDR_layNativePlugin
#define HDR_layNativePlugin
#include "layCommon.h"
#include "laybasicCommon.h"
/**
* @brief A struct to hold the data of the plugin
@ -84,12 +84,12 @@ struct klp_method_t { };
* @brief The gsi API functions wrapped for the native API
*/
extern "C" {
LAY_PUBLIC const klp_class_t *klp_class_by_name (const char *name);
LAY_PUBLIC void *klp_create (const klp_class_t *cls);
LAY_PUBLIC void klp_destroy (const klp_class_t *cls, void *obj);
LAY_PUBLIC void *klp_clone (const klp_class_t *cls, const void *source);
LAY_PUBLIC void klp_assign (const klp_class_t *cls, void *target, const void *source);
LAY_PUBLIC void klp_require_api_version (const char *version);
LAYBASIC_PUBLIC const klp_class_t *klp_class_by_name (const char *name);
LAYBASIC_PUBLIC void *klp_create (const klp_class_t *cls);
LAYBASIC_PUBLIC void klp_destroy (const klp_class_t *cls, void *obj);
LAYBASIC_PUBLIC void *klp_clone (const klp_class_t *cls, const void *source);
LAYBASIC_PUBLIC void klp_assign (const klp_class_t *cls, void *target, const void *source);
LAYBASIC_PUBLIC void klp_require_api_version (const char *version);
}

View File

@ -61,6 +61,7 @@ SOURCES += \
layMarker.cc \
layMouseTracker.cc \
layMove.cc \
layNativePlugin.cc \
layNetColorizer.cc \
layObjectInstPath.cc \
layParsedLayerSource.cc \
@ -112,6 +113,7 @@ HEADERS += \
layMarker.h \
layMouseTracker.h \
layMove.h \
layNativePlugin.h \
layNetColorizer.h \
layObjectInstPath.h \
layParsedLayerSource.h \

View File

@ -27,6 +27,7 @@
#include <QDialog>
#include "layuiCommon.h"
#include "layLayoutViewBase.h"
#include <set>
@ -39,7 +40,7 @@ namespace Ui
namespace lay
{
class BookmarkManagementForm
class LAYUI_PUBLIC BookmarkManagementForm
: public QDialog
{
Q_OBJECT

View File

@ -40,6 +40,9 @@
#include "layLayoutViewBase.h"
#include "tlExceptions.h"
#include "ui_CellSelectionForm.h"
#include "ui_LibraryCellSelectionForm.h"
#include <QHeaderView>
namespace lay
@ -51,7 +54,7 @@ static const std::string cfg_cell_selection_search_use_expressions ("cell-select
// ------------------------------------------------------------
CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, const char *name, bool simple_mode)
: QDialog (parent), Ui::CellSelectionForm (),
: QDialog (parent),
mp_view (view),
m_current_cv (-1),
m_name_cb_enabled (true),
@ -61,11 +64,12 @@ CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, con
m_update_all_dm (this, &CellSelectionForm::update_all),
m_simple_mode (simple_mode)
{
mp_ui = new Ui::CellSelectionForm ();
setObjectName (QString::fromUtf8 (name));
Ui::CellSelectionForm::setupUi (this);
mp_ui->setupUi (this);
le_cell_name->set_tab_signal_enabled (true);
mp_ui->le_cell_name->set_tab_signal_enabled (true);
mp_use_regular_expressions = new QAction (this);
mp_use_regular_expressions->setCheckable (true);
@ -86,33 +90,33 @@ CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, con
mp_use_regular_expressions->setChecked (ue);
}
QMenu *m = new QMenu (le_cell_name);
QMenu *m = new QMenu (mp_ui->le_cell_name);
m->addAction (mp_use_regular_expressions);
m->addAction (mp_case_sensitive);
connect (mp_use_regular_expressions, SIGNAL (triggered ()), this, SLOT (name_changed ()));
connect (mp_case_sensitive, SIGNAL (triggered ()), this, SLOT (name_changed ()));
le_cell_name->set_clear_button_enabled (true);
le_cell_name->set_options_button_enabled (true);
le_cell_name->set_options_menu (m);
mp_ui->le_cell_name->set_clear_button_enabled (true);
mp_ui->le_cell_name->set_options_button_enabled (true);
mp_ui->le_cell_name->set_options_menu (m);
// signals and slots connections
connect (cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (cb_views, SIGNAL(activated(int)), this, SLOT(view_changed(int)));
connect (tb_set_parent, SIGNAL(clicked()), this, SLOT(set_parent()));
connect (tb_set_child, SIGNAL(clicked()), this, SLOT(set_child()));
connect (pb_hide, SIGNAL(clicked()), this, SLOT(hide_cell()));
connect (pb_show, SIGNAL(clicked()), this, SLOT(show_cell()));
connect (le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed()));
connect (ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (apply_button, SIGNAL(clicked()), this, SLOT(apply_clicked()));
connect (find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (le_cell_name, SIGNAL(tab_pressed()), this, SLOT(find_next_clicked()));
connect (le_cell_name, SIGNAL(backtab_pressed()), this, SLOT(find_prev_clicked()));
connect (mp_ui->cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (mp_ui->cb_views, SIGNAL(activated(int)), this, SLOT(view_changed(int)));
connect (mp_ui->tb_set_parent, SIGNAL(clicked()), this, SLOT(set_parent()));
connect (mp_ui->tb_set_child, SIGNAL(clicked()), this, SLOT(set_child()));
connect (mp_ui->pb_hide, SIGNAL(clicked()), this, SLOT(hide_cell()));
connect (mp_ui->pb_show, SIGNAL(clicked()), this, SLOT(show_cell()));
connect (mp_ui->le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed()));
connect (mp_ui->ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (mp_ui->apply_button, SIGNAL(clicked()), this, SLOT(apply_clicked()));
connect (mp_ui->find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (mp_ui->le_cell_name, SIGNAL(tab_pressed()), this, SLOT(find_next_clicked()));
connect (mp_ui->le_cell_name, SIGNAL(backtab_pressed()), this, SLOT(find_prev_clicked()));
connect (lv_parents, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(parent_changed(const QModelIndex &)));
connect (lv_children, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(child_changed(const QModelIndex &)));
connect (mp_ui->lv_parents, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(parent_changed(const QModelIndex &)));
connect (mp_ui->lv_children, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(child_changed(const QModelIndex &)));
m_cellviews.reserve (mp_view->cellviews ());
@ -121,11 +125,11 @@ CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, con
}
if (simple_mode) {
apply_button->hide ();
tools_frame->hide ();
mp_ui->apply_button->hide ();
mp_ui->tools_frame->hide ();
} else {
apply_button->show ();
tools_frame->show ();
mp_ui->apply_button->show ();
mp_ui->tools_frame->show ();
}
if (! m_cellviews.empty ()) {
@ -134,26 +138,26 @@ CellSelectionForm::CellSelectionForm (QWidget *parent, LayoutViewBase *view, con
int cvi = 0;
for (std::vector<lay::CellView>::const_iterator cv = m_cellviews.begin (); cv != m_cellviews.end (); ++cv, ++cvi) {
cb_views->addItem (tl::to_qstring ((*cv)->name () + " (@" + tl::to_string (cvi + 1) + ")"));
mp_ui->cb_views->addItem (tl::to_qstring ((*cv)->name () + " (@" + tl::to_string (cvi + 1) + ")"));
}
cb_views->setCurrentIndex (m_current_cv);
mp_ui->cb_views->setCurrentIndex (m_current_cv);
if (m_cellviews.size () == 1) {
cb_views->hide ();
layout_lbl->hide ();
mp_ui->cb_views->hide ();
mp_ui->layout_lbl->hide ();
} else {
cb_views->show ();
layout_lbl->show ();
mp_ui->cb_views->show ();
mp_ui->layout_lbl->show ();
}
lv_cells->header ()->hide ();
lv_cells->setRootIsDecorated (false);
mp_ui->lv_cells->header ()->hide ();
mp_ui->lv_cells->setRootIsDecorated (false);
lv_children->header ()->hide ();
lv_children->setRootIsDecorated (false);
mp_ui->lv_children->header ()->hide ();
mp_ui->lv_children->setRootIsDecorated (false);
lv_parents->header ()->hide ();
lv_parents->setRootIsDecorated (false);
mp_ui->lv_parents->header ()->hide ();
mp_ui->lv_parents->setRootIsDecorated (false);
update_cell_list ();
@ -168,15 +172,15 @@ CellSelectionForm::update_cell_list ()
return;
}
if (lv_cells->model ()) {
delete lv_cells->model ();
if (mp_ui->lv_cells->model ()) {
delete mp_ui->lv_cells->model ();
}
lay::CellTreeModel *model = new lay::CellTreeModel (lv_cells, mp_view, m_current_cv, lay::CellTreeModel::Flat);
lay::CellTreeModel *model = new lay::CellTreeModel (mp_ui->lv_cells, mp_view, m_current_cv, lay::CellTreeModel::Flat);
lv_cells->setModel (model);
mp_ui->lv_cells->setModel (model);
// connect can only happen after setModel()
connect (lv_cells->selectionModel (), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(cell_changed(const QModelIndex &, const QModelIndex &)));
connect (mp_ui->lv_cells->selectionModel (), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(cell_changed(const QModelIndex &, const QModelIndex &)));
lay::CellView::unspecific_cell_path_type path (m_cellviews [m_current_cv].combined_unspecific_path ());
if (! path.empty ()) {
@ -191,13 +195,13 @@ CellSelectionForm::update_parents_list ()
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (model) {
if (lv_parents->model ()) {
delete lv_parents->model ();
if (mp_ui->lv_parents->model ()) {
delete mp_ui->lv_parents->model ();
}
lv_parents->setModel (new lay::CellTreeModel (lv_parents, mp_view, m_current_cv, lay::CellTreeModel::Flat | lay::CellTreeModel::Parents, model->cell (lv_cells->selectionModel ()->currentIndex ())));
mp_ui->lv_parents->setModel (new lay::CellTreeModel (mp_ui->lv_parents, mp_view, m_current_cv, lay::CellTreeModel::Flat | lay::CellTreeModel::Parents, model->cell (mp_ui->lv_cells->selectionModel ()->currentIndex ())));
}
@ -213,13 +217,13 @@ CellSelectionForm::update_children_list ()
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (model) {
if (lv_children->model ()) {
delete lv_children->model ();
if (mp_ui->lv_children->model ()) {
delete mp_ui->lv_children->model ();
}
lv_children->setModel (new lay::CellTreeModel (lv_children, mp_view, m_current_cv, lay::CellTreeModel::Flat | lay::CellTreeModel::Children, model->cell (lv_cells->selectionModel ()->currentIndex ())));
mp_ui->lv_children->setModel (new lay::CellTreeModel (mp_ui->lv_children, mp_view, m_current_cv, lay::CellTreeModel::Flat | lay::CellTreeModel::Children, model->cell (mp_ui->lv_cells->selectionModel ()->currentIndex ())));
}
@ -247,12 +251,12 @@ CellSelectionForm::commit_cv ()
// update the cell view
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
const db::Cell *cell = model->cell (lv_cells->selectionModel ()->currentIndex ());
const db::Cell *cell = model->cell (mp_ui->lv_cells->selectionModel ()->currentIndex ());
if (cell) {
m_cellviews [m_current_cv].set_cell (cell->cell_index ());
}
@ -298,12 +302,12 @@ CellSelectionForm::apply_clicked()
// select the current cell but don't make it the new top.
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
const db::Cell *cell = model->cell (lv_cells->selectionModel ()->currentIndex ());
const db::Cell *cell = model->cell (mp_ui->lv_cells->selectionModel ()->currentIndex ());
lay::CellView cv (m_cellviews [m_current_cv]);
cv.set_cell (cell->cell_index ());
@ -319,9 +323,9 @@ CellSelectionForm::cell_changed (const QModelIndex &current, const QModelIndex &
m_name_cb_enabled = false;
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (model) {
le_cell_name->setText (tl::to_qstring (model->cell_name (current)));
mp_ui->le_cell_name->setText (tl::to_qstring (model->cell_name (current)));
model->clear_locate ();
}
@ -336,7 +340,7 @@ CellSelectionForm::cell_changed (const QModelIndex &current, const QModelIndex &
void
CellSelectionForm::set_child ()
{
child_changed (lv_children->selectionModel ()->currentIndex ());
child_changed (mp_ui->lv_children->selectionModel ()->currentIndex ());
}
void
@ -344,9 +348,9 @@ CellSelectionForm::child_changed(const QModelIndex &current)
{
if (m_children_cb_enabled && current.isValid ()) {
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_children->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_children->model ());
if (model) {
select_entry (model->cell_index (lv_children->selectionModel ()->currentIndex ()));
select_entry (model->cell_index (mp_ui->lv_children->selectionModel ()->currentIndex ()));
}
}
}
@ -355,7 +359,7 @@ CellSelectionForm::child_changed(const QModelIndex &current)
void
CellSelectionForm::set_parent ()
{
parent_changed (lv_parents->selectionModel ()->currentIndex ());
parent_changed (mp_ui->lv_parents->selectionModel ()->currentIndex ());
}
void
@ -363,9 +367,9 @@ CellSelectionForm::parent_changed(const QModelIndex &current)
{
if (m_parents_cb_enabled && current.isValid ()) {
if (m_current_cv >= 0 && m_current_cv < int (m_cellviews.size ())) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_parents->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_parents->model ());
if (model) {
select_entry (model->cell_index (lv_parents->selectionModel ()->currentIndex ()));
select_entry (model->cell_index (mp_ui->lv_parents->selectionModel ()->currentIndex ()));
}
}
}
@ -376,7 +380,7 @@ CellSelectionForm::select_entry (lay::CellView::cell_index_type ci)
{
m_cells_cb_enabled = false;
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -394,12 +398,12 @@ CellSelectionForm::select_entry (lay::CellView::cell_index_type ci)
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
m_cells_cb_enabled = true;
m_name_cb_enabled = false;
le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
mp_ui->le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
model->clear_locate ();
m_name_cb_enabled = true;
@ -422,7 +426,7 @@ CellSelectionForm::update_all ()
void
CellSelectionForm::find_next_clicked ()
{
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -431,8 +435,8 @@ CellSelectionForm::find_next_clicked ()
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
update_children_list ();
update_parents_list ();
m_cells_cb_enabled = true;
@ -443,7 +447,7 @@ CellSelectionForm::find_next_clicked ()
void
CellSelectionForm::find_prev_clicked ()
{
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -452,8 +456,8 @@ CellSelectionForm::find_prev_clicked ()
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
update_children_list ();
update_parents_list ();
m_cells_cb_enabled = true;
@ -466,9 +470,9 @@ CellSelectionForm::name_changed ()
{
if (m_name_cb_enabled) {
QString s = le_cell_name->text ();
QString s = mp_ui->le_cell_name->text ();
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -481,9 +485,9 @@ CellSelectionForm::name_changed ()
}
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
if (mi.isValid ()) {
lv_cells->scrollTo (mi);
mp_ui->lv_cells->scrollTo (mi);
}
update_children_list ();
update_parents_list ();
@ -495,7 +499,7 @@ CellSelectionForm::name_changed ()
void
CellSelectionForm::show_cell ()
{
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -503,7 +507,7 @@ CellSelectionForm::show_cell ()
return;
}
QModelIndexList sel = lv_cells->selectionModel ()->selectedIndexes ();
QModelIndexList sel = mp_ui->lv_cells->selectionModel ()->selectedIndexes ();
for (QModelIndexList::const_iterator s = sel.begin (); s != sel.end (); ++s) {
db::cell_index_type ci = model->cell (*s)->cell_index ();
mp_view->manager ()->transaction (tl::to_string (QObject::tr ("Show cells")));
@ -517,7 +521,7 @@ CellSelectionForm::show_cell ()
void
CellSelectionForm::hide_cell ()
{
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -525,7 +529,7 @@ CellSelectionForm::hide_cell ()
return;
}
QModelIndexList sel = lv_cells->selectionModel ()->selectedIndexes ();
QModelIndexList sel = mp_ui->lv_cells->selectionModel ()->selectedIndexes ();
for (QModelIndexList::const_iterator s = sel.begin (); s != sel.end (); ++s) {
db::cell_index_type ci = model->cell (*s)->cell_index ();
mp_view->manager ()->transaction (tl::to_string (QObject::tr ("Hide cells")));
@ -539,7 +543,7 @@ CellSelectionForm::hide_cell ()
// ------------------------------------------------------------
LibraryCellSelectionForm::LibraryCellSelectionForm (QWidget *parent, db::Layout *layout, const char *name, bool all_cells, bool top_cells_only)
: QDialog (parent), Ui::LibraryCellSelectionForm (),
: QDialog (parent),
mp_lib (0), mp_layout (layout),
m_name_cb_enabled (true),
m_cells_cb_enabled (true),
@ -549,32 +553,33 @@ LibraryCellSelectionForm::LibraryCellSelectionForm (QWidget *parent, db::Layout
m_all_cells (all_cells),
m_top_cells_only (top_cells_only)
{
mp_ui = new Ui::LibraryCellSelectionForm ();
setObjectName (QString::fromUtf8 (name));
Ui::LibraryCellSelectionForm::setupUi (this);
mp_ui->setupUi (this);
// no library selection
lib_label->hide ();
lib_cb->hide ();
mp_ui->lib_label->hide ();
mp_ui->lib_cb->hide ();
// signals and slots connections
connect (cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed(const QString&)));
connect (find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (cb_show_all_cells, SIGNAL(clicked()), this, SLOT(show_all_changed()));
connect (mp_ui->cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (mp_ui->ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (mp_ui->le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed(const QString&)));
connect (mp_ui->find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (mp_ui->cb_show_all_cells, SIGNAL(clicked()), this, SLOT(show_all_changed()));
lv_cells->header ()->hide ();
lv_cells->setRootIsDecorated (false);
mp_ui->lv_cells->header ()->hide ();
mp_ui->lv_cells->setRootIsDecorated (false);
ok_button->setText (QObject::tr ("Ok"));
cancel_button->setText (QObject::tr ("Cancel"));
mp_ui->ok_button->setText (QObject::tr ("Ok"));
mp_ui->cancel_button->setText (QObject::tr ("Cancel"));
update_cell_list ();
}
LibraryCellSelectionForm::LibraryCellSelectionForm (QWidget *parent, const char *name, bool all_cells, bool top_cells_only)
: QDialog (parent), Ui::LibraryCellSelectionForm (),
: QDialog (parent),
mp_lib (0), mp_layout (0),
m_name_cb_enabled (true),
m_cells_cb_enabled (true),
@ -584,28 +589,30 @@ LibraryCellSelectionForm::LibraryCellSelectionForm (QWidget *parent, const char
m_all_cells (all_cells),
m_top_cells_only (top_cells_only)
{
mp_ui = new Ui::LibraryCellSelectionForm ();
mp_lib = db::LibraryManager::instance ().lib_ptr_by_name ("Basic");
mp_layout = &mp_lib->layout ();
setObjectName (QString::fromUtf8 (name));
Ui::LibraryCellSelectionForm::setupUi (this);
mp_ui->setupUi (this);
lib_cb->set_current_library (mp_lib);
mp_ui->lib_cb->set_current_library (mp_lib);
// signals and slots connections
connect (cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed(const QString&)));
connect (find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (lib_cb, SIGNAL(currentIndexChanged(int)), this, SLOT(lib_changed()));
connect (cb_show_all_cells, SIGNAL(clicked()), this, SLOT(show_all_changed()));
connect (mp_ui->cancel_button, SIGNAL(clicked()), this, SLOT(reject()));
connect (mp_ui->ok_button, SIGNAL(clicked()), this, SLOT(accept()));
connect (mp_ui->le_cell_name, SIGNAL(textChanged(const QString&)), this, SLOT(name_changed(const QString&)));
connect (mp_ui->find_next, SIGNAL(clicked()), this, SLOT(find_next_clicked()));
connect (mp_ui->lib_cb, SIGNAL(currentIndexChanged(int)), this, SLOT(lib_changed()));
connect (mp_ui->cb_show_all_cells, SIGNAL(clicked()), this, SLOT(show_all_changed()));
lv_cells->header ()->hide ();
lv_cells->setRootIsDecorated (false);
mp_ui->lv_cells->header ()->hide ();
mp_ui->lv_cells->setRootIsDecorated (false);
ok_button->setText (QObject::tr ("Ok"));
cancel_button->setText (QObject::tr ("Cancel"));
mp_ui->ok_button->setText (QObject::tr ("Ok"));
mp_ui->cancel_button->setText (QObject::tr ("Cancel"));
update_cell_list ();
}
@ -613,14 +620,14 @@ LibraryCellSelectionForm::LibraryCellSelectionForm (QWidget *parent, const char
void
LibraryCellSelectionForm::show_all_changed ()
{
m_all_cells = cb_show_all_cells->isChecked ();
m_all_cells = mp_ui->cb_show_all_cells->isChecked ();
update_cell_list ();
}
void
LibraryCellSelectionForm::lib_changed ()
{
mp_lib = lib_cb->current_library ();
mp_lib = mp_ui->lib_cb->current_library ();
mp_layout = mp_lib ? &mp_lib->layout () : 0;
update_cell_list ();
}
@ -675,11 +682,11 @@ END_PROTECTED
void
LibraryCellSelectionForm::update_cell_list ()
{
if (lv_cells->model ()) {
delete lv_cells->model ();
if (mp_ui->lv_cells->model ()) {
delete mp_ui->lv_cells->model ();
}
cb_show_all_cells->setChecked (m_all_cells);
mp_ui->cb_show_all_cells->setChecked (m_all_cells);
if (mp_layout) {
@ -692,11 +699,11 @@ LibraryCellSelectionForm::update_cell_list ()
}
// TODO: get rid of that const_cast
lay::CellTreeModel *model = new lay::CellTreeModel (lv_cells, const_cast<db::Layout *> (mp_layout), flags);
lay::CellTreeModel *model = new lay::CellTreeModel (mp_ui->lv_cells, const_cast<db::Layout *> (mp_layout), flags);
lv_cells->setModel (model);
mp_ui->lv_cells->setModel (model);
// connect can only happen after setModel()
connect (lv_cells->selectionModel (), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(cell_changed(const QModelIndex &, const QModelIndex &)));
connect (mp_ui->lv_cells->selectionModel (), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(cell_changed(const QModelIndex &, const QModelIndex &)));
select_entry (std::numeric_limits<db::cell_index_type>::max ());
@ -710,7 +717,7 @@ LibraryCellSelectionForm::cell_changed (const QModelIndex &current, const QModel
m_name_cb_enabled = false;
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (model) {
m_is_pcell = model->is_pcell (current);
if (m_is_pcell) {
@ -718,7 +725,7 @@ LibraryCellSelectionForm::cell_changed (const QModelIndex &current, const QModel
} else {
m_cell_index = model->cell_index (current);
}
le_cell_name->setText (tl::to_qstring (model->cell_name (current)));
mp_ui->le_cell_name->setText (tl::to_qstring (model->cell_name (current)));
model->clear_locate ();
} else {
m_cell_index = -1;
@ -738,7 +745,7 @@ LibraryCellSelectionForm::select_pcell_entry (db::pcell_id_type pci)
m_pcell_id = pci;
m_is_pcell = true;
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -756,12 +763,12 @@ LibraryCellSelectionForm::select_pcell_entry (db::pcell_id_type pci)
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
m_cells_cb_enabled = true;
m_name_cb_enabled = false;
le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
mp_ui->le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
model->clear_locate ();
m_name_cb_enabled = true;
@ -777,7 +784,7 @@ LibraryCellSelectionForm::select_entry (lay::CellView::cell_index_type ci)
m_cell_index = ci;
m_is_pcell = false;
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -795,12 +802,12 @@ LibraryCellSelectionForm::select_entry (lay::CellView::cell_index_type ci)
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::Clear | QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
m_cells_cb_enabled = true;
m_name_cb_enabled = false;
le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
mp_ui->le_cell_name->setText (tl::to_qstring (model->cell_name (mi)));
model->clear_locate ();
m_name_cb_enabled = true;
@ -812,7 +819,7 @@ LibraryCellSelectionForm::select_entry (lay::CellView::cell_index_type ci)
void
LibraryCellSelectionForm::find_next_clicked ()
{
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -821,8 +828,8 @@ LibraryCellSelectionForm::find_next_clicked ()
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
m_is_pcell = model->is_pcell (mi);
if (m_is_pcell) {
@ -845,7 +852,7 @@ LibraryCellSelectionForm::name_changed (const QString &s)
{
if (m_name_cb_enabled) {
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (lv_cells->model ());
lay::CellTreeModel *model = dynamic_cast<lay::CellTreeModel *> (mp_ui->lv_cells->model ());
if (! model) {
return;
}
@ -854,8 +861,8 @@ LibraryCellSelectionForm::name_changed (const QString &s)
if (mi.isValid ()) {
m_cells_cb_enabled = false;
lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
lv_cells->scrollTo (mi);
mp_ui->lv_cells->selectionModel ()->setCurrentIndex (mi, QItemSelectionModel::SelectCurrent);
mp_ui->lv_cells->scrollTo (mi);
m_is_pcell = model->is_pcell (mi);
if (m_is_pcell) {

View File

@ -27,14 +27,21 @@
#include <QAction>
#include "ui_CellSelectionForm.h"
#include "ui_LibraryCellSelectionForm.h"
#include "layuiCommon.h"
#include "layCellView.h"
#include "tlDeferredExecution.h"
#include <vector>
#include <string>
#include <QDialog>
namespace Ui
{
class CellSelectionForm;
class LibraryCellSelectionForm;
}
namespace lay
{
@ -45,7 +52,7 @@ class LayoutView;
* @brief A form to select a cell and a cell view index
*/
class LAYUI_PUBLIC CellSelectionForm
: public QDialog, private Ui::CellSelectionForm
: public QDialog
{
Q_OBJECT
@ -77,6 +84,7 @@ public slots:
void find_prev_clicked();
private:
Ui::CellSelectionForm *mp_ui;
lay::LayoutViewBase *mp_view;
std::vector <lay::CellView> m_cellviews;
int m_current_cv;
@ -104,7 +112,7 @@ private:
* @brief A form to select a cell from a library
*/
class LAYUI_PUBLIC LibraryCellSelectionForm
: public QDialog, private Ui::LibraryCellSelectionForm
: public QDialog
{
Q_OBJECT
@ -182,6 +190,7 @@ public slots:
void show_all_changed ();
private:
Ui::LibraryCellSelectionForm *mp_ui;
db::Library *mp_lib;
const db::Layout *mp_layout;
bool m_name_cb_enabled;

View File

@ -32,6 +32,7 @@
#include <QFrame>
#include <QTreeView>
#include "layuiCommon.h"
#include "dbLayout.h"
#include "layCanvasPlane.h"
#include "layViewOp.h"
@ -96,7 +97,7 @@ protected:
* The class communicates with a Layout interface for
* retrieval of the cell hierarchy
*/
class HierarchyControlPanel
class LAYUI_PUBLIC HierarchyControlPanel
: public QFrame,
public tl::Object
{

View File

@ -26,17 +26,7 @@
#define HDR_layLayerControlPanel
#include <vector>
#include <string>
#include <set>
#include <algorithm>
#include <QFrame>
#include <QLabel>
#include <QPainter>
#include <QPaintEvent>
#include <QTreeView>
#include "layuiCommon.h"
#include "layCanvasPlane.h"
#include "layViewOp.h"
#include "layLayoutViewBase.h"
@ -49,6 +39,17 @@
#include "dbObject.h"
#include "tlDeferredExecution.h"
#include <vector>
#include <string>
#include <set>
#include <algorithm>
#include <QFrame>
#include <QLabel>
#include <QPainter>
#include <QPaintEvent>
#include <QTreeView>
class QTreeView;
class QModelIndex;
class QMenu;
@ -108,7 +109,7 @@ private:
* The class communicates with a Layout interface for
* retrieval and changing of layer properties.
*/
class LayerControlPanel
class LAYUI_PUBLIC LayerControlPanel
: public QFrame,
public db::Object,
public tl::Object

View File

@ -25,13 +25,7 @@
#ifndef HDR_layLibrariesView
#define HDR_layLibrariesView
#include <vector>
#include <string>
#include <algorithm>
#include <QFrame>
#include <QTreeView>
#include "layuiCommon.h"
#include "dbLayout.h"
#include "layCanvasPlane.h"
#include "layViewOp.h"
@ -40,6 +34,13 @@
#include "layWidgets.h"
#include "tlDeferredExecution.h"
#include <vector>
#include <string>
#include <algorithm>
#include <QFrame>
#include <QTreeView>
class QModelIndex;
class QComboBox;
class QMenu;
@ -95,7 +96,7 @@ protected:
* The class communicates with a Layout interface for
* retrieval of the cell hierarchy
*/
class LibrariesView
class LAYUI_PUBLIC LibrariesView
: public QFrame,
public tl::Object
{

View File

@ -25,6 +25,7 @@
#ifndef HDR_layNetlistBrowserDialog
#define HDR_layNetlistBrowserDialog
#include "layuiCommon.h"
#include "layBrowser.h"
#include "layNetlistBrowser.h"
#include "layViewObject.h"
@ -47,7 +48,7 @@ namespace lay
class NetlistObjectPath;
class NetlistObjectsPath;
class NetlistBrowserDialog
class LAYUI_PUBLIC NetlistBrowserDialog
: public lay::Browser,
public lay::ViewService
{

View File

@ -25,6 +25,7 @@
#ifndef HDR_rdbMarkerBrowserDialog
#define HDR_rdbMarkerBrowserDialog
#include "layuiCommon.h"
#include "layBrowser.h"
#include "layColor.h"
#include "rdbMarkerBrowser.h"
@ -37,7 +38,7 @@ namespace Ui
namespace rdb
{
class MarkerBrowserDialog
class LAYUI_PUBLIC MarkerBrowserDialog
: public lay::Browser
{
Q_OBJECT

View File

@ -3,9 +3,9 @@ include($$PWD/../klayout.pri)
TEMPLATE = lib
INCLUDEPATH += $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$PWD/common
DEPENDPATH += $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$PWD/common
LIBS += -L$$DESTDIR/.. -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_lay
INCLUDEPATH += $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$LAYUI_INC $$LAY_INC $$PWD/common
DEPENDPATH += $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAYUI_INC $$LAYVIEW_INC $$LAYUI_INC $$LAY_INC $$PWD/common
LIBS += -L$$DESTDIR/.. -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_layui -lklayout_layview -lklayout_lay -lklayout_lay
DEFINES += MAKE_LAY_PLUGIN_LIBRARY

View File

@ -28,6 +28,7 @@
#include "layPlugin.h"
#include "layMainWindow.h"
#include "layFileDialog.h"
#include "dbTechnology.h"
#include "tlLog.h"
#include "tlTimer.h"
#include "tlXMLParser.h"

View File

@ -62,7 +62,7 @@ BooleanOptionsDialog::cv_changed (int)
}
bool
BooleanOptionsDialog::exec_dialog (lay::LayoutView *view, int &cv_a, int &layer_a, int &cv_b, int &layer_b, int &cv_r, int &layer_r, int &mode, int &hier_mode, bool &min_coherence)
BooleanOptionsDialog::exec_dialog (lay::LayoutViewBase *view, int &cv_a, int &layer_a, int &cv_b, int &layer_b, int &cv_r, int &layer_r, int &mode, int &hier_mode, bool &min_coherence)
{
mp_view = view;
@ -183,7 +183,7 @@ SizingOptionsDialog::cv_changed (int)
}
bool
SizingOptionsDialog::exec_dialog (lay::LayoutView *view, int &cv, int &layer, int &cv_r, int &layer_r, double &dx, double &dy, unsigned int &size_mode, int &hier_mode, bool &min_coherence)
SizingOptionsDialog::exec_dialog (lay::LayoutViewBase *view, int &cv, int &layer, int &cv_r, int &layer_r, double &dx, double &dy, unsigned int &size_mode, int &hier_mode, bool &min_coherence)
{
mp_view = view;
@ -309,7 +309,7 @@ MergeOptionsDialog::cv_changed (int)
}
bool
MergeOptionsDialog::exec_dialog (lay::LayoutView *view, int &cv, int &layer, int &cv_r, int &layer_r, unsigned int &min_wc, int &hier_mode, bool &min_coherence)
MergeOptionsDialog::exec_dialog (lay::LayoutViewBase *view, int &cv, int &layer, int &cv_r, int &layer_r, unsigned int &min_wc, int &hier_mode, bool &min_coherence)
{
mp_view = view;

View File

@ -37,7 +37,7 @@ namespace lay
{
class CellView;
class LayoutView;
class LayoutViewBase;
/**
* @brief The boolean operation options
@ -52,7 +52,7 @@ public:
BooleanOptionsDialog (QWidget *parent);
virtual ~BooleanOptionsDialog ();
bool exec_dialog (lay::LayoutView *view, int &cv_a, int &layer_a, int &cv_b, int &layer_b, int &cv_res, int &layer_res, int &mode, int &hier_mode, bool &min_coherence);
bool exec_dialog (lay::LayoutViewBase *view, int &cv_a, int &layer_a, int &cv_b, int &layer_b, int &cv_res, int &layer_res, int &mode, int &hier_mode, bool &min_coherence);
public slots:
void cv_changed (int);
@ -60,7 +60,7 @@ public slots:
private:
virtual void accept ();
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
};
/**
@ -76,7 +76,7 @@ public:
SizingOptionsDialog (QWidget *parent);
virtual ~SizingOptionsDialog ();
bool exec_dialog (lay::LayoutView *view, int &cv, int &layer, int &cv_res, int &layer_res, double &dx, double &dy, unsigned int &size_mode, int &hier_mode, bool &min_coherence);
bool exec_dialog (lay::LayoutViewBase *view, int &cv, int &layer, int &cv_res, int &layer_res, double &dx, double &dy, unsigned int &size_mode, int &hier_mode, bool &min_coherence);
public slots:
void cv_changed (int);
@ -84,7 +84,7 @@ public slots:
private:
virtual void accept ();
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
};
/**
@ -100,7 +100,7 @@ public:
MergeOptionsDialog (QWidget *parent);
virtual ~MergeOptionsDialog ();
bool exec_dialog (lay::LayoutView *view, int &cv, int &layer, int &cv_res, int &layer_res, unsigned int &min_wc, int &hier_mode, bool &min_coherence);
bool exec_dialog (lay::LayoutViewBase *view, int &cv, int &layer, int &cv_res, int &layer_res, unsigned int &min_wc, int &hier_mode, bool &min_coherence);
public slots:
void cv_changed (int);
@ -108,7 +108,7 @@ public slots:
private:
virtual void accept ();
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
};
}

View File

@ -26,7 +26,7 @@
#include "layPlugin.h"
#include "layTipDialog.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
#include "dbShapeProcessor.h"
@ -39,7 +39,7 @@ class BooleanOperationsPlugin
: public lay::Plugin
{
public:
BooleanOperationsPlugin (Plugin *parent, lay::LayoutView *view)
BooleanOperationsPlugin (Plugin *parent, lay::LayoutViewBase *view)
: lay::Plugin (parent), mp_view (view)
{
m_boolean_cva = -1;
@ -100,7 +100,7 @@ public:
}
lay::BooleanOptionsDialog dialog (mp_view);
lay::BooleanOptionsDialog dialog (mp_view->widget ());
if (dialog.exec_dialog (mp_view, m_boolean_cva, m_boolean_layera, m_boolean_cvb, m_boolean_layerb, m_boolean_cvr, m_boolean_layerr, m_boolean_mode, m_boolean_hier_mode, m_boolean_mincoh)) {
mp_view->cancel ();
@ -237,7 +237,7 @@ public:
}
lay::MergeOptionsDialog dialog (mp_view);
lay::MergeOptionsDialog dialog (mp_view->widget ());
if (dialog.exec_dialog (mp_view, m_boolean_cva, m_boolean_layera, m_boolean_cvr, m_boolean_layerr, m_boolean_minwc, m_boolean_hier_mode, m_boolean_mincoh)) {
mp_view->cancel ();
@ -352,7 +352,7 @@ public:
}
lay::SizingOptionsDialog dialog (mp_view);
lay::SizingOptionsDialog dialog (mp_view->widget ());
if (dialog.exec_dialog (mp_view, m_boolean_cva, m_boolean_layera, m_boolean_cvr, m_boolean_layerr, m_boolean_sizex, m_boolean_sizey, m_boolean_size_mode, m_boolean_hier_mode, m_boolean_mincoh)) {
mp_view->cancel ();
@ -445,7 +445,7 @@ public:
}
private:
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
int m_boolean_cva, m_boolean_cvb, m_boolean_cvr;
int m_boolean_layera, m_boolean_layerb, m_boolean_layerr;
int m_boolean_hier_mode, m_boolean_mode;

View File

@ -24,7 +24,7 @@
#include "layDispatcher.h"
#include "layPlugin.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
namespace lay
{
@ -33,7 +33,7 @@ class DiffPlugin
: public lay::Plugin
{
public:
DiffPlugin (Plugin *parent, lay::LayoutView *view)
DiffPlugin (Plugin *parent, lay::LayoutViewBase *view)
: lay::Plugin (parent), mp_view (view)
{
mp_dialog = new lay::DiffToolDialog (0);
@ -59,7 +59,7 @@ public:
}
private:
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
lay::DiffToolDialog *mp_dialog;
};

View File

@ -30,7 +30,7 @@
#include "tlTimer.h"
#include "tlProgress.h"
#include "layCellView.h"
#include "layLayoutView.h"
#include "layLayoutViewBase.h"
#include "tlExceptions.h"
#include "ui_DiffToolDialog.h"
@ -608,7 +608,7 @@ DiffToolDialog::~DiffToolDialog ()
}
int
DiffToolDialog::exec_dialog (lay::LayoutView *view)
DiffToolDialog::exec_dialog (lay::LayoutViewBase *view)
{
mp_view = view;

View File

@ -36,7 +36,7 @@ namespace Ui
namespace lay
{
class LayoutView;
class LayoutViewBase;
}
namespace lay
@ -57,7 +57,7 @@ public:
DiffToolDialog (QWidget *parent);
~DiffToolDialog ();
int exec_dialog (lay::LayoutView *view);
int exec_dialog (lay::LayoutViewBase *view);
protected slots:
void xor_changed () { update (); }
@ -69,7 +69,7 @@ protected:
private:
Ui::DiffToolDialog *mp_ui;
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
};
}

View File

@ -53,7 +53,7 @@ namespace lay
// -----------------------------------------------------------------------------------
// NetTracerDialog implementation
NetTracerDialog::NetTracerDialog (lay::Dispatcher *root, lay::LayoutView *view)
NetTracerDialog::NetTracerDialog (lay::Dispatcher *root, LayoutViewBase *view)
: lay::Browser (root, view, "net_tracer_dialog"),
lay::ViewService (view->view_object_widget ()),
m_cv_index (0),

View File

@ -57,7 +57,7 @@ class NetTracerDialog
Q_OBJECT
public:
NetTracerDialog (lay::Dispatcher *root, lay::LayoutView *view);
NetTracerDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
virtual ~NetTracerDialog ();
virtual bool mouse_move_event (const db::DPoint &p, unsigned int buttons, bool prio);
@ -108,7 +108,7 @@ private:
lay::FileDialog *mp_export_file_dialog;
std::string m_export_file_name;
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
void commit ();
size_t get_trace_depth ();
@ -124,7 +124,7 @@ private:
bool get_net_tracer_setup (const lay::CellView &cv, db::NetTracerData &data);
void trace_all_nets (db::LayoutToNetlist *l2ndb, const lay::CellView &cv, bool flat);
lay::LayoutView *view ()
lay::LayoutViewBase *view ()
{
return mp_view;
}

View File

@ -38,7 +38,7 @@ namespace lay
const double initial_elevation = 15.0;
D25View::D25View (lay::Dispatcher *root, LayoutView *view)
D25View::D25View (lay::Dispatcher *root, LayoutViewBase *view)
: lay::Browser (root, view, "d25_view"),
dm_rerun_macro (this, &D25View::rerun_macro),
dm_fit (this, &D25View::fit)
@ -146,7 +146,7 @@ D25View::menu_activated (const std::string &symbol)
}
D25View *
D25View::open (lay::LayoutView *view)
D25View::open (lay::LayoutViewBase *view)
{
D25View *d25_view = view->get_plugin<lay::D25View> ();
if (d25_view) {

View File

@ -37,7 +37,7 @@ namespace Ui
namespace lay
{
class LayoutView;
class LayoutViewBase;
}
namespace db
@ -57,14 +57,14 @@ class D25View
Q_OBJECT
public:
D25View (lay::Dispatcher *root, lay::LayoutView *view);
D25View (lay::Dispatcher *root, lay::LayoutViewBase *view);
~D25View ();
virtual void menu_activated (const std::string &symbol);
virtual void deactivated ();
virtual void activated ();
static D25View *open (lay::LayoutView *view);
static D25View *open (lay::LayoutViewBase *view);
void close ();
void clear ();
void begin (const std::string &generator);

View File

@ -711,7 +711,7 @@ D25ViewWidget::finish ()
}
void
D25ViewWidget::attach_view (LayoutView *view)
D25ViewWidget::attach_view (LayoutViewBase *view)
{
mp_view = view;
}

View File

@ -57,7 +57,7 @@ namespace tl
namespace lay
{
class LayoutView;
class LayoutViewBase;
class LayerPropertiesNode;
class D25ViewWidget;
@ -106,7 +106,7 @@ public:
void mouseReleaseEvent (QMouseEvent *event);
void mouseMoveEvent (QMouseEvent *event);
void attach_view(lay::LayoutView *view);
void attach_view(lay::LayoutViewBase *view);
QVector3D hit_point_with_scene(const QVector3D &line_dir);
void refresh ();
@ -187,7 +187,7 @@ private:
double m_scale_factor;
double m_vscale_factor;
QVector3D m_displacement;
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
db::DBox m_bbox;
double m_zmin, m_zmax;
bool m_zset;

View File

@ -35,7 +35,7 @@ class XORPlugin
: public lay::Plugin
{
public:
XORPlugin (Plugin *parent, lay::LayoutView *view)
XORPlugin (Plugin *parent, lay::LayoutViewBase *view)
: lay::Plugin (parent), mp_view (view)
{
mp_dialog = new lay::XORToolDialog (0);
@ -61,7 +61,7 @@ public:
}
private:
lay::LayoutView *mp_view;
lay::LayoutViewBase *mp_view;
lay::XORToolDialog *mp_dialog;
};

View File

@ -186,7 +186,7 @@ XORToolDialog::~XORToolDialog ()
}
int
XORToolDialog::exec_dialog (lay::LayoutView *view)
XORToolDialog::exec_dialog (lay::LayoutViewBase *view)
{
mp_view = view;

View File

@ -34,7 +34,7 @@ namespace Ui
namespace lay
{
class LayoutView;
class LayoutViewBase;
}
namespace lay
@ -61,7 +61,7 @@ public:
XORToolDialog (QWidget *parent);
~XORToolDialog ();
int exec_dialog (lay::LayoutView *view);
int exec_dialog (lay::LayoutViewBase *view);
protected:
void accept ();
@ -74,7 +74,7 @@ protected slots:
private:
Ui::XORToolDialog *mp_ui;
tl::weak_ptr<lay::LayoutView> mp_view;
tl::weak_ptr<lay::LayoutViewBase> mp_view;
};
}

View File

@ -1,20 +1,15 @@
INCLUDEPATH += $$RBA_INC $$PYA_INC $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LIB_INC $$VERSION_INC
DEPENDPATH += $$RBA_INC $$PYA_INC $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LIB_INC $$VERSION_INC
INCLUDEPATH += $$RBA_INC $$PYA_INC $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAYVIEW_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LIB_INC $$VERSION_INC
DEPENDPATH += $$RBA_INC $$PYA_INC $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LYM_INC $$LAYBASIC_INC $$LAYVIEW_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LIB_INC $$VERSION_INC
LIBS += "$$PYTHONLIBFILE" "$$RUBYLIBFILE" -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lib
LIBS += "$$PYTHONLIBFILE" "$$RUBYLIBFILE" -L$$DESTDIR -lklayout_tl -lklayout_gsi -lklayout_db -lklayout_rdb -lklayout_lym -lklayout_laybasic -lklayout_layview -lklayout_ant -lklayout_img -lklayout_edt -lklayout_lib
!equals(HAVE_QT, "0") {
INCLUDEPATH += $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC
DEPENDPATH += $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC
INCLUDEPATH += $$LAYUI_INC $$LAY_INC
DEPENDPATH += $$LAYUI_INC $$LAY_INC
LIBS += -L$$DESTDIR -lklayout_lym -lklayout_laybasic -lklayout_lay -lklayout_ant -lklayout_img -lklayout_edt
# Note: this accounts for UI-generated headers placed into the output folders in
# shadow builds:
INCLUDEPATH += $$DESTDIR/laybasic $$DESTDIR/lay $$DESTDIR/ext
DEPENDPATH += $$DESTDIR/laybasic $$DESTDIR/lay $$DESTDIR/ext
LIBS += -L$$DESTDIR -lklayout_layui -lklayout_lay
equals(HAVE_QTBINDINGS, "1") {
LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtCore