59#define QGSCLIPBOARD_STYLE_MIME "application/qgis.style"
60#define QGSCLIPBOARD_STYLES_MIME "application/qgis.styles"
106 Q_ENUM( SymbolTableColumn )
118 Q_ENUM( TagTableColumn )
130 Q_ENUM( TagmapTableColumn )
144 Q_ENUM( ColorRampTableColumn )
158 Q_ENUM( TextFormatTableColumn )
172 Q_ENUM( LabelSettingsTableColumn )
185 Q_ENUM( SmartGroupTableColumn )
222 QString name()
const;
230 void setName(
const QString &name );
252 bool isReadOnly()
const;
263 void setReadOnly(
bool readOnly );
309 bool addTextFormat(
const QString &name,
const QgsTextFormat &format,
bool update =
false );
321 bool addLabelSettings(
const QString &name,
const QgsPalLayerSettings &settings,
bool update =
false );
333 bool addLegendPatchShape(
const QString &name,
const QgsLegendPatchShape &shape,
bool update =
false );
353 int addTag(
const QString &tagName );
378 int addSmartgroup(
const QString &name,
const QString &op,
const QStringList &matchTag,
const QStringList &noMatchTag,
379 const QStringList &matchName,
const QStringList &noMatchName );
386 QStringList tags()
const;
398 int colorRampCount();
401 QStringList colorRampNames()
const;
404 const QgsColorRamp *colorRampRef(
const QString &name )
const;
410 int colorrampId(
const QString &name );
423 int textFormatCount()
const;
429 QStringList textFormatNames()
const;
437 int textFormatId(
const QString &name );
457 int legendPatchShapesCount()
const;
479 int symbol3DCount()
const;
487 QList< Qgis::GeometryType > symbol3DCompatibleGeometryTypes(
const QString &name )
const;
502 int labelSettingsCount()
const;
508 QStringList labelSettingsNames()
const;
516 int labelSettingsId(
const QString &name );
526 static QgsStyle *defaultStyle(
bool initialize =
true );
529 static void cleanDefaultStyle()
SIP_SKIP;
540 bool tagSymbol( StyleEntity type, const QString &symbol, const QStringList &tags );
551 bool detagSymbol( StyleEntity type, const QString &symbol, const QStringList &tags );
561 bool detagSymbol( StyleEntity type, const QString &symbol );
564 bool removeSymbol( const QString &name );
573 bool renameEntity( StyleEntity type, const QString &oldName, const QString &newName );
580 bool renameSymbol( const QString &oldName, const QString &newName );
586 const
QgsSymbol *symbolRef( const QString &name ) const;
592 QStringList symbolNames() const;
598 int symbolId( const QString &name );
604 int entityId( StyleEntity type, const QString &name );
607 int tagId( const QString &tag );
609 int smartgroupId( const QString &smartgroup );
615 QStringList allNames( StyleEntity type ) const;
623 QStringList symbolsOfFavorite( StyleEntity type ) const;
632 QStringList symbolsWithTag( StyleEntity type,
int tagid ) const;
641 bool addFavorite( StyleEntity type, const QString &name );
650 bool removeFavorite( StyleEntity type, const QString &name );
659 bool rename( StyleEntity type,
int id, const QString &newName );
669 bool remove( StyleEntity type,
int id );
677 bool removeEntityByName( StyleEntity type, const QString &name );
688 bool saveSymbol( const QString &name, const
QgsSymbol *symbol,
bool favorite, const QStringList &tags );
699 bool saveColorRamp( const QString &name, const
QgsColorRamp *ramp,
bool favorite, const QStringList &tags );
702 bool removeColorRamp( const QString &name );
705 bool renameColorRamp( const QString &oldName, const QString &newName );
716 bool saveTextFormat( const QString &name, const
QgsTextFormat &format,
bool favorite, const QStringList &tags );
722 bool removeTextFormat( const QString &name );
729 bool renameTextFormat( const QString &oldName, const QString &newName );
740 bool saveLabelSettings( const QString &name, const
QgsPalLayerSettings &settings,
bool favorite, const QStringList &tags );
746 bool removeLabelSettings( const QString &name );
753 bool renameLabelSettings( const QString &oldName, const QString &newName );
766 bool saveLegendPatchShape( const QString &name, const
QgsLegendPatchShape &shape,
bool favorite, const QStringList &tags );
773 bool renameLegendPatchShape( const QString &oldName, const QString &newName );
779 QStringList legendPatchShapeNames() const;
804 QList< QList< QPolygonF > > defaultPatchAsQPolygonF(
Qgis::SymbolType type, QSizeF size ) const;
848 bool renameSymbol3D(
const QString &oldName,
const QString &newName );
854 QStringList symbol3DNames()
const;
863 bool createDatabase(
const QString &filename );
872 bool createMemoryDatabase();
893 bool load(
const QString &filename );
909 Q_DECL_DEPRECATED
bool save(
const QString &filename = QString() )
SIP_DEPRECATED;
940 void setFileName(
const QString &filename );
949 QStringList findSymbols( StyleEntity type,
const QString &qword );
958 QStringList tagsOfSymbol( StyleEntity type,
const QString &symbol );
966 bool isFavorite( StyleEntity type,
const QString &name );
976 bool symbolHasTag( StyleEntity type,
const QString &symbol,
const QString &tag );
979 QString tag(
int id )
const;
985 QStringList smartgroupNames()
const;
993 QString smartgroupOperator(
int id );
996 QStringList symbolsOfSmartgroup( StyleEntity type,
int id );
999 bool exportXml(
const QString &filename );
1002 bool importXml(
const QString &filename );
1012 static bool isXmlStyleFile(
const QString &path );
1024 void triggerIconRebuild();
1246 bool mInitialized =
true;
1248 bool mReadOnly =
false;
1254 QMap<QString, QgsLegendPatchShape > mLegendPatchShapes;
1255 QMap<QString, QgsAbstract3DSymbol * > m3dSymbols;
1257 QHash< QgsStyle::StyleEntity, QHash< QString, QStringList > > mCachedTags;
1258 QHash< QgsStyle::StyleEntity, QHash< QString, bool > > mCachedFavorites;
1260 QString mErrorString;
1265 std::unique_ptr< QgsSymbol > mPatchMarkerSymbol;
1266 std::unique_ptr< QgsSymbol > mPatchLineSymbol;
1267 std::unique_ptr< QgsSymbol > mPatchFillSymbol;
1269 mutable QHash< int, QHash< QSizeF, QgsLegendPatchShape > > mDefaultPatchCache;
1270 mutable QHash< int, QHash< QSizeF, QList< QList< QPolygonF > > > > mDefaultPatchQPolygonFCache;
1272 QMap< QString, QDomElement > mDeferred3DsymbolElements;
1273 void handleDeferred3DSymbolCreation();
1282 void initializeDefaultStyle(
const QString &filename );
1285 bool openDatabase(
const QString &filename );
1288 bool importXml(
const QString &filename,
int sinceVersion );
1296 bool runEmptyQuery(
const QString &query );
1299 int getId(
const QString &table,
const QString &
name );
1302 QString getName(
const QString &table,
int id )
const;
1319 bool createStyleMetadataTableIfNeeded();
1320 void upgradeIfRequired();
1325 static QString entityTableName(
StyleEntity type );
1330 static QString tagmapTableName(
StyleEntity type );
1335 static QString tagmapEntityIdFieldName(
StyleEntity type );
1354 switch ( sipCpp->type() )
1357 sipType = sipType_QgsStyleSymbolEntity;
1361 sipType = sipType_QgsStyleColorRampEntity;
1365 sipType = sipType_QgsStyleTextFormatEntity;
1369 sipType = sipType_QgsStyleLabelSettingsEntity;
Provides global constants and enumerations for use throughout the application.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
Abstract base class for color ramps.
Represents a patch shape for use in map legends.
Contains settings for how a map layer will be labeled.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
QgsStyleColorRampEntity(QgsColorRamp *ramp)
Constructor for QgsStyleColorRampEntity, with the specified color ramp.
QgsColorRamp * ramp() const
Returns the entity's color ramp.
An interface for entities which can be placed in a QgsStyle database.
virtual QgsStyle::StyleEntity type() const =0
Returns the type of style entity.
virtual ~QgsStyleEntityInterface()=default
const QgsPalLayerSettings & settings() const
Returns the entity's label settings.
QgsStyleLabelSettingsEntity(const QgsPalLayerSettings &settings)
Constructor for QgsStyleLabelSettingsEntity, with the specified label settings.
const QgsLegendPatchShape & shape() const
Returns the entity's legend patch shape.
QgsStyleLegendPatchShapeEntity(const QgsLegendPatchShape &shape)
Constructor for QgsStyleLegendPatchShapeEntity, with the specified legend patch shape.
const QgsAbstract3DSymbol * symbol() const
Returns the entity's symbol.
QgsStyleSymbol3DEntity(const QgsAbstract3DSymbol *symbol)
Constructor for QgsStyleSymbol3DEntity, with the specified symbol.
QgsStyleSymbolEntity(QgsSymbol *symbol)
Constructor for QgsStyleSymbolEntity, with the specified symbol.
QgsSymbol * symbol() const
Returns the entity's symbol.
QgsTextFormat format() const
Returns the entity's text format.
QgsStyleTextFormatEntity(const QgsTextFormat &format)
Constructor for QgsStyleTextFormatEntity, with the specified text format.
A database of saved style entities, including symbols, color ramps, text formats and others.
void labelSettingsChanged(const QString &name)
Emitted whenever a label setting's definition is changed.
QString errorString() const
Returns the last error from a load() operation.
void entityChanged(QgsStyle::StyleEntity entity, const QString &name)
Emitted whenever an entity's definition is changed.
void labelSettingsAdded(const QString &name)
Emitted whenever label settings have been added to the style and the database has been updated as a r...
void rampAdded(const QString &name)
Emitted whenever a color ramp has been added to the style and the database has been updated as a resu...
void rebuildIconPreviews()
Emitted whenever icon previews for entities in the style must be rebuilt.
void aboutToBeDestroyed()
Emitted just before the style object is destroyed.
LabelSettingsTableColumn
Columns available in the label settings table.
QgsSymbol * symbol(const QString &name)
Returns a NEW copy of symbol.
void labelSettingsRemoved(const QString &name)
Emitted whenever label settings have been removed from the style and the database has been updated as...
StyleEntity
Enum for Entities involved in a style.
@ LabelSettingsEntity
Label settings.
@ TextFormatEntity
Text formats.
@ SmartgroupEntity
Smart groups.
@ Symbol3DEntity
3D symbol entity
@ ColorrampEntity
Color ramps.
@ LegendPatchShapeEntity
Legend patch shape.
void symbolRenamed(const QString &oldName, const QString &newName)
Emitted whenever a symbol has been renamed from oldName to newName.
ColorRampTableColumn
Columns available in the color ramp table.
void groupsModified()
Emitted every time a tag or smartgroup has been added, removed, or renamed.
void rampRemoved(const QString &name)
Emitted whenever a color ramp has been removed from the style and the database has been updated as a ...
void entityRenamed(QgsStyle::StyleEntity entity, const QString &oldName, const QString &newName)
Emitted whenever a entity of the specified type has been renamed from oldName to newName.
void textFormatChanged(const QString &name)
Emitted whenever a text format's definition is changed.
void symbolSaved(const QString &name, const QgsSymbol *symbol)
Emitted every time a new symbol has been added to the database.
void textFormatRenamed(const QString &oldName, const QString &newName)
Emitted whenever a text format has been renamed from oldName to newName.
void labelSettingsRenamed(const QString &oldName, const QString &newName)
Emitted whenever label settings have been renamed from oldName to newName.
void initialized()
Emitted when the style database has been fully initialized.
TextFormatTableColumn
Columns available in the text format table.
QString fileName() const
Returns the current file name of the style database.
void rampRenamed(const QString &oldName, const QString &newName)
Emitted whenever a color ramp has been renamed from oldName to newName.
bool isInitialized() const
Returns true if the style is initialized and ready for use.
SmartGroupTableColumn
Columns available in the smart group table.
TagTableColumn
Columns available in the Tags table.
void textFormatAdded(const QString &name)
Emitted whenever a text format has been added to the style and the database has been updated as a res...
bool isFavorite(StyleEntity type, const QString &name)
Returns true if the symbol with matching type and name is marked as a favorite.
QString name() const
Returns the name of the style.
QgsStyle(QObject *parent=nullptr)
Constructor for QgsStyle, with the specified parent object.
SymbolTableColumn
Columns available in the Symbols table.
TagmapTableColumn
Columns available in the tag to symbol table.
void rampChanged(const QString &name)
Emitted whenever a color ramp's definition is changed.
void entityTagsChanged(QgsStyle::StyleEntity entity, const QString &name, const QStringList &newTags)
Emitted whenever an entity's tags are changed.
void favoritedChanged(QgsStyle::StyleEntity entity, const QString &name, bool isFavorite)
Emitted whenever an entity is either favorited or un-favorited.
void entityRemoved(QgsStyle::StyleEntity entity, const QString &name)
Emitted whenever an entity of the specified type is removed from the style and the database has been ...
void entityAdded(QgsStyle::StyleEntity entity, const QString &name)
Emitted every time a new entity has been added to the database.
TextFormatContext
Text format context.
@ Labeling
Text format used in labeling.
void symbolRemoved(const QString &name)
Emitted whenever a symbol has been removed from the style and the database has been updated as a resu...
void symbolChanged(const QString &name)
Emitted whenever a symbol's definition is changed.
void textFormatRemoved(const QString &name)
Emitted whenever a text format has been removed from the style and the database has been updated as a...
bool importXml(const QString &filename)
Imports the symbols and colorramps into the default style database from the given XML file.
Abstract base class for symbol layers.
Abstract base class for all rendered symbols.
Container for all settings relating to text rendering.
Unique pointer for sqlite3 databases, which automatically closes the database when the pointer goes o...
QMultiMap< QString, QString > QgsSmartConditionMap
A multimap to hold the smart group conditions as constraint and parameter pairs.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
QMap< QString, QgsSymbol * > QgsSymbolMap
QMap< QString, QgsPalLayerSettings > QgsLabelSettingsMap
Map of name to label settings.
QMap< QString, QgsTextFormat > QgsTextFormatMap
Map of name to text format.
QMap< QString, QgsColorRamp * > QgsVectorColorRampMap
QMap< int, QString > QgsSymbolGroupMap