Skip to content

Commit 0d7f598

Browse files
committed
Fix broken handle bad layers dialog
Partially revert af0bae6 and ea2cc36 Fixes #20265
1 parent f6aecd1 commit 0d7f598

File tree

5 files changed

+49
-0
lines changed

5 files changed

+49
-0
lines changed

src/providers/gdal/qgsgdalprovider.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -1991,6 +1991,10 @@ QStringList QgsGdalProvider::subLayers() const
19911991
return mSubLayers;
19921992
}
19931993

1994+
QGISEXTERN int dataCapabilities()
1995+
{
1996+
return QgsDataProvider::File | QgsDataProvider::Dir | QgsDataProvider::Net;
1997+
}
19941998

19951999
QGISEXTERN QVariantMap decodeUri( const QString &uri )
19962000
{

src/providers/ogr/qgsogrprovider.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -3397,6 +3397,11 @@ QGISEXTERN bool createEmptyDataSource( const QString &uri,
33973397
return true;
33983398
}
33993399

3400+
QGISEXTERN int dataCapabilities()
3401+
{
3402+
return QgsDataProvider::File | QgsDataProvider::Dir;
3403+
}
3404+
34003405
QGISEXTERN QList< QgsDataItemProvider * > *dataItemProviders()
34013406
{
34023407
QList< QgsDataItemProvider * > *providers = new QList< QgsDataItemProvider * >();

tests/src/python/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ ADD_PYTHON_TEST(PyQgsFilterLineEdit test_qgsfilterlineedit.py)
6262
ADD_PYTHON_TEST(PyQgsFloatingWidget test_qgsfloatingwidget.py)
6363
ADD_PYTHON_TEST(PyQgsFontButton test_qgsfontbutton.py)
6464
ADD_PYTHON_TEST(PyQgsFontUtils test_qgsfontutils.py)
65+
ADD_PYTHON_TEST(PyQgsGdalProvider test_provider_gdal.py)
6566
ADD_PYTHON_TEST(PyQgsGeoNodeConnection test_qgsgeonodeconnection.py)
6667
ADD_PYTHON_TEST(PyQgsGeometryAvoidIntersections test_qgsgeometry_avoid_intersections.py)
6768
ADD_PYTHON_TEST(PyQgsGeometryGeneratorSymbolLayer test_qgsgeometrygeneratorsymbollayer.py)
+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# -*- coding: utf-8 -*-
2+
"""Generic Unit tests for the GDAL provider.
3+
4+
.. note:: This program is free software; you can redistribute it and/or modify
5+
it under the terms of the GNU General Public License as published by
6+
the Free Software Foundation; either version 2 of the License, or
7+
(at your option) any later version.
8+
"""
9+
__author__ = 'Nyall Dawson'
10+
__date__ = '2018-30-10'
11+
__copyright__ = 'Copyright 2018, Nyall Dawson'
12+
# This will get replaced with a git SHA1 when you do a git archive
13+
__revision__ = '$Format:%H$'
14+
15+
from qgis.core import (QgsProviderRegistry,
16+
QgsDataProvider)
17+
from qgis.testing import start_app, unittest
18+
19+
from utilities import unitTestDataPath
20+
21+
start_app()
22+
TEST_DATA_DIR = unitTestDataPath()
23+
24+
25+
class PyQgsGdalProvider(unittest.TestCase):
26+
27+
def testCapabilities(self):
28+
self.assertTrue(QgsProviderRegistry.instance().providerCapabilities("gdal") & QgsDataProvider.File)
29+
self.assertTrue(QgsProviderRegistry.instance().providerCapabilities("gdal") & QgsDataProvider.Dir)
30+
self.assertTrue(QgsProviderRegistry.instance().providerCapabilities("gdal") & QgsDataProvider.Net)
31+
32+
33+
if __name__ == '__main__':
34+
unittest.main()

tests/src/python/test_provider_ogr.py

+5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from qgis.PyQt.QtCore import QVariant
2222
from qgis.core import (QgsApplication,
2323
QgsRectangle,
24+
QgsProviderRegistry,
2425
QgsFeature, QgsFeatureRequest, QgsField, QgsSettings, QgsDataProvider,
2526
QgsVectorDataProvider, QgsVectorLayer, QgsWkbTypes, QgsNetworkAccessManager)
2627
from qgis.testing import start_app, unittest
@@ -72,6 +73,10 @@ def tearDownClass(cls):
7273
for dirname in cls.dirs_to_cleanup:
7374
shutil.rmtree(dirname, True)
7475

76+
def testCapabilities(self):
77+
self.assertTrue(QgsProviderRegistry.instance().providerCapabilities("ogr") & QgsDataProvider.File)
78+
self.assertTrue(QgsProviderRegistry.instance().providerCapabilities("ogr") & QgsDataProvider.Dir)
79+
7580
def testUpdateMode(self):
7681

7782
vl = QgsVectorLayer('{}|layerid=0'.format(self.datasource), 'test', 'ogr')

0 commit comments

Comments
 (0)