diff --git a/qtviewer_planetosm/osm_frame_widget.cpp b/qtviewer_planetosm/osm_frame_widget.cpp index 252820fe3f69dee6c62062456a9f38579e666848..0f6b8aae78dd98b0e3c3a8e3aa806238d0e28575 100644 --- a/qtviewer_planetosm/osm_frame_widget.cpp +++ b/qtviewer_planetosm/osm_frame_widget.cpp @@ -138,9 +138,7 @@ bool osm_frame_widget::eventFilter(QObject *obj, QEvent *event) } else if (obj == ui->dockWidget_QTV_side) { - ui->dockWidget_QTV_side->hide(); - QMargins m = this->layout()->contentsMargins(); - this->layout()->setContentsMargins(m.left(),m.top(),12,m.bottom()); + enableLiteMode(true); return true; } else if (m_PropPageslayer.contains(obj)) @@ -198,10 +196,7 @@ void osm_frame_widget::mousePressEvent(QMouseEvent * e) { if (ui->dockWidget_QTV_side->isVisible()==false) { - ui->dockWidget_QTV_side->show(); - - QMargins m = this->layout()->contentsMargins(); - this->layout()->setContentsMargins(m.left(),m.top(),m.left(),m.bottom()); + enableLiteMode(false); } } @@ -429,3 +424,44 @@ void osm_frame_widget::on_pushButton_QTV_saveToFile_clicked() } } } +void osm_frame_widget::enableLiteMode(bool bEnabled) +{ + if (bEnabled==true) + { + if (ui->tab_map->parent()==this) + return; + ui->tabWidget_main->hide(); + int idx = ui->tabWidget_main->indexOf(ui->tab_map); + ui->tab_map->setParent(this); + if (idx>=0) + ui->tabWidget_main->removeTab(idx); + //remove topmost flag + Qt::WindowFlags flg = ui->tab_map->windowFlags(); + flg &= ~(Qt::WindowMinMaxButtonsHint|Qt::WindowStaysOnTopHint|Qt::Window ); + ui->tab_map->setWindowFlags(flg); + //add to current Layer + this->layout()->addWidget(ui->tab_map); + ui->tab_map->show(); + ui->dockWidget_QTV_side->hide(); + QMargins m = this->layout()->contentsMargins(); + this->layout()->setContentsMargins(m.left(),m.top(),12,m.bottom()); + + } + else + { + Qt::WindowFlags flg = ui->tab_map->windowFlags(); + flg &= ~(Qt::WindowMinMaxButtonsHint|Qt::WindowStaysOnTopHint|Qt::Window ); + ui->tab_map->setWindowFlags(flg); + int idx = ui->tabWidget_main->addTab( + ui->tab_map, + "Map" + ); + ui->tabWidget_main->setTabIcon(idx,ui->tab_map->windowIcon()); + ui->tabWidget_main->show(); + ui->tabWidget_main->setCurrentIndex(idx); + QMargins m = this->layout()->contentsMargins(); + this->layout()->setContentsMargins(m.left(),m.top(),m.left(),m.bottom()); + ui->dockWidget_QTV_side->show(); + + } +} diff --git a/qtviewer_planetosm/osm_frame_widget.h b/qtviewer_planetosm/osm_frame_widget.h index d5c93506b4b1dc22ddb95d46d7adaf84da5e87dd..42010ccdf2d6e174b939326980ded42394278f2d 100644 --- a/qtviewer_planetosm/osm_frame_widget.h +++ b/qtviewer_planetosm/osm_frame_widget.h @@ -30,7 +30,7 @@ public: public: //Get tile viewer tilesviewer * viewer(); - + void enableLiteMode(bool bEnabled); protected: bool eventFilter(QObject *obj, QEvent *event); protected: diff --git a/qtviewer_planetosm/osm_frame_widget.ui b/qtviewer_planetosm/osm_frame_widget.ui index f3b021d6962404054fca591d9a3c6d351b815422..8b701f6c0a36cfcf6fa909543da29194503de008 100644 --- a/qtviewer_planetosm/osm_frame_widget.ui +++ b/qtviewer_planetosm/osm_frame_widget.ui @@ -17,23 +17,23 @@ :/ui/icons/Folder Online aqua.png:/ui/icons/Folder Online aqua.png - + + + 1 + - 0 + 1 - 0 + 1 - 0 + 1 - 0 + 1 - - 0 - - + QTabWidget::South @@ -115,7 +115,7 @@ - + @@ -481,6 +481,7 @@ + diff --git a/qtviewer_planetosm/qtaxviewer_planetosm.cpp b/qtviewer_planetosm/qtaxviewer_planetosm.cpp index e9f360b72c4dd27777f023a54298a1d6d3a7b84a..97f522cbdb059690c9dfcd2e40a3127fa403e790 100644 --- a/qtviewer_planetosm/qtaxviewer_planetosm.cpp +++ b/qtviewer_planetosm/qtaxviewer_planetosm.cpp @@ -460,8 +460,26 @@ QString qtaxviewer_planetosm::osm_layer_call_function(QString layerName, QString p_out = la->call_func(p_in); strRes = map_to_string(p_out); } + else if (layerName=="MAIN_MAP") + { + QMap p_in; + p_in = string_to_map(args); + if (p_in["function"].toString().toUpper()=="ENABLELITEMODE") + { + if (p_in["mode"].toInt()==0) + this->enableLiteMode(false); + else + this->enableLiteMode(true); + + } + else + { + strRes = QString("error=Layer name \"%1\" does not have this function.;").arg(layerName); + } + + } else - strRes = QString("error=Layer name \"%1\" does not exist.;").arg(layerName); + strRes = QString("error=Layer name \"%1\" does not exist.MAIN_MAP means the main map frame.;").arg(layerName); return strRes; } diff --git a/qtviewer_planetosm/qtwidget_planetosm.cpp b/qtviewer_planetosm/qtwidget_planetosm.cpp index 99a57d9019a1278ba4d9c45d6f3442bb73c45940..8ebfae196116a002c055be9487f1d83870fbdc72 100644 --- a/qtviewer_planetosm/qtwidget_planetosm.cpp +++ b/qtviewer_planetosm/qtwidget_planetosm.cpp @@ -465,3 +465,8 @@ QString qtwidget_planetosm::osm_layer_call_function(QString layerName, QString a return strRes; } +void qtwidget_planetosm::enableLiteMode(bool bEnabled) +{ + osm_frame_widget * mp = qobject_cast(m_map_widget); + mp->enableLiteMode(bEnabled); +} diff --git a/qtviewer_planetosm/qtwidget_planetosm.h b/qtviewer_planetosm/qtwidget_planetosm.h index 9df1cd81fbe011a5479c0a9bfb71303c19619218..f320ca511b593d9bd4146bd9eff6188678b4fbf7 100644 --- a/qtviewer_planetosm/qtwidget_planetosm.h +++ b/qtviewer_planetosm/qtwidget_planetosm.h @@ -30,6 +30,7 @@ protected: public: explicit qtwidget_planetosm(QWidget *parent = 0); ~qtwidget_planetosm(); + void enableLiteMode(bool bEnabled); //! slots below is designed for widget interfaces public: QTVOSM::viewer_interface * viewer();