From a8a0818cd079b6e1b7e28460104dcdb512e9254c Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:22:11 +0200 Subject: [PATCH 1/7] Fix zoom/pan to crs typo --- src/gui/stac/qgsstacsourceselect.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index 8bbd89fe87fe..faf4afcbcc4c 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -517,7 +517,7 @@ void QgsStacSourceSelect::showItemsContextMenu( QPoint point ) if ( QgsMapCanvas *map = mapCanvas() ) { const QgsRectangle bbox = geom.boundingBox(); - const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4324 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); + const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4326 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); QgsRectangle extent = ct.transformBoundingBox( bbox ); map->zoomToFeatureExtent( extent ); } @@ -529,7 +529,7 @@ void QgsStacSourceSelect::showItemsContextMenu( QPoint point ) if ( QgsMapCanvas *map = mapCanvas() ) { const QgsRectangle bbox = geom.boundingBox(); - const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4324 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); + const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4326 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); const QgsRectangle extent = ct.transformBoundingBox( bbox ); map->setCenter( extent.center() ); } From 94e6eddc4122c0032fcbd93e0a628edf39aefb61 Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:23:53 +0200 Subject: [PATCH 2/7] Fix Add Layer showing when no layers to add --- src/gui/stac/qgsstacsourceselect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index faf4afcbcc4c..36872b41e0d3 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -493,7 +493,7 @@ void QgsStacSourceSelect::showItemsContextMenu( QPoint point ) if ( QgsDataSourceManagerDialog *dsm = qobject_cast( window() ) ) bar = dsm->messageBar(); - QMenu *assetsMenu = menu->addMenu( tr( "Add Layer" ) ); + QMenu *assetsMenu = new QMenu( tr( "Add Layer" ), menu ); if ( const QgsStacItem *item = dynamic_cast( index.data( QgsStacItemListModel::Role::StacObject ).value() ) ) { const QMap assets = item->assets(); From da030e2e3cb87a47640e31ea5d78b35356af0eb5 Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:24:40 +0200 Subject: [PATCH 3/7] Fix endless fetching if dialog is closed while fetching --- src/gui/stac/qgsstacsourceselect.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index 36872b41e0d3..f3eab33efcbc 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -364,7 +364,7 @@ void QgsStacSourceSelect::onItemCollectionRequestFinished( int requestId, QStrin #ifndef __clang_analyzer__ // Let the results appear, then fetch more if there's no scrollbar QTimer::singleShot( 100, this, [=] { - if ( !mItemsView->verticalScrollBar()->isVisible() ) + if ( isVisible() && !mItemsView->verticalScrollBar()->isVisible() ) { fetchNextResultPage(); } From 502a00d37f6c27a29d8343040364cbba258ae8c2 Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:25:31 +0200 Subject: [PATCH 4/7] Fix Add button enabled while connecting --- src/gui/stac/qgsstacsourceselect.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index f3eab33efcbc..bcd903d79abb 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -173,6 +173,7 @@ void QgsStacSourceSelect::btnConnect_clicked() mStac->fetchStacObjectAsync( connection.url ); mFiltersLabel->clear(); mFiltersButton->setEnabled( false ); + emit enableButtons( false ); } void QgsStacSourceSelect::btnNew_clicked() From 21e48080abb7349082448dc4a02bb0590a12889c Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:26:51 +0200 Subject: [PATCH 5/7] Use model's extent role for zoom/pan to --- src/gui/stac/qgsstacitemlistmodel.cpp | 4 ++++ src/gui/stac/qgsstacsourceselect.cpp | 11 +++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/gui/stac/qgsstacitemlistmodel.cpp b/src/gui/stac/qgsstacitemlistmodel.cpp index 112563bc3e55..9609559e76f8 100644 --- a/src/gui/stac/qgsstacitemlistmodel.cpp +++ b/src/gui/stac/qgsstacitemlistmodel.cpp @@ -109,6 +109,10 @@ QVariant QgsStacItemListModel::data( const QModelIndex &index, int role ) const { return QVariant::fromValue( mItems.at( index.row() )->geometry() ); } + case Role::Extent: + { + return QVariant::fromValue( mItems.at( index.row() )->boundingBox() ); + } } return QVariant(); diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index bcd903d79abb..c3e7e5f2b92f 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -513,28 +513,27 @@ void QgsStacSourceSelect::showItemsContextMenu( QPoint point ) } QAction *zoomToAction = new QAction( tr( "Zoom to Item" ), menu ); - connect( zoomToAction, &QAction::triggered, this, [index, this] { - QgsGeometry geom = index.data( QgsStacItemListModel::Role::Geometry ).value(); + const QgsRectangle bbox = index.data( QgsStacItemListModel::Role::Extent ).value().toRectangle(); + connect( zoomToAction, &QAction::triggered, this, [bbox, this] { if ( QgsMapCanvas *map = mapCanvas() ) { - const QgsRectangle bbox = geom.boundingBox(); const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4326 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); QgsRectangle extent = ct.transformBoundingBox( bbox ); map->zoomToFeatureExtent( extent ); } } ); + zoomToAction->setEnabled( !bbox.isNull() ); QAction *panToAction = new QAction( tr( "Pan to Item" ), menu ); - connect( panToAction, &QAction::triggered, this, [index, this] { - QgsGeometry geom = index.data( QgsStacItemListModel::Role::Geometry ).value(); + connect( panToAction, &QAction::triggered, this, [bbox, this] { if ( QgsMapCanvas *map = mapCanvas() ) { - const QgsRectangle bbox = geom.boundingBox(); const QgsCoordinateTransform ct( QgsCoordinateReferenceSystem::fromEpsgId( 4326 ), map->mapSettings().destinationCrs(), QgsProject::instance() ); const QgsRectangle extent = ct.transformBoundingBox( bbox ); map->setCenter( extent.center() ); } } ); + panToAction->setEnabled( !bbox.isNull() ); QAction *downloadAction = new QAction( tr( "Download Assets…" ), menu ); connect( downloadAction, &QAction::triggered, this, [index, bar, authCfg = mStac->authCfg()] { From ac0b7ffea8b5d9f8e6ffa813262c50e4845a3a2b Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:27:14 +0200 Subject: [PATCH 6/7] Hide zoom/pan to when there's no map canvas --- src/gui/stac/qgsstacsourceselect.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/stac/qgsstacsourceselect.cpp b/src/gui/stac/qgsstacsourceselect.cpp index c3e7e5f2b92f..21c207fc2be8 100644 --- a/src/gui/stac/qgsstacsourceselect.cpp +++ b/src/gui/stac/qgsstacsourceselect.cpp @@ -553,8 +553,11 @@ void QgsStacSourceSelect::showItemsContextMenu( QPoint point ) } ); - menu->addAction( zoomToAction ); - menu->addAction( panToAction ); + if ( mapCanvas() ) + { + menu->addAction( zoomToAction ); + menu->addAction( panToAction ); + } if ( !assetsMenu->isEmpty() ) menu->addMenu( assetsMenu ); menu->addAction( downloadAction ); From 5906959de4830095a4712ce76ead9de0bf53b75f Mon Sep 17 00:00:00 2001 From: uclaros Date: Thu, 6 Feb 2025 16:32:11 +0200 Subject: [PATCH 7/7] Let collections list grow with QgsStacSearchParametersDialog --- src/ui/stac/qgsstacsearchparametersdialog.ui | 31 ++++++-------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/src/ui/stac/qgsstacsearchparametersdialog.ui b/src/ui/stac/qgsstacsearchparametersdialog.ui index f27c6760f460..f39fc41dcd0a 100644 --- a/src/ui/stac/qgsstacsearchparametersdialog.ui +++ b/src/ui/stac/qgsstacsearchparametersdialog.ui @@ -54,7 +54,7 @@ - QDateTimeEdit::YearSection + QDateTimeEdit::Section::YearSection yyyy-MM-dd HH:mm:ss @@ -63,7 +63,7 @@ true - Qt::UTC + Qt::TimeSpec::UTC @@ -77,7 +77,7 @@ - QDateTimeEdit::YearSection + QDateTimeEdit::Section::YearSection yyyy-MM-dd HH:mm:ss @@ -86,7 +86,7 @@ true - Qt::UTC + Qt::TimeSpec::UTC @@ -95,7 +95,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -135,7 +135,7 @@ - QAbstractItemView::NoEditTriggers + QAbstractItemView::EditTrigger::NoEditTriggers false @@ -161,7 +161,7 @@ - Qt::Horizontal + Qt::Orientation::Horizontal @@ -176,26 +176,13 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok