Skip to content

Commit 298632e

Browse files
committed
save default template to <home>/.qgis/default.qgs
1 parent e4b9dfc commit 298632e

File tree

4 files changed

+74
-21
lines changed

4 files changed

+74
-21
lines changed

src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2914,7 +2914,7 @@ void QgisApp::fileNew( bool thePromptToSaveFlag, bool forceBlank )
29142914
QSettings settings;
29152915
if ( ! forceBlank )
29162916
{
2917-
QString projectTemplate = settings.value( "/qgis/newProjectTemplateFile", "" ).toString();
2917+
QString projectTemplate = QgsApplication::qgisSettingsDirPath() + QString( "default.qgs" );
29182918
if ( settings.value( "/qgis/newProjectTemplate", QVariant( false ) ).toBool() &&
29192919
! projectTemplate.isEmpty() )
29202920
{

src/app/qgsoptions.cpp

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "qgscoordinatereferencesystem.h"
2424
#include "qgstolerance.h"
2525
#include "qgsnetworkaccessmanager.h"
26+
#include "qgsproject.h"
2627

2728
#include <QFileDialog>
2829
#include <QSettings>
@@ -31,6 +32,7 @@
3132
#include <QToolBar>
3233
#include <QSize>
3334
#include <QStyleFactory>
35+
#include <QMessageBox>
3436

3537
#if QT_VERSION >= 0x40500
3638
#include <QNetworkDiskCache>
@@ -410,7 +412,6 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
410412
chbAskToSaveProjectChanges->setChecked( settings.value( "qgis/askToSaveProjectChanges", QVariant( true ) ).toBool() );
411413
chbWarnOldProjectVersion->setChecked( settings.value( "/qgis/warnOldProjectVersion", QVariant( true ) ).toBool() );
412414
cbxNewProjectTemplate->setChecked( settings.value( "/qgis/newProjectTemplate", QVariant( false ) ).toBool() );
413-
leNewProjectTemplate->setText( settings.value( "/qgis/newProjectTemplateFile", "" ).toString() );
414415

415416
cmbWheelAction->setCurrentIndex( settings.value( "/qgis/wheel_action", 2 ).toInt() );
416417
spinZoomFactor->setValue( settings.value( "/qgis/zoom_factor", 2 ).toDouble() );
@@ -560,12 +561,7 @@ QgsOptions::~QgsOptions()
560561
settings.setValue( "/Windows/Options/row", tabWidget->currentIndex() );
561562
}
562563

563-
void QgsOptions::on_cbxNewProjectTemplate_toggled( bool checked )
564-
{
565-
pbtnNewProjectTemplate->setEnabled( checked );
566-
leNewProjectTemplate->setEnabled( checked );
567-
}
568-
564+
#if 0
569565
void QgsOptions::on_pbtnNewProjectTemplate_pressed( )
570566
{
571567
QString lastUsedDir = QFileInfo( leNewProjectTemplate->text() ).canonicalFilePath();
@@ -584,6 +580,43 @@ void QgsOptions::on_pbtnNewProjectTemplate_pressed( )
584580
leNewProjectTemplate->setText( fullPath );
585581
}
586582
}
583+
#endif
584+
585+
void QgsOptions::on_cbxNewProjectTemplate_toggled( bool checked )
586+
{
587+
if ( checked )
588+
{
589+
QString fileName = QgsApplication::qgisSettingsDirPath() + QString( "default.qgs" );
590+
if ( ! QFile::exists( fileName ) )
591+
{
592+
QMessageBox::information( 0, tr( "Save default project" ), tr( "You must set a default project" ) );
593+
cbxNewProjectTemplate->setChecked( false );
594+
}
595+
}
596+
}
597+
598+
void QgsOptions::on_pbnSetCurrentProjectDefault_clicked( )
599+
{
600+
QString fileName = QgsApplication::qgisSettingsDirPath() + QString( "default.qgs" );
601+
if ( QgsProject::instance()->write( QFileInfo( fileName ) ) )
602+
{
603+
QMessageBox::information( 0, tr( "Save default project" ), tr( "Current project saved as default" ) );
604+
}
605+
else
606+
{
607+
QMessageBox::critical( 0, tr( "Save default project" ), tr( "Error saving current project as default" ) );
608+
}
609+
}
610+
611+
void QgsOptions::on_pbnResetCurrentProjectDefault_clicked( )
612+
{
613+
QString fileName = QgsApplication::qgisSettingsDirPath() + QString( "default.qgs" );
614+
if ( QFile::exists( fileName ) )
615+
{
616+
QFile::remove( fileName );
617+
}
618+
cbxNewProjectTemplate->setChecked( false );
619+
}
587620

