add scroll areas to connection dialogs and improve ui (fixes #61867, #60477, #43951)

This commit is contained in:
Alexander Bruy 2025-05-19 11:42:11 +01:00
parent ed9ed7c954
commit 005fefbef0
3 changed files with 891 additions and 780 deletions

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>649</width>
<height>504</height>
<height>482</height>
</rect>
</property>
<property name="windowTitle">
@ -20,187 +20,221 @@
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="5" column="0">
<item row="3" column="0">
<widget class="QgsScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>631</width>
<height>432</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="mGroupBox">
<property name="title">
<string>Connection Details</string>
</property>
<layout class="QGridLayout">
<item row="3" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtUrl">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtName">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Name of the new connection</string>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>Name</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="TextLabel1_5">
<property name="text">
<string>Prefix</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="mUrlPrefix">
<property name="toolTip">
<string>HTTP address Proxy Prefix of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/proxy.jsp?</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>ArcGIS Portal Details</string>
</property>
<layout class="QGridLayout" name="gridLayout1">
<item row="0" column="1">
<widget class="QLineEdit" name="mCommunityEndPointLineEdit">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/portal/sharing/rest/community/</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="TextLabel1_3">
<property name="text">
<string>Community endpoint URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="TextLabel1_4">
<property name="text">
<string>Content endpoint URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="mContentEndPointLineEdit">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/portal/sharing/rest/content/</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QgsHttpHeaderWidget" name="mHttpHeaders" native="true"/>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item row="6" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Help|QDialogButtonBox::StandardButton::Ok</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>ArcGIS Portal Details</string>
</property>
<layout class="QGridLayout" name="gridLayout1">
<item row="0" column="1">
<widget class="QLineEdit" name="mCommunityEndPointLineEdit">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/portal/sharing/rest/community/</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="TextLabel1_3">
<property name="text">
<string>Community endpoint URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="TextLabel1_4">
<property name="text">
<string>Content endpoint URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="mContentEndPointLineEdit">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/portal/sharing/rest/content/</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<widget class="QgsHttpHeaderWidget" name="mHttpHeaders" native="true"/>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="mGroupBox">
<property name="title">
<string>Connection Details</string>
</property>
<layout class="QGridLayout">
<item row="3" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtUrl">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtName">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Name of the new connection</string>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>Name</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="TextLabel1_5">
<property name="text">
<string>Prefix</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="mUrlPrefix">
<property name="toolTip">
<string>HTTP address Proxy Prefix of the Web Map Server</string>
</property>
<property name="placeholderText">
<string>https://mysite.com/proxy.jsp?</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
@ -211,6 +245,12 @@
<header>qgsauthsettingswidget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsScrollArea</class>
<extends>QScrollArea</extends>
<header>qgsscrollarea.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsHttpHeaderWidget</class>
<extends>QWidget</extends>

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>567</width>
<height>821</height>
<width>849</width>
<height>522</height>
</rect>
</property>
<property name="windowTitle">
@ -21,360 +21,387 @@
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QGroupBox" name="mGroupBox">
<property name="title">
<string>Connection Details</string>
<widget class="QgsScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<layout class="QGridLayout">
<item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="mWfsOptionsGroupBox">
<property name="title">
<string>WFS Options</string>
</property>
<layout class="QGridLayout" name="gridLayout1">
<item row="5" column="0">
<widget class="QLabel" name="lblFeatureMode">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Feature mode&lt;br/&gt;(Simple vs Complex)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbVersion"/>
</item>
<item row="7" column="0" colspan="3">
<widget class="QCheckBox" name="cbxWfsInvertAxisOrientation">
<property name="text">
<string>Invert axis orientation</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QComboBox" name="mComboHttpMethod"/>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWfsUseGml2EncodingForTransactions">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This might be necessary on some &lt;span style=&quot; font-weight:600;&quot;&gt;broken&lt;/span&gt; ESRI map servers when using WFS-T 1.1.0.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use GML2 encoding for transactions</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lblPageSize">
<property name="text">
<string>Page size</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblMaxNumFeatures">
<property name="text">
<string>Max. number of features</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lblVersion">
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="3">
<widget class="QCheckBox" name="cbxWfsIgnoreAxisOrientation">
<property name="text">
<string>Ignore axis orientation (WFS 1.1/WFS 2.0)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblVersion_2">
<property name="text">
<string>Preferred HTTP method</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLineEdit" name="txtMaxNumFeatures">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter a number to limit the maximum number of features retrieved per feature request. If let to empty, no limit is set.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="mWfsVersionDetectButton">
<property name="text">
<string>Detect</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QLineEdit" name="txtPageSize">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter a number to limit the maximum number of features retrieved in a single GetFeature request when paging is enabled. If let to empty, server default will apply.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QComboBox" name="cmbFeaturePaging"/>
</item>
<item row="5" column="1" colspan="2">
<widget class="QComboBox" name="mComboWfsFeatureMode"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lblFeaturePaging">
<property name="text">
<string>Feature paging</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QPushButton" name="mTestConnectionButton">
<property name="text">
<string>&amp;Test Connection</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<widget class="QGroupBox" name="mWmsOptionsGroupBox">
<property name="title">
<string>WMS/WMTS Options</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="13" column="0" colspan="2">
<widget class="QCheckBox" name="cbxSmoothPixmapTransform">
<property name="text">
<string>Smooth pixmap transform</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsIgnoreAxisOrientation">
<property name="text">
<string>Ignore axis orientation (WMS 1.3/WMTS)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbTilePixelRatio"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblFeatureCount">
<property name="text">
<string>Maximum number of GetFeatureInfo results</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsInvertAxisOrientation">
<property name="text">
<string>Invert axis orientation</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="cbxIgnoreGetFeatureInfoURI">
<property name="text">
<string>Ignore GetFeatureInfo URI reported in capabilities</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lblDpiMode">
<property name="text">
<string>WMS DPI-&amp;Mode</string>
</property>
<property name="buddy">
<cstring>cmbDpiMode</cstring>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsIgnoreReportedLayerExtents">
<property name="text">
<string>Ignore reported layer extents</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbDpiMode"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblTilePixelRatio">
<property name="text">
<string>WMTS server-side tile pixel ratio</string>
</property>
<property name="buddy">
<cstring>cmbTilePixelRatio</cstring>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="cbxIgnoreGetMapURI">
<property name="text">
<string>Ignore GetMap/GetTile/GetLegendGraphic URI reported in capabilities</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="sbFeatureCount">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Specify a default value for FEATURE_COUNT when a new layer is created from this connection. &lt;/p&gt;&lt;p&gt;FEATURE_COUNT defines the maximum number of results returned by a GetFeatureInfo request, if not specified the server default value (usually 1) will be used.&lt;/p&gt;&lt;p&gt;Set to 0 to use server default: no FEATURE_COUNT parameter will be added to the request.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="specialValueText">
<string>server default</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QgsHttpHeaderWidget" name="mHttpHeaders" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<property name="leftMargin">
<number>0</number>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>701</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="mGroupBox">
<property name="title">
<string>Connection Details</string>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>Name</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>5</number>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>Name</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtName">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Name of the new connection</string>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtUrl">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QgsHttpHeaderWidget" name="mHttpHeaders" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QPushButton" name="mTestConnectionButton">
<property name="text">
<string>&amp;Test Connection</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="mWmsOptionsGroupBox">
<property name="title">
<string>WMS/WMTS Options</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="13" column="0" colspan="2">
<widget class="QCheckBox" name="cbxSmoothPixmapTransform">
<property name="text">
<string>Smooth pixmap transform</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsIgnoreAxisOrientation">
<property name="text">
<string>Ignore axis orientation (WMS 1.3/WMTS)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbTilePixelRatio"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblFeatureCount">
<property name="text">
<string>Maximum number of GetFeatureInfo results</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsInvertAxisOrientation">
<property name="text">
<string>Invert axis orientation</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="cbxIgnoreGetFeatureInfoURI">
<property name="text">
<string>Ignore GetFeatureInfo URI reported in capabilities</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lblDpiMode">
<property name="text">
<string>WMS DPI-&amp;Mode</string>
</property>
<property name="buddy">
<cstring>cmbDpiMode</cstring>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWmsIgnoreReportedLayerExtents">
<property name="text">
<string>Ignore reported layer extents</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbDpiMode"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblTilePixelRatio">
<property name="text">
<string>WMTS server-side tile pixel ratio</string>
</property>
<property name="buddy">
<cstring>cmbTilePixelRatio</cstring>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="cbxIgnoreGetMapURI">
<property name="text">
<string>Ignore GetMap/GetTile/GetLegendGraphic URI reported in capabilities</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="sbFeatureCount">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Specify a default value for FEATURE_COUNT when a new layer is created from this connection. &lt;/p&gt;&lt;p&gt;FEATURE_COUNT defines the maximum number of results returned by a GetFeatureInfo request, if not specified the server default value (usually 1) will be used.&lt;/p&gt;&lt;p&gt;Set to 0 to use server default: no FEATURE_COUNT parameter will be added to the request.&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="specialValueText">
<string>server default</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="txtName">
<property name="minimumSize">
<item>
<widget class="QGroupBox" name="mWfsOptionsGroupBox">
<property name="title">
<string>WFS Options</string>
</property>
<layout class="QGridLayout" name="gridLayout1">
<item row="5" column="0">
<widget class="QLabel" name="lblFeatureMode">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Feature mode&lt;br/&gt;(Simple vs Complex)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="cmbVersion"/>
</item>
<item row="7" column="0" colspan="3">
<widget class="QCheckBox" name="cbxWfsInvertAxisOrientation">
<property name="text">
<string>Invert axis orientation</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QComboBox" name="mComboHttpMethod"/>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cbxWfsUseGml2EncodingForTransactions">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This might be necessary on some &lt;span style=&quot; font-weight:600;&quot;&gt;broken&lt;/span&gt; ESRI map servers when using WFS-T 1.1.0.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use GML2 encoding for transactions</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lblPageSize">
<property name="text">
<string>Page size</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lblMaxNumFeatures">
<property name="text">
<string>Max. number of features</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lblVersion">
<property name="text">
<string>Version</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="3">
<widget class="QCheckBox" name="cbxWfsIgnoreAxisOrientation">
<property name="text">
<string>Ignore axis orientation (WFS 1.1/WFS 2.0)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lblVersion_2">
<property name="text">
<string>Preferred HTTP method</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLineEdit" name="txtMaxNumFeatures">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter a number to limit the maximum number of features retrieved per feature request. If let to empty, no limit is set.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="mWfsVersionDetectButton">
<property name="text">
<string>Detect</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QLineEdit" name="txtPageSize">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enter a number to limit the maximum number of features retrieved in a single GetFeature request when paging is enabled. If let to empty, server default will apply.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QComboBox" name="cmbFeaturePaging"/>
</item>
<item row="5" column="1" colspan="2">
<widget class="QComboBox" name="mComboWfsFeatureMode"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lblFeaturePaging">
<property name="text">
<string>Feature paging</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
<width>20</width>
<height>40</height>
</size>
</property>
<property name="toolTip">
<string>Name of the new connection</string>
</property>
<property name="frame">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>URL</string>
</property>
<property name="margin">
<number>5</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtUrl">
<property name="toolTip">
<string>HTTP address of the Web Map Server</string>
</property>
</widget>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Help|QDialogButtonBox::Ok</set>
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Help|QDialogButtonBox::StandardButton::Ok</set>
</property>
</widget>
</item>
@ -388,6 +415,12 @@
<header>qgsauthsettingswidget.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsScrollArea</class>
<extends>QScrollArea</extends>
<header>qgsscrollarea.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>QgsHttpHeaderWidget</class>
<extends>QWidget</extends>
@ -396,8 +429,6 @@
</customwidget>
</customwidgets>
<tabstops>
<tabstop>txtName</tabstop>
<tabstop>txtUrl</tabstop>
<tabstop>cmbVersion</tabstop>
<tabstop>mWfsVersionDetectButton</tabstop>
<tabstop>mComboHttpMethod</tabstop>

View File

@ -25,258 +25,288 @@
<property name="modal">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,1">
<layout class="QGridLayout" name="gridLayout_3" columnstretch="1,0">
<property name="topMargin">
<number>0</number>
</property>
<item row="1" column="0">
<widget class="QGroupBox" name="GroupBox1">
<property name="title">
<string>Connection Details</string>
<item row="1" column="0" colspan="2">
<widget class="QgsScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::Shape::NoFrame</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="1">
<widget class="QLineEdit" name="txtService"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtPort">
<property name="text">
<string>5432</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="TextLabel3_3">
<property name="text">
<string>SSL &amp;mode</string>
</property>
<property name="buddy">
<cstring>cbxSSLmode</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="txtName">
<property name="toolTip">
<string>Name of the new connection</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtHost"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="txtDatabase"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="TextLabel2">
<property name="text">
<string>&amp;Database</string>
</property>
<property name="buddy">
<cstring>txtDatabase</cstring>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>&amp;Name</string>
</property>
<property name="buddy">
<cstring>txtName</cstring>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>Hos&amp;t</string>
</property>
<property name="buddy">
<cstring>txtHost</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="cbxSSLmode"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Service</string>
</property>
<property name="buddy">
<cstring>txtService</cstring>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="TextLabel2_2">
<property name="text">
<string>Port</string>
</property>
<property name="buddy">
<cstring>txtPort</cstring>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="txtSessionRole"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Session ROLE</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>803</width>
<height>617</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="GroupBox1">
<property name="title">
<string>Connection Details</string>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="focusPolicy">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="1" column="1">
<widget class="QLineEdit" name="txtService"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="txtPort">
<property name="text">
<string>5432</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="TextLabel3_3">
<property name="text">
<string>SSL &amp;mode</string>
</property>
<property name="buddy">
<cstring>cbxSSLmode</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="txtName">
<property name="toolTip">
<string>Name of the new connection</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="txtHost"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="txtDatabase"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="TextLabel2">
<property name="text">
<string>&amp;Database</string>
</property>
<property name="buddy">
<cstring>txtDatabase</cstring>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="TextLabel1_2">
<property name="text">
<string>&amp;Name</string>
</property>
<property name="buddy">
<cstring>txtName</cstring>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="TextLabel1">
<property name="text">
<string>Hos&amp;t</string>
</property>
<property name="buddy">
<cstring>txtHost</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="cbxSSLmode"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Service</string>
</property>
<property name="buddy">
<cstring>txtService</cstring>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="TextLabel2_2">
<property name="text">
<string>Port</string>
</property>
<property name="buddy">
<cstring>txtPort</cstring>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="txtSessionRole"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Session ROLE</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true">
<property name="focusPolicy">
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnConnect">
<property name="text">
<string>&amp;Test Connection</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QPushButton" name="btnConnect">
<property name="text">
<string>&amp;Test Connection</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Database Details</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="cb_allowGeometrylessTables">
<property name="text">
<string>Also list tables with no geometry</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="cb_projectsInDatabase">
<property name="text">
<string>Allow saving/loading QGIS projects in the database</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="cb_geometryColumnsOnly">
<property name="toolTip">
<string>Restricts the displayed tables to those that are found in the layer registries (geometry_columns, geography_columns, topology.layer). This can speed up the initial display of spatial tables.</string>
</property>
<property name="text">
<string>Only show layers in the layer registries</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="cb_dontResolveType">
<property name="text">
<string>Don't resolve type of unrestricted columns (GEOMETRY)</string>
</property>
</widget>
</item>
<item row="10" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Database Details</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="cb_allowGeometrylessTables">
<property name="text">
<string>Also list tables with no geometry</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="cb_projectsInDatabase">
<property name="text">
<string>Allow saving/loading QGIS projects in the database</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="cb_geometryColumnsOnly">
<property name="toolTip">
<string>Restricts the displayed tables to those that are found in the layer registries (geometry_columns, geography_columns, topology.layer). This can speed up the initial display of spatial tables.</string>
</property>
<property name="text">
<string>Only show layers in the layer registries</string>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QCheckBox" name="cb_dontResolveType">
<property name="text">
<string>Don't resolve type of unrestricted columns (GEOMETRY)</string>
</property>
</widget>
</item>
<item row="10" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="cb_metadataInDatabase">
<property name="text">
<string>Allow saving/loading QGIS layer metadata in the database</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="TextLabel3_5">
<property name="text">
<string>Schema</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QgsFilterLineEdit" name="txtSchema">
<property name="toolTip">
<string>If specified, only tables from the matching schema will be fetched and listed for the provider</string>
</property>
<property name="echoMode">
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="cb_metadataInDatabase">
<property name="text">
<string>Allow saving/loading QGIS layer metadata in the database</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="TextLabel3_5">
<property name="text">
<string>Schema</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QgsFilterLineEdit" name="txtSchema">
<property name="toolTip">
<string>If specified, only tables from the matching schema will be fetched and listed for the provider</string>
</property>
<property name="echoMode">
<enum>QLineEdit::EchoMode::Normal</enum>
</property>
<property name="placeholderText">
<string>Limit to tables from specific schema</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="cb_allowRasterOverviewTables">
<property name="text">
<string>Also list raster overview tables</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="cb_useEstimatedMetadata">
<property name="toolTip">
<string>&lt;html&gt;
</property>
<property name="placeholderText">
<string>Limit to tables from specific schema</string>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="cb_allowRasterOverviewTables">
<property name="text">
<string>Also list raster overview tables</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="cb_useEstimatedMetadata">
<property name="toolTip">
<string>&lt;html&gt;
&lt;body&gt;
&lt;p&gt;&lt;b&gt;Use estimated table statistics for the layer metadata.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;When the layer is setup various metadata is required for the PostGIS table. This includes information such as the table row count, geometry type and spatial extents of the data in the geometry column. If the table contains a large number of rows determining this metadata is time consuming.&lt;/p&gt;
@ -286,23 +316,27 @@
&lt;p&gt;3) If the table geometry type is unknown and is not exclusively taken from the geometry_columns table, then it is determined from the first 100 non-null geometry rows in the table.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</string>
</property>
<property name="text">
<string>Use estimated table metadata</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cb_publicSchemaOnly">
<property name="toolTip">
<string>When searching for spatial tables that are not in the geometry_columns tables, restrict the search to tables that are in the public schema (for some databases this can save lots of time)</string>
</property>
<property name="text">
<string>Only look in the 'public' schema</string>
</property>
</widget>
</item>
</layout>
</property>
<property name="text">
<string>Use estimated table metadata</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="cb_publicSchemaOnly">
<property name="toolTip">
<string>When searching for spatial tables that are not in the geometry_columns tables, restrict the search to tables that are in the public schema (for some databases this can save lots of time)</string>
</property>
<property name="text">
<string>Only look in the 'public' schema</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="0" colspan="2">
@ -336,6 +370,12 @@
<extends>QLineEdit</extends>
<header>qgsfilterlineedit.h</header>
</customwidget>
<customwidget>
<class>QgsScrollArea</class>
<extends>QScrollArea</extends>
<header>qgsscrollarea.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>txtName</tabstop>