QgsWFSSourceSelect::QgsWFSSourceSelect( QWidget* parent, Qt::WindowFlags fl, bool embeddedMode ) : QDialog( parent, fl ) , mCapabilities( nullptr ) { setupUi( this ); if ( embeddedMode ) { buttonBox->button( QDialogButtonBox::Close )->hide(); } mAddButton = new QPushButton( tr( "&Add" ) ); mAddButton->setEnabled( false ); mBuildQueryButton = new QPushButton( tr( "&Build query" ) ); mBuildQueryButton->setToolTip( tr( "Build query" ) ); mBuildQueryButton->setDisabled( true ); buttonBox->addButton( mAddButton, QDialogButtonBox::ActionRole ); connect( mAddButton, SIGNAL( clicked() ), this, SLOT( addLayer() ) ); buttonBox->addButton( mBuildQueryButton, QDialogButtonBox::ActionRole ); connect( mBuildQueryButton, SIGNAL( clicked() ), this, SLOT( buildQueryButtonClicked() ) ); connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) ); connect( btnNew, SIGNAL( clicked() ), this, SLOT( addEntryToServerList() ) ); connect( btnEdit, SIGNAL( clicked() ), this, SLOT( modifyEntryOfServerList() ) ); connect( btnDelete, SIGNAL( clicked() ), this, SLOT( deleteEntryOfServerList() ) ); connect( btnConnect, SIGNAL( clicked() ), this, SLOT( connectToServer() ) ); connect( btnChangeSpatialRefSys, SIGNAL( clicked() ), this, SLOT( changeCRS() ) ); connect( lineFilter, SIGNAL( textChanged( QString ) ), this, SLOT( filterChanged( QString ) ) ); populateConnectionList(); mProjectionSelector = new QgsGenericProjectionSelector( this ); mProjectionSelector->setMessage(); mItemDelegate = new QgsWFSItemDelegate( treeView ); treeView->setItemDelegate( mItemDelegate ); QSettings settings; QgsDebugMsg( "restoring settings" ); restoreGeometry( settings.value( "/Windows/WFSSourceSelect/geometry" ).toByteArray() ); cbxUseTitleLayerName->setChecked( settings.value( "/Windows/WFSSourceSelect/UseTitleLayerName", false ).toBool() ); mHoldDialogOpen->setChecked( settings.value( "/Windows/WFSSourceSelect/HoldDialogOpen", false ).toBool() ); mModel = new QStandardItemModel(); mModel->setHorizontalHeaderItem( MODEL_IDX_TITLE, new QStandardItem( "Title" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_NAME, new QStandardItem( "Name" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_ABSTRACT, new QStandardItem( "Abstract" ) ); mModel->setHorizontalHeaderItem( MODEL_IDX_FILTER, new QStandardItem( "Filter" ) ); mModelProxy = new QSortFilterProxyModel( this ); mModelProxy->setSourceModel( mModel ); mModelProxy->setSortCaseSensitivity( Qt::CaseInsensitive ); treeView->setModel( mModelProxy ); connect( treeView, SIGNAL( doubleClicked( const QModelIndex& ) ), this, SLOT( treeWidgetItemDoubleClicked( const QModelIndex& ) ) ); connect( treeView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), this, SLOT( treeWidgetCurrentRowChanged( const QModelIndex&, const QModelIndex& ) ) ); }
QgsSourceSelectDialog::QgsSourceSelectDialog( const QString& serviceName, ServiceType serviceType, QWidget* parent, Qt::WindowFlags fl ) : QDialog( parent, fl ), mServiceName( serviceName ), mServiceType( serviceType ), mBuildQueryButton( 0 ), mImageEncodingGroup( 0 ) { setupUi( this ); setWindowTitle( QStringLiteral( "Add %1 Layer from a Server" ).arg( mServiceName ) ); mAddButton = buttonBox->addButton( tr( "&Add" ), QDialogButtonBox::ActionRole ); mAddButton->setEnabled( false ); connect( mAddButton, SIGNAL( clicked() ), this, SLOT( addButtonClicked() ) ); if ( mServiceType == FeatureService ) { mBuildQueryButton = buttonBox->addButton( tr( "&Build query" ), QDialogButtonBox::ActionRole ); mBuildQueryButton->setDisabled( true ); connect( mBuildQueryButton, SIGNAL( clicked() ), this, SLOT( buildQueryButtonClicked() ) ); } connect( buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) ); connect( btnNew, SIGNAL( clicked() ), this, SLOT( addEntryToServerList() ) ); connect( btnEdit, SIGNAL( clicked() ), this, SLOT( modifyEntryOfServerList() ) ); connect( btnDelete, SIGNAL( clicked() ), this, SLOT( deleteEntryOfServerList() ) ); connect( btnConnect, SIGNAL( clicked() ), this, SLOT( connectToServer() ) ); connect( btnChangeSpatialRefSys, SIGNAL( clicked() ), this, SLOT( changeCrs() ) ); connect( lineFilter, SIGNAL( textChanged( QString ) ), this, SLOT( filterChanged( QString ) ) ); populateConnectionList(); mProjectionSelector = new QgsGenericProjectionSelector( this ); mProjectionSelector->setMessage(); treeView->setItemDelegate( new QgsSourceSelectItemDelegate( treeView ) ); QSettings settings; restoreGeometry( settings.value( QStringLiteral( "/Windows/SourceSelectDialog/geometry" ) ).toByteArray() ); cbxUseTitleLayerName->setChecked( settings.value( QStringLiteral( "/Windows/SourceSelectDialog/UseTitleLayerName" ), false ).toBool() ); mModel = new QStandardItemModel(); mModel->setHorizontalHeaderItem( 0, new QStandardItem( QStringLiteral( "Title" ) ) ); mModel->setHorizontalHeaderItem( 1, new QStandardItem( QStringLiteral( "Name" ) ) ); mModel->setHorizontalHeaderItem( 2, new QStandardItem( QStringLiteral( "Abstract" ) ) ); if ( serviceType == FeatureService ) { mModel->setHorizontalHeaderItem( 3, new QStandardItem( QStringLiteral( "Cache Feature" ) ) ); mModel->setHorizontalHeaderItem( 4, new QStandardItem( QStringLiteral( "Filter" ) ) ); gbImageEncoding->hide(); } else { cbxFeatureCurrentViewExtent->hide(); mImageEncodingGroup = new QButtonGroup( this ); } mModelProxy = new QSortFilterProxyModel( this ); mModelProxy->setSourceModel( mModel ); mModelProxy->setSortCaseSensitivity( Qt::CaseInsensitive ); treeView->setModel( mModelProxy ); connect( treeView, SIGNAL( doubleClicked( const QModelIndex& ) ), this, SLOT( treeWidgetItemDoubleClicked( const QModelIndex& ) ) ); connect( treeView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), this, SLOT( treeWidgetCurrentRowChanged( const QModelIndex&, const QModelIndex& ) ) ); }