588621
void QgsOptions::on_pbnSelectionColor_clicked()
589622
{
@@ -750,7 +783,6 @@ void QgsOptions::saveOptions()
750783
settings.setValue( "/qgis/askToSaveProjectChanges", chbAskToSaveProjectChanges->isChecked() );
751784
settings.setValue( "/qgis/warnOldProjectVersion", chbWarnOldProjectVersion->isChecked() );
752785
settings.setValue( "/qgis/newProjectTemplate", cbxNewProjectTemplate->isChecked() );
753-
settings.setValue( "/qgis/newProjectTemplateFile", leNewProjectTemplate->text().trimmed() );
754786
settings.setValue( "/qgis/nullValue", leNullValue->text() );
755787
settings.setValue( "/qgis/style", cmbStyle->currentText() );
756788

src/app/qgsoptions.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ class QgsOptions : public QDialog, private Ui::QgsOptionsBase
5050
QString theme();
5151

5252
public slots:
53-
void on_cbxNewProjectTemplate_toggled( bool );
54-
void on_pbtnNewProjectTemplate_pressed();
53+
void on_cbxNewProjectTemplate_toggled( bool checked );
54+
void on_pbnSetCurrentProjectDefault_clicked();
55+
void on_pbnResetCurrentProjectDefault_clicked();
5556
//! Slot called when user chooses to change the project wide projection.
5657
void on_pbnSelectProjection_clicked();
5758
//! Slot called when user chooses to change the default 'on the fly' projection.

src/ui/qgsoptionsbase.ui

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
<property name="geometry">
6666
<rect>
6767
<x>0</x>
68-
<y>-22</y>
68+
<y>0</y>
6969
<width>760</width>
7070
<height>1005</height>
7171
</rect>
@@ -96,27 +96,47 @@
9696
<item>
9797
<widget class="QCheckBox" name="cbxNewProjectTemplate">
9898
<property name="text">
99-
<string>New project template</string>
99+
<string>Create new project from default project</string>
100100
</property>
101101
</widget>
102102
</item>
103103
<item>
104-
<widget class="QLineEdit" name="leNewProjectTemplate">
105-
<property name="enabled">
106-
<bool>false</bool>
104+
<spacer name="horizontalSpacer_13">
105+
<property name="orientation">
106+
<enum>Qt::Horizontal</enum>
107107
</property>
108+
<property name="sizeHint" stdset="0">
109+
<size>
110+
<width>40</width>
111+
<height>20</height>
112+
</size>
113+
</property>
114+
</spacer>
115+
</item>
116+
<item>
117+
<widget class="QPushButton" name="pbnSetCurrentProjectDefault">
108118
<property name="text">
109-
<string/>
119+
<string>Set current project as default</string>
110120
</property>
111121
</widget>
112122
</item>
113123
<item>
114-
<widget class="QPushButton" name="pbtnNewProjectTemplate">
115-
<property name="enabled">
116-
<bool>false</bool>
124+
<spacer name="horizontalSpacer_14">
125+
<property name="orientation">
126+
<enum>Qt::Horizontal</enum>
127+
</property>
128+
<property name="sizeHint" stdset="0">
129+
<size>
130+
<width>40</width>
131+
<height>20</height>
132+
</size>
117133
</property>
134+
</spacer>
135+
</item>
136+
<item>
137+
<widget class="QPushButton" name="pbnResetCurrentProjectDefault">
118138
<property name="text">
119-
<string>Browse</string>
139+
<string>Reset default</string>
120140
</property>
121141
</widget>
122142
</item>

0 commit comments

Comments
 (0)