QGIS API Documentation  3.0.2-Girona (307d082)
Public Types | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
QgsStyle Class Reference

#include <qgsstyle.h>

Inheritance diagram for QgsStyle:
Inheritance graph
[legend]

Public Types

enum  StyleEntity { SymbolEntity, TagEntity, ColorrampEntity, SmartgroupEntity }
 Enum for Entities involved in a style. More...
 

Signals

void groupsModified ()
 Is emitted every time a tag or smartgroup has been added, removed, or renamed. More...
 
void symbolSaved (const QString &name, QgsSymbol *symbol)
 Is emitted every time a new symbol has been added to the database. More...
 

Public Member Functions

 QgsStyle ()=default
 Constructor for QgsStyle. More...
 
 ~QgsStyle () override
 
bool addColorRamp (const QString &name, QgsColorRamp *colorRamp, bool update=false)
 Adds a color ramp to the style. More...
 
bool addFavorite (StyleEntity type, const QString &name)
 Adds the specified symbol to favorites. More...
 
int addSmartgroup (const QString &name, const QString &op, const QgsSmartConditionMap &conditions)
 Adds a new smartgroup to the database and returns the id. More...
 
bool addSymbol (const QString &name, QgsSymbol *symbol, bool update=false)
 Adds a symbol to style and takes symbol's ownership. More...
 
int addTag (const QString &tagName)
 Adds a new tag and returns the tag's id. More...
 
void clear ()
 Removes all contents of the style. More...
 
QgsColorRampcolorRamp (const QString &name) const
 Returns a new copy of the specified color ramp. More...
 
int colorRampCount ()
 Returns count of color ramps. More...
 
int colorrampId (const QString &name)
 Returns the id in the style database for the given colorramp name returns 0 if not found. More...
 
QStringList colorRampNames ()
 Returns a list of names of color ramps. More...
 
