summaryrefslogtreecommitdiffstats
path: root/src/libnrtype
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnrtype')
-rw-r--r--src/libnrtype/font-lister.cpp40
1 files changed, 12 insertions, 28 deletions
diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp
index 98589d9d7..333c4ef5b 100644
--- a/src/libnrtype/font-lister.cpp
+++ b/src/libnrtype/font-lister.cpp
@@ -83,6 +83,15 @@ namespace Inkscape
font_list_store->thaw_notify();
style_list_store = Gtk::ListStore::create (FontStyleList);
+
+ // Initialize style store with defaults
+ style_list_store->freeze_notify();
+ style_list_store->clear();
+ for (GList *l=default_styles; l; l = l->next) {
+ Gtk::TreeModel::iterator treeModelIter = style_list_store->append();
+ (*treeModelIter)[FontStyleList.styles] = (char*)l->data;
+ }
+ style_list_store->thaw_notify();
}
// Example of how to use "foreach_iter"
@@ -231,37 +240,12 @@ namespace Inkscape
font_list_store->thaw_notify();
}
- // FIXME: why do we parse the style attribute instead of the object's SPStyle?
void
FontLister::update_font_list_recursive( SPObject *r, std::list<Glib::ustring> *l ) {
- const gchar *style = r->getRepr()->attribute("style");
- if( style != NULL ) {
-
- std::vector<Glib::ustring> tokens = Glib::Regex::split_simple(";", style );
- for( size_t i=0; i < tokens.size(); ++i ) {
-
- Glib::ustring token = tokens[i];
- size_t found = token.find("font-family:");
-
- if( found != Glib::ustring::npos ) {
-
- // Remove "font-family:"
- token.erase(found,12);
-
- // Remove any leading single or double quote
- if( token[0] == '\'' || token[0] == '"' ) {
- token.erase(0,1);
- }
-
- // Remove any trailing single or double quote
- if( token[token.length()-1] == '\'' || token[token.length()-1] == '"' ) {
- token.erase(token.length()-1);
- }
-
- l->push_back( token );
- }
- }
+ const gchar *font_family = r->style->font_family.value;
+ if( font_family ) {
+ l->push_back( Glib::ustring( font_family ) );
}
for (SPObject *child = r->firstChild(); child; child = child->getNext()) {