Skip to content

Commit 08b40d8

Browse files
author
Arunmozhi
committed
added a function in qgsstyle for wild card searching
1 parent 345d096 commit 08b40d8

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/core/symbology-ng/qgsstylev2.cpp

+26
Original file line numberDiff line numberDiff line change
@@ -591,3 +591,29 @@ bool QgsStyleV2::regroup( QString symbolName, int groupid )
591591
: sqlite3_mprintf( "UPDATE symbol SET groupid=NULL WHERE name='%q';", array.constData() );
592592
return runEmptyQuery( query );
593593
}
594+
595+
QStringList QgsStyleV2::findSymbols( QString qword )
596+
{
597+
QByteArray array = qword.toUtf8();
598+
char *query;
599+
query = sqlite3_mprintf( "SELECT name FROM symbol WHERE xml LIKE '\%%q\%'", array.constData() );
600+
601+
QStringList symbols;
602+
sqlite3 *db = openDB( mFileName );
603+
if ( db == NULL )
604+
{
605+
QgsDebugMsg( "Sorry! Cannot open DB to search" );
606+
return QStringList();
607+
}
608+
sqlite3_stmt *ppStmt;
609+
int nErr = sqlite3_prepare_v2( db, query, -1, &ppStmt, NULL );
610+
while ( nErr == SQLITE_OK && sqlite3_step( ppStmt ) == SQLITE_ROW )
611+
{
612+
QString symbolName = QString( reinterpret_cast<const char*>( sqlite3_column_text( ppStmt, 0 ) ) );
613+
symbols.append( symbolName );
614+
}
615+
sqlite3_finalize( ppStmt );
616+
sqlite3_close( db );
617+
618+
return symbols;
619+
}

src/core/symbology-ng/qgsstylev2.h

+3
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ class CORE_EXPORT QgsStyleV2
139139
//! return current file name of the style
140140
QString fileName() { return mFileName; }
141141

142+
//! return the names of the symbols which have a matching 'substring' in its defintion
143+
QStringList findSymbols( QString qword );
144+
142145
protected:
143146

144147
QgsSymbolV2Map mSymbols;

0 commit comments

Comments
 (0)