59#define QGSCLIPBOARD_STYLE_MIME "application/qgis.style"
105 Q_ENUM( SymbolTableColumn )
117 Q_ENUM( TagTableColumn )
129 Q_ENUM( TagmapTableColumn )
143 Q_ENUM( ColorRampTableColumn )
157 Q_ENUM( TextFormatTableColumn )
171 Q_ENUM( LabelSettingsTableColumn )
184 Q_ENUM( SmartGroupTableColumn )
221 QString name()
const;
229 void setName(
const QString &name );
251 bool isReadOnly()
const;
262 void setReadOnly(
bool readOnly );
308 bool addTextFormat(
const QString &name,
const QgsTextFormat &format,
bool update =
false );
320 bool addLabelSettings(
const QString &name,
const QgsPalLayerSettings &settings,
bool update =
false );
332 bool addLegendPatchShape(
const QString &name,
const QgsLegendPatchShape &shape,
bool update =
false );
352 int addTag(
const QString &tagName );
377 int addSmartgroup(
const QString &name,
const QString &op,
const QStringList &matchTag,
const QStringList &noMatchTag,
378 const QStringList &matchName,
const QStringList &noMatchName );
385 QStringList tags()
const;
397 int colorRampCount();
400 QStringList colorRampNames()
const;
403 const QgsColorRamp *colorRampRef(
const QString &name )
const;
409 int colorrampId(
const QString &name );
422 int textFormatCount()
const;
428 QStringList textFormatNames()
const;
436 int textFormatId(
const QString &name );
456 int legendPatchShapesCount()
const;
478 int symbol3DCount()
const;
486 QList< Qgis::GeometryType > symbol3DCompatibleGeometryTypes(
const QString &name )
const;
501 int labelSettingsCount()
const;
507 QStringList labelSettingsNames()
const;
515 int labelSettingsId(
const QString &name );
525 static QgsStyle *defaultStyle(
bool initialize =
true );
528 static void cleanDefaultStyle()
SIP_SKIP;
539 bool tagSymbol( StyleEntity type, const QString &symbol, const QStringList &tags );
550 bool detagSymbol( StyleEntity type, const QString &symbol, const QStringList &tags );
560 bool detagSymbol( StyleEntity type, const QString &symbol );
563 bool removeSymbol( const QString &name );
572 bool renameEntity( StyleEntity type, const QString &oldName, const QString &newName );
579 bool renameSymbol( const QString &oldName, const QString &newName );
585 const
QgsSymbol *symbolRef( const QString &name ) const;
591 QStringList symbolNames() const;
597 int symbolId( const QString &name );
603 int entityId( StyleEntity type, const QString &name );
606 int tagId( const QString &tag );
608 int smartgroupId( const QString &smartgroup );
614 QStringList allNames( StyleEntity type ) const;
622 QStringList symbolsOfFavorite( StyleEntity type ) const;
631 QStringList symbolsWithTag( StyleEntity type,
int tagid ) const;
640 bool addFavorite( StyleEntity type, const QString &name );
649 bool removeFavorite( StyleEntity type, const QString &name );
658 bool rename( StyleEntity type,
int id, const QString &newName );
668 bool remove( StyleEntity type,
int id );
676 bool removeEntityByName( StyleEntity type, const QString &name );
687 bool saveSymbol( const QString &name, const
QgsSymbol *symbol,
bool favorite, const QStringList &tags );
698 bool saveColorRamp( const QString &name, const
QgsColorRamp *ramp,
bool favorite, const QStringList &tags );
701 bool removeColorRamp( const QString &name );
704 bool renameColorRamp( const QString &oldName, const QString &newName );
715 bool saveTextFormat( const QString &name, const
QgsTextFormat &format,
bool favorite, const QStringList &tags );
721 bool removeTextFormat( const QString &name );
728 bool renameTextFormat( const QString &oldName, const QString &newName );
739 bool saveLabelSettings( const QString &name, const
QgsPalLayerSettings &settings,
bool favorite, const QStringList &tags );
745 bool removeLabelSettings( const QString &name );
752 bool renameLabelSettings( const QString &oldName, const QString &newName );
765 bool saveLegendPatchShape( const QString &name, const
QgsLegendPatchShape &shape,
bool favorite, const QStringList &tags );
772 bool renameLegendPatchShape( const QString &oldName, const QString &newName );
778 QStringList legendPatchShapeNames() const;
803 QList< QList< QPolygonF > > defaultPatchAsQPolygonF(
Qgis::SymbolType type, QSizeF size ) const;
847 bool renameSymbol3D(
const QString &oldName,
const QString &newName );
853 QStringList symbol3DNames()
const;
862 bool createDatabase(
const QString &filename );
871 bool createMemoryDatabase();
892 bool load(
const QString &filename );
908 Q_DECL_DEPRECATED
bool save(
const QString &filename = QString() )
SIP_DEPRECATED;
915 QString errorString()
const {
return mErrorString; }
939 void setFileName(
const QString &filename );
948 QStringList findSymbols( StyleEntity type,
const QString &qword );
957 QStringList tagsOfSymbol( StyleEntity type,
const QString &symbol );
965 bool isFavorite( StyleEntity type,
const QString &name );
975 bool symbolHasTag( StyleEntity type,
const QString &symbol,
const QString &tag );
978 QString tag(
int id )
const;
984 QStringList smartgroupNames()
const;
992 QString smartgroupOperator(
int id );
995 QStringList symbolsOfSmartgroup( StyleEntity type,
int id );
998 bool exportXml(
const QString &filename );
1001 bool importXml(
const QString &filename );
1011 static bool isXmlStyleFile(
const QString &path );
1023 void triggerIconRebuild();
1245 bool mInitialized =
true;
1247 bool mReadOnly =
false;
1253 QMap<QString, QgsLegendPatchShape > mLegendPatchShapes;
1254 QMap<QString, QgsAbstract3DSymbol * > m3dSymbols;
1256 QHash< QgsStyle::StyleEntity, QHash< QString, QStringList > > mCachedTags;
1257 QHash< QgsStyle::StyleEntity, QHash< QString, bool > > mCachedFavorites;
1259 QString mErrorString;
1264 std::unique_ptr< QgsSymbol > mPatchMarkerSymbol;
1265 std::unique_ptr< QgsSymbol > mPatchLineSymbol;
1266 std::unique_ptr< QgsSymbol > mPatchFillSymbol;
1268 mutable QHash< int, QHash< QSizeF, QgsLegendPatchShape > > mDefaultPatchCache;
1269 mutable QHash< int, QHash< QSizeF, QList< QList< QPolygonF > > > > mDefaultPatchQPolygonFCache;
1271 QMap< QString, QDomElement > mDeferred3DsymbolElements;
1272 void handleDeferred3DSymbolCreation();
1281 void initializeDefaultStyle(
const QString &filename );
1284 bool openDatabase(
const QString &filename );
1287 bool importXml(
const QString &filename,
int sinceVersion );
1295 bool runEmptyQuery(
const QString &query );
1298 int getId(
const QString &table,
const QString &name );
1301 QString getName(
const QString &table,
int id )
const;
1311 bool updateSymbol(
StyleEntity type,
const QString &name );
1313 void clearCachedTags(
StyleEntity type,
const QString &name );
1318 bool createStyleMetadataTableIfNeeded();
1319 void upgradeIfRequired();
1324 static QString entityTableName(
StyleEntity type );
1329 static QString tagmapTableName(
StyleEntity type );
1334 static QString tagmapEntityIdFieldName(
StyleEntity type );
1337 friend class TestStyle;
1353 switch ( sipCpp->type() )
1356 sipType = sipType_QgsStyleSymbolEntity;
1360 sipType = sipType_QgsStyleColorRampEntity;
1364 sipType = sipType_QgsStyleTextFormatEntity;
1368 sipType = sipType_QgsStyleLabelSettingsEntity;
1497 : mSettings( settings )
Provides global constants and enumerations for use throughout the application.
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
A singleton class containing various registries and other global members related to 3D classes.
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,...
A color ramp entity for QgsStyle databases.
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
A label settings entity for QgsStyle databases.
const QgsPalLayerSettings & settings() const
Returns the entity's label settings.
QgsStyleLabelSettingsEntity(const QgsPalLayerSettings &settings)
Constructor for QgsStyleLabelSettingsEntity, with the specified label settings.
A legend patch shape entity for QgsStyle databases.
const QgsLegendPatchShape & shape() const
Returns the entity's legend patch shape.
QgsStyleLegendPatchShapeEntity(const QgsLegendPatchShape &shape)
Constructor for QgsStyleLegendPatchShapeEntity, with the specified legend patch shape.
A 3d symbol entity for QgsStyle databases.
const QgsAbstract3DSymbol * symbol() const
Returns the entity's symbol.
QgsStyleSymbol3DEntity(const QgsAbstract3DSymbol *symbol)
Constructor for QgsStyleSymbol3DEntity, with the specified symbol.
A symbol entity for QgsStyle databases.
QgsStyleSymbolEntity(QgsSymbol *symbol)
Constructor for QgsStyleSymbolEntity, with the specified symbol.
QgsSymbol * symbol() const
Returns the entity's symbol.
A text format entity for QgsStyle databases.
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.
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.
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...
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...
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