mirror of https://github.com/KLayout/klayout.git
WIP: preparing integration of editor options pages and config pages into plugin API
This commit is contained in:
parent
ac9a589d6f
commit
acfc2aae09
|
|
@ -24,38 +24,180 @@
|
||||||
#include "gsiDecl.h"
|
#include "gsiDecl.h"
|
||||||
#include "gsiDeclBasic.h"
|
#include "gsiDeclBasic.h"
|
||||||
#include "layPlugin.h"
|
#include "layPlugin.h"
|
||||||
|
#include "layPluginConfigPage.h"
|
||||||
|
#include "layEditorOptionsPage.h"
|
||||||
|
#include "layEditorOptionsPages.h"
|
||||||
#include "layViewObject.h"
|
#include "layViewObject.h"
|
||||||
#include "layLayoutViewBase.h"
|
#include "layLayoutViewBase.h"
|
||||||
#include "layCursor.h"
|
#include "layCursor.h"
|
||||||
|
|
||||||
namespace gsi
|
namespace gsi
|
||||||
{
|
{
|
||||||
class PluginFactoryBase;
|
|
||||||
class PluginBase;
|
|
||||||
|
|
||||||
// TODO: these static variables are a bad hack!
|
class PluginFactoryBase;
|
||||||
// However it's not easy to pass parameters to a C++ classes constructor in Ruby without
|
class PluginBase;
|
||||||
// compromising the capability to derive from that class (at least I have not learned how
|
|
||||||
// to create a "new" in the super class *and* allow a "new" of the derived class). Anyway,
|
#if defined(HAVE_QTBINDINGS)
|
||||||
// since PluginBase object are only allowed to be created inside the create_plugin method
|
class EditorOptionsPageImpl
|
||||||
// of the factory, this hack is a quick but dirty workaround.
|
: public lay::EditorOptionsPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
EditorOptionsPageImpl (const std::string &title, int index)
|
||||||
|
: lay::EditorOptionsPage (), m_title (title), m_index (index)
|
||||||
|
{
|
||||||
|
// .. nothing yet ..
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual std::string title () const
|
||||||
|
{
|
||||||
|
return m_title;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int order () const
|
||||||
|
{
|
||||||
|
return m_index;
|
||||||
|
}
|
||||||
|
|
||||||
|
void apply_impl (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
lay::EditorOptionsPage::apply (root);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void apply (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
if (f_apply.can_issue ()) {
|
||||||
|
f_apply.issue<EditorOptionsPageImpl, lay::Dispatcher *> (&EditorOptionsPageImpl::apply_impl, root);
|
||||||
|
} else {
|
||||||
|
EditorOptionsPageImpl::apply_impl (root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup_impl (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
lay::EditorOptionsPage::setup (root);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setup (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
if (f_setup.can_issue ()) {
|
||||||
|
f_setup.issue<EditorOptionsPageImpl, lay::Dispatcher *> (&EditorOptionsPageImpl::setup_impl, root);
|
||||||
|
} else {
|
||||||
|
EditorOptionsPageImpl::setup_impl (root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gsi::Callback f_apply;
|
||||||
|
gsi::Callback f_setup;
|
||||||
|
|
||||||
|
private:
|
||||||
|
tl::weak_ptr<lay::LayoutViewBase> mp_view;
|
||||||
|
tl::weak_ptr<lay::Dispatcher> mp_dispatcher;
|
||||||
|
std::string m_title;
|
||||||
|
int m_index;
|
||||||
|
};
|
||||||
|
|
||||||
|
EditorOptionsPageImpl *new_editor_options_page (const std::string &title, int index)
|
||||||
|
{
|
||||||
|
return new EditorOptionsPageImpl (title, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@@ methods:
|
||||||
|
// constructor new_editor_options_page
|
||||||
|
// view()
|
||||||
|
// edited()
|
||||||
|
// callback apply(dispatcher)
|
||||||
|
// callback setup(dispatcher)
|
||||||
|
// base: QWidget
|
||||||
|
|
||||||
|
class ConfigPageImpl
|
||||||
|
: public lay::ConfigPage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ConfigPageImpl (const std::string &title)
|
||||||
|
: lay::ConfigPage (0), m_title (title)
|
||||||
|
{
|
||||||
|
// .. nothing yet ..
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual std::string title () const
|
||||||
|
{
|
||||||
|
return m_title;
|
||||||
|
}
|
||||||
|
|
||||||
|
void commit_impl (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
lay::ConfigPage::commit (root);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void commit (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
if (f_commit.can_issue ()) {
|
||||||
|
f_commit.issue<ConfigPageImpl, lay::Dispatcher *> (&ConfigPageImpl::commit_impl, root);
|
||||||
|
} else {
|
||||||
|
ConfigPageImpl::commit_impl (root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup_impl (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
lay::ConfigPage::setup (root);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void setup (lay::Dispatcher *root)
|
||||||
|
{
|
||||||
|
if (f_setup.can_issue ()) {
|
||||||
|
f_setup.issue<ConfigPageImpl, lay::Dispatcher *> (&ConfigPageImpl::setup_impl, root);
|
||||||
|
} else {
|
||||||
|
ConfigPageImpl::setup_impl (root);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gsi::Callback f_commit;
|
||||||
|
gsi::Callback f_setup;
|
||||||
|
|
||||||
|
private:
|
||||||
|
tl::weak_ptr<lay::LayoutViewBase> mp_view;
|
||||||
|
tl::weak_ptr<lay::Dispatcher> mp_dispatcher;
|
||||||
|
std::string m_title;
|
||||||
|
std::string m_index;
|
||||||
|
};
|
||||||
|
|
||||||
|
ConfigPageImpl *new_config_page (const std::string &title)
|
||||||
|
{
|
||||||
|
return new ConfigPageImpl (title);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@@ methods:
|
||||||
|
// constructor new_config_page
|
||||||
|
// callback apply(dispatcher) = commit
|
||||||
|
// callback setup(dispatcher)
|
||||||
|
// base: QFrame
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// HACK: used to track if we're inside a create_plugin method and can be sure that "init" is called
|
||||||
static bool s_in_create_plugin = false;
|
static bool s_in_create_plugin = false;
|
||||||
static lay::LayoutViewBase *sp_view = 0;
|
|
||||||
static lay::Dispatcher *sp_dispatcher = 0;
|
|
||||||
|
|
||||||
class PluginBase
|
class PluginBase
|
||||||
: public lay::Plugin, public lay::ViewService
|
: public lay::Plugin, public lay::ViewService
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PluginBase ()
|
PluginBase ()
|
||||||
: lay::Plugin (sp_dispatcher), lay::ViewService (sp_view ? sp_view->canvas () : 0),
|
: lay::Plugin (), lay::ViewService (),
|
||||||
mp_view (sp_view), mp_dispatcher (sp_dispatcher)
|
mp_view (0), mp_dispatcher (0)
|
||||||
{
|
{
|
||||||
if (! s_in_create_plugin) {
|
if (! s_in_create_plugin) {
|
||||||
throw tl::Exception (tl::to_string (tr ("A PluginBase object can only be created in the PluginFactory's create_plugin method")));
|
throw tl::Exception (tl::to_string (tr ("A PluginBase object can only be created in the PluginFactory's create_plugin method")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void init (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
|
{
|
||||||
|
mp_view = view;
|
||||||
|
mp_dispatcher = dispatcher;
|
||||||
|
lay::Plugin::init (dispatcher);
|
||||||
|
lay::ViewService::init (view ? view->canvas () : 0);
|
||||||
|
}
|
||||||
|
|
||||||
void grab_mouse ()
|
void grab_mouse ()
|
||||||
{
|
{
|
||||||
if (ui ()) {
|
if (ui ()) {
|
||||||
|
|
@ -282,6 +424,18 @@ public:
|
||||||
return mp_dispatcher.get ();
|
return mp_dispatcher.get ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_QTBINDINGS)
|
||||||
|
std::vector<lay::EditorOptionsPage *> editor_option_pages ()
|
||||||
|
{
|
||||||
|
lay::EditorOptionsPages *eo_pages = view ()->editor_options_pages ();
|
||||||
|
if (!eo_pages) {
|
||||||
|
return std::vector<lay::EditorOptionsPage *> ();
|
||||||
|
} else {
|
||||||
|
return eo_pages->pages ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
gsi::Callback f_menu_activated;
|
gsi::Callback f_menu_activated;
|
||||||
gsi::Callback f_configure;
|
gsi::Callback f_configure;
|
||||||
gsi::Callback f_config_finalize;
|
gsi::Callback f_config_finalize;
|
||||||
|
|
@ -416,8 +570,79 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_QTBINDINGS)
|
||||||
|
std::vector<EditorOptionsPageImpl *> get_editor_options_pages_impl () const
|
||||||
|
{
|
||||||
|
return std::vector<EditorOptionsPageImpl *> ();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> &pages_out, lay::LayoutViewBase *view, lay::Dispatcher *dispatcher) const
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
|
||||||
|
std::vector<EditorOptionsPageImpl *> pages;
|
||||||
|
if (f_get_editor_options_pages.can_issue ()) {
|
||||||
|
pages = f_get_editor_options_pages.issue<PluginFactoryBase, std::vector<EditorOptionsPageImpl *> > (&PluginFactoryBase::get_editor_options_pages_impl);
|
||||||
|
} else {
|
||||||
|
pages = get_editor_options_pages_impl ();
|
||||||
|
}
|
||||||
|
|
||||||
|
pages_out.clear ();
|
||||||
|
for (auto i = pages.begin (); i != pages.end (); ++i) {
|
||||||
|
if (*i) {
|
||||||
|
(*i)->init (view, dispatcher);
|
||||||
|
pages_out.push_back (*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (tl::Exception &ex) {
|
||||||
|
tl::error << ex.msg ();
|
||||||
|
} catch (std::exception &ex) {
|
||||||
|
tl::error << ex.what ();
|
||||||
|
} catch (...) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<ConfigPageImpl *> get_config_pages_impl () const
|
||||||
|
{
|
||||||
|
return std::vector<ConfigPageImpl *> ();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual std::vector<std::pair <std::string, lay::ConfigPage *> > config_pages (QWidget *parent) const
|
||||||
|
{
|
||||||
|
std::vector<std::pair <std::string, lay::ConfigPage *> > pages_out;
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
std::vector<ConfigPageImpl *> pages;
|
||||||
|
|
||||||
|
if (f_config_pages.can_issue ()) {
|
||||||
|
pages = f_config_pages.issue<PluginFactoryBase, std::vector<ConfigPageImpl *> > (&PluginFactoryBase::get_config_pages_impl);
|
||||||
|
} else {
|
||||||
|
pages = get_config_pages_impl ();
|
||||||
|
}
|
||||||
|
|
||||||
|
pages_out.clear ();
|
||||||
|
for (auto i = pages.begin (); i != pages.end (); ++i) {
|
||||||
|
if (*i) {
|
||||||
|
(*i)->setParent (parent);
|
||||||
|
pages_out.push_back (std::make_pair ((*i)->title (), *i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (tl::Exception &ex) {
|
||||||
|
tl::error << ex.msg ();
|
||||||
|
} catch (std::exception &ex) {
|
||||||
|
tl::error << ex.what ();
|
||||||
|
} catch (...) {
|
||||||
|
}
|
||||||
|
|
||||||
|
return pages_out;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
|
virtual lay::Plugin *create_plugin (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
|
||||||
{
|
{
|
||||||
if (f_create_plugin.can_issue ()) {
|
if (f_create_plugin.can_issue ()) {
|
||||||
return create_plugin_gsi (manager, root, view);
|
return create_plugin_gsi (manager, root, view);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -427,22 +652,25 @@ public:
|
||||||
|
|
||||||
virtual gsi::PluginBase *create_plugin_gsi (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
|
virtual gsi::PluginBase *create_plugin_gsi (db::Manager *manager, lay::Dispatcher *root, lay::LayoutViewBase *view) const
|
||||||
{
|
{
|
||||||
// TODO: this is a hack. See notes above at s_in_create_plugin
|
|
||||||
s_in_create_plugin = true;
|
s_in_create_plugin = true;
|
||||||
sp_view = view;
|
|
||||||
sp_dispatcher = root;
|
|
||||||
gsi::PluginBase *ret = 0;
|
gsi::PluginBase *ret = 0;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
ret = f_create_plugin.issue<PluginFactoryBase, gsi::PluginBase *, db::Manager *, lay::Dispatcher *, lay::LayoutViewBase *> (&PluginFactoryBase::create_plugin_gsi, manager, root, view);
|
ret = f_create_plugin.issue<PluginFactoryBase, gsi::PluginBase *, db::Manager *, lay::Dispatcher *, lay::LayoutViewBase *> (&PluginFactoryBase::create_plugin_gsi, manager, root, view);
|
||||||
s_in_create_plugin = false;
|
if (ret) {
|
||||||
sp_view = 0;
|
ret->init (view, root);
|
||||||
sp_dispatcher = 0;
|
}
|
||||||
|
|
||||||
|
} catch (tl::Exception &ex) {
|
||||||
|
tl::error << ex.msg ();
|
||||||
|
} catch (std::exception &ex) {
|
||||||
|
tl::error << ex.what ();
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
s_in_create_plugin = false;
|
|
||||||
sp_view = 0;
|
|
||||||
sp_dispatcher = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s_in_create_plugin = false;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -512,6 +740,8 @@ public:
|
||||||
gsi::Callback f_configure;
|
gsi::Callback f_configure;
|
||||||
gsi::Callback f_config_finalize;
|
gsi::Callback f_config_finalize;
|
||||||
gsi::Callback f_menu_activated;
|
gsi::Callback f_menu_activated;
|
||||||
|
gsi::Callback f_get_editor_options_pages;
|
||||||
|
gsi::Callback f_config_pages;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<std::pair<std::string, std::string> > m_options;
|
std::vector<std::pair<std::string, std::string> > m_options;
|
||||||
|
|
@ -521,6 +751,12 @@ private:
|
||||||
tl::RegisteredClass <lay::PluginDeclaration> *mp_registration;
|
tl::RegisteredClass <lay::PluginDeclaration> *mp_registration;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// @@@
|
||||||
|
#if defined(HAVE_QTBINDINGS)
|
||||||
|
// get_editor_options_pages -> "create_editor_option_pages"
|
||||||
|
// config_pages -> "create_config_pages"
|
||||||
|
#endif
|
||||||
|
|
||||||
Class<gsi::PluginFactoryBase> decl_PluginFactory ("lay", "PluginFactory",
|
Class<gsi::PluginFactoryBase> decl_PluginFactory ("lay", "PluginFactory",
|
||||||
method ("register", &PluginFactoryBase::register_gsi, gsi::arg ("position"), gsi::arg ("name"), gsi::arg ("title"),
|
method ("register", &PluginFactoryBase::register_gsi, gsi::arg ("position"), gsi::arg ("name"), gsi::arg ("title"),
|
||||||
"@brief Registers the plugin factory\n"
|
"@brief Registers the plugin factory\n"
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,20 @@ EditorOptionsPage::EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher
|
||||||
attach_events ();
|
attach_events ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EditorOptionsPage::EditorOptionsPage ()
|
||||||
|
: QWidget (0), mp_owner (0), m_active (true), mp_plugin_declaration (0), mp_dispatcher (0), mp_view (0)
|
||||||
|
{
|
||||||
|
// .. nothing here -> call init to set view and dispatcher
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EditorOptionsPage::init (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
|
{
|
||||||
|
mp_view = view;
|
||||||
|
mp_dispatcher = dispatcher;
|
||||||
|
attach_events ();
|
||||||
|
}
|
||||||
|
|
||||||
EditorOptionsPage::~EditorOptionsPage ()
|
EditorOptionsPage::~EditorOptionsPage ()
|
||||||
{
|
{
|
||||||
set_owner (0);
|
set_owner (0);
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#ifndef HDR_layEditorOptionsPage
|
#ifndef HDR_layEditorOptionsPage
|
||||||
#define HDR_layEditorOptionsPage
|
#define HDR_layEditorOptionsPage
|
||||||
|
|
||||||
#include "layuiCommon.h"
|
#include "laybasicCommon.h"
|
||||||
|
|
||||||
#include "tlObject.h"
|
#include "tlObject.h"
|
||||||
|
|
||||||
|
|
@ -44,13 +44,14 @@ class EditorOptionsPages;
|
||||||
/**
|
/**
|
||||||
* @brief The base class for a object properties page
|
* @brief The base class for a object properties page
|
||||||
*/
|
*/
|
||||||
class LAYUI_PUBLIC EditorOptionsPage
|
class LAYBASIC_PUBLIC EditorOptionsPage
|
||||||
: public QWidget, public tl::Object
|
: public QWidget, public tl::Object
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
||||||
|
EditorOptionsPage ();
|
||||||
virtual ~EditorOptionsPage ();
|
virtual ~EditorOptionsPage ();
|
||||||
|
|
||||||
virtual std::string title () const = 0;
|
virtual std::string title () const = 0;
|
||||||
|
|
@ -66,13 +67,8 @@ public:
|
||||||
const lay::PluginDeclaration *plugin_declaration () const { return mp_plugin_declaration; }
|
const lay::PluginDeclaration *plugin_declaration () const { return mp_plugin_declaration; }
|
||||||
void set_plugin_declaration (const lay::PluginDeclaration *pd) { mp_plugin_declaration = pd; }
|
void set_plugin_declaration (const lay::PluginDeclaration *pd) { mp_plugin_declaration = pd; }
|
||||||
|
|
||||||
protected slots:
|
void init (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
||||||
void edited ()
|
|
||||||
{
|
|
||||||
apply (dispatcher ());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
|
||||||
lay::Dispatcher *dispatcher () const
|
lay::Dispatcher *dispatcher () const
|
||||||
{
|
{
|
||||||
return mp_dispatcher;
|
return mp_dispatcher;
|
||||||
|
|
@ -83,6 +79,13 @@ protected:
|
||||||
return mp_view;
|
return mp_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void edited ()
|
||||||
|
{
|
||||||
|
apply (dispatcher ());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
virtual void active_cellview_changed () { }
|
virtual void active_cellview_changed () { }
|
||||||
virtual void technology_changed (const std::string & /*tech*/) { }
|
virtual void technology_changed (const std::string & /*tech*/) { }
|
||||||
|
|
||||||
|
|
@ -27,7 +27,6 @@
|
||||||
#include "tlExceptions.h"
|
#include "tlExceptions.h"
|
||||||
#include "layPlugin.h"
|
#include "layPlugin.h"
|
||||||
#include "layLayoutViewBase.h"
|
#include "layLayoutViewBase.h"
|
||||||
#include "layQtTools.h"
|
|
||||||
|
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
@ -197,22 +196,6 @@ BEGIN_PROTECTED
|
||||||
END_PROTECTED_W (this)
|
END_PROTECTED_W (this)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Indicates an error on a line edit
|
|
||||||
|
|
||||||
template <class Value>
|
|
||||||
static void configure_from_line_edit (lay::Dispatcher *dispatcher, QLineEdit *le, const std::string &cfg_name)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
Value value = Value (0);
|
|
||||||
tl::from_string_ext (tl::to_string (le->text ()), value);
|
|
||||||
dispatcher->config_set (cfg_name, tl::to_string (value));
|
|
||||||
lay::indicate_error (le, (tl::Exception *) 0);
|
|
||||||
} catch (tl::Exception &ex) {
|
|
||||||
lay::indicate_error (le, &ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#ifndef HDR_layEditorOptionsPages
|
#ifndef HDR_layEditorOptionsPages
|
||||||
#define HDR_layEditorOptionsPages
|
#define HDR_layEditorOptionsPages
|
||||||
|
|
||||||
#include "layuiCommon.h"
|
#include "laybasicCommon.h"
|
||||||
#include "layEditorOptionsPage.h"
|
#include "layEditorOptionsPage.h"
|
||||||
|
|
||||||
#include <tlVariant.h>
|
#include <tlVariant.h>
|
||||||
|
|
@ -47,7 +47,7 @@ class Plugin;
|
||||||
/**
|
/**
|
||||||
* @brief The object properties dialog
|
* @brief The object properties dialog
|
||||||
*/
|
*/
|
||||||
class LAYUI_PUBLIC EditorOptionsPages
|
class LAYBASIC_PUBLIC EditorOptionsPages
|
||||||
: public QFrame
|
: public QFrame
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
@ -308,8 +308,23 @@ PluginDeclaration::register_plugin ()
|
||||||
// Plugin implementation
|
// Plugin implementation
|
||||||
|
|
||||||
Plugin::Plugin (Plugin *parent, bool standalone)
|
Plugin::Plugin (Plugin *parent, bool standalone)
|
||||||
: mp_parent (parent), mp_plugin_declaration (0), dm_finalize_config (this, &lay::Plugin::config_end), m_standalone (standalone)
|
: mp_parent (0), mp_plugin_declaration (0), dm_finalize_config (this, &lay::Plugin::config_end), m_standalone (false)
|
||||||
{
|
{
|
||||||
|
init (parent, standalone);
|
||||||
|
}
|
||||||
|
|
||||||
|
Plugin::Plugin ()
|
||||||
|
: mp_parent (0), mp_plugin_declaration (0), dm_finalize_config (this, &lay::Plugin::config_end), m_standalone (false)
|
||||||
|
{
|
||||||
|
// .. nothing yet (waiting for init) ..
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Plugin::init (Plugin *parent, bool standalone)
|
||||||
|
{
|
||||||
|
mp_parent = parent;
|
||||||
|
m_standalone = standalone;
|
||||||
|
|
||||||
if (! parent) {
|
if (! parent) {
|
||||||
if (! standalone) {
|
if (! standalone) {
|
||||||
// load the root with the default configuration
|
// load the root with the default configuration
|
||||||
|
|
@ -324,6 +339,7 @@ Plugin::Plugin (Plugin *parent, bool standalone)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Plugin::~Plugin ()
|
Plugin::~Plugin ()
|
||||||
{
|
{
|
||||||
if (mp_parent) {
|
if (mp_parent) {
|
||||||
|
|
|
||||||
|
|
@ -504,6 +504,18 @@ public:
|
||||||
*/
|
*/
|
||||||
Plugin (Plugin *parent, bool standalone = false);
|
Plugin (Plugin *parent, bool standalone = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The default constructor
|
||||||
|
*
|
||||||
|
* This constructor needs to be followed by init()
|
||||||
|
*/
|
||||||
|
Plugin ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialization, following the default constructor
|
||||||
|
*/
|
||||||
|
void init (Plugin *parent, bool standalone = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The destructor
|
* @brief The destructor
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -191,8 +191,15 @@ ViewObject::freeze ()
|
||||||
// ViewService implementation
|
// ViewService implementation
|
||||||
|
|
||||||
ViewService::ViewService (ViewObjectUI *widget)
|
ViewService::ViewService (ViewObjectUI *widget)
|
||||||
: mp_widget (widget), m_abs_grab (false), m_enabled (true)
|
: mp_widget (0), m_abs_grab (false), m_enabled (true)
|
||||||
{
|
{
|
||||||
|
init (widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ViewService::init (ViewObjectUI *widget)
|
||||||
|
{
|
||||||
|
mp_widget = widget;
|
||||||
if (widget) {
|
if (widget) {
|
||||||
widget->register_service (this);
|
widget->register_service (this);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,11 @@ public:
|
||||||
*/
|
*/
|
||||||
ViewService (ViewObjectUI *widget = 0);
|
ViewService (ViewObjectUI *widget = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Initialization, can follow default constructor
|
||||||
|
*/
|
||||||
|
void init (ViewObjectUI *widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Destructor
|
* @brief Destructor
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,8 @@ SOURCES += \
|
||||||
gsiDeclLayTlAdded.cc \
|
gsiDeclLayTlAdded.cc \
|
||||||
gsiDeclLayRdbAdded.cc \
|
gsiDeclLayRdbAdded.cc \
|
||||||
layAbstractMenu.cc \
|
layAbstractMenu.cc \
|
||||||
|
layEditorOptionsPage.cc \
|
||||||
|
layEditorOptionsPages.cc \
|
||||||
layLayoutViewConfig.cc \
|
layLayoutViewConfig.cc \
|
||||||
layMargin.cc \
|
layMargin.cc \
|
||||||
laybasicForceLink.cc \
|
laybasicForceLink.cc \
|
||||||
|
|
@ -87,6 +89,8 @@ SOURCES += \
|
||||||
layUtils.cc \
|
layUtils.cc \
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
layEditorOptionsPage.h \
|
||||||
|
layEditorOptionsPages.h \
|
||||||
layMargin.h \
|
layMargin.h \
|
||||||
laybasicConfig.h \
|
laybasicConfig.h \
|
||||||
laybasicForceLink.h \
|
laybasicForceLink.h \
|
||||||
|
|
|
||||||
|
|
@ -104,8 +104,6 @@ SOURCES = \
|
||||||
layEditStippleWidget.cc \
|
layEditStippleWidget.cc \
|
||||||
layEditStipplesForm.cc \
|
layEditStipplesForm.cc \
|
||||||
layEditorOptionsFrame.cc \
|
layEditorOptionsFrame.cc \
|
||||||
layEditorOptionsPage.cc \
|
|
||||||
layEditorOptionsPages.cc \
|
|
||||||
layFileDialog.cc \
|
layFileDialog.cc \
|
||||||
layGenericSyntaxHighlighter.cc \
|
layGenericSyntaxHighlighter.cc \
|
||||||
layHierarchyControlPanel.cc \
|
layHierarchyControlPanel.cc \
|
||||||
|
|
@ -164,8 +162,6 @@ HEADERS = \
|
||||||
layEditStippleWidget.h \
|
layEditStippleWidget.h \
|
||||||
layEditStipplesForm.h \
|
layEditStipplesForm.h \
|
||||||
layEditorOptionsFrame.h \
|
layEditorOptionsFrame.h \
|
||||||
layEditorOptionsPage.h \
|
|
||||||
layEditorOptionsPages.h \
|
|
||||||
layFileDialog.h \
|
layFileDialog.h \
|
||||||
layGenericSyntaxHighlighter.h \
|
layGenericSyntaxHighlighter.h \
|
||||||
layHierarchyControlPanel.h \
|
layHierarchyControlPanel.h \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue