28#include "moc_qgsinstallgridshiftdialog.cpp"
30using namespace Qt::StringLiterals;
34QgsInstallGridShiftFileDialog::QgsInstallGridShiftFileDialog(
const QString &gridName, QWidget *parent )
36 , mGridName( gridName )
41 mInstallButton->setText( tr(
"Install %1 from Folder…" ).arg( mGridName ) );
43 connect( mInstallButton, &QPushButton::clicked,
this, &QgsInstallGridShiftFileDialog::installFromFile );
46void QgsInstallGridShiftFileDialog::setDescription(
const QString &html )
48 mSummaryLabel->setHtml( html );
51void QgsInstallGridShiftFileDialog::setDownloadMessage(
const QString &message )
53 mDownloadLabel->setText( message );
56void QgsInstallGridShiftFileDialog::installFromFile()
59 const QString initialDir = settings.
value( u
"lastTransformGridFolder"_s, QDir::homePath(),
QgsSettings::App ).toString();
60 const QString gridFilePath = QFileDialog::getOpenFileName(
nullptr, tr(
"Install %1" ).arg( mGridName ), initialDir, u
"%1 (%1);;"_s.arg( mGridName ) + tr(
"Grid Shift Files" ) + u
" (*.gsb *.GSB *.tif);;"_s + QObject::tr(
"All files" ) +
" (*)" );
62 if ( gridFilePath.isEmpty() )
67 const QFileInfo fi( gridFilePath );
72 const QString destFilePath = baseGridPath +
'/' + mGridName;
73 const QString destPath = QFileInfo( destFilePath ).absolutePath();
75 if ( !QDir( destPath ).exists() )
76 QDir().mkpath( destPath );
78 if ( QFile::copy( gridFilePath, destFilePath ) )
80 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 ) );
85 QMessageBox::critical(
this, tr(
"Install Grid File" ), tr(
"Could not copy %1 to %2. Please check folder permissions and retry." ).arg( mGridName, destFilePath ) );
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...
Stores settings for use within QGIS.
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.