const QgsColorRampcolorRampRef (const QString &name) const
 Returns a const pointer to a symbol (doesn't create new instance) More...
 
bool createDatabase (const QString &filename)
 Creates an on-disk database. More...
 
bool createMemoryDatabase ()
 Creates a temporary memory database. More...
 
void createTables ()
 Creates tables structure for new database. More...
 
bool detagSymbol (StyleEntity type, const QString &symbol, const QStringList &tags)
 Detags the symbol with the given list. More...
 
bool detagSymbol (StyleEntity type, const QString &symbol)
 Clears the symbol from all attached tags. More...
 
QString errorString ()
 Returns last error from load/save operation. More...
 
bool exportXml (const QString &filename)
 Exports the style as a XML file. More...
 
QString fileName ()
 Returns current file name of the style. More...
 
QStringList findSymbols (StyleEntity type, const QString &qword)
 Returns the names of the symbols which have a matching 'substring' in its definition. More...
 
bool importXml (const QString &filename)
 Imports the symbols and colorramps into the default style database from the given XML file. More...
 
bool load (const QString &filename)
 Loads a file into the style. More...
 
void remove (StyleEntity type, int id)
 Removes the specified entity from the db. More...
 
bool removeColorRamp (const QString &name)
 Removes color ramp from style (and delete it) More...
 
bool removeFavorite (StyleEntity type, const QString &name)
 Removes the specified symbol from favorites. More...
 
bool removeSymbol (const QString &name)
 Removes symbol from style (and delete it) More...
 
void rename (StyleEntity type, int id, const QString &newName)
 Renames the given entity with the specified id. More...
 
bool renameColorRamp (const QString &oldName, const QString &newName)
 Changes ramp's name. More...
 
bool renameSymbol (const QString &oldName, const QString &newName)
 Changessymbol's name. More...
 
bool save (QString filename=QString())
 Saves style into a file (will use current filename if empty string is passed) More...
 
bool saveColorRamp (const QString &name, QgsColorRamp *ramp, bool favorite, const QStringList &tags)
 Adds the colorramp to the DB. More...
 
bool saveSymbol (const QString &name, QgsSymbol *symbol, bool favorite, const QStringList &tags)
 Adds the symbol to the DB with the tags. More...
 
QgsSmartConditionMap smartgroup (int id)
 Returns the QgsSmartConditionMap for the given id. More...
 
int smartgroupId (const QString &smartgroup)
 Returns the DB id for the given smartgroup name. More...
 
QStringList smartgroupNames ()
 Returns the smart groups list. More...
 
QString smartgroupOperator (int id)
 Returns the operator for the smartgroup clumsy implementation TODO create a class for smartgroups. More...
 
QgsSymbolGroupMap smartgroupsListMap ()
 Returns the smart groups map with id as key and name as value. More...
 
QgsSymbolsymbol (const QString &name)
 Returns a NEW copy of symbol. More...
 
int symbolCount ()
 Returns count of symbols in style. More...
 
bool symbolHasTag (StyleEntity type, const QString &symbol, const QString &tag)
 Returns whether a given tag is associated with the symbol. More...
 
int symbolId (const QString &name)
 Returns the id in the style database for the given symbol name returns 0 if not found. More...
 
QStringList symbolNames ()
 Returns a list of names of symbols. More...
 
const QgsSymbolsymbolRef (const QString &name) const
 Returns a const pointer to a symbol (doesn't create new instance) More...
 
QStringList symbolsOfFavorite (StyleEntity type) const
 Returns the symbol names which are flagged as favorite. More...
 
QStringList symbolsOfSmartgroup (StyleEntity type, int id)
 Returns the symbols for the smartgroup. More...
 
QStringList symbolsWithTag (StyleEntity type, int tagid) const
 Returns the symbol names with which have the given tag. More...
 
QString tag (int id) const
 Returns the tag name for the given id. More...
 
int tagId (const QString &tag)
 Returns the DB id for the given tag name. More...
 
QStringList tags () const
 Returns a list of all tags in the style database. More...
 
QStringList tagsOfSymbol (StyleEntity type, const QString &symbol)
 Returns the tags associated with the symbol. More...
 
bool tagSymbol (StyleEntity type, const QString &symbol, const QStringList &tags)
 Tags the symbol with the tags in the list. More...
 

Static Public Member Functions

static QgsStyledefaultStyle ()
 Returns default application-wide style. More...
 

Protected Member Functions

int getId (const QString &table, const QString &name)
 Gets the id from the table for the given name from the database, 0 if not found. More...
 
QString getName (const QString &table, int id) const
 Gets the name from the table for the given id from the database, empty if not found. More...
 
bool openDatabase (const QString &filename)
 Convenience function to open the DB and return a sqlite3 object. More...
 
bool runEmptyQuery (char *query, bool freeQuery=true)
 Convenience function that would run queries which don't generate return values. More...
 
bool updateSymbol (StyleEntity type, const QString &name)
 Updates the properties of an existing symbol/colorramp. More...
 

Protected Attributes

QgsVectorColorRampMap mColorRamps
 
sqlite3_database_unique_ptr mCurrentDB
 
QString mErrorString
 
QString mFileName
 
QgsSymbolMap mSymbols
 

Static Protected Attributes

static QgsStylesDefaultStyle = nullptr
 

Detailed Description

Definition at line 76 of file qgsstyle.h.

Member Enumeration Documentation

◆ StyleEntity

Enum for Entities involved in a style.

The enumerator is used for identifying the entity being operated on when generic database functions are being run.

See also
rename(), remove(), symbolsOfFavorite(), symbolsWithTag(), symbolsOfSmartgroup()
Enumerator
SymbolEntity 
TagEntity 
ColorrampEntity 
SmartgroupEntity 

Definition at line 95 of file qgsstyle.h.

Constructor & Destructor Documentation

◆ QgsStyle()

QgsStyle::QgsStyle ( )
default

Constructor for QgsStyle.

◆ ~QgsStyle()

QgsStyle::~QgsStyle ( )
override

Definition at line 41 of file qgsstyle.cpp.

Member Function Documentation

◆ addColorRamp()

bool QgsStyle::addColorRamp ( const QString &  name,
QgsColorRamp colorRamp,
bool  update = false 
)

Adds a color ramp to the style.

Calling this method takes the ramp's ownership.

Note
Adding a color ramp with the name of existing one replaces it.
Parameters
nameis the name of the color ramp being added or updated
colorRampis the color ramp. Ownership is transferred.
updateset to true when the style DB has to be updated, by default it is false
Returns
success status of the operation

Definition at line 186 of file qgsstyle.cpp.

◆ addFavorite()

bool QgsStyle::addFavorite ( StyleEntity  type,
const QString &  name 
)

Adds the specified symbol to favorites.

Parameters
typeis either SymbolEntity of ColorrampEntity
nameis the name of the symbol or coloramp whose is to be added to favorites
Returns
returns the success state as bool

Definition at line 745 of file qgsstyle.cpp.

◆ addSmartgroup()

int QgsStyle::addSmartgroup ( const QString &  name,
const QString &  op,
const QgsSmartConditionMap conditions 
)

Adds a new smartgroup to the database and returns the id.

Parameters
nameis the name of the new Smart Group to be added
opis the operator between the conditions; AND/OR as QString
conditionsare the smart group conditions

Definition at line 1137 of file qgsstyle.cpp.

◆ addSymbol()

bool QgsStyle::addSymbol ( const QString &  name,
QgsSymbol symbol,
bool  update = false 
)

Adds a symbol to style and takes symbol's ownership.

Note
Adding a symbol with the name of existing one replaces it.
Parameters
nameis the name of the symbol being added or updated
symbolis the Vector symbol
updateset to true when the style DB has to be updated, by default it is false
Returns
success status of the operation

Definition at line 81 of file qgsstyle.cpp.

◆ addTag()

int QgsStyle::addTag ( const QString &  tagName)

Adds a new tag and returns the tag's id.

Parameters
tagNamethe name of the new tag to be created
Returns
returns an int, which is the DB id of the new tag created, 0 if the tag couldn't be created

Definition at line 605 of file qgsstyle.cpp.

◆ clear()

void QgsStyle::clear ( )

Removes all contents of the style.

Definition at line 72 of file qgsstyle.cpp.

◆ colorRamp()

QgsColorRamp * QgsStyle::colorRamp ( const QString &  name) const

Returns a new copy of the specified color ramp.

The caller takes responsibility for deleting the returned object.

Definition at line 257 of file qgsstyle.cpp.

◆ colorRampCount()

int QgsStyle::colorRampCount ( )

Returns count of color ramps.

Definition at line 268 of file qgsstyle.cpp.

◆ colorrampId()

int QgsStyle::colorrampId ( const QString &  name)

Returns the id in the style database for the given colorramp name returns 0 if not found.

Definition at line 1122 of file qgsstyle.cpp.

◆ colorRampNames()

QStringList QgsStyle::colorRampNames ( )

Returns a list of names of color ramps.

Definition at line 273 of file qgsstyle.cpp.

◆ colorRampRef()

const QgsColorRamp * QgsStyle::colorRampRef ( const QString &  name) const

Returns a const pointer to a symbol (doesn't create new instance)

Definition at line 263 of file qgsstyle.cpp.

◆ createDatabase()

bool QgsStyle::createDatabase ( const QString &  filename)

Creates an on-disk database.

This function creates a new on-disk permanent style database.

Returns
returns the success state of the database creation
Since
QGIS 3.0
See also
createMemoryDb()

Definition at line 290 of file qgsstyle.cpp.

◆ createMemoryDatabase()

bool QgsStyle::createMemoryDatabase ( )

Creates a temporary memory database.

This function is used to create a temporary style database in case a permanent on-disk database is not needed.

Returns
returns the success state of the temporary memory database creation
Since
QGIS 3.0
See also
createDb()

Definition at line 305 of file qgsstyle.cpp.

◆ createTables()

void QgsStyle::createTables ( )

Creates tables structure for new database.

This function is used to create the tables structure in a newly-created database.

Returns
returns the success state of the temporary memory database creation
Since
QGIS 3.0
See also
createDB(), createMemoryDB()

Definition at line 320 of file qgsstyle.cpp.

◆ defaultStyle()

QgsStyle * QgsStyle::defaultStyle ( )
static

Returns default application-wide style.

Definition at line 46 of file qgsstyle.cpp.

◆ detagSymbol() [1/2]

bool QgsStyle::detagSymbol ( StyleEntity  type,
const QString &  symbol,
const QStringList &  tags 
)

Detags the symbol with the given list.

Removes the given tags for the specified symbol or colorramp

Parameters
typeis either SymbolEntity or ColorrampEntity
symbolis the name of the symbol or colorramp
tagsis the list of tags that are to be removed as QStringList
Returns
returns the success state of the operation

Definition at line 908 of file qgsstyle.cpp.

◆ detagSymbol() [2/2]

bool QgsStyle::detagSymbol ( StyleEntity  type,
const QString &  symbol 
)

Clears the symbol from all attached tags.

Removes all tags for the specified symbol or colorramp

Parameters
typeis either SymbolEntity or ColorrampEntity
symbolis the name of the symbol or colorramp
Returns
returns the success state of the operation

Definition at line 961 of file qgsstyle.cpp.

◆ errorString()

QString QgsStyle::errorString ( )
inline

Returns last error from load/save operation.

Definition at line 353 of file qgsstyle.h.

◆ exportXml()

bool QgsStyle::exportXml ( const QString &  filename)

Exports the style as a XML file.

Definition at line 1396 of file qgsstyle.cpp.

◆ fileName()

QString QgsStyle::fileName ( )
inline

Returns current file name of the style.

Definition at line 356 of file qgsstyle.h.

◆ findSymbols()

QStringList QgsStyle::findSymbols ( StyleEntity  type,
const QString &  qword 
)

Returns the names of the symbols which have a matching 'substring' in its definition.

Parameters
typeis either SymbolEntity or ColorrampEntity
qwordis the query string to search the symbols or colorramps.
Returns
A QStringList of the matched symbols or colorramps

Definition at line 787 of file qgsstyle.cpp.

◆ getId()

int QgsStyle::getId ( const QString &  table,
const QString &  name 
)
protected

Gets the id from the table for the given name from the database, 0 if not found.

Definition at line 1085 of file qgsstyle.cpp.

◆ getName()

QString QgsStyle::getName ( const QString &  table,
int  id 
) const
protected

Gets the name from the table for the given id from the database, empty if not found.

Definition at line 1101 of file qgsstyle.cpp.

◆ groupsModified

void QgsStyle::groupsModified ( )
signal

Is emitted every time a tag or smartgroup has been added, removed, or renamed.

◆ importXml()

bool QgsStyle::importXml ( const QString &  filename)

Imports the symbols and colorramps into the default style database from the given XML file.

Definition at line 1468 of file qgsstyle.cpp.

◆ load()

bool QgsStyle::load ( const QString &  filename)

Loads a file into the style.

This function will load an on-disk database and populate styles.

Parameters
filenamelocation of the database to load styles from
Returns
returns the success state of the database being loaded

Definition at line 348 of file qgsstyle.cpp.

◆ openDatabase()

bool QgsStyle::openDatabase ( const QString &  filename)
protected

Convenience function to open the DB and return a sqlite3 object.

Definition at line 278 of file qgsstyle.cpp.

◆ remove()

void QgsStyle::remove ( StyleEntity  type,
int  id 
)

Removes the specified entity from the db.

Parameters
typeis any of the style entities. Refer enum StyleEntity.
idis the DB id of the entity to be removed

Definition at line 682 of file qgsstyle.cpp.

◆ removeColorRamp()

bool QgsStyle::removeColorRamp ( const QString &  name)

Removes color ramp from style (and delete it)

Definition at line 239 of file qgsstyle.cpp.

◆ removeFavorite()

bool QgsStyle::removeFavorite ( StyleEntity  type,
const QString &  name 
)

Removes the specified symbol from favorites.

Parameters
typeis either SymbolEntity of ColorrampEntity
nameis the name of the symbol or coloramp whose is to be removed from favorites
Returns
returns the success state as bool

Definition at line 766 of file qgsstyle.cpp.

◆ removeSymbol()

bool QgsStyle::removeSymbol ( const QString &  name)

Removes symbol from style (and delete it)

Definition at line 136 of file qgsstyle.cpp.

◆ rename()

void QgsStyle::rename ( StyleEntity  type,
int  id,
const QString &  newName 
)

Renames the given entity with the specified id.

Parameters
typeis any of the style entities. Refer enum StyleEntity.
idis the DB id of the entity which is to be renamed
newNameis the new name of the entity

Definition at line 645 of file qgsstyle.cpp.

◆ renameColorRamp()

bool QgsStyle::renameColorRamp ( const QString &  oldName,
const QString &  newName 
)

Changes ramp's name.

Definition at line 492 of file qgsstyle.cpp.

◆ renameSymbol()

bool QgsStyle::renameSymbol ( const QString &  oldName,
const QString &  newName 
)

Changessymbol's name.

Definition at line 460 of file qgsstyle.cpp.

◆ runEmptyQuery()

bool QgsStyle::runEmptyQuery ( char *  query,
bool  freeQuery = true 
)
protected

Convenience function that would run queries which don't generate return values.

Parameters
queryquery to run
freeQueryrelease query memory
Returns
success true on success

Definition at line 723 of file qgsstyle.cpp.

◆ save()

bool QgsStyle::save ( QString  filename = QString())

Saves style into a file (will use current filename if empty string is passed)

Definition at line 414 of file qgsstyle.cpp.

◆ saveColorRamp()

bool QgsStyle::saveColorRamp ( const QString &  name,
QgsColorRamp ramp,
bool  favorite,
const QStringList &  tags 
)

Adds the colorramp to the DB.

Parameters
nameis the name of the colorramp as QString
rampis the pointer to the new QgsColorRamp being saved
favoriteis a boolean value to specify whether the colorramp should be added to favorites
tagsis a list of tags that are associated with the color ramp as a QStringList.
Returns
returns the success state of the save operation

Definition at line 210 of file qgsstyle.cpp.

◆ saveSymbol()

bool QgsStyle::saveSymbol ( const QString &  name,
QgsSymbol symbol,
bool  favorite,
const QStringList &  tags 
)

Adds the symbol to the DB with the tags.

Parameters
nameis the name of the symbol as QString
symbolis the pointer to the new QgsSymbol being saved
favoriteis a boolean value to specify whether the symbol should be added to favorites
tagsis a list of tags that are associated with the symbol as a QStringList.
Returns
returns the success state of the save operation

Definition at line 105 of file qgsstyle.cpp.

◆ smartgroup()

QgsSmartConditionMap QgsStyle::smartgroup ( int  id)

Returns the QgsSmartConditionMap for the given id.

Definition at line 1326 of file qgsstyle.cpp.

◆ smartgroupId()

int QgsStyle::smartgroupId ( const QString &  smartgroup)

Returns the DB id for the given smartgroup name.

Definition at line 1132 of file qgsstyle.cpp.

◆ smartgroupNames()

QStringList QgsStyle::smartgroupNames ( )

Returns the smart groups list.

Definition at line 1206 of file qgsstyle.cpp.

◆ smartgroupOperator()

QString QgsStyle::smartgroupOperator ( int  id)

Returns the operator for the smartgroup clumsy implementation TODO create a class for smartgroups.

Definition at line 1366 of file qgsstyle.cpp.

◆ smartgroupsListMap()

QgsSymbolGroupMap QgsStyle::smartgroupsListMap ( )

Returns the smart groups map with id as key and name as value.

Definition at line 1181 of file qgsstyle.cpp.

◆ symbol()

QgsSymbol * QgsStyle::symbol ( const QString &  name)

Returns a NEW copy of symbol.

Definition at line 164 of file qgsstyle.cpp.

◆ symbolCount()

int QgsStyle::symbolCount ( )

Returns count of symbols in style.

Definition at line 175 of file qgsstyle.cpp.

◆ symbolHasTag()

bool QgsStyle::symbolHasTag ( StyleEntity  type,
const QString &  symbol,
const QString &  tag 
)

Returns whether a given tag is associated with the symbol.

Parameters
typeis either SymbolEntity or ColorrampEntity
symbolis the name of the symbol or color ramp
tagthe name of the tag to look for
Returns
A boolean value identicating whether a tag was found attached to the symbol

Definition at line 1035 of file qgsstyle.cpp.

◆ symbolId()

int QgsStyle::symbolId ( const QString &  name)

Returns the id in the style database for the given symbol name returns 0 if not found.

Definition at line 1117 of file qgsstyle.cpp.

◆ symbolNames()

QStringList QgsStyle::symbolNames ( )

Returns a list of names of symbols.

Definition at line 180 of file qgsstyle.cpp.

◆ symbolRef()

const QgsSymbol * QgsStyle::symbolRef ( const QString &  name) const

Returns a const pointer to a symbol (doesn't create new instance)

Definition at line 170 of file qgsstyle.cpp.

◆ symbolSaved

void QgsStyle::symbolSaved ( const QString &  name,
QgsSymbol symbol 
)
signal

Is emitted every time a new symbol has been added to the database.

◆ symbolsOfFavorite()

QStringList QgsStyle::symbolsOfFavorite ( StyleEntity  type) const

Returns the symbol names which are flagged as favorite.

Parameters
typeis either SymbolEntity or ColorampEntity
Returns
A QStringList of the symbol or colorramp names flagged as favorite

Definition at line 520 of file qgsstyle.cpp.

◆ symbolsOfSmartgroup()

QStringList QgsStyle::symbolsOfSmartgroup ( StyleEntity  type,
int  id 
)

Returns the symbols for the smartgroup.

Definition at line 1230 of file qgsstyle.cpp.

◆ symbolsWithTag()

QStringList QgsStyle::symbolsWithTag ( StyleEntity  type,
int  tagid 
) const

Returns the symbol names with which have the given tag.

Parameters
typeis either SymbolEntity or ColorampEntity
tagidis id of the tag which has been applied over the symbol as int
Returns
A QStringList of the symbol or colorramp names for the given tag id

Definition at line 556 of file qgsstyle.cpp.

◆ tag()

QString QgsStyle::tag ( int  id) const

Returns the tag name for the given id.

Definition at line 1065 of file qgsstyle.cpp.

◆ tagId()

int QgsStyle::tagId ( const QString &  tag)

Returns the DB id for the given tag name.

Definition at line 1127 of file qgsstyle.cpp.

◆ tags()

QStringList QgsStyle::tags ( ) const

Returns a list of all tags in the style database.

Since
QGIS 2.16
See also
addTag()

Definition at line 625 of file qgsstyle.cpp.

◆ tagsOfSymbol()

QStringList QgsStyle::tagsOfSymbol ( StyleEntity  type,
const QString &  symbol 
)

Returns the tags associated with the symbol.

Parameters
typeis either SymbolEntity or ColorrampEntity
symbolis the name of the symbol or color ramp
Returns
A QStringList of the tags that have been applied to that symbol/colorramp

Definition at line 998 of file qgsstyle.cpp.

◆ tagSymbol()

bool QgsStyle::tagSymbol ( StyleEntity  type,
const QString &  symbol,
const QStringList &  tags 
)

Tags the symbol with the tags in the list.

Applies the given tags to the given symbol or colorramp

Parameters
typeis either SymbolEntity or ColorrampEntity
symbolis the name of the symbol or colorramp as QString
tagsis the list of the tags that are to be applied as QStringList
Returns
returns the success state of the operation

Definition at line 851 of file qgsstyle.cpp.

◆ updateSymbol()

bool QgsStyle::updateSymbol ( StyleEntity  type,
const QString &  name 
)
protected

Updates the properties of an existing symbol/colorramp.

Note
This should not be called separately, only called through addSymbol or addColorRamp
Parameters
typeis either SymbolEntity or ColorrampEntity
nameis the name of an existing symbol or a color ramp
Returns
Success state of the update operation

Definition at line 1604 of file qgsstyle.cpp.

Member Data Documentation

◆ mColorRamps

QgsVectorColorRampMap QgsStyle::mColorRamps
protected

Definition at line 422 of file qgsstyle.h.

◆ mCurrentDB

sqlite3_database_unique_ptr QgsStyle::mCurrentDB
protected

Definition at line 427 of file qgsstyle.h.

◆ mErrorString

QString QgsStyle::mErrorString
protected

Definition at line 424 of file qgsstyle.h.

◆ mFileName

QString QgsStyle::mFileName
protected

Definition at line 425 of file qgsstyle.h.

◆ mSymbols

QgsSymbolMap QgsStyle::mSymbols
protected

Definition at line 421 of file qgsstyle.h.

◆ sDefaultStyle

QgsStyle * QgsStyle::sDefaultStyle = nullptr
staticprotected

Definition at line 429 of file qgsstyle.h.


The documentation for this class was generated from the following files: