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.
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...
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.