提交 72a1f604 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

We add a "lite mode" for main frame. in lite mode, no tab bars or dock widget will be shown.

a method enableLiteMode is both provided in widgets and axwidget.
上级 8afbc5ff
...@@ -138,9 +138,7 @@ bool osm_frame_widget::eventFilter(QObject *obj, QEvent *event) ...@@ -138,9 +138,7 @@ bool osm_frame_widget::eventFilter(QObject *obj, QEvent *event)
} }
else if (obj == ui->dockWidget_QTV_side) else if (obj == ui->dockWidget_QTV_side)
{ {
ui->dockWidget_QTV_side->hide(); enableLiteMode(true);
QMargins m = this->layout()->contentsMargins();
this->layout()->setContentsMargins(m.left(),m.top(),12,m.bottom());
return true; return true;
} }
else if (m_PropPageslayer.contains(obj)) else if (m_PropPageslayer.contains(obj))
...@@ -198,10 +196,7 @@ void osm_frame_widget::mousePressEvent(QMouseEvent * e) ...@@ -198,10 +196,7 @@ void osm_frame_widget::mousePressEvent(QMouseEvent * e)
{ {
if (ui->dockWidget_QTV_side->isVisible()==false) if (ui->dockWidget_QTV_side->isVisible()==false)
{ {
ui->dockWidget_QTV_side->show(); enableLiteMode(false);
QMargins m = this->layout()->contentsMargins();
this->layout()->setContentsMargins(m.left(),m.top(),m.left(),m.bottom());
} }
} }
...@@ -429,3 +424,44 @@ void osm_frame_widget::on_pushButton_QTV_saveToFile_clicked() ...@@ -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();
}
}
...@@ -30,7 +30,7 @@ public: ...@@ -30,7 +30,7 @@ public:
public: public:
//Get tile viewer //Get tile viewer
tilesviewer * viewer(); tilesviewer * viewer();
void enableLiteMode(bool bEnabled);
protected: protected:
bool eventFilter(QObject *obj, QEvent *event); bool eventFilter(QObject *obj, QEvent *event);
protected: protected:
......
...@@ -17,23 +17,23 @@ ...@@ -17,23 +17,23 @@
<iconset resource="resource/resource.qrc"> <iconset resource="resource/resource.qrc">
<normaloff>:/ui/icons/Folder Online aqua.png</normaloff>:/ui/icons/Folder Online aqua.png</iconset> <normaloff>:/ui/icons/Folder Online aqua.png</normaloff>:/ui/icons/Folder Online aqua.png</iconset>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="spacing">
<number>1</number>
</property>
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>1</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>1</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>1</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>1</number>
</property> </property>
<property name="spacing"> <item>
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget_main"> <widget class="QTabWidget" name="tabWidget_main">
<property name="tabPosition"> <property name="tabPosition">
<enum>QTabWidget::South</enum> <enum>QTabWidget::South</enum>
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
</widget> </widget>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item>
<widget class="QDockWidget" name="dockWidget_QTV_side"> <widget class="QDockWidget" name="dockWidget_QTV_side">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding"> <sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding">
...@@ -481,6 +481,7 @@ ...@@ -481,6 +481,7 @@
<resources> <resources>
<include location="resource/resource.qrc"/> <include location="resource/resource.qrc"/>
<include location="resource/resource.qrc"/> <include location="resource/resource.qrc"/>
<include location="resource/resource.qrc"/>
</resources> </resources>
<connections> <connections>
<connection> <connection>
......
...@@ -460,8 +460,26 @@ QString qtaxviewer_planetosm::osm_layer_call_function(QString layerName, QString ...@@ -460,8 +460,26 @@ QString qtaxviewer_planetosm::osm_layer_call_function(QString layerName, QString
p_out = la->call_func(p_in); p_out = la->call_func(p_in);
strRes = map_to_string(p_out); strRes = map_to_string(p_out);
} }
else if (layerName=="MAIN_MAP")
{
QMap<QString, QVariant> 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 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; return strRes;
} }
......
...@@ -465,3 +465,8 @@ QString qtwidget_planetosm::osm_layer_call_function(QString layerName, QString a ...@@ -465,3 +465,8 @@ QString qtwidget_planetosm::osm_layer_call_function(QString layerName, QString a
return strRes; return strRes;
} }
void qtwidget_planetosm::enableLiteMode(bool bEnabled)
{
osm_frame_widget * mp = qobject_cast<osm_frame_widget *>(m_map_widget);
mp->enableLiteMode(bEnabled);
}
...@@ -30,6 +30,7 @@ protected: ...@@ -30,6 +30,7 @@ protected:
public: public:
explicit qtwidget_planetosm(QWidget *parent = 0); explicit qtwidget_planetosm(QWidget *parent = 0);
~qtwidget_planetosm(); ~qtwidget_planetosm();
void enableLiteMode(bool bEnabled);
//! slots below is designed for widget interfaces //! slots below is designed for widget interfaces
public: public:
QTVOSM::viewer_interface * viewer(); QTVOSM::viewer_interface * viewer();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册