Author: jghali
Date: Wed Apr  3 21:22:23 2019
New Revision: 22924

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22924
Log:
When calling createCharStyle() without specifying font, use font from default 
character style instead of arbitrary "Times"

Modified:
    trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp

Modified: trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22924&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp     (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp     Wed Apr  3 
21:22:23 2019
@@ -116,7 +116,7 @@
                const_cast<char*>("tracking"),
                const_cast<char*>("language"),
                nullptr};
-       char *Name = const_cast<char*>(""), *Font = const_cast<char*>("Times"), 
*Features = const_cast<char*>("inherit"), *FillColor = 
const_cast<char*>("Black"), *FontFeatures = const_cast<char*>(""), *StrokeColor 
= const_cast<char*>("Black"), *Language = const_cast<char*>("");
+       char *Name = const_cast<char*>(""), *Font = const_cast<char*>(""), 
*Features = const_cast<char*>("inherit"), *FillColor = 
const_cast<char*>("Black"), *FontFeatures = const_cast<char*>(""), *StrokeColor 
= const_cast<char*>("Black"), *Language = const_cast<char*>("");
        double FontSize = 200, FillShade = 1, StrokeShade = 1, ScaleH = 1, 
ScaleV = 1, BaselineOffset = 0, ShadowXOffset = 0, ShadowYOffset = 0, 
OutlineWidth = 0, UnderlineOffset = 0, UnderlineWidth = 0, StrikethruOffset = 
0, StrikethruWidth = 0, Tracking = 0;
        if (!PyArg_ParseTupleAndKeywords(args, keywords, 
"es|esdesesdesddddddddddddes", keywordargs,
                                                                                
                                                                                
                                        "utf-8", &Name, "utf-8", &Font, 
&FontSize, "utf-8", &Features,
@@ -132,11 +132,28 @@
                return nullptr;
        }
 
+       QString RealFont = QString(Font);
+       if (RealFont.isEmpty())
+       {
+               const StyleSet<CharStyle>& charStyles = 
ScCore->primaryMainWindow()->doc->charStyles();
+               int index = 
charStyles.find(CommonStrings::DefaultCharacterStyle);
+               if (index < 0)
+                       index = 
charStyles.find(CommonStrings::trDefaultCharacterStyle);
+               if (index >= 0)
+                       RealFont = charStyles[index].font().scName();
+       }
+
+       if (!ScCore->primaryMainWindow()->doc->AllFonts->contains(RealFont))
+       {
+               PyErr_SetString(PyExc_ValueError, QObject::tr("Specified font 
is not available in font list.", "python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
        QStringList FeaturesList = QString(Features).split(QString(","));
 
        CharStyle TmpCharStyle;
        TmpCharStyle.setName(Name);
-       
TmpCharStyle.setFont((*ScCore->primaryMainWindow()->doc->AllFonts)[QString(Font)]);
+       
TmpCharStyle.setFont((*ScCore->primaryMainWindow()->doc->AllFonts)[RealFont]);
        TmpCharStyle.setFontSize(FontSize * 10);
        TmpCharStyle.setFontFeatures(FontFeatures);
        TmpCharStyle.setFeatures(FeaturesList);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to