Skip to content

Commit

Permalink
Switch user profile settings to QgsOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
YoannQDQ authored and nyalldawson committed Apr 24, 2023
1 parent 98dddc8 commit ed48541
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 122 deletions.
2 changes: 1 addition & 1 deletion src/app/CMakeLists.txt
Expand Up @@ -260,7 +260,7 @@ set(QGIS_APP_SRCS
options/qgsrasterrenderingoptions.cpp
options/qgsrenderingoptions.cpp
options/qgsvectorrenderingoptions.cpp
options/qgsuserprofilesettingsdialog.cpp
options/qgsuserprofileoptions.cpp
options/qgsuserprofileselectiondialog.cpp

gps/qgsappgpsconnection.cpp
Expand Down
@@ -1,9 +1,9 @@
/***************************************************************************
qgsuserprofilesettingsdialog.cpp
--------------------------------------
Date : February 2023
Copyright : (C) 2023 by Yoann Quenach de Quivillic
Email : yoann dot quenach at gmail dot com
qgsuserprofileoptions.cpp
-----------------
begin : February 2023
copyright : (C) 2023 by Yoann Quenach de Quivillic
email : yoann dot quenach at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
Expand All @@ -13,17 +13,21 @@
* *
***************************************************************************/

#include "qgssettings.h"
#include "qgsapplication.h"
#include "qgisapp.h"
#include "qgsuserprofilemanager.h"

#include "qgsuserprofilesettingsdialog.h"
#include "qgsuserprofileoptions.h"

QgsUserProfileSettingsDialog::QgsUserProfileSettingsDialog( QWidget *parent )
: QDialog( parent )
//
// QgsUserProfileOptionsWidget
//

QgsUserProfileOptionsWidget::QgsUserProfileOptionsWidget( QWidget *parent )
: QgsOptionsPageWidget( parent )
{
setupUi( this );
connect( mButtonBox, &QDialogButtonBox::accepted, this, &QgsUserProfileSettingsDialog::apply );

// Disable combobox if default profile is not selected
mDefaultProfileComboBox->setEnabled( false );
Expand Down Expand Up @@ -54,7 +58,7 @@ QgsUserProfileSettingsDialog::QgsUserProfileSettingsDialog( QWidget *parent )
mDefaultProfileComboBox->setCurrentText( manager->defaultProfileName() );
}

void QgsUserProfileSettingsDialog::apply()
void QgsUserProfileOptionsWidget::apply()
{
auto manager = QgisApp::instance()->userProfileManager();
if ( mLastProfile->isChecked() )
Expand All @@ -71,3 +75,25 @@ void QgsUserProfileSettingsDialog::apply()
manager->setDefaultProfileName( mDefaultProfileComboBox->currentText() );
}
}




//
// QgsUserProfileOptionsFactory
//
QgsUserProfileOptionsFactory::QgsUserProfileOptionsFactory()
: QgsOptionsWidgetFactory( tr( "User Profiles" ), QgsApplication::getThemeIcon( QStringLiteral( "/user.svg" ) ) )
{

}

QgsOptionsPageWidget *QgsUserProfileOptionsFactory::createWidget( QWidget *parent ) const
{
return new QgsUserProfileOptionsWidget( parent );
}

QString QgsUserProfileOptionsFactory::pagePositionHint() const
{
return QStringLiteral( "mOptionsPageCRS" );
}
59 changes: 59 additions & 0 deletions src/app/options/qgsuserprofileoptions.h
@@ -0,0 +1,59 @@
/***************************************************************************
qgsuserprofileoptions.h
---------------
begin : February 2023
copyright : (C) 2023 by Yoann Quenach de Quivillic
email : yoann dot quenach at gmail dot com
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSUSERPROFILEOPTIONS_H
#define QGSUSERPROFILEOPTIONS_H

#include "ui_qgsuserprofileoptionswidgetbase.h"
#include "qgsoptionswidgetfactory.h"
#include "qgis_app.h"

/**
* \ingroup app
* \class QgsUserProfileOptionsWidget
* \brief An options widget showing USERPROFILE settings.
*
* \since QGIS 3.32
*/
class APP_EXPORT QgsUserProfileOptionsWidget : public QgsOptionsPageWidget, private Ui::QgsUserProfileOptionsWidgetBase
{
Q_OBJECT

public:

/**
* Constructor for QgsUserProfileOptionsWidget with the specified \a parent widget.
*/
QgsUserProfileOptionsWidget( QWidget *parent );

void apply() override;

};


class QgsUserProfileOptionsFactory : public QgsOptionsWidgetFactory
{
Q_OBJECT

public:

QgsUserProfileOptionsFactory();

QgsOptionsPageWidget *createWidget( QWidget *parent = nullptr ) const override;
QString pagePositionHint() const override;

};


#endif // QGSUSERPROFILEOPTIONS_H
50 changes: 0 additions & 50 deletions src/app/options/qgsuserprofilesettingsdialog.h

This file was deleted.

15 changes: 2 additions & 13 deletions src/app/qgisapp.cpp
Expand Up @@ -116,7 +116,7 @@
#include "options/qgsrasterrenderingoptions.h"
#include "options/qgsrenderingoptions.h"
#include "options/qgsvectorrenderingoptions.h"
#include "options/qgsuserprofilesettingsdialog.h"
#include "options/qgsuserprofileoptions.h"

#include "raster/qgsrasterelevationpropertieswidget.h"
#include "qgsrasterattributetableapputils.h"
Expand Down Expand Up @@ -1921,6 +1921,7 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipBadLayers
mOptionWidgetFactories.emplace_back( QgsScopedOptionsWidgetFactory( std::make_unique< QgsGpsDeviceOptionsFactory >() ) );
mOptionWidgetFactories.emplace_back( QgsScopedOptionsWidgetFactory( std::make_unique< QgsCustomProjectionOptionsFactory >() ) );
mOptionWidgetFactories.emplace_back( QgsScopedOptionsWidgetFactory( std::make_unique< QgsFontOptionsFactory >() ) );
mOptionWidgetFactories.emplace_back( QgsScopedOptionsWidgetFactory( std::make_unique< QgsUserProfileOptionsFactory >() ) );

#ifdef HAVE_3D
mOptionWidgetFactories.emplace_back( QgsScopedOptionsWidgetFactory( std::make_unique< Qgs3DOptionsFactory >() ) );
Expand Down Expand Up @@ -3419,12 +3420,6 @@ void QgisApp::refreshProfileMenu()
QAction *newProfileAction = mConfigMenu->addAction( tr( "New Profile…" ) );
newProfileAction->setObjectName( "mActionNewProfile" );
connect( newProfileAction, &QAction::triggered, this, &QgisApp::newProfile );

QAction *profileSettingsAction = mConfigMenu->addAction( tr( "Profiles settings..." ) );
profileSettingsAction->setObjectName( "mActionProfileSettings" );
connect( profileSettingsAction, &QAction::triggered, this, &QgisApp::showUserProfileSettingsDialog );


}

void QgisApp::createProfileMenu()
Expand Down Expand Up @@ -15698,12 +15693,6 @@ void QgisApp::newProfile()
}
}

void QgisApp::showUserProfileSettingsDialog()
{
QgsUserProfileSettingsDialog dlg;
dlg.exec();
}

void QgisApp::onTaskCompleteShowNotify( long taskId, int status )
{
if ( status == QgsTask::Complete || status == QgsTask::Terminated )
Expand Down
2 changes: 0 additions & 2 deletions src/app/qgisapp.h
Expand Up @@ -1424,8 +1424,6 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
private slots:
void newProfile();

void showUserProfileSettingsDialog();

void onTaskCompleteShowNotify( long taskId, int status );

void onTransactionGroupsChanged();
Expand Down
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QgsUserProfileSettingsDialog</class>
<widget class="QDialog" name="QgsUserProfileSettingsDialog">
<class>QgsUserProfileOptionsWidgetBase</class>
<widget class="QWidget" name="QgsUserProfileOptionsWidgetBase">
<property name="geometry">
<rect>
<x>0</x>
Expand Down Expand Up @@ -79,51 +79,7 @@
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="mButtonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>mButtonBox</sender>
<signal>accepted()</signal>
<receiver>QgsUserProfileSettingsDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>mButtonBox</sender>
<signal>rejected()</signal>
<receiver>QgsUserProfileSettingsDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

0 comments on commit ed48541

Please sign in to comment.