@@ -675,7 +675,7 @@ bool QgsWmsProvider::retrieveServerCapabilities(bool forceRefresh)
675
675
#endif
676
676
677
677
bool domOK;
678
- domOK = parseCapabilitiesDOM (httpcapabilitiesresponse, capabilities );
678
+ domOK = parseCapabilitiesDOM (httpcapabilitiesresponse, mCapabilities );
679
679
680
680
if (!domOK)
681
681
{
@@ -1592,6 +1592,8 @@ void QgsWmsProvider::parseLayer(QDomElement const & e, QgsWmsLayerProperty& laye
1592
1592
// We have all the information we need to properly evaluate a layer definition
1593
1593
// TODO: Save this somewhere
1594
1594
1595
+ // Store if the layer is queryable
1596
+ mQueryableForLayer [ layerProperty.name ] = layerProperty.queryable ;
1595
1597
1596
1598
// Store the available Coordinate Reference Systems for the layer so that it
1597
1599
// can be combined with others later in supportedCrsForLayers()
@@ -1832,7 +1834,7 @@ QString QgsWmsProvider::wmsVersion()
1832
1834
1833
1835
QStringList QgsWmsProvider::supportedImageEncodings ()
1834
1836
{
1835
- return capabilities .capability .request .getMap .format ;
1837
+ return mCapabilities .capability .request .getMap .format ;
1836
1838
}
1837
1839
1838
1840
@@ -1842,18 +1844,6 @@ QStringList QgsWmsProvider::subLayers()
1842
1844
}
1843
1845
1844
1846
1845
- /*
1846
- int QgsWmsProvider::capabilities() const
1847
- {
1848
- return ( QgsVectorDataProvider::AddFeatures |
1849
- QgsVectorDataProvider::DeleteFeatures |
1850
- QgsVectorDataProvider::ChangeAttributeValues |
1851
- QgsVectorDataProvider::AddAttributes |
1852
- QgsVectorDataProvider::DeleteAttributes );
1853
- }
1854
- */
1855
-
1856
-
1857
1847
void QgsWmsProvider::showStatusMessage (QString const & theMessage)
1858
1848
{
1859
1849
// Pass-through
@@ -1929,6 +1919,48 @@ bool QgsWmsProvider::calculateExtent()
1929
1919
1930
1920
}
1931
1921
1922
+
1923
+ int QgsWmsProvider::capabilities () const
1924
+ {
1925
+ int capability = 0 ;
1926
+ bool canIdentify = FALSE ;
1927
+
1928
+ #ifdef QGISDEBUG
1929
+ std::cout << " QgsWmsProvider::capabilities: entering." << std::endl;
1930
+ #endif
1931
+
1932
+ // Test for the ability to use the Identify map tool
1933
+ for ( QStringList::const_iterator it = activeSubLayers.begin ();
1934
+ it != activeSubLayers.end ();
1935
+ ++it )
1936
+ {
1937
+ // Is sublayer visible?
1938
+ if (TRUE == activeSubLayerVisibility.find ( *it )->second )
1939
+ {
1940
+ // Is sublayer queryable?
1941
+ if (TRUE == mQueryableForLayer .find ( *it )->second )
1942
+ {
1943
+ #ifdef QGISDEBUG
1944
+ std::cout << " QgsWmsProvider::capabilities: '" << (*it).toLocal8Bit ().data () << " ' is queryable." << std::endl;
1945
+ #endif
1946
+ canIdentify = TRUE ;
1947
+ }
1948
+ }
1949
+ }
1950
+
1951
+ // Collect all the test results into one bitmask
1952
+ if (canIdentify)
1953
+ {
1954
+ capability = (capability | QgsRasterDataProvider::Identify);
1955
+ }
1956
+
1957
+ #ifdef QGISDEBUG
1958
+ std::cout << " QgsWmsProvider::capabilities: exiting with '" << capability << " '." << std::endl;
1959
+ #endif
1960
+ return capability;
1961
+ }
1962
+
1963
+
1932
1964
QString QgsWmsProvider::getMetadata ()
1933
1965
{
1934
1966
@@ -1956,31 +1988,31 @@ QString QgsWmsProvider::getMetadata()
1956
1988
myMetadataQString += tr (" WMS Version" );
1957
1989
myMetadataQString += " </td>" ;
1958
1990
myMetadataQString += " <td bgcolor=\" gray\" >" ;
1959
- myMetadataQString += capabilities .version ;
1991
+ myMetadataQString += mCapabilities .version ;
1960
1992
myMetadataQString += " </td></tr>" ;
1961
1993
1962
1994
// Service Title
1963
1995
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
1964
1996
myMetadataQString += tr (" Title" );
1965
1997
myMetadataQString += " </td>" ;
1966
1998
myMetadataQString += " <td bgcolor=\" gray\" >" ;
1967
- myMetadataQString += capabilities .service .title ;
1999
+ myMetadataQString += mCapabilities .service .title ;
1968
2000
myMetadataQString += " </td></tr>" ;
1969
2001
1970
2002
// Service Abstract
1971
2003
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
1972
2004
myMetadataQString += tr (" Abstract" );
1973
2005
myMetadataQString += " </td>" ;
1974
2006
myMetadataQString += " <td bgcolor=\" gray\" >" ;
1975
- myMetadataQString += capabilities .service .abstract ;
2007
+ myMetadataQString += mCapabilities .service .abstract ;
1976
2008
myMetadataQString += " </td></tr>" ;
1977
2009
1978
2010
// Service Keywords
1979
2011
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
1980
2012
myMetadataQString += tr (" Keywords" );
1981
2013
myMetadataQString += " </td>" ;
1982
2014
myMetadataQString += " <td bgcolor=\" gray\" >" ;
1983
- myMetadataQString += capabilities .service .keywordList .join (" <br />" );
2015
+ myMetadataQString += mCapabilities .service .keywordList .join (" <br />" );
1984
2016
myMetadataQString += " </td></tr>" ;
1985
2017
1986
2018
// Service Online Resource
@@ -1996,43 +2028,43 @@ QString QgsWmsProvider::getMetadata()
1996
2028
myMetadataQString += tr (" Contact Person" );
1997
2029
myMetadataQString += " </td>" ;
1998
2030
myMetadataQString += " <td bgcolor=\" gray\" >" ;
1999
- myMetadataQString += capabilities .service .contactInformation .contactPersonPrimary .contactPerson ;
2031
+ myMetadataQString += mCapabilities .service .contactInformation .contactPersonPrimary .contactPerson ;
2000
2032
myMetadataQString += " <br />" ;
2001
- myMetadataQString += capabilities .service .contactInformation .contactPosition ;
2033
+ myMetadataQString += mCapabilities .service .contactInformation .contactPosition ;
2002
2034
myMetadataQString += " <br />" ;
2003
- myMetadataQString += capabilities .service .contactInformation .contactPersonPrimary .contactOrganization ;
2035
+ myMetadataQString += mCapabilities .service .contactInformation .contactPersonPrimary .contactOrganization ;
2004
2036
myMetadataQString += " </td></tr>" ;
2005
2037
2006
2038
// Service Fees
2007
2039
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
2008
2040
myMetadataQString += tr (" Fees" );
2009
2041
myMetadataQString += " </td>" ;
2010
2042
myMetadataQString += " <td bgcolor=\" gray\" >" ;
2011
- myMetadataQString += capabilities .service .fees ;
2043
+ myMetadataQString += mCapabilities .service .fees ;
2012
2044
myMetadataQString += " </td></tr>" ;
2013
2045
2014
2046
// Service Access Constraints
2015
2047
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
2016
2048
myMetadataQString += tr (" Access Constraints" );
2017
2049
myMetadataQString += " </td>" ;
2018
2050
myMetadataQString += " <td bgcolor=\" gray\" >" ;
2019
- myMetadataQString += capabilities .service .accessConstraints ;
2051
+ myMetadataQString += mCapabilities .service .accessConstraints ;
2020
2052
myMetadataQString += " </td></tr>" ;
2021
2053
2022
2054
// GetMap Request Formats
2023
2055
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
2024
2056
myMetadataQString += tr (" Image Formats" );
2025
2057
myMetadataQString += " </td>" ;
2026
2058
myMetadataQString += " <td bgcolor=\" gray\" >" ;
2027
- myMetadataQString += capabilities .capability .request .getMap .format .join (" <br />" );
2059
+ myMetadataQString += mCapabilities .capability .request .getMap .format .join (" <br />" );
2028
2060
myMetadataQString += " </td></tr>" ;
2029
2061
2030
2062
// GetFeatureInfo Request Formats
2031
2063
myMetadataQString += " <tr><td bgcolor=\" gray\" >" ;
2032
2064
myMetadataQString += tr (" Identify Formats" );
2033
2065
myMetadataQString += " </td>" ;
2034
2066
myMetadataQString += " <td bgcolor=\" gray\" >" ;
2035
- myMetadataQString += capabilities .capability .request .getFeatureInfo .format .join (" <br />" );
2067
+ myMetadataQString += mCapabilities .capability .request .getFeatureInfo .format .join (" <br />" );
2036
2068
myMetadataQString += " </td></tr>" ;
2037
2069
2038
2070
// Layer Count (as managed by this provider)
0 commit comments