提交 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)
}
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();
}
}
......@@ -30,7 +30,7 @@ public:
public:
//Get tile viewer
tilesviewer * viewer();
void enableLiteMode(bool bEnabled);
protected:
bool eventFilter(QObject *obj, QEvent *event);
protected:
......
......@@ -17,23 +17,23 @@
<iconset resource="resource/resource.qrc">
<normaloff>:/ui/icons/Folder Online aqua.png</normaloff>:/ui/icons/Folder Online aqua.png</iconset>
</property>
<layout class="QGridLayout" name="gridLayout">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="spacing">
<number>1</number>
</property>
<property name="leftMargin">
<number>0</number>
<number>1</number>
</property>
<property name="topMargin">
<number>0</number>
<number>1</number>
</property>
<property name="rightMargin">
<number>0</number>
<number>1</number>
</property>
<property name="bottomMargin">
<number>0</number>
<number>1</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<item>
<widget class="QTabWidget" name="tabWidget_main">
<property name="tabPosition">
<enum>QTabWidget::South</enum>
......@@ -115,7 +115,7 @@
</widget>
</widget>
</item>
<item row="0" column="1">
<item>
<widget class="QDockWidget" name="dockWidget_QTV_side">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding">
......@@ -481,6 +481,7 @@
<resources>
<include location="resource/resource.qrc"/>
<include location="resource/resource.qrc"/>
<include location="resource/resource.qrc"/>
</resources>
<connections>
<connection>
......
......@@ -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<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
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;
}
......
......@@ -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<osm_frame_widget *>(m_map_widget);
mp->enableLiteMode(bEnabled);
}
......@@ -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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册