mirror of https://github.com/KLayout/klayout.git
WIP
This commit is contained in:
parent
160cceb7b5
commit
c738cf7255
|
|
@ -72,7 +72,7 @@ static void configure_from_line_edit (lay::Dispatcher *dispatcher, QLineEdit *le
|
||||||
// EditorOptionsGeneric implementation
|
// EditorOptionsGeneric implementation
|
||||||
|
|
||||||
EditorOptionsGeneric::EditorOptionsGeneric (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
EditorOptionsGeneric::EditorOptionsGeneric (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
: EditorOptionsPage (view, dispatcher)
|
: lay::EditorOptionsPageWidget (view, dispatcher)
|
||||||
{
|
{
|
||||||
mp_ui = new Ui::EditorOptionsGeneric ();
|
mp_ui = new Ui::EditorOptionsGeneric ();
|
||||||
mp_ui->setupUi (this);
|
mp_ui->setupUi (this);
|
||||||
|
|
@ -215,7 +215,7 @@ EditorOptionsGeneric::setup (lay::Dispatcher *root)
|
||||||
// EditorOptionsText implementation
|
// EditorOptionsText implementation
|
||||||
|
|
||||||
EditorOptionsText::EditorOptionsText (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
EditorOptionsText::EditorOptionsText (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
: lay::EditorOptionsPage (view, dispatcher)
|
: lay::EditorOptionsPageWidget (view, dispatcher)
|
||||||
{
|
{
|
||||||
mp_ui = new Ui::EditorOptionsText ();
|
mp_ui = new Ui::EditorOptionsText ();
|
||||||
mp_ui->setupUi (this);
|
mp_ui->setupUi (this);
|
||||||
|
|
@ -293,7 +293,7 @@ EditorOptionsText::setup (lay::Dispatcher *root)
|
||||||
// EditorOptionsPath implementation
|
// EditorOptionsPath implementation
|
||||||
|
|
||||||
EditorOptionsPath::EditorOptionsPath (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
EditorOptionsPath::EditorOptionsPath (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
: lay::EditorOptionsPage (view, dispatcher)
|
: lay::EditorOptionsPageWidget (view, dispatcher)
|
||||||
{
|
{
|
||||||
mp_ui = new Ui::EditorOptionsPath ();
|
mp_ui = new Ui::EditorOptionsPath ();
|
||||||
mp_ui->setupUi (this);
|
mp_ui->setupUi (this);
|
||||||
|
|
@ -394,7 +394,7 @@ EditorOptionsPath::setup (lay::Dispatcher *root)
|
||||||
// EditorOptionsInst implementation
|
// EditorOptionsInst implementation
|
||||||
|
|
||||||
EditorOptionsInst::EditorOptionsInst (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
EditorOptionsInst::EditorOptionsInst (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
: lay::EditorOptionsPage (view, dispatcher)
|
: lay::EditorOptionsPageWidget (view, dispatcher)
|
||||||
{
|
{
|
||||||
mp_ui = new Ui::EditorOptionsInst ();
|
mp_ui = new Ui::EditorOptionsInst ();
|
||||||
mp_ui->setupUi (this);
|
mp_ui->setupUi (this);
|
||||||
|
|
@ -687,7 +687,7 @@ EditorOptionsInst::setup (lay::Dispatcher *root)
|
||||||
// EditorOptionsInstPCellParam implementation
|
// EditorOptionsInstPCellParam implementation
|
||||||
|
|
||||||
EditorOptionsInstPCellParam::EditorOptionsInstPCellParam (lay::LayoutViewBase *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::EditorOptionsPageWidget (view, dispatcher), mp_pcell_parameters (0), mp_placeholder_label (0)
|
||||||
{
|
{
|
||||||
mp_ui = new Ui::EditorOptionsInstPCellParam ();
|
mp_ui = new Ui::EditorOptionsInstPCellParam ();
|
||||||
mp_ui->setupUi (this);
|
mp_ui->setupUi (this);
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ class PCellParametersPage;
|
||||||
* @brief The generic properties page
|
* @brief The generic properties page
|
||||||
*/
|
*/
|
||||||
class EditorOptionsGeneric
|
class EditorOptionsGeneric
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
@ -90,7 +90,7 @@ private:
|
||||||
* @brief The text properties page
|
* @brief The text properties page
|
||||||
*/
|
*/
|
||||||
class EditorOptionsText
|
class EditorOptionsText
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
EditorOptionsText (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
EditorOptionsText (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
||||||
|
|
@ -109,7 +109,7 @@ private:
|
||||||
* @brief The path properties page
|
* @brief The path properties page
|
||||||
*/
|
*/
|
||||||
class EditorOptionsPath
|
class EditorOptionsPath
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
@ -133,7 +133,7 @@ private:
|
||||||
* @brief The instance properties page
|
* @brief The instance properties page
|
||||||
*/
|
*/
|
||||||
class EditorOptionsInst
|
class EditorOptionsInst
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
@ -165,7 +165,7 @@ private:
|
||||||
* @brief The instance properties page (PCell parameters)
|
* @brief The instance properties page (PCell parameters)
|
||||||
*/
|
*/
|
||||||
class EditorOptionsInstPCellParam
|
class EditorOptionsInstPCellParam
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,13 +21,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
# include "layTipDialog.h"
|
|
||||||
# include "layEditorOptionsPages.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "layDispatcher.h"
|
#include "layDispatcher.h"
|
||||||
#include "layLayoutViewBase.h"
|
#include "layLayoutViewBase.h"
|
||||||
|
#include "layEditorOptionsPage.h"
|
||||||
|
#include "layTipDialog.h"
|
||||||
#include "edtPlugin.h"
|
#include "edtPlugin.h"
|
||||||
#include "edtConfig.h"
|
#include "edtConfig.h"
|
||||||
#include "edtService.h"
|
#include "edtService.h"
|
||||||
|
|
@ -40,10 +37,8 @@
|
||||||
#include "edtMainService.h"
|
#include "edtMainService.h"
|
||||||
#include "edtPartialService.h"
|
#include "edtPartialService.h"
|
||||||
#include "edtMoveTrackerService.h"
|
#include "edtMoveTrackerService.h"
|
||||||
#if defined(HAVE_QT)
|
#include "edtEditorOptionsPages.h"
|
||||||
# include "edtEditorOptionsPages.h"
|
#include "edtRecentConfigurationPage.h"
|
||||||
# include "edtRecentConfigurationPage.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
#if defined(HAVE_QT)
|
||||||
# include <QApplication>
|
# include <QApplication>
|
||||||
|
|
@ -65,7 +60,7 @@ edt::RecentConfigurationPage::ConfigurationDescriptor shape_cfg_descriptors[] =
|
||||||
static
|
static
|
||||||
void get_shape_editor_options_pages (std::vector<lay::EditorOptionsPage *> &ret, lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
void get_shape_editor_options_pages (std::vector<lay::EditorOptionsPage *> &ret, lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
{
|
{
|
||||||
ret.push_back (new RecentConfigurationPage (view, dispatcher, "edit-recent-shape-param",
|
ret.push_back (new edt::RecentConfigurationPage (view, dispatcher, "edit-recent-shape-param",
|
||||||
&shape_cfg_descriptors[0], &shape_cfg_descriptors[sizeof (shape_cfg_descriptors) / sizeof (shape_cfg_descriptors[0])]));
|
&shape_cfg_descriptors[0], &shape_cfg_descriptors[sizeof (shape_cfg_descriptors) / sizeof (shape_cfg_descriptors[0])]));
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
@ -94,7 +89,7 @@ void get_text_editor_options_pages (std::vector<lay::EditorOptionsPage *> &ret,
|
||||||
edt::RecentConfigurationPage::ConfigurationDescriptor (cfg_edit_text_valign, tl::to_string (tr ("Vert. align")), edt::RecentConfigurationPage::Text)
|
edt::RecentConfigurationPage::ConfigurationDescriptor (cfg_edit_text_valign, tl::to_string (tr ("Vert. align")), edt::RecentConfigurationPage::Text)
|
||||||
};
|
};
|
||||||
|
|
||||||
ret.push_back (new RecentConfigurationPage (view, dispatcher, "edit-recent-text-param",
|
ret.push_back (new edt::RecentConfigurationPage (view, dispatcher, "edit-recent-text-param",
|
||||||
&text_cfg_descriptors[0], &text_cfg_descriptors[sizeof (text_cfg_descriptors) / sizeof (text_cfg_descriptors[0])]));
|
&text_cfg_descriptors[0], &text_cfg_descriptors[sizeof (text_cfg_descriptors) / sizeof (text_cfg_descriptors[0])]));
|
||||||
ret.push_back (new edt::EditorOptionsText (view, dispatcher));
|
ret.push_back (new edt::EditorOptionsText (view, dispatcher));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,13 +48,11 @@ namespace edt
|
||||||
|
|
||||||
class PCellParametersPage;
|
class PCellParametersPage;
|
||||||
|
|
||||||
class EditorOptionsPages;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The base class for a object properties page
|
* @brief The base class for a object properties page
|
||||||
*/
|
*/
|
||||||
class EDT_PUBLIC RecentConfigurationPage
|
class EDT_PUBLIC RecentConfigurationPage
|
||||||
: public lay::EditorOptionsPage
|
: public lay::EditorOptionsPageWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|
@ -86,7 +84,7 @@ public:
|
||||||
|
|
||||||
template <class Iter>
|
template <class Iter>
|
||||||
RecentConfigurationPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher, const std::string &recent_cfg_name, Iter begin_cfg, Iter end_cfg)
|
RecentConfigurationPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher, const std::string &recent_cfg_name, Iter begin_cfg, Iter end_cfg)
|
||||||
: EditorOptionsPage (view, dispatcher), m_recent_cfg_name (recent_cfg_name), m_cfg (begin_cfg, end_cfg), dm_update_list (this, &RecentConfigurationPage::update_list)
|
: EditorOptionsPageWidget (view, dispatcher), m_recent_cfg_name (recent_cfg_name), m_cfg (begin_cfg, end_cfg), dm_update_list (this, &RecentConfigurationPage::update_list)
|
||||||
{
|
{
|
||||||
init ();
|
init ();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2024,18 +2024,17 @@ Service::handle_guiding_shape_changes (bool commit)
|
||||||
void
|
void
|
||||||
Service::commit_recent ()
|
Service::commit_recent ()
|
||||||
{
|
{
|
||||||
#if defined(HAVE_QT)
|
lay::EditorOptionsPageCollection *eo_pages = view ()->editor_options_pages ();
|
||||||
lay::EditorOptionsPages *eo_pages = view ()->editor_options_pages ();
|
if (! eo_pages) {
|
||||||
if (!eo_pages) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::vector<lay::EditorOptionsPage *>::const_iterator op = eo_pages->pages ().begin (); op != eo_pages->pages ().end (); ++op) {
|
auto pages = eo_pages->editor_options_pages ();
|
||||||
|
for (auto op = pages.begin (); op != pages.end (); ++op) {
|
||||||
if ((*op)->plugin_declaration () == plugin_declaration ()) {
|
if ((*op)->plugin_declaration () == plugin_declaration ()) {
|
||||||
(*op)->commit_recent (view ());
|
(*op)->commit_recent (view ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// -------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -25,15 +25,11 @@
|
||||||
#include "edtPathService.h"
|
#include "edtPathService.h"
|
||||||
#include "edtPropertiesPages.h"
|
#include "edtPropertiesPages.h"
|
||||||
#include "layLayoutView.h"
|
#include "layLayoutView.h"
|
||||||
|
#include "layEditorOptionsPage.h"
|
||||||
|
#include "layTipDialog.h"
|
||||||
#include "dbEdgeProcessor.h"
|
#include "dbEdgeProcessor.h"
|
||||||
#include "dbPolygonTools.h"
|
#include "dbPolygonTools.h"
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
# include "layTipDialog.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "layEditorOptionsPages.h"
|
|
||||||
|
|
||||||
namespace edt
|
namespace edt
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -76,21 +72,19 @@ ShapeEditService::config_recent_for_layer (const db::LayerProperties &lp, int cv
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
lay::EditorOptionsPageCollection *eo_pages = view ()->editor_options_pages ();
|
||||||
lay::EditorOptionsPages *eo_pages = view ()->editor_options_pages ();
|
if (! eo_pages) {
|
||||||
if (!eo_pages) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::vector<lay::EditorOptionsPage *>::const_iterator op = eo_pages->pages ().begin (); op != eo_pages->pages ().end (); ++op) {
|
auto pages = eo_pages->editor_options_pages ();
|
||||||
|
for (auto op = pages.begin (); op != pages.end (); ++op) {
|
||||||
if ((*op)->plugin_declaration () == plugin_declaration ()) {
|
if ((*op)->plugin_declaration () == plugin_declaration ()) {
|
||||||
(*op)->config_recent_for_layer (dispatcher (), lp, cv_index);
|
(*op)->config_recent_for_layer (dispatcher (), lp, cv_index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ShapeEditService::get_edit_layer ()
|
ShapeEditService::get_edit_layer ()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1722,7 +1722,7 @@ MainWindow::update_editor_options_dock ()
|
||||||
eo_visible = pd_sel->editable_enabled ();
|
eo_visible = pd_sel->editable_enabled ();
|
||||||
}
|
}
|
||||||
if (current_view () && eo_visible) {
|
if (current_view () && eo_visible) {
|
||||||
lay::EditorOptionsPages *eo_pages = current_view ()->editor_options_pages ();
|
lay::EditorOptionsPageCollection *eo_pages = current_view ()->editor_options_pages ();
|
||||||
if (! eo_pages || ! eo_pages->has_content ()) {
|
if (! eo_pages || ! eo_pages->has_content ()) {
|
||||||
eo_visible = false;
|
eo_visible = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
#include "gsiDecl.h"
|
#include "gsiDecl.h"
|
||||||
#include "gsiDeclBasic.h"
|
#include "gsiDeclBasic.h"
|
||||||
#include "gsiEnums.h"
|
#include "gsiEnums.h"
|
||||||
#include "layEditorOptionsPages.h"
|
|
||||||
#include "layCursor.h"
|
#include "layCursor.h"
|
||||||
#include "layEditorUtils.h"
|
#include "layEditorUtils.h"
|
||||||
#include "layConverters.h"
|
#include "layConverters.h"
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,6 @@
|
||||||
#include "gsiDeclLayConfigPage.h"
|
#include "gsiDeclLayConfigPage.h"
|
||||||
#include "gsiDeclLayPlugin.h"
|
#include "gsiDeclLayPlugin.h"
|
||||||
|
|
||||||
#include "layEditorOptionsPages.h"
|
|
||||||
|
|
||||||
namespace gsi
|
namespace gsi
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,8 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#include "tlInternational.h"
|
#include "tlInternational.h"
|
||||||
#include "layEditorOptionsPage.h"
|
#include "layEditorOptionsPage.h"
|
||||||
#include "layEditorOptionsPages.h"
|
|
||||||
#include "layLayoutViewBase.h"
|
#include "layLayoutViewBase.h"
|
||||||
#include "tlExceptions.h"
|
#include "tlExceptions.h"
|
||||||
|
|
||||||
|
|
@ -38,13 +35,13 @@ namespace lay
|
||||||
// EditorOptionsPage implementation
|
// EditorOptionsPage implementation
|
||||||
|
|
||||||
EditorOptionsPage::EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
EditorOptionsPage::EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
: QWidget (0), mp_owner (0), m_active (true), m_focus_page (false), m_modal_page (false), mp_plugin_declaration (0), mp_dispatcher (dispatcher), mp_view (view)
|
: mp_owner (0), m_active (true), m_focus_page (false), m_modal_page (false), m_toolbox_widget (false), mp_plugin_declaration (0), mp_dispatcher (0), mp_view (0)
|
||||||
{
|
{
|
||||||
attach_events ();
|
init (view, dispatcher);
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorOptionsPage::EditorOptionsPage ()
|
EditorOptionsPage::EditorOptionsPage ()
|
||||||
: QWidget (0), mp_owner (0), m_active (true), m_focus_page (false), m_modal_page (false), mp_plugin_declaration (0), mp_dispatcher (0), mp_view (0)
|
: mp_owner (0), m_active (true), m_focus_page (false), m_modal_page (false), m_toolbox_widget (false), mp_plugin_declaration (0), mp_dispatcher (0), mp_view (0)
|
||||||
{
|
{
|
||||||
// .. nothing yet ..
|
// .. nothing yet ..
|
||||||
}
|
}
|
||||||
|
|
@ -62,57 +59,6 @@ EditorOptionsPage::init (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
attach_events ();
|
attach_events ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
EditorOptionsPage::edited ()
|
|
||||||
{
|
|
||||||
apply (dispatcher ());
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool is_parent_widget (QWidget *w, QWidget *parent)
|
|
||||||
{
|
|
||||||
while (w && w != parent) {
|
|
||||||
w = dynamic_cast<QWidget *> (w->parent ());
|
|
||||||
}
|
|
||||||
return w == parent;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
EditorOptionsPage::focusNextPrevChild (bool next)
|
|
||||||
{
|
|
||||||
bool res = QWidget::focusNextPrevChild (next);
|
|
||||||
|
|
||||||
// Stop making the focus leave the page - this way we can jump back to the
|
|
||||||
// view on "enter"
|
|
||||||
if (res && ! is_modal_page () && ! is_parent_widget (QApplication::focusWidget (), this) && focusWidget ()) {
|
|
||||||
focusWidget ()->setFocus ();
|
|
||||||
}
|
|
||||||
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
EditorOptionsPage::keyPressEvent (QKeyEvent *event)
|
|
||||||
{
|
|
||||||
BEGIN_PROTECTED
|
|
||||||
if (! is_modal_page () && event->modifiers () == Qt::NoModifier && event->key () == Qt::Key_Return) {
|
|
||||||
// The Return key on a non-modal page commits the values and gives back the focus
|
|
||||||
// to the view
|
|
||||||
apply (dispatcher ());
|
|
||||||
view ()->set_focus ();
|
|
||||||
event->accept ();
|
|
||||||
} else {
|
|
||||||
QWidget::keyPressEvent (event);
|
|
||||||
}
|
|
||||||
END_PROTECTED
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
EditorOptionsPage::set_focus ()
|
|
||||||
{
|
|
||||||
setFocus (Qt::TabFocusReason);
|
|
||||||
QWidget::focusNextPrevChild (true);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
EditorOptionsPage::show ()
|
EditorOptionsPage::show ()
|
||||||
{
|
{
|
||||||
|
|
@ -153,7 +99,7 @@ EditorOptionsPage::on_technology_changed ()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EditorOptionsPage::set_owner (EditorOptionsPages *owner)
|
EditorOptionsPage::set_owner (EditorOptionsPageCollection *owner)
|
||||||
{
|
{
|
||||||
if (mp_owner) {
|
if (mp_owner) {
|
||||||
mp_owner->unregister_page (this);
|
mp_owner->unregister_page (this);
|
||||||
|
|
@ -172,6 +118,80 @@ EditorOptionsPage::activate (bool active)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_QT)
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------
|
||||||
|
// EditorOptionsPage implementation
|
||||||
|
|
||||||
|
EditorOptionsPageWidget::EditorOptionsPageWidget (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
|
: QWidget (0), EditorOptionsPage (view, dispatcher)
|
||||||
|
{
|
||||||
|
init (view, dispatcher);
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorOptionsPageWidget::EditorOptionsPageWidget ()
|
||||||
|
: QWidget (0), EditorOptionsPage ()
|
||||||
|
{
|
||||||
|
// .. nothing yet ..
|
||||||
|
}
|
||||||
|
|
||||||
|
EditorOptionsPageWidget::~EditorOptionsPageWidget ()
|
||||||
|
{
|
||||||
|
set_owner (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EditorOptionsPageWidget::edited ()
|
||||||
|
{
|
||||||
|
apply (dispatcher ());
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool is_parent_widget (QWidget *w, QWidget *parent)
|
||||||
|
{
|
||||||
|
while (w && w != parent) {
|
||||||
|
w = dynamic_cast<QWidget *> (w->parent ());
|
||||||
|
}
|
||||||
|
return w == parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
EditorOptionsPageWidget::focusNextPrevChild (bool next)
|
||||||
|
{
|
||||||
|
bool res = QWidget::focusNextPrevChild (next);
|
||||||
|
|
||||||
|
// Stop making the focus leave the page - this way we can jump back to the
|
||||||
|
// view on "enter"
|
||||||
|
if (res && ! is_modal_page () && ! is_parent_widget (QApplication::focusWidget (), this) && focusWidget ()) {
|
||||||
|
focusWidget ()->setFocus ();
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EditorOptionsPageWidget::keyPressEvent (QKeyEvent *event)
|
||||||
|
{
|
||||||
|
BEGIN_PROTECTED
|
||||||
|
if (! is_modal_page () && event->modifiers () == Qt::NoModifier && event->key () == Qt::Key_Return) {
|
||||||
|
// The Return key on a non-modal page commits the values and gives back the focus
|
||||||
|
// to the view
|
||||||
|
apply (dispatcher ());
|
||||||
|
view ()->set_focus ();
|
||||||
|
event->accept ();
|
||||||
|
} else {
|
||||||
|
QWidget::keyPressEvent (event);
|
||||||
|
}
|
||||||
|
END_PROTECTED
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
EditorOptionsPageWidget::set_focus ()
|
||||||
|
{
|
||||||
|
setFocus (Qt::TabFocusReason);
|
||||||
|
QWidget::focusNextPrevChild (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#ifndef HDR_layEditorOptionsPage
|
#ifndef HDR_layEditorOptionsPage
|
||||||
#define HDR_layEditorOptionsPage
|
#define HDR_layEditorOptionsPage
|
||||||
|
|
||||||
|
|
@ -29,7 +27,9 @@
|
||||||
|
|
||||||
#include "tlObject.h"
|
#include "tlObject.h"
|
||||||
|
|
||||||
#include <QWidget>
|
#if defined(HAVE_QT)
|
||||||
|
# include <QWidget>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace db
|
namespace db
|
||||||
{
|
{
|
||||||
|
|
@ -44,16 +44,34 @@ class Dispatcher;
|
||||||
class LayoutViewBase;
|
class LayoutViewBase;
|
||||||
class Plugin;
|
class Plugin;
|
||||||
class CellView;
|
class CellView;
|
||||||
class EditorOptionsPages;
|
class EditorOptionsPage;
|
||||||
|
class EditorOptionsPageWidget;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief An interface managing a collection of EditorOptionPage objects
|
||||||
|
*/
|
||||||
|
class LAYBASIC_PUBLIC EditorOptionsPageCollection
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~EditorOptionsPageCollection () { }
|
||||||
|
|
||||||
|
virtual void unregister_page (EditorOptionsPage *page) = 0;
|
||||||
|
virtual bool has_content () const = 0;
|
||||||
|
virtual bool has_modal_content () const = 0;
|
||||||
|
virtual void make_page_current (EditorOptionsPage *page) = 0;
|
||||||
|
virtual void activate_page (EditorOptionsPage *page) = 0;
|
||||||
|
virtual void activate (const lay::Plugin *plugin) = 0;
|
||||||
|
virtual bool exec_modal (EditorOptionsPage *page) = 0;
|
||||||
|
virtual std::vector<lay::EditorOptionsPage *> editor_options_pages (const lay::PluginDeclaration *plugin) = 0;
|
||||||
|
virtual std::vector<lay::EditorOptionsPage *> editor_options_pages () = 0;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The base class for a object properties page
|
* @brief The base class for a object properties page
|
||||||
*/
|
*/
|
||||||
class LAYBASIC_PUBLIC EditorOptionsPage
|
class LAYBASIC_PUBLIC EditorOptionsPage
|
||||||
: public QWidget, public tl::Object
|
: public tl::Object
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
EditorOptionsPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
||||||
EditorOptionsPage ();
|
EditorOptionsPage ();
|
||||||
|
|
@ -65,17 +83,21 @@ public:
|
||||||
virtual void setup (lay::Dispatcher * /*root*/) { }
|
virtual void setup (lay::Dispatcher * /*root*/) { }
|
||||||
virtual void commit_recent (lay::Dispatcher * /*root*/) { }
|
virtual void commit_recent (lay::Dispatcher * /*root*/) { }
|
||||||
virtual void config_recent_for_layer (lay::Dispatcher * /*root*/, const db::LayerProperties & /*lp*/, int /*cv_index*/) { }
|
virtual void config_recent_for_layer (lay::Dispatcher * /*root*/, const db::LayerProperties & /*lp*/, int /*cv_index*/) { }
|
||||||
|
virtual void set_focus () { }
|
||||||
|
virtual EditorOptionsPageWidget *widget () { return 0; }
|
||||||
|
|
||||||
bool is_focus_page () const { return m_focus_page; }
|
bool is_focus_page () const { return m_focus_page; }
|
||||||
void set_focus_page (bool f) { m_focus_page = f; }
|
void set_focus_page (bool f) { m_focus_page = f; }
|
||||||
void set_focus ();
|
|
||||||
|
|
||||||
bool is_modal_page () const { return m_modal_page; }
|
bool is_modal_page () const { return m_modal_page; }
|
||||||
void set_modal_page (bool f) { m_modal_page = f; }
|
void set_modal_page (bool f) { m_modal_page = f; }
|
||||||
|
|
||||||
|
bool is_toolbox_widget () const { return m_toolbox_widget; }
|
||||||
|
void set_toolbox_widget (bool f) { m_toolbox_widget = f; }
|
||||||
|
|
||||||
bool active () const { return m_active; }
|
bool active () const { return m_active; }
|
||||||
void activate (bool active);
|
void activate (bool active);
|
||||||
void set_owner (EditorOptionsPages *owner);
|
void set_owner (EditorOptionsPageCollection *owner);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Shows the editor page
|
* @brief Shows the editor page
|
||||||
|
|
@ -98,21 +120,15 @@ public:
|
||||||
return mp_view;
|
return mp_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected slots:
|
|
||||||
void edited ();
|
|
||||||
|
|
||||||
protected:
|
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*/) { }
|
||||||
|
|
||||||
virtual bool focusNextPrevChild (bool next);
|
|
||||||
virtual void keyPressEvent (QKeyEvent *event);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EditorOptionsPages *mp_owner;
|
EditorOptionsPageCollection *mp_owner;
|
||||||
bool m_active;
|
bool m_active;
|
||||||
bool m_focus_page;
|
bool m_focus_page;
|
||||||
bool m_modal_page;
|
bool m_modal_page, m_toolbox_widget;
|
||||||
const lay::PluginDeclaration *mp_plugin_declaration;
|
const lay::PluginDeclaration *mp_plugin_declaration;
|
||||||
lay::Dispatcher *mp_dispatcher;
|
lay::Dispatcher *mp_dispatcher;
|
||||||
lay::LayoutViewBase *mp_view;
|
lay::LayoutViewBase *mp_view;
|
||||||
|
|
@ -122,8 +138,33 @@ private:
|
||||||
void attach_events ();
|
void attach_events ();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(HAVE_QT)
|
||||||
|
/**
|
||||||
|
* @brief The base class for a object properties page
|
||||||
|
*/
|
||||||
|
class LAYBASIC_PUBLIC EditorOptionsPageWidget
|
||||||
|
: public QWidget, public EditorOptionsPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
EditorOptionsPageWidget (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher);
|
||||||
|
EditorOptionsPageWidget ();
|
||||||
|
virtual ~EditorOptionsPageWidget ();
|
||||||
|
|
||||||
|
virtual void set_focus ();
|
||||||
|
virtual EditorOptionsPageWidget *widget () { return this; }
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void edited ();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual bool focusNextPrevChild (bool next);
|
||||||
|
virtual void keyPressEvent (QKeyEvent *event);
|
||||||
|
};
|
||||||
|
#endif // defined(HAVE_QT)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // defined(HAVE_QT)
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
#include "layEditorServiceBase.h"
|
#include "layEditorServiceBase.h"
|
||||||
#include "layEditorOptionsPage.h"
|
#include "layEditorOptionsPage.h"
|
||||||
#include "layEditorOptionsPages.h"
|
|
||||||
#include "layViewport.h"
|
#include "layViewport.h"
|
||||||
#include "layLayoutViewBase.h"
|
#include "layLayoutViewBase.h"
|
||||||
#include "laybasicConfig.h"
|
#include "laybasicConfig.h"
|
||||||
|
|
@ -345,22 +344,14 @@ EditorServiceBase::activated ()
|
||||||
m_active = true;
|
m_active = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
std::vector<lay::EditorOptionsPage *>
|
std::vector<lay::EditorOptionsPage *>
|
||||||
EditorServiceBase::editor_options_pages ()
|
EditorServiceBase::editor_options_pages ()
|
||||||
{
|
{
|
||||||
lay::EditorOptionsPages *eo_pages = mp_view->editor_options_pages ();
|
lay::EditorOptionsPageCollection *eo_pages = mp_view->editor_options_pages ();
|
||||||
if (!eo_pages) {
|
if (!eo_pages) {
|
||||||
return std::vector<lay::EditorOptionsPage *> ();
|
return std::vector<lay::EditorOptionsPage *> ();
|
||||||
} else {
|
} else {
|
||||||
std::vector<lay::EditorOptionsPage *> pages;
|
return eo_pages->editor_options_pages (plugin_declaration ());
|
||||||
for (auto p = eo_pages->pages ().begin (); p != eo_pages->pages ().end (); ++p) {
|
|
||||||
if ((*p)->plugin_declaration () == plugin_declaration ()) {
|
|
||||||
pages.push_back (*p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return pages;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -402,26 +393,4 @@ EditorServiceBase::show_error (tl::Exception &ex)
|
||||||
QMessageBox::critical (ui ()->widget (), tr ("Error"), tl::to_qstring (ex.msg ()));
|
QMessageBox::critical (ui ()->widget (), tr ("Error"), tl::to_qstring (ex.msg ()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
bool
|
|
||||||
EditorServiceBase::key_event (unsigned int key, unsigned int buttons)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
EditorServiceBase::show_error (tl::Exception &ex)
|
|
||||||
{
|
|
||||||
tl::error << ex.msg ();
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
EditorServiceBase::focus_page_open ()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,6 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual int focus_page_open ();
|
virtual int focus_page_open ();
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the editor options pages associated with this plugin
|
* @brief Gets the editor options pages associated with this plugin
|
||||||
*/
|
*/
|
||||||
|
|
@ -282,7 +281,6 @@ public:
|
||||||
* @brief Gets the focus page or 0 if there is none
|
* @brief Gets the focus page or 0 if there is none
|
||||||
*/
|
*/
|
||||||
lay::EditorOptionsPage *focus_page ();
|
lay::EditorOptionsPage *focus_page ();
|
||||||
#endif
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// The marker representing the mouse cursor
|
// The marker representing the mouse cursor
|
||||||
|
|
|
||||||
|
|
@ -77,11 +77,12 @@ class MouseTracker;
|
||||||
class ZoomService;
|
class ZoomService;
|
||||||
class SelectionService;
|
class SelectionService;
|
||||||
class MoveService;
|
class MoveService;
|
||||||
|
class EditorOptionsPage;
|
||||||
|
class EditorOptionsPageCollection;
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
#if defined(HAVE_QT)
|
||||||
class LayerControlPanel;
|
class LayerControlPanel;
|
||||||
class HierarchyControlPanel;
|
class HierarchyControlPanel;
|
||||||
class EditorOptionsPages;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -351,6 +352,33 @@ public:
|
||||||
// the base implementation does nothing
|
// the base implementation does nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Removes a notification
|
||||||
|
*/
|
||||||
|
virtual void remove_notification (const LayoutViewNotification & /*notification*/)
|
||||||
|
{
|
||||||
|
// the base implementation does nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Shows or hides a toolbox widget with the given name
|
||||||
|
*
|
||||||
|
* Initially toolbox widgets are invisible. They are made visible
|
||||||
|
* by using this method.
|
||||||
|
*/
|
||||||
|
virtual void show_toolbox_widget (const std::string & /*name*/, bool /*visible*/)
|
||||||
|
{
|
||||||
|
// the base implementation does nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds an editor options page as a toolbox widget
|
||||||
|
*/
|
||||||
|
virtual void add_toolbox_widget (lay::EditorOptionsPage * /*toolbox_widget*/)
|
||||||
|
{
|
||||||
|
// the base implementation does nothing
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the explicit title string of the view
|
* @brief Gets the explicit title string of the view
|
||||||
*
|
*
|
||||||
|
|
@ -1899,15 +1927,15 @@ public:
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the editor options page
|
* @brief Gets the editor options page
|
||||||
*/
|
*/
|
||||||
virtual lay::EditorOptionsPages *editor_options_pages ()
|
virtual lay::EditorOptionsPageCollection *editor_options_pages ()
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the current viewport
|
* @brief Get the current viewport
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,13 @@
|
||||||
#include "laySelector.h"
|
#include "laySelector.h"
|
||||||
#include "laybasicConfig.h"
|
#include "laybasicConfig.h"
|
||||||
|
|
||||||
|
#if defined(HAVE_QT)
|
||||||
|
# include "layEditorOptionsPage.h"
|
||||||
|
# include <QWidget>
|
||||||
|
# include <QHBoxLayout>
|
||||||
|
# include <QLineEdit>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace lay
|
namespace lay
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -369,6 +376,47 @@ MoveService::finish ()
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if defined(HAVE_QT)
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
class MoveToolboxPage
|
||||||
|
: public lay::EditorOptionsPageWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MoveToolboxPage (lay::LayoutViewBase *view, lay::Dispatcher *dispatcher)
|
||||||
|
: lay::EditorOptionsPageWidget (view, dispatcher)
|
||||||
|
{
|
||||||
|
mp_layout = new QHBoxLayout (this);
|
||||||
|
|
||||||
|
mp_x_le = new QLineEdit (this);
|
||||||
|
mp_layout->addWidget (mp_x_le);
|
||||||
|
mp_y_le = new QLineEdit (this);
|
||||||
|
mp_layout->addWidget (mp_y_le);
|
||||||
|
mp_layout->addStretch (1);
|
||||||
|
|
||||||
|
// @@@
|
||||||
|
|
||||||
|
set_toolbox_widget (true);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual std::string title () const
|
||||||
|
{
|
||||||
|
return "Move Options";
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual int order () const
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QHBoxLayout *mp_layout;
|
||||||
|
QLineEdit *mp_x_le, *mp_y_le;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
class MoveServiceDeclaration
|
class MoveServiceDeclaration
|
||||||
: public lay::PluginDeclaration
|
: public lay::PluginDeclaration
|
||||||
{
|
{
|
||||||
|
|
@ -383,6 +431,13 @@ public:
|
||||||
{
|
{
|
||||||
return new MoveService (view);
|
return new MoveService (view);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_QT)
|
||||||
|
virtual void get_editor_options_pages (std::vector<lay::EditorOptionsPage *> &pages, lay::LayoutViewBase *view, lay::Dispatcher *dispatcher) const
|
||||||
|
{
|
||||||
|
pages.push_back (new MoveToolboxPage (view, dispatcher));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static tl::RegisteredClass<lay::PluginDeclaration> move_service_decl (new MoveServiceDeclaration (), -970, "laybasic::MoveServicePlugin");
|
static tl::RegisteredClass<lay::PluginDeclaration> move_service_decl (new MoveServiceDeclaration (), -970, "laybasic::MoveServicePlugin");
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ SOURCES += \
|
||||||
gsiDeclLayPluginFactory.cc \
|
gsiDeclLayPluginFactory.cc \
|
||||||
layAbstractMenu.cc \
|
layAbstractMenu.cc \
|
||||||
layEditorOptionsPage.cc \
|
layEditorOptionsPage.cc \
|
||||||
layEditorOptionsPages.cc \
|
|
||||||
layEditorUtils.cc \
|
layEditorUtils.cc \
|
||||||
layLayoutViewConfig.cc \
|
layLayoutViewConfig.cc \
|
||||||
layMargin.cc \
|
layMargin.cc \
|
||||||
|
|
@ -100,7 +99,6 @@ HEADERS += \
|
||||||
gsiDeclLayEditorOptionsPage.h \
|
gsiDeclLayEditorOptionsPage.h \
|
||||||
gsiDeclLayPlugin.h \
|
gsiDeclLayPlugin.h \
|
||||||
layEditorOptionsPage.h \
|
layEditorOptionsPage.h \
|
||||||
layEditorOptionsPages.h \
|
|
||||||
layEditorUtils.h \
|
layEditorUtils.h \
|
||||||
layMargin.h \
|
layMargin.h \
|
||||||
laybasicConfig.h \
|
laybasicConfig.h \
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,6 @@ SOURCES = \
|
||||||
layEditLineStylesForm.cc \
|
layEditLineStylesForm.cc \
|
||||||
layEditStippleWidget.cc \
|
layEditStippleWidget.cc \
|
||||||
layEditStipplesForm.cc \
|
layEditStipplesForm.cc \
|
||||||
layEditorOptionsFrame.cc \
|
|
||||||
layFileDialog.cc \
|
layFileDialog.cc \
|
||||||
layGenericSyntaxHighlighter.cc \
|
layGenericSyntaxHighlighter.cc \
|
||||||
layHierarchyControlPanel.cc \
|
layHierarchyControlPanel.cc \
|
||||||
|
|
@ -161,7 +160,6 @@ HEADERS = \
|
||||||
layEditLineStylesForm.h \
|
layEditLineStylesForm.h \
|
||||||
layEditStippleWidget.h \
|
layEditStippleWidget.h \
|
||||||
layEditStipplesForm.h \
|
layEditStipplesForm.h \
|
||||||
layEditorOptionsFrame.h \
|
|
||||||
layFileDialog.h \
|
layFileDialog.h \
|
||||||
layGenericSyntaxHighlighter.h \
|
layGenericSyntaxHighlighter.h \
|
||||||
layHierarchyControlPanel.h \
|
layHierarchyControlPanel.h \
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#include "layEditorOptionsFrame.h"
|
#include "layEditorOptionsFrame.h"
|
||||||
#include "layEditorOptionsPage.h"
|
#include "layEditorOptionsPage.h"
|
||||||
#include "layEditorOptionsPages.h"
|
#include "layEditorOptionsPages.h"
|
||||||
|
|
@ -64,11 +62,10 @@ EditorOptionsFrame::populate (LayoutViewBase *view)
|
||||||
delete mp_pages;
|
delete mp_pages;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_pages = new lay::EditorOptionsPages (this, prop_dialog_pages, view);
|
mp_pages = new lay::EditorOptionsPages (this, view, prop_dialog_pages);
|
||||||
layout ()->addWidget (mp_pages);
|
layout ()->addWidget (mp_pages);
|
||||||
setFocusProxy (mp_pages);
|
setFocusProxy (mp_pages);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -20,12 +20,10 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#ifndef HDR_layEditorOptionsFrame
|
#ifndef HDR_layEditorOptionsFrame
|
||||||
#define HDR_layEditorOptionsFrame
|
#define HDR_layEditorOptionsFrame
|
||||||
|
|
||||||
#include "layuiCommon.h"
|
#include "layviewCommon.h"
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
|
|
||||||
namespace lay
|
namespace lay
|
||||||
|
|
@ -34,7 +32,7 @@ namespace lay
|
||||||
class EditorOptionsPages;
|
class EditorOptionsPages;
|
||||||
class LayoutViewBase;
|
class LayoutViewBase;
|
||||||
|
|
||||||
class LAYUI_PUBLIC EditorOptionsFrame
|
class LAYVIEW_PUBLIC EditorOptionsFrame
|
||||||
: public QFrame
|
: public QFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -55,5 +53,3 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // defined(HAVE_QT)
|
|
||||||
|
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#include "tlInternational.h"
|
#include "tlInternational.h"
|
||||||
#include "layEditorOptionsPages.h"
|
#include "layEditorOptionsPages.h"
|
||||||
#include "tlExceptions.h"
|
#include "tlExceptions.h"
|
||||||
|
|
@ -51,8 +49,8 @@ struct EOPCompareOp
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
EditorOptionsPages::EditorOptionsPages (QWidget *parent, const std::vector<lay::EditorOptionsPage *> &pages, lay::Dispatcher *dispatcher)
|
EditorOptionsPages::EditorOptionsPages (QWidget *parent, lay::LayoutViewBase *view, const std::vector<lay::EditorOptionsPage *> &pages)
|
||||||
: QFrame (parent), mp_dispatcher (dispatcher)
|
: QFrame (parent), mp_view (view)
|
||||||
{
|
{
|
||||||
mp_modal_pages = new EditorOptionsModalPages (this);
|
mp_modal_pages = new EditorOptionsModalPages (this);
|
||||||
|
|
||||||
|
|
@ -63,9 +61,14 @@ EditorOptionsPages::EditorOptionsPages (QWidget *parent, const std::vector<lay::
|
||||||
mp_pages->setSizePolicy (QSizePolicy (QSizePolicy::Ignored, QSizePolicy::Ignored));
|
mp_pages->setSizePolicy (QSizePolicy (QSizePolicy::Ignored, QSizePolicy::Ignored));
|
||||||
ly1->addWidget (mp_pages);
|
ly1->addWidget (mp_pages);
|
||||||
|
|
||||||
m_pages = pages;
|
for (auto p = pages.begin (); p != pages.end (); ++p) {
|
||||||
for (std::vector <lay::EditorOptionsPage *>::const_iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
m_pages.push_back (*p);
|
||||||
(*p)->set_owner (this);
|
}
|
||||||
|
|
||||||
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
|
if (! p->is_toolbox_widget ()) {
|
||||||
|
p->set_owner (this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update (0);
|
update (0);
|
||||||
|
|
@ -91,11 +94,39 @@ EditorOptionsPages::focusInEvent (QFocusEvent * /*event*/)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tl::weak_collection <lay::EditorOptionsPage> &
|
||||||
|
EditorOptionsPages::pages () const
|
||||||
|
{
|
||||||
|
return m_pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<lay::EditorOptionsPage *>
|
||||||
|
EditorOptionsPages::editor_options_pages (const lay::PluginDeclaration *plugin_declaration)
|
||||||
|
{
|
||||||
|
std::vector<lay::EditorOptionsPage *> pages;
|
||||||
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
|
if (p->plugin_declaration () == plugin_declaration) {
|
||||||
|
pages.push_back (const_cast<lay::EditorOptionsPage *> (p.operator-> ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return pages;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<lay::EditorOptionsPage *>
|
||||||
|
EditorOptionsPages::editor_options_pages ()
|
||||||
|
{
|
||||||
|
std::vector<lay::EditorOptionsPage *> pages;
|
||||||
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
|
pages.push_back (const_cast<lay::EditorOptionsPage *> (p.operator-> ()));
|
||||||
|
}
|
||||||
|
return pages;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
EditorOptionsPages::has_content () const
|
EditorOptionsPages::has_content () const
|
||||||
{
|
{
|
||||||
for (std::vector <lay::EditorOptionsPage *>::const_iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
if ((*p)->active () && ! (*p)->is_modal_page ()) {
|
if (p->active () && ! p->is_modal_page () && ! p->is_toolbox_widget ()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -105,8 +136,8 @@ EditorOptionsPages::has_content () const
|
||||||
bool
|
bool
|
||||||
EditorOptionsPages::has_modal_content () const
|
EditorOptionsPages::has_modal_content () const
|
||||||
{
|
{
|
||||||
for (std::vector <lay::EditorOptionsPage *>::const_iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
if ((*p)->active () && (*p)->is_modal_page ()) {
|
if (p->active () && p->is_modal_page () && ! p->is_toolbox_widget ()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -122,7 +153,7 @@ EditorOptionsPages::exec_modal (EditorOptionsPage *page)
|
||||||
|
|
||||||
// found the page - make it current and show the dialog
|
// found the page - make it current and show the dialog
|
||||||
mp_modal_pages->set_current_index (i);
|
mp_modal_pages->set_current_index (i);
|
||||||
page->setup (mp_dispatcher);
|
page->setup (mp_view);
|
||||||
page->set_focus ();
|
page->set_focus ();
|
||||||
return mp_modal_pages->exec () != 0;
|
return mp_modal_pages->exec () != 0;
|
||||||
|
|
||||||
|
|
@ -138,25 +169,19 @@ EditorOptionsPages::activate (const lay::Plugin *plugin)
|
||||||
{
|
{
|
||||||
for (auto op = m_pages.begin (); op != m_pages.end (); ++op) {
|
for (auto op = m_pages.begin (); op != m_pages.end (); ++op) {
|
||||||
bool is_active = false;
|
bool is_active = false;
|
||||||
if ((*op)->plugin_declaration () == 0) {
|
if (op->plugin_declaration () == 0) {
|
||||||
is_active = (plugin && plugin->plugin_declaration ()->enable_catchall_editor_options_pages ());
|
is_active = (plugin && plugin->plugin_declaration ()->enable_catchall_editor_options_pages ());
|
||||||
} else if (plugin && plugin->plugin_declaration () == (*op)->plugin_declaration ()) {
|
} else if (plugin && plugin->plugin_declaration () == op->plugin_declaration ()) {
|
||||||
is_active = true;
|
is_active = true;
|
||||||
}
|
}
|
||||||
(*op)->activate (is_active);
|
op->activate (is_active);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EditorOptionsPages::unregister_page (lay::EditorOptionsPage *page)
|
EditorOptionsPages::unregister_page (lay::EditorOptionsPage *page)
|
||||||
{
|
{
|
||||||
std::vector <lay::EditorOptionsPage *> pages;
|
m_pages.erase (page);
|
||||||
for (std::vector <lay::EditorOptionsPage *>::const_iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
|
||||||
if (*p != page) {
|
|
||||||
pages.push_back (*p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
m_pages = pages;
|
|
||||||
update (0);
|
update (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -164,9 +189,9 @@ void
|
||||||
EditorOptionsPages::make_page_current (lay::EditorOptionsPage *page)
|
EditorOptionsPages::make_page_current (lay::EditorOptionsPage *page)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < mp_pages->count (); ++i) {
|
for (int i = 0; i < mp_pages->count (); ++i) {
|
||||||
if (mp_pages->widget (i) == page) {
|
if (mp_pages->widget (i) == page->widget ()) {
|
||||||
mp_pages->setCurrentIndex (i);
|
mp_pages->setCurrentIndex (i);
|
||||||
page->setup (mp_dispatcher);
|
page->setup (mp_view);
|
||||||
page->set_focus ();
|
page->set_focus ();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -178,7 +203,7 @@ EditorOptionsPages::activate_page (lay::EditorOptionsPage *page)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
if (page->active ()) {
|
if (page->active ()) {
|
||||||
page->setup (mp_dispatcher);
|
page->setup (mp_view);
|
||||||
}
|
}
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
// catch any errors related to configuration file errors etc.
|
// catch any errors related to configuration file errors etc.
|
||||||
|
|
@ -190,7 +215,12 @@ EditorOptionsPages::activate_page (lay::EditorOptionsPage *page)
|
||||||
void
|
void
|
||||||
EditorOptionsPages::update (lay::EditorOptionsPage *page)
|
EditorOptionsPages::update (lay::EditorOptionsPage *page)
|
||||||
{
|
{
|
||||||
std::vector <lay::EditorOptionsPage *> sorted_pages = m_pages;
|
std::vector <lay::EditorOptionsPageWidget *> sorted_pages;
|
||||||
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
|
if (p->widget ()) {
|
||||||
|
sorted_pages.push_back (p->widget ());
|
||||||
|
}
|
||||||
|
}
|
||||||
std::sort (sorted_pages.begin (), sorted_pages.end (), EOPCompareOp ());
|
std::sort (sorted_pages.begin (), sorted_pages.end (), EOPCompareOp ());
|
||||||
|
|
||||||
if (! page && m_pages.size () > 0) {
|
if (! page && m_pages.size () > 0) {
|
||||||
|
|
@ -208,9 +238,11 @@ EditorOptionsPages::update (lay::EditorOptionsPage *page)
|
||||||
int index = -1;
|
int index = -1;
|
||||||
int modal_index = -1;
|
int modal_index = -1;
|
||||||
|
|
||||||
for (std::vector <lay::EditorOptionsPage *>::iterator p = sorted_pages.begin (); p != sorted_pages.end (); ++p) {
|
for (auto p = sorted_pages.begin (); p != sorted_pages.end (); ++p) {
|
||||||
if ((*p)->active ()) {
|
if ((*p)->active ()) {
|
||||||
if (! (*p)->is_modal_page ()) {
|
if ((*p)->is_toolbox_widget ()) {
|
||||||
|
mp_view->add_toolbox_widget (*p);
|
||||||
|
} else if (! (*p)->is_modal_page ()) {
|
||||||
if ((*p) == page) {
|
if ((*p) == page) {
|
||||||
index = mp_pages->count ();
|
index = mp_pages->count ();
|
||||||
}
|
}
|
||||||
|
|
@ -250,9 +282,9 @@ EditorOptionsPages::setup ()
|
||||||
{
|
{
|
||||||
BEGIN_PROTECTED
|
BEGIN_PROTECTED
|
||||||
|
|
||||||
for (std::vector <lay::EditorOptionsPage *>::iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
if ((*p)->active ()) {
|
if (p->active ()) {
|
||||||
(*p)->setup (mp_dispatcher);
|
p->setup (mp_view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -267,10 +299,10 @@ END_PROTECTED_W (this)
|
||||||
void
|
void
|
||||||
EditorOptionsPages::do_apply (bool modal)
|
EditorOptionsPages::do_apply (bool modal)
|
||||||
{
|
{
|
||||||
for (std::vector <lay::EditorOptionsPage *>::iterator p = m_pages.begin (); p != m_pages.end (); ++p) {
|
for (auto p = m_pages.begin (); p != m_pages.end (); ++p) {
|
||||||
if ((*p)->active () && modal == (*p)->is_modal_page ()) {
|
if (p->active () && modal == p->is_modal_page ()) {
|
||||||
// NOTE: we apply to the root dispatcher, so other dispatchers (views) get informed too.
|
// NOTE: we apply to the root dispatcher, so other dispatchers (views) get informed too.
|
||||||
(*p)->apply (mp_dispatcher->dispatcher ());
|
p->apply (mp_view->dispatcher ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -349,7 +381,7 @@ EditorOptionsModalPages::set_current_index (int index)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
EditorOptionsModalPages::add_page (EditorOptionsPage *page)
|
EditorOptionsModalPages::add_page (EditorOptionsPageWidget *page)
|
||||||
{
|
{
|
||||||
if (! mp_single_page) {
|
if (! mp_single_page) {
|
||||||
if (mp_pages->count () == 0) {
|
if (mp_pages->count () == 0) {
|
||||||
|
|
@ -388,7 +420,7 @@ EditorOptionsModalPages::remove_page (int index)
|
||||||
mp_pages->removeTab (index);
|
mp_pages->removeTab (index);
|
||||||
if (mp_pages->count () == 1) {
|
if (mp_pages->count () == 1) {
|
||||||
mp_pages->hide ();
|
mp_pages->hide ();
|
||||||
mp_single_page = dynamic_cast<EditorOptionsPage *> (mp_pages->widget (0));
|
mp_single_page = dynamic_cast<EditorOptionsPageWidget *> (mp_pages->widget (0));
|
||||||
mp_pages->removeTab (0);
|
mp_pages->removeTab (0);
|
||||||
mp_single_page->setParent (mp_single_page_frame);
|
mp_single_page->setParent (mp_single_page_frame);
|
||||||
mp_single_page_frame->layout ()->addWidget (mp_single_page);
|
mp_single_page_frame->layout ()->addWidget (mp_single_page);
|
||||||
|
|
@ -445,5 +477,3 @@ END_PROTECTED
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -20,14 +20,14 @@
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(HAVE_QT)
|
|
||||||
|
|
||||||
#ifndef HDR_layEditorOptionsPages
|
#ifndef HDR_layEditorOptionsPages
|
||||||
#define HDR_layEditorOptionsPages
|
#define HDR_layEditorOptionsPages
|
||||||
|
|
||||||
#include "laybasicCommon.h"
|
#include "layviewCommon.h"
|
||||||
#include "layEditorOptionsPage.h"
|
#include "layEditorOptionsPage.h"
|
||||||
|
|
||||||
|
#include "tlObjectCollection.h"
|
||||||
|
|
||||||
#include <QFrame>
|
#include <QFrame>
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
|
@ -50,29 +50,27 @@ class EditorOptionsModalPages;
|
||||||
/**
|
/**
|
||||||
* @brief The object properties tab widget
|
* @brief The object properties tab widget
|
||||||
*/
|
*/
|
||||||
class LAYBASIC_PUBLIC EditorOptionsPages
|
class LAYVIEW_PUBLIC EditorOptionsPages
|
||||||
: public QFrame
|
: public QFrame, public lay::EditorOptionsPageCollection
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
EditorOptionsPages (QWidget *parent, const std::vector<lay::EditorOptionsPage *> &pages, lay::Dispatcher *root);
|
EditorOptionsPages (QWidget *parent, lay::LayoutViewBase *view, const std::vector<lay::EditorOptionsPage *> &pages);
|
||||||
~EditorOptionsPages ();
|
~EditorOptionsPages ();
|
||||||
|
|
||||||
void unregister_page (lay::EditorOptionsPage *page);
|
virtual void unregister_page (lay::EditorOptionsPage *page);
|
||||||
void activate_page (lay::EditorOptionsPage *page);
|
virtual bool has_content () const;
|
||||||
void activate (const lay::Plugin *plugin);
|
virtual bool has_modal_content () const;
|
||||||
void focusInEvent (QFocusEvent *event);
|
virtual void activate_page (lay::EditorOptionsPage *page);
|
||||||
void make_page_current (lay::EditorOptionsPage *page);
|
virtual void make_page_current (lay::EditorOptionsPage *page);
|
||||||
bool exec_modal (lay::EditorOptionsPage *page);
|
virtual bool exec_modal (lay::EditorOptionsPage *page);
|
||||||
|
virtual std::vector<lay::EditorOptionsPage *> editor_options_pages (const lay::PluginDeclaration *plugin_declaration);
|
||||||
|
virtual std::vector<lay::EditorOptionsPage *> editor_options_pages ();
|
||||||
|
virtual void activate (const lay::Plugin *plugin);
|
||||||
|
|
||||||
const std::vector <lay::EditorOptionsPage *> &pages () const
|
const tl::weak_collection <lay::EditorOptionsPage> &pages () const;
|
||||||
{
|
|
||||||
return m_pages;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool has_content () const;
|
|
||||||
bool has_modal_content () const;
|
|
||||||
void do_apply (bool modal);
|
void do_apply (bool modal);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
@ -80,12 +78,13 @@ public slots:
|
||||||
void setup ();
|
void setup ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector <lay::EditorOptionsPage *> m_pages;
|
tl::weak_collection <lay::EditorOptionsPage> m_pages;
|
||||||
lay::Dispatcher *mp_dispatcher;
|
lay::LayoutViewBase *mp_view;
|
||||||
QTabWidget *mp_pages;
|
QTabWidget *mp_pages;
|
||||||
EditorOptionsModalPages *mp_modal_pages;
|
EditorOptionsModalPages *mp_modal_pages;
|
||||||
|
|
||||||
void update (lay::EditorOptionsPage *page);
|
void update (lay::EditorOptionsPage *page);
|
||||||
|
void focusInEvent (QFocusEvent *event);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -103,7 +102,7 @@ public:
|
||||||
int count ();
|
int count ();
|
||||||
int current_index ();
|
int current_index ();
|
||||||
void set_current_index (int index);
|
void set_current_index (int index);
|
||||||
void add_page (EditorOptionsPage *page);
|
void add_page (EditorOptionsPageWidget *page);
|
||||||
void remove_page (int index);
|
void remove_page (int index);
|
||||||
EditorOptionsPage *widget (int index);
|
EditorOptionsPage *widget (int index);
|
||||||
|
|
||||||
|
|
@ -116,7 +115,7 @@ private:
|
||||||
EditorOptionsPages *mp_parent;
|
EditorOptionsPages *mp_parent;
|
||||||
QTabWidget *mp_pages;
|
QTabWidget *mp_pages;
|
||||||
QFrame *mp_single_page_frame;
|
QFrame *mp_single_page_frame;
|
||||||
EditorOptionsPage *mp_single_page;
|
EditorOptionsPageWidget *mp_single_page;
|
||||||
QDialogButtonBox *mp_button_box;
|
QDialogButtonBox *mp_button_box;
|
||||||
|
|
||||||
void update_title ();
|
void update_title ();
|
||||||
|
|
@ -126,4 +125,3 @@ private:
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // defined(HAVE_QT)
|
|
||||||
|
|
@ -190,6 +190,13 @@ LayoutViewWidget::~LayoutViewWidget ()
|
||||||
delete view;
|
delete view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LayoutViewWidget::add_toolbox_widget (lay::EditorOptionsPageWidget *toolbox_widget)
|
||||||
|
{
|
||||||
|
toolbox_widget->setParent (this);
|
||||||
|
mp_layout->insertWidget (0, toolbox_widget);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LayoutViewWidget::add_notification (const LayoutViewNotification ¬ificaton)
|
LayoutViewWidget::add_notification (const LayoutViewNotification ¬ificaton)
|
||||||
{
|
{
|
||||||
|
|
@ -461,6 +468,22 @@ LayoutView::add_notification (const LayoutViewNotification ¬ification)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LayoutView::remove_notification (const LayoutViewNotification ¬ification)
|
||||||
|
{
|
||||||
|
if (mp_widget) {
|
||||||
|
mp_widget->remove_notification (notification);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LayoutView::add_toolbox_widget (lay::EditorOptionsPage *toolbox_widget)
|
||||||
|
{
|
||||||
|
if (mp_widget && toolbox_widget->widget ()) {
|
||||||
|
mp_widget->add_toolbox_widget (toolbox_widget->widget ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
LayoutView::event_filter (QObject *obj, QEvent *event, bool &taken)
|
LayoutView::event_filter (QObject *obj, QEvent *event, bool &taken)
|
||||||
{
|
{
|
||||||
|
|
@ -655,7 +678,7 @@ QWidget *LayoutView::widget ()
|
||||||
return mp_widget;
|
return mp_widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LayoutView::close()
|
void LayoutView::close ()
|
||||||
{
|
{
|
||||||
close_event ();
|
close_event ();
|
||||||
close_event.clear ();
|
close_event.clear ();
|
||||||
|
|
@ -758,7 +781,7 @@ LayoutView::do_change_active_cellview ()
|
||||||
dm_setup_editor_option_pages ();
|
dm_setup_editor_option_pages ();
|
||||||
}
|
}
|
||||||
|
|
||||||
lay::EditorOptionsPages *LayoutView::editor_options_pages ()
|
lay::EditorOptionsPageCollection *LayoutView::editor_options_pages ()
|
||||||
{
|
{
|
||||||
if (! mp_editor_options_frame) {
|
if (! mp_editor_options_frame) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -770,9 +793,10 @@ lay::EditorOptionsPages *LayoutView::editor_options_pages ()
|
||||||
void LayoutView::do_setup_editor_options_pages ()
|
void LayoutView::do_setup_editor_options_pages ()
|
||||||
{
|
{
|
||||||
// initialize the editor option pages
|
// initialize the editor option pages
|
||||||
lay::EditorOptionsPages *eo_pages = editor_options_pages ();
|
lay::EditorOptionsPageCollection *eo_pages = editor_options_pages ();
|
||||||
if (eo_pages) {
|
if (eo_pages) {
|
||||||
for (std::vector<lay::EditorOptionsPage *>::const_iterator op = eo_pages->pages ().begin (); op != eo_pages->pages ().end (); ++op) {
|
auto pages = eo_pages->editor_options_pages ();
|
||||||
|
for (auto op = pages.begin (); op != pages.end (); ++op) {
|
||||||
(*op)->setup (this);
|
(*op)->setup (this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1613,7 +1637,7 @@ LayoutView::mode (int m)
|
||||||
void
|
void
|
||||||
LayoutView::activate_editor_option_pages ()
|
LayoutView::activate_editor_option_pages ()
|
||||||
{
|
{
|
||||||
lay::EditorOptionsPages *eo_pages = editor_options_pages ();
|
lay::EditorOptionsPageCollection *eo_pages = editor_options_pages ();
|
||||||
if (eo_pages) {
|
if (eo_pages) {
|
||||||
eo_pages->activate (active_plugin ());
|
eo_pages->activate (active_plugin ());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ class Browser;
|
||||||
class ColorButton;
|
class ColorButton;
|
||||||
class ConfigureAction;
|
class ConfigureAction;
|
||||||
class EditorOptionsPages;
|
class EditorOptionsPages;
|
||||||
|
class EditorOptionsPageWidget;
|
||||||
class PropertiesDialog;
|
class PropertiesDialog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -154,6 +155,19 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void add_notification (const LayoutViewNotification ¬ification);
|
virtual void add_notification (const LayoutViewNotification ¬ification);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Removes a notification
|
||||||
|
*/
|
||||||
|
virtual void remove_notification (const LayoutViewNotification ¬ification);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a toolbox widget
|
||||||
|
*
|
||||||
|
* This will take ownership over the EditorOptionsPage object until
|
||||||
|
* it is re-parented.
|
||||||
|
*/
|
||||||
|
virtual void add_toolbox_widget (EditorOptionsPage *toolbox_widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the widget object that view is embedded in
|
* @brief Gets the widget object that view is embedded in
|
||||||
*/
|
*/
|
||||||
|
|
@ -376,7 +390,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* @brief Gets the editor options pages
|
* @brief Gets the editor options pages
|
||||||
*/
|
*/
|
||||||
virtual lay::EditorOptionsPages *editor_options_pages ();
|
virtual lay::EditorOptionsPageCollection *editor_options_pages ();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the layer control panel
|
* @brief Gets the layer control panel
|
||||||
|
|
@ -750,6 +764,8 @@ public:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Adds a notification
|
* @brief Adds a notification
|
||||||
|
*
|
||||||
|
* Notifications are banners that pop up at the top of the view canvas.
|
||||||
*/
|
*/
|
||||||
void add_notification (const LayoutViewNotification ¬ification);
|
void add_notification (const LayoutViewNotification ¬ification);
|
||||||
|
|
||||||
|
|
@ -758,6 +774,15 @@ public:
|
||||||
*/
|
*/
|
||||||
void remove_notification (const LayoutViewNotification ¬ification);
|
void remove_notification (const LayoutViewNotification ¬ification);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a tool box widget
|
||||||
|
*
|
||||||
|
* Toolbox widgets are EditorOptionsPage widgets that are placed
|
||||||
|
* at the top of the view canvas instead of being put into
|
||||||
|
* the editor options panel.
|
||||||
|
*/
|
||||||
|
void add_toolbox_widget (lay::EditorOptionsPageWidget *toolbox_widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the LayoutView embedded into this widget
|
* @brief Gets the LayoutView embedded into this widget
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,15 @@ RESOURCES = \
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
layGridNet.cc \
|
layGridNet.cc \
|
||||||
|
layEditorOptionsFrame.cc \
|
||||||
|
layEditorOptionsPages.cc \
|
||||||
layviewForceLink.cc \
|
layviewForceLink.cc \
|
||||||
gsiDeclLayAdditional.cc \
|
gsiDeclLayAdditional.cc \
|
||||||
|
|
||||||
HEADERS = \
|
HEADERS = \
|
||||||
layGridNet.h \
|
layGridNet.h \
|
||||||
|
layEditorOptionsFrame.h \
|
||||||
|
layEditorOptionsPages.h \
|
||||||
layLayoutView.h \
|
layLayoutView.h \
|
||||||
layviewForceLink.h \
|
layviewForceLink.h \
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue