26 #include <QDialogButtonBox>
27 #include <QPushButton>
28 #include <QMessageBox>
39 mMessageBar->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Fixed );
40 verticalLayout->insertWidget( 0, mMessageBar );
51 mPlacementVersionComboBox->setCurrentIndex( mPlacementVersionComboBox->findData( mPreviousEngineVersion ) );
52 connect( mPlacementVersionComboBox, &QComboBox::currentTextChanged,
this, [ = ]()
56 mMessageBar->pushMessage( QString(), tr(
"Version changes will alter label placement in the project." ), Qgis::Warning );
60 spinCandLine->setClearValue( 5 );
61 spinCandPolygon->setClearValue( 2.5 );
73 mUnplacedColorButton->setAllowOpacity(
false );
74 mUnplacedColorButton->setDefaultColor( QColor( 255, 0, 0 ) );
75 mUnplacedColorButton->setWindowTitle( tr(
"Unplaced Label Color" ) );
77 mTextRenderFormatComboBox->setCurrentIndex( mTextRenderFormatComboBox->findData( engineSettings.
defaultTextRenderFormat() ) );
89 mWidgetMenu =
new QMenu(
this );
90 QAction *resetAction =
new QAction( tr(
"Restore Defaults" ),
this );
91 mWidgetMenu->addAction( resetAction );
94 mWidgetMenu->addAction( helpAction );
105 return tr(
"Additional Options" );
134 spinCandLine->setValue( 5 );
135 spinCandPolygon->setValue( 10 );
136 chkShowCandidates->setChecked(
false );
137 chkShowAllLabels->setChecked(
false );
145 QgsHelp::openHelp( QStringLiteral(
"working_with_vector/vector_properties.html#setting-the-automated-placement-engine" ) );
156 setWindowTitle( mWidget->windowTitle() );
157 QVBoxLayout *vLayout =
new QVBoxLayout();
158 vLayout->addWidget( mWidget );
159 QDialogButtonBox *bbox =
new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Help | QDialogButtonBox::RestoreDefaults, Qt::Horizontal );
160 connect( bbox, &QDialogButtonBox::accepted,
this, &QDialog::accept );
161 connect( bbox, &QDialogButtonBox::rejected,
this, &QDialog::reject );
163 connect( bbox->button( QDialogButtonBox::RestoreDefaults ), &QAbstractButton::clicked,
165 vLayout->addWidget( bbox );
166 setLayout( vLayout );
168 setObjectName( QStringLiteral(
"QgsLabelSettingsWidgetDialog" ) );
static QIcon getThemeIcon(const QString &name)
Helper to get a theme icon.
static QgsGui * instance()
Returns a pointer to the singleton instance.
static void enableAutoGeometryRestore(QWidget *widget, const QString &key=QString())
Register the widget to allow its position to be automatically saved and restored when open and closed...
static void openHelp(const QString &key)
Opens help topic for the given help key using default system web browser.
QgsLabelEngineConfigDialog(QgsMapCanvas *canvas, QWidget *parent=nullptr)
constructor
Stores global configuration for labeling engine.
bool testFlag(Flag f) const
Test whether a particular flag is enabled.
void setDefaultTextRenderFormat(QgsRenderContext::TextRenderFormat format)
Sets the default text rendering format for the labels.
@ UseAllLabels
Whether to draw all labels even if there would be collisions.
@ UsePartialCandidates
Whether to use also label candidates that are partially outside of the map view.
@ DrawUnplacedLabels
Whether to render unplaced labels as an indicator/warning for users.
@ DrawCandidates
Whether to draw rectangles of generated candidates (good for debugging)
void setFlag(Flag f, bool enabled=true)
Sets whether a particual flag is enabled.
QgsRenderContext::TextRenderFormat defaultTextRenderFormat() const
Returns the default text rendering format for the labels.
void setMaximumPolygonCandidatesPerCmSquared(double candidates)
Sets the maximum number of polygon label candidates per centimeter squared.
QColor unplacedLabelColor() const
Returns the color to use when rendering unplaced labels.
PlacementEngineVersion
Placement engine version.
@ PlacementEngineVersion1
Version 1, matches placement from QGIS <= 3.10.1.
@ PlacementEngineVersion2
Version 2 (default for new projects since QGIS 3.12)
void setUnplacedLabelColor(const QColor &color)
Sets the color to use when rendering unplaced labels.
PlacementEngineVersion placementVersion() const
Returns the placement engine version, which dictates how the label placement problem is solved.
void setPlacementVersion(PlacementEngineVersion version)
Sets the placement engine version, which dictates how the label placement problem is solved.
double maximumPolygonCandidatesPerCmSquared() const
Returns the maximum number of polygon label candidate positions per centimeter squared.
void setMaximumLineCandidatesPerCm(double candidates)
Sets the maximum number of line label candidates per centimeter.
double maximumLineCandidatesPerCm() const
Returns the maximum number of line label candidate positions per centimeter.
Map canvas is a class for displaying all GIS data types on a canvas.
void refreshAllLayers()
Reload all layers (including refreshing layer properties from their data sources),...
A bar for displaying non-blocking messages to the user.
static QgsProject * instance()
Returns the QgsProject singleton instance.
void setLabelingEngineSettings(const QgsLabelingEngineSettings &settings)
Sets project's global labeling engine settings.
const QgsLabelingEngineSettings & labelingEngineSettings() const
Returns project's global labeling engine settings.
TextRenderFormat
Options for rendering text.
@ TextFormatAlwaysText
Always render text as text objects.
@ TextFormatAlwaysOutlines
Always render text using path objects (AKA outlines/curves).
bool showPartialLabels() const
Returns whether partial labels should be allowed.