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
public:
enum FloaterItem
enum class FloaterItem
{
XCoordinate,
YCoordinate,

View File

@ -280,7 +280,8 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas *
mFloater->setItemVisibility( QgsAdvancedDigitizingFloater::FloaterItem::XCoordinate, 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 );
} );
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 );
} );
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 );
} );
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 "qgsadvanceddigitizingfloater.h"
#include "qgsmessagelog.h"
#include "qgsmapcanvas.h"
#include "qgssettings.h"
#include "qgsfocuswatcher.h"
@ -176,7 +175,8 @@ void QgsAdvancedDigitizingFloater::setActive( bool active )
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 );
switch ( item )
{

View File

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