void QgsEmbedLayerDialog::on_mBrowseFileToolButton_clicked() { //line edit might emit editingFinished signal when loosing focus mProjectFileLineEdit->blockSignals( true ); QSettings s; QString projectFile = QFileDialog::getOpenFileName( this, tr( "Select project file" ), s.value( "/qgis/last_embedded_project_path" ).toString() , tr( "QGis files" ) + " (*.qgs *.QGS)" ); if ( !projectFile.isEmpty() ) { mProjectFileLineEdit->setText( projectFile ); } changeProjectFile(); mProjectFileLineEdit->blockSignals( false ); }
QgsProjectLayerGroupDialog::QgsProjectLayerGroupDialog( QWidget *parent, const QString &projectFile, Qt::WindowFlags f ) : QDialog( parent, f ) , mRootGroup( new QgsLayerTree ) { setupUi( this ); QgsEmbeddedLayerTreeModel *model = new QgsEmbeddedLayerTreeModel( mRootGroup, this ); mTreeView->setModel( model ); QgsSettings settings; mProjectFileWidget->setStorageMode( QgsFileWidget::GetFile ); mProjectFileWidget->setFilter( tr( "QGIS files" ) + QStringLiteral( " (*.qgs *.QGS *.qgz *.QGZ)" ) ); mProjectFileWidget->setDialogTitle( tr( "Select Project File" ) ); mProjectFileWidget->setDefaultRoot( settings.value( QStringLiteral( "/qgis/last_embedded_project_path" ), QDir::homePath() ).toString() ); if ( !projectFile.isEmpty() ) { mProjectFileWidget->setFilePath( projectFile ); mProjectFileLabel->hide(); mProjectFileWidget->hide(); mShowEmbeddedContent = true; mPresetProjectMode = true; changeProjectFile(); mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( true ); } else { mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); } connect( mProjectFileWidget, &QgsFileWidget::fileChanged, this, &QgsProjectLayerGroupDialog::changeProjectFile ); connect( mButtonBox, &QDialogButtonBox::accepted, this, &QgsProjectLayerGroupDialog::mButtonBox_accepted ); restoreGeometry( settings.value( QStringLiteral( "Windows/EmbedLayer/geometry" ) ).toByteArray() ); connect( mButtonBox, &QDialogButtonBox::rejected, this, &QDialog::reject ); connect( mButtonBox, &QDialogButtonBox::helpRequested, this, &QgsProjectLayerGroupDialog::showHelp ); }
void QgsEmbedLayerDialog::on_mProjectFileLineEdit_editingFinished() { changeProjectFile(); }