From 59a7a80ce67ca9ad58e5a2da75780bba0a61634d Mon Sep 17 00:00:00 2001 From: CESAdmin Date: Mon, 1 Apr 2024 13:16:03 +0800 Subject: [PATCH] Doubleclick laye table to set active and visiablity --- qtviewer_planetosm/osm_frame_widget.cpp | 32 +++++++++++++++++++++++++ qtviewer_planetosm/osm_frame_widget.h | 2 ++ 2 files changed, 34 insertions(+) diff --git a/qtviewer_planetosm/osm_frame_widget.cpp b/qtviewer_planetosm/osm_frame_widget.cpp index 5c8af16..94dac6a 100644 --- a/qtviewer_planetosm/osm_frame_widget.cpp +++ b/qtviewer_planetosm/osm_frame_widget.cpp @@ -531,3 +531,35 @@ void osm_frame_widget::show_stdio_checkbox(bool show) { ui->checkBox_stdio->setVisible(show); } + +void osm_frame_widget::on_tableView_QTV_layers_doubleClicked(const QModelIndex &index) +{ + QVector layers = ui->widget_QTV_mainMap->layers(); + int nItems = layers.size(); + + if (index.isValid()) + { + int row = index.row(); + if (row >=0 && row < layers.size()) + { + if (index.column()==1) + { + bool bact = layers[nItems - 1 -row]->is_active(); + layers[nItems - 1 -row]->set_active(!bact); + if (!bact) + ui->widget_QTV_mainMap->adjust_layers(layers[nItems - 1 -row]); + } + else if (index.column()==2) + { + layers[nItems - 1 -row]->set_visible(!layers[nItems - 1 -row]->is_visible()); + } + + + UpdateLayerTable(); + ui->widget_QTV_mainMap->UpdateWindow(); + + } + } + +} + diff --git a/qtviewer_planetosm/osm_frame_widget.h b/qtviewer_planetosm/osm_frame_widget.h index ca310ae..b464da4 100644 --- a/qtviewer_planetosm/osm_frame_widget.h +++ b/qtviewer_planetosm/osm_frame_widget.h @@ -67,6 +67,8 @@ protected slots: void on_pushButton_QTV_deactive_clicked(); void on_pushButton_QTV_saveToFile_clicked(); void on_checkBox_stdio_toggled(bool checked); +private slots: + void on_tableView_QTV_layers_doubleClicked(const QModelIndex &index); }; #endif // OSM_FRAME_WIDGET_H -- GitLab