Skip to content

Commit

Permalink
[needs-docs] remove Server Search tab from the WMS connections dialog
Browse files Browse the repository at this point in the history
(fix #25660).

As used catalog does not receive updates for years and we already have
more feature rich search with MetaSearch core plugin.
  • Loading branch information
alexbruy authored and nyalldawson committed Apr 24, 2020
1 parent 36339c2 commit b8c3b0e
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 198 deletions.
128 changes: 0 additions & 128 deletions src/providers/wms/qgswmssourceselect.cpp
Expand Up @@ -70,9 +70,6 @@ QgsWMSSourceSelect::QgsWMSSourceSelect( QWidget *parent, Qt::WindowFlags fl, Qgs
connect( btnChangeSpatialRefSys, &QPushButton::clicked, this, &QgsWMSSourceSelect::btnChangeSpatialRefSys_clicked );
connect( lstLayers, &QTreeWidget::itemSelectionChanged, this, &QgsWMSSourceSelect::lstLayers_itemSelectionChanged );
connect( cmbConnections, static_cast<void ( QComboBox::* )( int )>( &QComboBox::activated ), this, &QgsWMSSourceSelect::cmbConnections_activated );
connect( btnSearch, &QPushButton::clicked, this, &QgsWMSSourceSelect::btnSearch_clicked );
connect( btnAddWMS, &QPushButton::clicked, this, &QgsWMSSourceSelect::btnAddWMS_clicked );
connect( tableWidgetWMSList, &QTableWidget::itemSelectionChanged, this, &QgsWMSSourceSelect::tableWidgetWMSList_itemSelectionChanged );
connect( lstTilesets, &QTableWidget::itemClicked, this, &QgsWMSSourceSelect::lstTilesets_itemClicked );
connect( mLayerUpButton, &QPushButton::clicked, this, &QgsWMSSourceSelect::mLayerUpButton_clicked );
connect( mLayerDownButton, &QPushButton::clicked, this, &QgsWMSSourceSelect::mLayerDownButton_clicked );
Expand Down Expand Up @@ -1134,131 +1131,6 @@ QString QgsWMSSourceSelect::descriptionForAuthId( const QString &authId )
return qgisSrs.userFriendlyIdentifier();
}

void QgsWMSSourceSelect::addWMSListRow( const QDomElement &item, int row )
{
QDomElement title = item.firstChildElement( QStringLiteral( "title" ) );
addWMSListItem( title, row, 0 );
QDomElement description = item.firstChildElement( QStringLiteral( "description" ) );
addWMSListItem( description, row, 1 );
QDomElement link = item.firstChildElement( QStringLiteral( "link" ) );
addWMSListItem( link, row, 2 );
}

void QgsWMSSourceSelect::addWMSListItem( const QDomElement &el, int row, int column )
{
if ( !el.isNull() )
{
QTableWidgetItem *tableItem = new QTableWidgetItem( el.text() );
// TODO: add linebreaks to long tooltips?
tableItem->setToolTip( el.text() );
tableWidgetWMSList->setItem( row, column, tableItem );
}
}

void QgsWMSSourceSelect::btnSearch_clicked()
{
// clear results
tableWidgetWMSList->clearContents();
tableWidgetWMSList->setRowCount( 0 );

// disable Add WMS button
btnAddWMS->setEnabled( false );

QApplication::setOverrideCursor( Qt::WaitCursor );

QgsSettings settings;
QString mySearchUrl = settings.value( QStringLiteral( "qgis/WMSSearchUrl" ), "http://geopole.org/wms/search?search=%1&type=rss" ).toString();
QUrl url( mySearchUrl.arg( leSearchTerm->text() ) );
QgsDebugMsg( url.toString() );

QNetworkRequest request( url );
QgsSetRequestInitiatorClass( request, QStringLiteral( "QgsWMSSourceSelect" ) );
QNetworkReply *r = QgsNetworkAccessManager::instance()->get( request );
connect( r, &QNetworkReply::finished, this, &QgsWMSSourceSelect::searchFinished );
}

void QgsWMSSourceSelect::searchFinished()
{
QApplication::restoreOverrideCursor();

QNetworkReply *r = qobject_cast<QNetworkReply *>( sender() );
if ( !r )
return;

if ( r->error() == QNetworkReply::NoError )
{
// parse results
QDomDocument doc( QStringLiteral( "RSS" ) );
QByteArray res = r->readAll();
QString error;
int line, column;
if ( doc.setContent( res, &error, &line, &column ) )
{
QDomNodeList list = doc.elementsByTagName( QStringLiteral( "item" ) );
tableWidgetWMSList->setRowCount( list.size() );
for ( int i = 0; i < list.size(); i++ )
{
if ( list.item( i ).isElement() )
{
QDomElement item = list.item( i ).toElement();
addWMSListRow( item, i );
}
}

tableWidgetWMSList->resizeColumnsToContents();
}
else
{
QgsDebugMsg( QStringLiteral( "setContent failed" ) );
showStatusMessage( tr( "parse error at row %1, column %2: %3" ).arg( line ).arg( column ).arg( error ) );
}
}
else
{
showStatusMessage( tr( "network error: %1" ).arg( r->error() ) );
}

r->deleteLater();
}

void QgsWMSSourceSelect::btnAddWMS_clicked()
{
// TODO: deactivate button if dialog is open?
// TODO: remove from config on close?

int selectedRow = tableWidgetWMSList->currentRow();
if ( selectedRow == -1 )
{
return;
}

QString wmsTitle = tableWidgetWMSList->item( selectedRow, 0 )->text();
QString wmsUrl = tableWidgetWMSList->item( selectedRow, 2 )->text();

QgsSettings settings;
if ( settings.contains( QStringLiteral( "qgis/connections-wms/%1/url" ).arg( wmsTitle ) ) )
{
QString msg = tr( "The %1 connection already exists. Do you want to overwrite it?" ).arg( wmsTitle );
QMessageBox::StandardButton result = QMessageBox::question( this, tr( "Confirm Overwrite" ), msg, QMessageBox::Yes | QMessageBox::No );
if ( result != QMessageBox::Yes )
{
return;
}
}

// add selected WMS to config and mark as current
settings.setValue( QStringLiteral( "qgis/connections-wms/%1/url" ).arg( wmsTitle ), wmsUrl );
QgsWMSConnection::setSelectedConnection( wmsTitle );
populateConnectionList();

tabServers->setCurrentIndex( 0 );
}

void QgsWMSSourceSelect::tableWidgetWMSList_itemSelectionChanged()
{
btnAddWMS->setEnabled( tableWidgetWMSList->currentRow() != -1 );
}

void QgsWMSSourceSelect::mLayerUpButton_clicked()
{
QList<QTreeWidgetItem *> selectionList = mLayerOrderTreeWidget->selectedItems();
Expand Down
8 changes: 0 additions & 8 deletions src/providers/wms/qgswmssourceselect.h
Expand Up @@ -78,8 +78,6 @@ class QgsWMSSourceSelect : public QgsAbstractDataSourceWidget, private Ui::QgsWM
*/
void btnConnect_clicked();

void searchFinished();

//! Opens the Spatial Reference System dialog.
void btnChangeSpatialRefSys_clicked();

Expand Down Expand Up @@ -164,9 +162,6 @@ class QgsWMSSourceSelect : public QgsAbstractDataSourceWidget, private Ui::QgsWM

QMap<QString, QString> mCrsNames;

void addWMSListRow( const QDomElement &item, int row );
void addWMSListItem( const QDomElement &el, int row, int column );

void applySelectionConstraints( QTreeWidgetItem *item );
void collectNamedLayers( QTreeWidgetItem *item, QStringList &layers, QStringList &styles, QStringList &titles );
void enableLayersForCrs( QTreeWidgetItem *item );
Expand All @@ -190,9 +185,6 @@ class QgsWMSSourceSelect : public QgsAbstractDataSourceWidget, private Ui::QgsWM
QVector<QgsWmsLayerProperty> mLayerProperties;

private slots:
void btnSearch_clicked();
void btnAddWMS_clicked();
void tableWidgetWMSList_itemSelectionChanged();
void lstTilesets_itemClicked( QTableWidgetItem *item );
void mLayerUpButton_clicked();
void mLayerDownButton_clicked();
Expand Down
62 changes: 0 additions & 62 deletions src/ui/qgswmssourceselectbase.ui
Expand Up @@ -405,64 +405,6 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tabServerSearch">
<attribute name="title">
<string>Server Search</string>
</attribute>
<layout class="QGridLayout">
<item row="0" column="0">
<widget class="QLineEdit" name="leSearchTerm"/>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="btnSearch">
<property name="text">
<string>Search</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QTableWidget" name="tableWidgetWMSList">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Title</string>
</property>
</column>
<column>
<property name="text">
<string>Description</string>
</property>
</column>
<column>
<property name="text">
<string>URL</string>
</property>
</column>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QPushButton" name="btnAddWMS">
<property name="text">
<string>Add Selected Row to WMS List</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
Expand Down Expand Up @@ -504,10 +446,6 @@
<tabstop>mContextualLegendCheckbox</tabstop>
<tabstop>leLayerName</tabstop>
<tabstop>lstTilesets</tabstop>
<tabstop>leSearchTerm</tabstop>
<tabstop>btnSearch</tabstop>
<tabstop>tableWidgetWMSList</tabstop>
<tabstop>btnAddWMS</tabstop>
<tabstop>mLayerOrderTreeWidget</tabstop>
<tabstop>mLayerDownButton</tabstop>
<tabstop>mLayerUpButton</tabstop>
Expand Down

0 comments on commit b8c3b0e

Please sign in to comment.