| 
    QGIS API Documentation
    3.26.3-Buenos Aires (65e4edfdad)
    
   | 
 
 
 
 
Go to the documentation of this file.
   28   : QToolButton( parent )
 
   29   , mShape( 
QgsStyle::defaultStyle()->defaultPatch( 
Qgis::SymbolType::Fill, QSizeF( 10, 5 ) ) )
 
   30   , mDialogTitle( dialogTitle.isEmpty() ? tr( 
"Legend Patch Shape" ) : dialogTitle )
 
   34   connect( 
this, &QAbstractButton::clicked, 
this, &QgsLegendPatchShapeButton::showSettingsDialog );
 
   37   mMenu = 
new QMenu( 
this );
 
   38   connect( mMenu, &QMenu::aboutToShow, 
this, &QgsLegendPatchShapeButton::prepareMenu );
 
   40   setPopupMode( QToolButton::MenuButtonPopup );
 
   43   QSize size = QToolButton::minimumSizeHint();
 
   45   mSizeHint = QSize( size.width(), std::max( size.height(), fontHeight ) );
 
   62   if ( mPreviewSymbol->type() != type )
 
   94   mPreviewSymbol.reset( symbol );
 
   98 void QgsLegendPatchShapeButton::showSettingsDialog()
 
  150   mIsDefault = mShape.
isNull();
 
  178   if ( e->button() == Qt::RightButton )
 
  180     QToolButton::showMenu();
 
  183   QToolButton::mousePressEvent( e );
 
  186 void QgsLegendPatchShapeButton::prepareMenu()
 
  190   QAction *configureAction = 
new QAction( tr( 
"Configure Patch…" ), 
this );
 
  191   mMenu->addAction( configureAction );
 
  192   connect( configureAction, &QAction::triggered, 
this, &QgsLegendPatchShapeButton::showSettingsDialog );
 
  194   QAction *defaultAction = 
new QAction( tr( 
"Reset to Default" ), 
this );
 
  195   mMenu->addAction( defaultAction );
 
  196   connect( defaultAction, &QAction::triggered, 
this, [ = ] { 
setToDefault(); emit 
changed(); } );
 
  198   mMenu->addSeparator();
 
  203   for ( 
const QString &name : std::as_const( patchNames ) )
 
  211         QAction *action = 
new QAction( name, 
this );
 
  212         action->setIcon( icon );
 
  213         connect( action, &QAction::triggered, 
this, [ = ] { loadPatchFromStyle( name ); } );
 
  214         mMenu->addAction( action );
 
  220 void QgsLegendPatchShapeButton::loadPatchFromStyle( 
const QString &name )
 
  231   if ( e->type() == QEvent::EnabledChange )
 
  235   QToolButton::changeEvent( e );
 
  241   QToolButton::showEvent( e );
 
  246   QToolButton::resizeEvent( event );
 
  252 void QgsLegendPatchShapeButton::updatePreview()
 
  254   QSize currentIconSize;
 
  258     if ( !mIconSize.isValid() )
 
  261       QStyleOptionToolButton opt;
 
  262       initStyleOption( &opt );
 
  263       QRect buttonSize = QApplication::style()->subControlRect( QStyle::CC_ToolButton, &opt, QStyle::SC_ToolButton,
 
  267       mIconSize = QSize( buttonSize.width() - 10, height() - 6 );
 
  269       mIconSize = QSize( buttonSize.width() - 10, height() - 12 );
 
  272     currentIconSize = mIconSize;
 
  278     currentIconSize = QSize( width() - 10, height() - 6 );
 
  280     currentIconSize = QSize( width() - 10, height() - 12 );
 
  284   if ( !currentIconSize.isValid() || currentIconSize.width() <= 0 || currentIconSize.height() <= 0 )
 
  291   setIconSize( currentIconSize );
 
  297   int width = 
static_cast< int >( 
Qgis::UI_SCALE_FACTOR * fontMetrics().horizontalAdvance( 
'X' ) * 23 );
 
  298   int height = 
static_cast< int >( width / 1.61803398875 ); 
 
  302   QBuffer buffer( &data );
 
  303   pm.save( &buffer, 
"PNG", 100 );
 
  304   setToolTip( QStringLiteral( 
"<img src='data:image/png;base64, %3'>" ).arg( QString( data.toBase64() ) ) );
 
  309   mDialogTitle = title;
 
  
QStringList symbolsOfFavorite(StyleEntity type) const
Returns the symbol names which are flagged as favorite.
 
Abstract base class for all rendered symbols.
 
@ LegendPatchShapeEntity
Legend patch shape (since QGIS 3.14)
 
static QgsLineSymbol * createSimple(const QVariantMap &properties)
Create a line symbol with one symbol layer: SimpleLine with specified properties.
 
Represents a patch shape for use in map legends.
 
QSize iconSize(bool dockableToolbar)
Returns the user-preferred size of a window's toolbar icons.
 
static QgsStyle * defaultStyle()
Returns default application-wide style.
 
static QIcon symbolPreviewIcon(const QgsSymbol *symbol, QSize size, int padding=0, QgsLegendPatchShape *shape=nullptr)
Returns an icon preview for a color ramp.
 
static QPixmap symbolPreviewPixmap(const QgsSymbol *symbol, QSize size, int padding=0, QgsRenderContext *customContext=nullptr, bool selected=false, const QgsExpressionContext *expressionContext=nullptr, const QgsLegendPatchShape *shape=nullptr)
Returns a pixmap preview for a color ramp.
 
A bar for displaying non-blocking messages to the user.
 
static const double UI_SCALE_FACTOR
UI scaling factor.
 
static QgsFillSymbol * createSimple(const QVariantMap &properties)
Create a fill symbol with one symbol layer: SimpleFill with specified properties.
 
QgsLegendPatchShape legendPatchShape(const QString &name) const
Returns the legend patch shape with the specified name.
 
Qgis::SymbolType symbolType() const
Returns the symbol type associated with this patch.
 
QgsLegendPatchShape defaultPatch(Qgis::SymbolType type, QSizeF size) const
Returns the default legend patch shape for the given symbol type.
 
The Qgis class provides global constants for use throughout the application.
 
int scaleIconSize(int standardSize)
Scales an icon size to compensate for display pixel density, making the icon size hi-dpi friendly,...
 
static QgsMarkerSymbol * createSimple(const QVariantMap &properties)
Create a marker symbol with one symbol layer: SimpleMarker with specified properties.
 
bool isNull() const
Returns true if the patch shape is a null QgsLegendPatchShape, which indicates that the default legen...