From 190b739e3cacc7340e9db55b2b0a79e0a6820d23 Mon Sep 17 00:00:00 2001 From: goldenhawking Date: Sun, 6 Nov 2016 16:25:25 +0800 Subject: [PATCH] Add a "lite mode locker" prop, to disable entering full mode by clikcking side bar --- qtviewer_planetosm/osm_frame_widget.cpp | 6 +++++- qtviewer_planetosm/osm_frame_widget.h | 3 +++ qtviewer_planetosm/qtaxviewer_planetosm.cpp | 8 ++++++++ qtviewer_planetosm/qtwidget_planetosm.cpp | 6 ++++++ qtviewer_planetosm/qtwidget_planetosm.h | 1 + 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/qtviewer_planetosm/osm_frame_widget.cpp b/qtviewer_planetosm/osm_frame_widget.cpp index c2b6fa2..6c521c2 100644 --- a/qtviewer_planetosm/osm_frame_widget.cpp +++ b/qtviewer_planetosm/osm_frame_widget.cpp @@ -192,7 +192,7 @@ osm_frame_widget::~osm_frame_widget() } void osm_frame_widget::mousePressEvent(QMouseEvent * e) { - if (e->pos().x() >= this->rect().right()-12) + if (e->pos().x() >= this->rect().right()-12 && m_bLiteModeLocked==false) { if (ui->dockWidget_QTV_side->isVisible()==false) { @@ -465,3 +465,7 @@ void osm_frame_widget::enableLiteMode(bool bEnabled) } } +void osm_frame_widget::lockLiteMode(bool blocked) +{ + m_bLiteModeLocked = blocked; +} diff --git a/qtviewer_planetosm/osm_frame_widget.h b/qtviewer_planetosm/osm_frame_widget.h index 42010cc..14564e6 100644 --- a/qtviewer_planetosm/osm_frame_widget.h +++ b/qtviewer_planetosm/osm_frame_widget.h @@ -31,14 +31,17 @@ public: //Get tile viewer tilesviewer * viewer(); void enableLiteMode(bool bEnabled); + void lockLiteMode(bool blocked); protected: bool eventFilter(QObject *obj, QEvent *event); protected: static QMutex m_mutex_proteced; Ui::osm_frame_widget *ui; + bool m_bLiteModeLocked = false; QStandardItemModel *m_pLayerDispMod; QMap m_layerPropPages; QMap m_PropPageslayer; +protected: void UpdateLayerTable(); bool AppendLayer(QString SLName,layer_interface * interface); void EnumPlugins(); diff --git a/qtviewer_planetosm/qtaxviewer_planetosm.cpp b/qtviewer_planetosm/qtaxviewer_planetosm.cpp index 97f522c..e66c300 100644 --- a/qtviewer_planetosm/qtaxviewer_planetosm.cpp +++ b/qtviewer_planetosm/qtaxviewer_planetosm.cpp @@ -471,6 +471,14 @@ QString qtaxviewer_planetosm::osm_layer_call_function(QString layerName, QString else this->enableLiteMode(true); + } + else if (p_in["function"].toString().toUpper()=="LOCKLITEMODE") + { + if (p_in["mode"].toInt()==0) + this->lockLiteMode(false); + else + this->lockLiteMode(true); + } else { diff --git a/qtviewer_planetosm/qtwidget_planetosm.cpp b/qtviewer_planetosm/qtwidget_planetosm.cpp index 8ebfae1..e90fd80 100644 --- a/qtviewer_planetosm/qtwidget_planetosm.cpp +++ b/qtviewer_planetosm/qtwidget_planetosm.cpp @@ -470,3 +470,9 @@ void qtwidget_planetosm::enableLiteMode(bool bEnabled) osm_frame_widget * mp = qobject_cast(m_map_widget); mp->enableLiteMode(bEnabled); } +void qtwidget_planetosm::lockLiteMode(bool blocked) +{ + osm_frame_widget * mp = qobject_cast(m_map_widget); + mp->lockLiteMode(blocked); + +} diff --git a/qtviewer_planetosm/qtwidget_planetosm.h b/qtviewer_planetosm/qtwidget_planetosm.h index f320ca5..aeb4c44 100644 --- a/qtviewer_planetosm/qtwidget_planetosm.h +++ b/qtviewer_planetosm/qtwidget_planetosm.h @@ -31,6 +31,7 @@ public: explicit qtwidget_planetosm(QWidget *parent = 0); ~qtwidget_planetosm(); void enableLiteMode(bool bEnabled); + void lockLiteMode(bool blocked); //! slots below is designed for widget interfaces public: QTVOSM::viewer_interface * viewer(); -- GitLab