Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FEATURE] Reworked symbol selector/properties dialog, greatly improve…
…d style manager This is merge of Arun's GSoC 2012 work. Merge remote-tracking branch 'arun/gsoc' Conflicts: src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
- Loading branch information
Showing
53 changed files
with
5,038 additions
and
1,941 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
#!/usr/bin/python | ||
""" | ||
/*************************************************************************** | ||
symbol_xml2db.py | ||
------------------- | ||
begin : 26-5-2012 | ||
copyright : (C) 2012 by Arunmozhi | ||
email : aruntheguy at gmail dot com | ||
***************************************************************************/ | ||
/*************************************************************************** | ||
* * | ||
* This program is free software; you can redistribute it and/or modify * | ||
* it under the terms of the GNU General Public License as published by * | ||
* the Free Software Foundation; either version 2 of the License, or * | ||
* (at your option) any later version. * | ||
* * | ||
***************************************************************************/ | ||
The script creates a sqlite3 Db for storing the symbols which will be | ||
shipped with QGIS by default. It then converts symbols and colorramps | ||
in the symbology_ng_style.xml to the database table entries. | ||
""" | ||
import sqlite3 | ||
|
||
from xml.dom.minidom import parse, parseString | ||
|
||
xmlfile = "../resources/symbology-ng-style.xml" | ||
dbfile = "../resources/symbology-ng-style.db" | ||
|
||
_symbol = "CREATE TABLE symbol("\ | ||
"id INTEGER PRIMARY KEY,"\ | ||
"name TEXT UNIQUE,"\ | ||
"xml TEXT,"\ | ||
"groupid INTEGER)" | ||
|
||
_colorramp = "CREATE TABLE colorramp("\ | ||
"id INTEGER PRIMARY KEY,"\ | ||
"name TEXT,"\ | ||
"xml TEXT,"\ | ||
"groupid INTEGER)" | ||
|
||
_tag = "CREATE TABLE tag("\ | ||
"id INTEGER PRIMARY KEY,"\ | ||
"name TEXT)" | ||
|
||
_tagmap = "CREATE TABLE tagmap("\ | ||
"tag_id INTEGER NOT NULL,"\ | ||
"symbol_id INTEGER)" | ||
|
||
_symgroup = "CREATE TABLE symgroup("\ | ||
"id INTEGER PRIMARY KEY,"\ | ||
"name TEXT,"\ | ||
"parent INTEGER)" | ||
|
||
_smartgroup = "CREATE TABLE smartgroup("\ | ||
"id INTEGER PRIMARY KEY,"\ | ||
"name TEXT,"\ | ||
"xml TEXT)" | ||
|
||
_ctagmap = "CREATE TABLE ctagmap("\ | ||
"tag_id INTEGER NOT NULL,"\ | ||
"colorramp_id INTEGER)" | ||
|
||
create_tables = [ _symbol, _colorramp, _tag, _tagmap, _ctagmap, _symgroup, _smartgroup ] | ||
|
||
# Create the DB with required Schema | ||
conn = sqlite3.connect( dbfile ) | ||
c = conn.cursor() | ||
print "Creating tables in the Database\n" | ||
for table in create_tables: | ||
try: | ||
c.execute( table ) | ||
print table | ||
except sqlite3.OperationalError as e: | ||
pass | ||
conn.commit() | ||
|
||
# parse the XML file & write symbol into DB | ||
dom = parse( xmlfile ) | ||
symbols = dom.getElementsByTagName( "symbol" ) | ||
for symbol in symbols: | ||
symbol_name = symbol.getAttribute( "name" ) | ||
if '@' in symbol_name: | ||
parts = symbol_name.split('@') | ||
parent_name = parts[1] | ||
layerno = int(parts[2]) | ||
c.execute( "SELECT xml FROM symbol WHERE name=(?)", (parent_name,) ) | ||
symdom = parseString( c.fetchone()[0] ).getElementsByTagName( 'symbol' )[0] | ||
symdom.getElementsByTagName( "layer" )[ layerno ].appendChild( symbol ) | ||
c.execute( "UPDATE symbol SET xml=? WHERE name=?", ( symdom.toxml(), parent_name )) | ||
else: | ||
c.execute( "INSERT INTO symbol VALUES (?,?,?,?)", ( None, symbol_name, symbol.toxml(), None ) ) | ||
conn.commit() | ||
|
||
|
||
# ColorRamps | ||
colorramps = dom.getElementsByTagName( "colorramp" ) | ||
for ramp in colorramps: | ||
ramp_name = ramp.getAttribute( "name" ) | ||
c.execute( "INSERT INTO colorramp VALUES (?,?,?,?)", ( None, ramp_name, ramp.toxml(), None ) ) | ||
conn.commit() | ||
|
||
# Finally close the sqlite cursor | ||
c.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.