23 #include <QFileDialog>    24 #include <QMessageBox>    28 QgsInstallGridShiftFileDialog::QgsInstallGridShiftFileDialog( 
const QString &gridName, QWidget *parent )
    30   , mGridName( gridName )
    35   mInstallButton->setText( tr( 
"Install %1 from Folder…" ).arg( mGridName ) );
    37   connect( mInstallButton, &QPushButton::clicked, 
this, &QgsInstallGridShiftFileDialog::installFromFile );
    40 void QgsInstallGridShiftFileDialog::setDescription( 
const QString &html )
    42   mSummaryLabel->setHtml( html );
    45 void QgsInstallGridShiftFileDialog::setDownloadMessage( 
const QString &message )
    47   mDownloadLabel->setText( message );
    50 void QgsInstallGridShiftFileDialog::installFromFile()
    53   const QString initialDir = settings.
value( QStringLiteral( 
"lastTransformGridFolder" ), QDir::homePath(), 
QgsSettings::App ).toString();
    54   const QString gridFilePath = QFileDialog::getOpenFileName( 
nullptr, tr( 
"Install %1" ).arg( mGridName ), initialDir, QStringLiteral( 
"%1 (%1);;" ).arg( mGridName ) + tr( 
"Grid Shift Files" ) + QStringLiteral( 
" (*.gsb *.GSB *.tif);;" ) + QObject::tr( 
"All files" ) + 
" (*)" );
    56   if ( gridFilePath.isEmpty() )
    61   QFileInfo fi( gridFilePath );
    65   if ( !QDir( baseGridPath ).exists() )
    66     QDir().mkdir( baseGridPath );
    68   const QString destPath = baseGridPath + 
'/' + fi.fileName();
    70   if ( QFile::copy( gridFilePath, destPath ) )
    72     QMessageBox::information( 
this, tr( 
"Install Grid File" ), tr( 
"The %1 grid shift file has been successfully installed. Please restart QGIS for this change to take effect." ).arg( mGridName ) );
    77     QMessageBox::critical( 
this, tr( 
"Install Grid File" ), tr( 
"Could not copy %1 to %2. Please check folder permissions and retry." ).arg( mGridName, destPath ) );
 static QString qgisSettingsDirPath()
Returns the path to the settings directory in user's home dir. 
 
This class is a composition of two QSettings instances: 
 
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key. 
 
void setValue(const QString &key, const QVariant &value, QgsSettings::Section section=QgsSettings::NoSection)
Sets the value of setting key to value. 
 
static void enableAutoGeometryRestore(QWidget *widget, const QString &key=QString())
Register the widget to allow its position to be automatically saved and restored when open and closed...