Merge pull request #53163 from elpaso/bugfix-followup-53061-floater-settings

Followup floater settings fix settings storage
This commit is contained in:
Alessandro Pasotti 2023-05-19 16:23:11 +02:00 committed by GitHub
commit 5bc7b6fd5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 16 deletions

View File

@ -30,7 +30,7 @@ feature. It proxies display and actions to :py:class:`QgsMapToolAdvancedDigitizi
%End %End
public: public:
enum FloaterItem enum class FloaterItem
{ {
XCoordinate, XCoordinate,
YCoordinate, YCoordinate,

View File

@ -280,7 +280,8 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::XCoordinate, checked ); mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::XCoordinate, checked );
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::YCoordinate, checked ); mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::YCoordinate, checked );
} ); } );
action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/XYShowInFloater" ), true ).toBool() ); // There is no separate menu option for X and Y so let's check for X only.
action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/XCoordinateShowInFloater" ), true ).toBool() );
} }
{ {
@ -291,7 +292,7 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
{ {
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::ZCoordinate, checked ); mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::ZCoordinate, checked );
} ); } );
action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/ZShowInFloater" ), true ).toBool() ); action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/ZCoordinateShowInFloater" ), true ).toBool() );
} }
{ {
@ -302,7 +303,7 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
{ {
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::MCoordinate, checked ); mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::MCoordinate, checked );
} ); } );
action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/MShowInFloater" ), true ).toBool() ); action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/MCoordinateShowInFloater" ), true ).toBool() );
} }
{ {
@ -313,7 +314,7 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
{ {
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::CommonAngleSnapping, checked ); mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::CommonAngleSnapping, checked );
} ); } );
action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/CommonAngleShowInFloater" ), false ).toBool() ); action->setChecked( QgsSettings().value( QStringLiteral( "/Cad/CommonAngleSnappingShowInFloater" ), false ).toBool() );
} }
{ {

View File

@ -18,7 +18,6 @@
#include <QLocale> #include <QLocale>
#include "qgsadvanceddigitizingfloater.h" #include "qgsadvanceddigitizingfloater.h"
#include "qgsmessagelog.h"
#include "qgsmapcanvas.h" #include "qgsmapcanvas.h"
#include "qgssettings.h" #include "qgssettings.h"
#include "qgsfocuswatcher.h" #include "qgsfocuswatcher.h"
@ -176,7 +175,8 @@ void QgsAdvancedDigitizingFloater::setActive( bool active )
void QgsAdvancedDigitizingFloater::setItemVisibility( const QgsAdvancedDigitizingFloater::FloaterItem &item, bool visible ) void QgsAdvancedDigitizingFloater::setItemVisibility( const QgsAdvancedDigitizingFloater::FloaterItem &item, bool visible )
{ {
QgsSettings().setValue( QStringLiteral( "/Cad/%1ShowInFloater" ).arg( QMetaEnum::fromType<QgsAdvancedDigitizingFloater::FloaterItem>().valueToKey( item ) ), visible ); const QMetaEnum enumData { QMetaEnum::fromType<QgsAdvancedDigitizingFloater::FloaterItem>() };
QgsSettings().setValue( QStringLiteral( "/Cad/%1ShowInFloater" ).arg( enumData.valueToKey( static_cast<int>( item ) ) ), visible );
mItemsVisibility.setFlag( item, visible ); mItemsVisibility.setFlag( item, visible );
switch ( item ) switch ( item )
{ {

View File

@ -44,16 +44,16 @@ class GUI_EXPORT QgsAdvancedDigitizingFloater : public QWidget, private Ui::QgsA
public: public:
//! Available floater items //! Available floater items
enum FloaterItem enum class FloaterItem : int
{ {
XCoordinate, XCoordinate = 1 << 1,
YCoordinate, YCoordinate = 1 << 2,
MCoordinate, MCoordinate = 1 << 3,
ZCoordinate, ZCoordinate = 1 << 4,
Angle, Angle = 1 << 5,
CommonAngleSnapping, CommonAngleSnapping = 1 << 6,
Distance, Distance = 1 << 7,
Bearing, Bearing = 1 << 8,
}; };
Q_DECLARE_FLAGS( FloaterItems, FloaterItem ) Q_DECLARE_FLAGS( FloaterItems, FloaterItem )
Q_FLAG( FloaterItem ) Q_FLAG( FloaterItem )