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 \ gsiDeclAnt.cc \
antForceLink.cc antForceLink.cc
INCLUDEPATH += $$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 $$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") {
INCLUDEPATH += $$LAYUI_INC
DEPENDPATH += $$LAYUI_INC
LIBS += -lklayout_layui
}

View File

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

View File

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

View File

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

View File

@ -25,7 +25,7 @@
#include "antObject.h" #include "antObject.h"
#include "antService.h" #include "antService.h"
#include "antPlugin.h" #include "antPlugin.h"
#include "layLayoutView.h" #include "layLayoutViewBase.h"
namespace gsi 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_top () { return int (ant::Object::AL_top); }
static int align_up () { return int (ant::Object::AL_up); } static int align_up () { return int (ant::Object::AL_up); }
static void clear_annotations (lay::LayoutView *view); static void clear_annotations (lay::LayoutViewBase *view);
static void insert_annotation (lay::LayoutView *view, AnnotationRef *obj); static void insert_annotation (lay::LayoutViewBase *view, AnnotationRef *obj);
static void erase_annotation_base (lay::LayoutView *view, int id); static void erase_annotation_base (lay::LayoutViewBase *view, int 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);
/** /**
* @brief An extension of the ant::Object that provides "live" updates of the view * @brief An extension of the ant::Object that provides "live" updates of the view
@ -88,7 +88,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
AnnotationRef (const ant::Object &other, lay::LayoutView *view) AnnotationRef (const ant::Object &other, lay::LayoutViewBase *view)
: ant::Object (other), mp_view (view) : ant::Object (other), mp_view (view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -140,10 +140,10 @@ public:
template <class T> template <class T>
AnnotationRef transformed (const T &t) const 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); mp_view.reset (view);
} }
@ -157,10 +157,10 @@ protected:
} }
private: 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (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 ()) { 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."))); 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (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); 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (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); 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> (); std::vector<ant::Service *> ant_services = view->get_plugins <ant::Service> ();
if (! ant_services.empty ()) { if (! ant_services.empty ()) {
@ -351,7 +351,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
AnnotationRefIterator (const ant::AnnotationIterator &iter, lay::LayoutView *view) AnnotationRefIterator (const ant::AnnotationIterator &iter, lay::LayoutViewBase *view)
: ant::AnnotationIterator (iter), mp_view (view) : ant::AnnotationIterator (iter), mp_view (view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -359,14 +359,14 @@ public:
reference operator* () const 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: 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
if (ant_service) { if (ant_service) {
@ -389,21 +389,21 @@ static AnnotationRef get_annotation (lay::LayoutView *view, int id)
return AnnotationRef (); 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0); tl_assert (ant_service != 0);
return ant_service->annotations_changed_event; 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0); tl_assert (ant_service != 0);
return ant_service->annotation_selection_changed_event; 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> (); ant::Service *ant_service = view->get_plugin <ant::Service> ();
tl_assert (ant_service != 0); tl_assert (ant_service != 0);
@ -989,7 +989,7 @@ gsi::Class<AnnotationRef> decl_Annotation (decl_BasicAnnotation, "lay", "Annotat
); );
static static
gsi::ClassExt<lay::LayoutView> layout_view_decl ( gsi::ClassExt<lay::LayoutViewBase> layout_view_decl (
gsi::method_ext ("clear_annotations", &gsi::clear_annotations, gsi::method_ext ("clear_annotations", &gsi::clear_annotations,
"@brief Clears all annotations on this view" "@brief Clears all annotations on this view"
) + ) +
@ -1123,7 +1123,7 @@ private:
// extend the layout view by "edtService" specific methods // 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> (); 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) { 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; 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> ()); return AnnotationSelectionIterator (view->get_plugins <ant::Service> ());
} }
static static
gsi::ClassExt<lay::LayoutView> layout_view_decl2 ( gsi::ClassExt<lay::LayoutViewBase> layout_view_decl2 (
gsi::method_ext ("has_annotation_selection?", &has_annotation_selection, gsi::method_ext ("has_annotation_selection?", &has_annotation_selection,
"@brief Returns true, if annotations (rulers) are selected in this view" "@brief Returns true, if annotations (rulers) are selected in this view"
"\n" "\n"

View File

@ -77,10 +77,10 @@ SOURCES += \
gsiDeclEdt.cc \ gsiDeclEdt.cc \
edtDistribute.cc \ edtDistribute.cc \
INCLUDEPATH += $$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 $$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") { !equals(HAVE_QT, "0") {

View File

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

View File

@ -1333,7 +1333,7 @@ MainService::cm_convert_to_pcell ()
if (any_non_converted) { if (any_non_converted) {
tl::warn << tl::to_string (tr ("Some of the shapes could not be converted to the desired PCell")); tl::warn << tl::to_string (tr ("Some of the shapes could not be converted to the desired PCell"));
#if defined(HAVE_QT) #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 #endif
} }
@ -1812,7 +1812,7 @@ db::DVector compute_alignment_vector (const db::DBox &prim_box, const db::DBox &
} }
static 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; db::DBox box;
@ -2385,7 +2385,7 @@ class NewObjectsSelection
: public db::ClipboardDataInsertReceiver : public db::ClipboardDataInsertReceiver
{ {
public: 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) : m_cv_index (cv_index), m_topcell (topcell)
{ {
mp_polygon_service = view->get_plugin <edt::PolygonService> (); mp_polygon_service = view->get_plugin <edt::PolygonService> ();

View File

@ -28,7 +28,7 @@
#include "imgService.h" #include "imgService.h"
#include "imgStream.h" #include "imgStream.h"
#include "dbTilingProcessor.h" #include "dbTilingProcessor.h"
#include "layLayoutView.h" #include "layLayoutViewBase.h"
namespace gsi namespace gsi
{ {
@ -299,8 +299,8 @@ gsi::Class<img::DataMapping> decl_ImageDataMapping ("lay", "ImageDataMapping",
class ImageRef; class ImageRef;
static void replace_image_base (lay::LayoutView *view, size_t id, ImageRef &new_obj); static void replace_image_base (lay::LayoutViewBase *view, size_t id, ImageRef &new_obj);
static void erase_image_base (lay::LayoutView *view, size_t id); 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 * @brief An extension of the img::Object that provides "live" updates of the view
@ -321,7 +321,7 @@ public:
// .. nothing yet .. // .. 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) : img::Object (other), mp_view (view), dm_update_view (this, &ImageRef::do_update_view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -373,10 +373,10 @@ public:
template <class T> template <class T>
ImageRef transformed (const T &t) const 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); mp_view.reset (view);
} }
@ -403,7 +403,7 @@ protected:
} }
private: private:
tl::weak_ptr<lay::LayoutView> mp_view; tl::weak_ptr<lay::LayoutViewBase> mp_view;
tl::DeferredMethod<ImageRef> dm_update_view; tl::DeferredMethod<ImageRef> dm_update_view;
}; };
@ -1073,7 +1073,7 @@ public:
// .. nothing yet .. // .. nothing yet ..
} }
ImageRefIterator (const img::ImageIterator &iter, lay::LayoutView *view) ImageRefIterator (const img::ImageIterator &iter, lay::LayoutViewBase *view)
: img::ImageIterator (iter), mp_view (view) : img::ImageIterator (iter), mp_view (view)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -1081,14 +1081,14 @@ public:
reference operator* () const 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: 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (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); 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (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); 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 ()) { 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."))); 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) { if (img_service) {
@ -1181,28 +1181,28 @@ static ImageRef get_image (lay::LayoutView *view, size_t id)
return ImageRef (); 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0); tl_assert (img_service != 0);
return img_service->images_changed_event; 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0); tl_assert (img_service != 0);
return img_service->image_selection_changed_event; 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
tl_assert (img_service != 0); tl_assert (img_service != 0);
return img_service->image_changed_event; 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> (); img::Service *img_service = view->get_plugin <img::Service> ();
if (img_service) { if (img_service) {
@ -1213,7 +1213,7 @@ static ImageRefIterator begin_images (lay::LayoutView *view)
} }
static static
gsi::ClassExt<lay::LayoutView> layout_view_decl ( gsi::ClassExt<lay::LayoutViewBase> layout_view_decl (
gsi::method_ext ("clear_images", &gsi::clear_images, gsi::method_ext ("clear_images", &gsi::clear_images,
"@brief Clear all images on this view" "@brief Clear all images on this view"
) + ) +
@ -1342,7 +1342,7 @@ private:
// extend the layout view by "edtService" specific methods // 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> (); std::vector<img::Service *> img = view->get_plugins <img::Service> ();
for (std::vector<img::Service *>::const_iterator s = img.begin (); s != img.end (); ++s) { 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; 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> ()); return SelectionIterator (view->get_plugins <img::Service> ());
} }
static static
gsi::ClassExt<lay::LayoutView> layout_view_decl2 ( gsi::ClassExt<lay::LayoutViewBase> layout_view_decl2 (
gsi::method_ext ("has_image_selection?", &has_image_selection, gsi::method_ext ("has_image_selection?", &has_image_selection,
"@brief Returns true, if images are selected in this view" "@brief Returns true, if images are selected in this view"
"\n" "\n"

View File

@ -47,7 +47,15 @@ SOURCES += \
imgForceLink.cc \ imgForceLink.cc \
imgStream.cc imgStream.cc
INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$DB_INC INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_INC $$LAYVIEW_INC $$DB_INC
DEPENDPATH += $$TL_INC $$DB_INC $$GSI_INC $$LAYBASIC_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_db 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 lay::ViewService
{ {
public: public:
LandmarkEditorService (lay::LayoutView *view, img::Object *img) LandmarkEditorService (lay::LayoutViewBase *view, img::Object *img)
: lay::ViewService (view->view_object_widget ()), : lay::ViewService (view->view_object_widget ()),
mp_image (img), m_selected (-1), m_dragging (false), mp_image (img), m_selected (-1), m_dragging (false),
m_mode (LandmarksDialog::None) m_mode (LandmarksDialog::None)

View File

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

View File

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

View File

@ -203,7 +203,7 @@ public:
typedef lay::AnnotationShapes::iterator obj_iterator; 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 }; 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 (); ~Service ();
@ -434,7 +434,7 @@ public:
/** /**
* @brief Access to the view object * @brief Access to the view object
*/ */
lay::LayoutView *view () const lay::LayoutViewBase *view () const
{ {
return mp_view; return mp_view;
} }
@ -482,7 +482,7 @@ public:
private: private:
// The layout view that the image service is attached to // 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 // The view objects representing the selection and the moved images in move mode
std::vector<View *> m_selected_image_views; std::vector<View *> m_selected_image_views;

