diff --git a/python/core/auto_generated/qgsaction.sip.in b/python/core/auto_generated/qgsaction.sip.in index e323b2dfffb..e87002a8e47 100644 --- a/python/core/auto_generated/qgsaction.sip.in +++ b/python/core/auto_generated/qgsaction.sip.in @@ -34,7 +34,7 @@ Utility class that encapsulates an action based on vector attributes. Default constructor %End - QgsAction( ActionType type, const QString &description, const QString &command, bool capture = false ); + QgsAction( ActionType type, const QString &description, const QString &command, bool capture = false); %Docstring Create a new QgsAction @@ -42,10 +42,9 @@ Create a new QgsAction :param description: A human readable description string :param command: The action text. Its interpretation depends on the type :param capture: If this is set to ``True``, the output will be captured when an action is run -:param enabledOnlyWhenEditable: if ``True`` then action is only enable in editmode. Not available in Python bindings. %End - QgsAction( ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString() ); + QgsAction( ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString()); %Docstring Create a new QgsAction @@ -57,10 +56,9 @@ Create a new QgsAction :param shortTitle: A short string used to label user interface elements like buttons :param actionScopes: A set of scopes in which this action will be available :param notificationMessage: A particular message which reception will trigger the action -:param enabledOnlyWhenEditable: if ``True`` then action is only enable in editmode. Not available in Python bindings. %End - QgsAction( const QUuid &id, ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString() ); + QgsAction( const QUuid &id, ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString()); %Docstring Create a new QgsAction @@ -73,9 +71,9 @@ Create a new QgsAction :param shortTitle: A short string used to label user interface elements like buttons :param actionScopes: A set of scopes in which this action will be available :param notificationMessage: A particular message which reception will trigger the action -:param enabledOnlyWhenEditable: if ``True`` then action is only enable in editmode. Not available in Python bindings. %End + QString name() const; %Docstring The name of the action. This may be a longer description. diff --git a/src/core/qgsaction.h b/src/core/qgsaction.h index 5bb50b57097..1ec319ec21d 100644 --- a/src/core/qgsaction.h +++ b/src/core/qgsaction.h @@ -58,8 +58,7 @@ class CORE_EXPORT QgsAction * \param capture If this is set to TRUE, the output will be captured when an action is run * \param enabledOnlyWhenEditable if TRUE then action is only enable in editmode. Not available in Python bindings. */ -#ifndef SIP_RUN - QgsAction( ActionType type, const QString &description, const QString &command, bool capture = false, bool enabledOnlyWhenEditable = false ) + QgsAction( ActionType type, const QString &description, const QString &command, bool capture = false, bool enabledOnlyWhenEditable SIP_PYARGREMOVE = false ) : mType( type ) , mDescription( description ) , mCommand( command ) @@ -67,16 +66,6 @@ class CORE_EXPORT QgsAction , mId( QUuid::createUuid() ) , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) {} -#else - QgsAction( ActionType type, const QString &description, const QString &command, bool capture = false ) - : mType( type ) - , mDescription( description ) - , mCommand( command ) - , mCaptureOutput( capture ) - , mId( QUuid::createUuid() ) - , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) - {} -#endif /** * Create a new QgsAction @@ -91,8 +80,7 @@ class CORE_EXPORT QgsAction * \param notificationMessage A particular message which reception will trigger the action * \param enabledOnlyWhenEditable if TRUE then action is only enable in editmode. Not available in Python bindings. */ -#ifndef SIP_RUN - QgsAction( ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString(), bool enabledOnlyWhenEditable = false ) + QgsAction( ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString(), bool enabledOnlyWhenEditable SIP_PYARGREMOVE = false ) : mType( type ) , mDescription( description ) , mShortTitle( shortTitle ) @@ -104,20 +92,6 @@ class CORE_EXPORT QgsAction , mId( QUuid::createUuid() ) , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) {} -#else - QgsAction( ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString() ) - : mType( type ) - , mDescription( description ) - , mShortTitle( shortTitle ) - , mIcon( icon ) - , mCommand( action ) - , mCaptureOutput( capture ) - , mActionScopes( actionScopes ) - , mNotificationMessage( notificationMessage ) - , mId( QUuid::createUuid() ) - , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) - {} -#endif /** * Create a new QgsAction @@ -133,8 +107,7 @@ class CORE_EXPORT QgsAction * \param notificationMessage A particular message which reception will trigger the action * \param enabledOnlyWhenEditable if TRUE then action is only enable in editmode. Not available in Python bindings. */ -#ifndef SIP_RUN - QgsAction( const QUuid &id, ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString(), bool enabledOnlyWhenEditable = false ) + QgsAction( const QUuid &id, ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString(), bool enabledOnlyWhenEditable SIP_PYARGREMOVE = false ) : mType( type ) , mDescription( description ) , mShortTitle( shortTitle ) @@ -146,20 +119,7 @@ class CORE_EXPORT QgsAction , mId( id ) , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) {} -#else - QgsAction( const QUuid &id, ActionType type, const QString &description, const QString &action, const QString &icon, bool capture, const QString &shortTitle = QString(), const QSet &actionScopes = QSet(), const QString ¬ificationMessage = QString() ) - : mType( type ) - , mDescription( description ) - , mShortTitle( shortTitle ) - , mIcon( icon ) - , mCommand( action ) - , mCaptureOutput( capture ) - , mActionScopes( actionScopes ) - , mNotificationMessage( notificationMessage ) - , mId( id ) - , mIsEnabledOnlyWhenEditable( enabledOnlyWhenEditable ) - {} -#endif + //! The name of the action. This may be a longer description. QString name() const { return mDescription; } diff --git a/src/gui/editorwidgets/qgsactionwidgetwrapper.cpp b/src/gui/editorwidgets/qgsactionwidgetwrapper.cpp index 40cd9d29d3d..a1d30732370 100644 --- a/src/gui/editorwidgets/qgsactionwidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsactionwidgetwrapper.cpp @@ -48,7 +48,7 @@ void QgsActionWidgetWrapper::setEnabled( bool enabled ) { if ( valid() && layer() ) { - mActionButton->setEnabled( ! mAction.isEnabledOnlyWhenEditable() || enabled ); + mActionButton->setEnabled( !mAction.isEnabledOnlyWhenEditable() || enabled ); } } @@ -79,7 +79,7 @@ void QgsActionWidgetWrapper::initWidget( QWidget *editor ) // Configure push button if ( ! icon.isNull() ) { - mActionButton->setIcon( mAction.icon() ); + mActionButton->setIcon( icon ); mActionButton->setToolTip( description ); } else @@ -91,7 +91,7 @@ void QgsActionWidgetWrapper::initWidget( QWidget *editor ) } } - if ( mAction.isEnabledOnlyWhenEditable() && ! layer()->isEditable() ) + if ( mAction.isEnabledOnlyWhenEditable() && !layer()->isEditable() ) { mActionButton->setEnabled( false ); } diff --git a/src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp b/src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp index a3410b56be2..1ca3aaa62ac 100644 --- a/src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp @@ -444,7 +444,7 @@ void QgsValueRelationWidgetWrapper::showIndeterminateState() { for ( int i = 0; i < nofColumns; ++i ) { - whileBlocking( mTableWidget ) ->item( j, i )->setCheckState( Qt::PartiallyChecked ); + whileBlocking( mTableWidget )->item( j, i )->setCheckState( Qt::PartiallyChecked ); } } } diff --git a/src/gui/vector/qgsattributeactiondialog.cpp b/src/gui/vector/qgsattributeactiondialog.cpp index e13a9c353d3..ab1ba7b31d0 100644 --- a/src/gui/vector/qgsattributeactiondialog.cpp +++ b/src/gui/vector/qgsattributeactiondialog.cpp @@ -111,8 +111,8 @@ void QgsAttributeActionDialog::insertRow( int row, const QgsAction &action ) // Type item = new QTableWidgetItem( textForType( action.type() ) ); - item->setData( Qt::UserRole, action.type() ); - item->setData( Qt::UserRole + 1, action.id() ); + item->setData( Role::ActionType, action.type() ); + item->setData( Role::ActionId, action.id() ); item->setFlags( item->flags() & ~Qt::ItemIsEditable ); mAttributeActionTable->setItem( row, Type, item ); @@ -225,9 +225,9 @@ void QgsAttributeActionDialog::swapRows( int row1, int row2 ) QgsAction QgsAttributeActionDialog::rowToAction( int row ) const { - const QUuid id { mAttributeActionTable->item( row, Type )->data( Qt::UserRole + 1 ).toUuid() }; + const QUuid id { mAttributeActionTable->item( row, Type )->data( Role::ActionId ).toUuid() }; QgsAction action( id, - static_cast( mAttributeActionTable->item( row, Type )->data( Qt::UserRole ).toInt() ), + static_cast( mAttributeActionTable->item( row, Type )->data( Role::ActionType ).toInt() ), mAttributeActionTable->item( row, Description )->text(), mAttributeActionTable->item( row, ActionText )->data( Qt::UserRole ).toString(), mAttributeActionTable->verticalHeaderItem( row )->data( Qt::UserRole ).toString(), @@ -334,7 +334,7 @@ void QgsAttributeActionDialog::itemDoubleClicked( QTableWidgetItem *item ) const int row = item->row(); QgsAttributeActionPropertiesDialog actionProperties( - static_cast( mAttributeActionTable->item( row, Type )->data( Qt::UserRole ).toInt() ), + static_cast( mAttributeActionTable->item( row, Type )->data( Role::ActionType ).toInt() ), mAttributeActionTable->item( row, Description )->text(), mAttributeActionTable->item( row, ShortTitle )->text(), mAttributeActionTable->verticalHeaderItem( row )->data( Qt::UserRole ).toString(), @@ -350,7 +350,7 @@ void QgsAttributeActionDialog::itemDoubleClicked( QTableWidgetItem *item ) if ( actionProperties.exec() ) { - mAttributeActionTable->item( row, Type )->setData( Qt::UserRole, actionProperties.type() ); + mAttributeActionTable->item( row, Type )->setData( Role::ActionType, actionProperties.type() ); mAttributeActionTable->item( row, Type )->setText( textForType( actionProperties.type() ) ); mAttributeActionTable->item( row, Description )->setText( actionProperties.description() ); mAttributeActionTable->item( row, ShortTitle )->setText( actionProperties.shortTitle() ); diff --git a/src/gui/vector/qgsattributeactiondialog.h b/src/gui/vector/qgsattributeactiondialog.h index 730f88f106f..23f11c88ce4 100644 --- a/src/gui/vector/qgsattributeactiondialog.h +++ b/src/gui/vector/qgsattributeactiondialog.h @@ -51,6 +51,13 @@ class GUI_EXPORT QgsAttributeActionDialog: public QWidget, private Ui::QgsAttrib EnabledOnlyWhenEditable }; + //! UserRole for Type data + enum Role + { + ActionType = Qt::UserRole, + ActionId = Qt::UserRole + 1 + }; + public: QgsAttributeActionDialog( const QgsActionManager &actions, QWidget *parent = nullptr ); diff --git a/src/gui/vector/qgsattributesformproperties.cpp b/src/gui/vector/qgsattributesformproperties.cpp index 32fd1f4cf5a..65db9fb8b02 100644 --- a/src/gui/vector/qgsattributesformproperties.cpp +++ b/src/gui/vector/qgsattributesformproperties.cpp @@ -588,7 +588,7 @@ void QgsAttributesFormProperties::loadAttributeSpecificEditor( QgsAttributesDnDT } case DnDTreeItemData::Action: { - receiver->clearSelection(); + receiver->selectFirstMatchingItem( itemData ); break; } case DnDTreeItemData::QmlWidget: