|
13 | 13 | * (at your option) any later version. *
|
14 | 14 | * *
|
15 | 15 | ***************************************************************************/
|
| 16 | + |
| 17 | +#include <QFileDialog> |
| 18 | + |
16 | 19 | #include "qgsrasterprojector.h"
|
17 | 20 |
|
| 21 | +#include "qgsgrass.h" |
18 | 22 | #include "qgsgrassoptions.h"
|
19 | 23 | #include "ui_qgsgrassoptionsbase.h"
|
20 | 24 |
|
21 | 25 | QgsGrassOptions::QgsGrassOptions( QWidget *parent )
|
22 |
| - : QDialog( parent ) |
| 26 | + : QgsOptionsDialogBase( "GrassOptions", parent ) |
23 | 27 | , QgsGrassOptionsBase()
|
24 | 28 | , mImportSettingsPath( "/GRASS/browser/import" )
|
| 29 | + , mModulesSettingsPath( "/GRASS/modules/config" ) |
25 | 30 | {
|
26 | 31 | setupUi( this );
|
| 32 | + initOptionsBase( false ); |
27 | 33 |
|
28 |
| - connect( this, SIGNAL( accepted() ), this, SLOT( saveOptions() ) ); |
| 34 | + connect( this, SIGNAL( accepted() ), SLOT( saveOptions() ) ); |
| 35 | + connect( buttonBox->button( QDialogButtonBox::Apply ), SIGNAL( clicked() ), SLOT( saveOptions() ) ); |
29 | 36 |
|
30 | 37 | QSettings settings;
|
31 | 38 |
|
| 39 | + // Modules |
| 40 | + bool customModules = settings.value( mModulesSettingsPath + "/custom", false ).toBool(); |
| 41 | + QString customModulesDir = settings.value( mModulesSettingsPath + "/customDir" ).toString(); |
| 42 | + mModulesConfigDefaultRadioButton->setText( tr( "Default" ) + " (" + QgsGrass::modulesConfigDefaultDirPath() + ")" ); |
| 43 | + mModulesConfigDefaultRadioButton->setChecked( !customModules ); |
| 44 | + mModulesConfigCustomRadioButton->setChecked( customModules ); |
| 45 | + mModulesConfigDirLineEdit->setText( customModulesDir ); |
| 46 | + |
| 47 | + // Browser |
32 | 48 | QgsRasterProjector::Precision crsTransform = ( QgsRasterProjector::Precision ) settings.value( mImportSettingsPath + "/crsTransform", QgsRasterProjector::Approximate ).toInt();
|
33 | 49 | mCrsTransformationComboBox->addItem( QgsRasterProjector::precisionLabel( QgsRasterProjector::Approximate ), QgsRasterProjector::Approximate );
|
34 | 50 | mCrsTransformationComboBox->addItem( QgsRasterProjector::precisionLabel( QgsRasterProjector::Exact ), QgsRasterProjector::Exact );
|
35 | 51 | mCrsTransformationComboBox->setCurrentIndex( mCrsTransformationComboBox->findData( crsTransform ) );
|
36 | 52 |
|
37 | 53 | mImportExternalCheckBox->setChecked( settings.value( mImportSettingsPath + "/external", true ).toBool() );
|
| 54 | + |
| 55 | + restoreOptionsBaseUi(); |
38 | 56 | }
|
39 | 57 |
|
40 | 58 | QgsGrassOptions::~QgsGrassOptions()
|
41 | 59 | {
|
42 | 60 | }
|
43 | 61 |
|
| 62 | +void QgsGrassOptions::on_mModulesConfigBrowseButton_clicked() |
| 63 | +{ |
| 64 | + QString dir = QFileDialog::getExistingDirectory( this, |
| 65 | + tr( "Choose a directory with configuration files (default.qgc, *.qgm)" ), |
| 66 | + mModulesConfigDirLineEdit->text() ); |
| 67 | + |
| 68 | + if ( !dir.isEmpty() ) |
| 69 | + { |
| 70 | + mModulesConfigDirLineEdit->setText( dir ); |
| 71 | + } |
| 72 | +} |
| 73 | + |
44 | 74 | void QgsGrassOptions::saveOptions()
|
45 | 75 | {
|
46 | 76 | QSettings settings;
|
47 | 77 |
|
| 78 | + // Modules |
| 79 | + bool customModules = mModulesConfigCustomRadioButton->isChecked(); |
| 80 | + QString customModulesDir = mModulesConfigDirLineEdit->text(); |
| 81 | + QgsGrass::instance()->setModulesConfig( customModules, customModulesDir ); |
| 82 | + |
| 83 | + // Browser |
48 | 84 | settings.setValue( mImportSettingsPath + "/crsTransform",
|
49 | 85 | mCrsTransformationComboBox->itemData( mCrsTransformationComboBox->currentIndex() ).toInt() );
|
50 | 86 |
|
|
0 commit comments