View File

@ -56,7 +56,6 @@ HEADERS = \
laySignalHandler.h \ laySignalHandler.h \
layLibraryController.h \ layLibraryController.h \
layFontController.h \ layFontController.h \
layNativePlugin.h \
laySystemPaths.h \ laySystemPaths.h \
layMacroEditorSetupPage.h \ layMacroEditorSetupPage.h \
layPasswordDialog.h \ layPasswordDialog.h \
@ -164,7 +163,6 @@ SOURCES = \
laySignalHandler.cc \ laySignalHandler.cc \
layLibraryController.cc \ layLibraryController.cc \
layFontController.cc \ layFontController.cc \
layNativePlugin.cc \
laySystemPaths.cc \ laySystemPaths.cc \
layMacroEditorSetupPage.cc \ layMacroEditorSetupPage.cc \
layPasswordDialog.cc \ layPasswordDialog.cc \
@ -179,9 +177,9 @@ RESOURCES = layBuildInMacros.qrc \
laySaltTemplates.qrc \ laySaltTemplates.qrc \
layDRCLVSHelpResources.qrc layDRCLVSHelpResources.qrc
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC 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 $$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_ant -lklayout_img -lklayout_edt 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 { win32 {
# for stack trace support: # 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), : lay::Browser (root, vw),
Ui::ClipDialog () Ui::ClipDialog ()
{ {

View File

@ -40,7 +40,7 @@ class ClipDialog
Q_OBJECT Q_OBJECT
public: public:
ClipDialog (lay::Dispatcher *root, lay::LayoutView *view); ClipDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
~ClipDialog (); ~ClipDialog ();
public slots: 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 ()), : QDialog (view->widget ()),
lay::Plugin (main), lay::Plugin (main),
Ui::FillDialog (), Ui::FillDialog (),

View File

@ -76,7 +76,7 @@ class LAY_PUBLIC FillDialog
Q_OBJECT Q_OBJECT
public: public:
FillDialog (lay::Dispatcher *root, lay::LayoutView *view); FillDialog (lay::Dispatcher *root, lay::LayoutViewBase *view);
~FillDialog (); ~FillDialog ();
public slots: public slots:
@ -95,7 +95,7 @@ private:
void generate_fill (const FillParameters &fp); void generate_fill (const FillParameters &fp);
FillParameters get_fill_parameters (); 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")); 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), : lay::Browser (root, view),
Ui::SearchReplaceDialog (), Ui::SearchReplaceDialog (),
mp_view (view), mp_view (view),

View File

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

View File

@ -320,7 +320,7 @@ class SearchInstanceProperties
private Ui::SearchPropertiesInstance private Ui::SearchPropertiesInstance
{ {
public: public:
SearchInstanceProperties (QStackedWidget *sw, lay::LayoutView * /*view*/, int /*cv_index*/) SearchInstanceProperties (QStackedWidget *sw, lay::LayoutViewBase * /*view*/, int /*cv_index*/)
: SearchPropertiesWidget (sw) : SearchPropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -377,7 +377,7 @@ class SearchShapeProperties
protected Ui::SearchPropertiesShape protected Ui::SearchPropertiesShape
{ {
public: public:
SearchShapeProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) SearchShapeProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw) : SearchPropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -449,7 +449,7 @@ class SearchPolygonProperties
: public SearchShapeProperties : public SearchShapeProperties
{ {
public: public:
SearchPolygonProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) SearchPolygonProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchShapeProperties (sw, view, cv_index) : SearchShapeProperties (sw, view, cv_index)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -518,7 +518,7 @@ class SearchBoxProperties
private Ui::SearchPropertiesBox private Ui::SearchPropertiesBox
{ {
public: public:
SearchBoxProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) SearchBoxProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw) : SearchPropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -593,7 +593,7 @@ class SearchPathProperties
private Ui::SearchPropertiesPath private Ui::SearchPropertiesPath
{ {
public: public:
SearchPathProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) SearchPathProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw) : SearchPropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -666,7 +666,7 @@ class SearchTextProperties
private Ui::SearchPropertiesText private Ui::SearchPropertiesText
{ {
public: public:
SearchTextProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) SearchTextProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: SearchPropertiesWidget (sw) : SearchPropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -748,7 +748,7 @@ class ReplaceInstanceProperties
private Ui::ReplacePropertiesInstance private Ui::ReplacePropertiesInstance
{ {
public: public:
ReplaceInstanceProperties (QStackedWidget *sw, lay::LayoutView * /*view*/, int /*cv_index*/) ReplaceInstanceProperties (QStackedWidget *sw, lay::LayoutViewBase * /*view*/, int /*cv_index*/)
: ReplacePropertiesWidget (sw) : ReplacePropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -787,7 +787,7 @@ class ReplaceShapeProperties
protected Ui::ReplacePropertiesShape protected Ui::ReplacePropertiesShape
{ {
public: public:
ReplaceShapeProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) ReplaceShapeProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw) : ReplacePropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -828,7 +828,7 @@ class ReplacePolygonProperties
: public ReplaceShapeProperties : public ReplaceShapeProperties
{ {
public: public:
ReplacePolygonProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) ReplacePolygonProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplaceShapeProperties (sw, view, cv_index) : ReplaceShapeProperties (sw, view, cv_index)
{ {
// .. nothing yet .. // .. nothing yet ..
@ -867,7 +867,7 @@ class ReplaceBoxProperties
private Ui::ReplacePropertiesBox private Ui::ReplacePropertiesBox
{ {
public: public:
ReplaceBoxProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) ReplaceBoxProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw) : ReplacePropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -919,7 +919,7 @@ class ReplacePathProperties
private Ui::ReplacePropertiesPath private Ui::ReplacePropertiesPath
{ {
public: public:
ReplacePathProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) ReplacePathProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw) : ReplacePropertiesWidget (sw)
{ {
setupUi (this); setupUi (this);
@ -966,7 +966,7 @@ class ReplaceTextProperties
private Ui::ReplacePropertiesText private Ui::ReplacePropertiesText
{ {
public: public:
ReplaceTextProperties (QStackedWidget *sw, lay::LayoutView *view, int cv_index) ReplaceTextProperties (QStackedWidget *sw, lay::LayoutViewBase *view, int cv_index)
: ReplacePropertiesWidget (sw) : ReplacePropertiesWidget (sw)
{ {
setupUi (this); 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) { while (sw->count () > 0) {
sw->removeWidget (sw->widget (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)); 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) { while (sw->count () > 0) {
sw->removeWidget (sw->widget (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 * @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 * @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 * @brief Get an object id from a page index

View File

@ -10,8 +10,8 @@ SOURCES = \
laySalt.cc \ laySalt.cc \
laySessionTests.cc laySessionTests.cc
INCLUDEPATH += $$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 $$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) #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 #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 #endif
gsi::constant ("LV_NoLayers", (unsigned int) lay::LayoutViewBase::LV_NoLayers, 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" "@brief With this option, no layers view will be provided (see \\layer_control_frame)\n"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,9 +3,9 @@ include($$PWD/../klayout.pri)
TEMPLATE = lib TEMPLATE = lib
INCLUDEPATH += $$DB_INC $$TL_INC $$GSI_INC $$LAYBASIC_INC $$LAY_INC $$PWD/common 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 $$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_lay LIBS += -L$$DESTDIR/.. -lklayout_db -lklayout_tl -lklayout_gsi -lklayout_laybasic -lklayout_layui -lklayout_layview -lklayout_lay -lklayout_lay
DEFINES += MAKE_LAY_PLUGIN_LIBRARY DEFINES += MAKE_LAY_PLUGIN_LIBRARY

View File

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

View File

@ -62,7 +62,7 @@ BooleanOptionsDialog::cv_changed (int)
} }
bool 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; mp_view = view;
@ -183,7 +183,7 @@ SizingOptionsDialog::cv_changed (int)
} }
bool 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; mp_view = view;
@ -309,7 +309,7 @@ MergeOptionsDialog::cv_changed (int)
} }
bool 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; mp_view = view;

View File

@ -37,7 +37,7 @@ namespace lay
{ {
class CellView; class CellView;
class LayoutView; class LayoutViewBase;
/** /**
* @brief The boolean operation options * @brief The boolean operation options
@ -52,7 +52,7 @@ public:
BooleanOptionsDialog (QWidget *parent); BooleanOptionsDialog (QWidget *parent);
virtual ~BooleanOptionsDialog (); 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: public slots:
void cv_changed (int); void cv_changed (int);
@ -60,7 +60,7 @@ public slots:
private: private:
virtual void accept (); virtual void accept ();
lay::LayoutView *mp_view; lay::LayoutViewBase *mp_view;
}; };
/** /**
@ -76,7 +76,7 @@ public:
SizingOptionsDialog (QWidget *parent); SizingOptionsDialog (QWidget *parent);
virtual ~SizingOptionsDialog (); 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: public slots:
void cv_changed (int); void cv_changed (int);
@ -84,7 +84,7 @@ public slots:
private: private:
virtual void accept (); virtual void accept ();
lay::LayoutView *mp_view; lay::LayoutViewBase *mp_view;
}; };
/** /**
@ -100,7 +100,7 @@ public:
MergeOptionsDialog (QWidget *parent); MergeOptionsDialog (QWidget *parent);
virtual ~MergeOptionsDialog (); 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: public slots:
void cv_changed (int); void cv_changed (int);
@ -108,7 +108,7 @@ public slots:
private: private:
virtual void accept (); virtual void accept ();
lay::LayoutView *mp_view; lay::LayoutViewBase *mp_view;
}; };
} }

View File

@ -26,7 +26,7 @@
#include "layPlugin.h" #include "layPlugin.h"
#include "layTipDialog.h" #include "layTipDialog.h"
#include "layLayoutView.h" #include "layLayoutViewBase.h"
#include "dbShapeProcessor.h" #include "dbShapeProcessor.h"
@ -39,7 +39,7 @@ class BooleanOperationsPlugin
: public lay::Plugin : public lay::Plugin
{ {
public: public:
BooleanOperationsPlugin (Plugin *parent, lay::LayoutView *view) BooleanOperationsPlugin (Plugin *parent, lay::LayoutViewBase *view)
: lay::Plugin (parent), mp_view (view) : lay::Plugin (parent), mp_view (view)
{ {
m_boolean_cva = -1; 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)) { 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 (); 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)) { 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 (); 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)) { 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 (); mp_view->cancel ();
@ -445,7 +445,7 @@ public:
} }
private: private:
lay::LayoutView *mp_view; lay::LayoutViewBase *mp_view;
int m_boolean_cva, m_boolean_cvb, m_boolean_cvr; int m_boolean_cva, m_boolean_cvb, m_boolean_cvr;
int m_boolean_layera, m_boolean_layerb, m_boolean_layerr; int m_boolean_layera, m_boolean_layerb, m_boolean_layerr;
int m_boolean_hier_mode, m_boolean_mode; int m_boolean_hier_mode, m_boolean_mode;

View File

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

View File

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

View File

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

View File

@ -53,7 +53,7 @@ namespace lay
// ----------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------
// NetTracerDialog implementation // 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::Browser (root, view, "net_tracer_dialog"),
lay::ViewService (view->view_object_widget ()), lay::ViewService (view->view_object_widget ()),
m_cv_index (0), m_cv_index (0),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -34,7 +34,7 @@ namespace Ui
namespace lay namespace lay
{ {
class LayoutView; class LayoutViewBase;
} }
namespace lay namespace lay
@ -61,7 +61,7 @@ public:
XORToolDialog (QWidget *parent); XORToolDialog (QWidget *parent);
~XORToolDialog (); ~XORToolDialog ();
int exec_dialog (lay::LayoutView *view); int exec_dialog (lay::LayoutViewBase *view);
protected: protected:
void accept (); void accept ();
@ -74,7 +74,7 @@ protected slots:
private: private:
Ui::XORToolDialog *mp_ui; 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 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 $$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 $$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") { !equals(HAVE_QT, "0") {
INCLUDEPATH += $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC INCLUDEPATH += $$LAYUI_INC $$LAY_INC
DEPENDPATH += $$LYM_INC $$LAYBASIC_INC $$LAY_INC $$ANT_INC $$IMG_INC $$EDT_INC DEPENDPATH += $$LAYUI_INC $$LAY_INC
LIBS += -L$$DESTDIR -lklayout_lym -lklayout_laybasic -lklayout_lay -lklayout_ant -lklayout_img -lklayout_edt LIBS += -L$$DESTDIR -lklayout_layui -lklayout_lay
# 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
equals(HAVE_QTBINDINGS, "1") { equals(HAVE_QTBINDINGS, "1") {
LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtCore LIBS += -lklayout_qtbasic -lklayout_QtGui -lklayout_QtCore