Author: jghali
Date: Sat Apr 13 12:22:58 2019
New Revision: 22940

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22940
Log:
#15629: Calling createCharStyle() with no arguments creates a style with a font 
size of 200 pt

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=22940&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp     (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdstyle.cpp     Sat Apr 13 
12:22:58 2019
@@ -116,16 +116,23 @@
                const_cast<char*>("tracking"),
                const_cast<char*>("language"),
                nullptr};
+
+       if (!checkHaveDocument())
+               return nullptr;
+
+       ScribusDoc* currentDoc = ScCore->primaryMainWindow()->doc;
+       const StyleSet<CharStyle>& charStyles = 
ScCore->primaryMainWindow()->doc->charStyles();
+       const CharStyle* defaultStyle = charStyles.getDefault();
+
        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;
+       double FontSize = defaultStyle->fontSize() / 10.0, 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,
-                                                                               
                                                                                
                                        "utf-8", &FillColor, &FillShade, 
"utf-8", &StrokeColor, &StrokeShade, &BaselineOffset, &ShadowXOffset,
-                                                                               
                                                                                
                                        &ShadowYOffset, &OutlineWidth, 
&UnderlineOffset, &UnderlineWidth, &StrikethruOffset, &StrikethruWidth,
-                                                                               
                                                                                
                                        &ScaleH, &ScaleV, &Tracking, "utf-8", 
&Language))
-               return nullptr;
-       if (!checkHaveDocument())
-               return nullptr;
+                                                                       
"utf-8", &Name, "utf-8", &Font, &FontSize, "utf-8", &Features,
+                                                                       
"utf-8", &FillColor, &FillShade, "utf-8", &StrokeColor, &StrokeShade, 
&BaselineOffset, &ShadowXOffset,
+                                                                       
&ShadowYOffset, &OutlineWidth, &UnderlineOffset, &UnderlineWidth, 
&StrikethruOffset, &StrikethruWidth,
+                                                                       
&ScaleH, &ScaleV, &Tracking, "utf-8", &Language))
+               return nullptr;
+       
        if (strlen(Name) == 0)
        {
                PyErr_SetString(PyExc_ValueError, QObject::tr("Cannot have an 
empty char style name.","python error").toLocal8Bit().constData());
@@ -134,22 +141,15 @@
 
        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))
+               RealFont = defaultStyle->font().scName();
+
+       if (!currentDoc->AllFonts->contains(RealFont))
        {
                PyErr_SetString(PyExc_ValueError, QObject::tr("Specified font 
is not available.", "python error").toLocal8Bit().constData());
                return nullptr;
        }
 
-       const ColorList& docColors = 
ScCore->primaryMainWindow()->doc->PageColors;
+       const ColorList& docColors = currentDoc->PageColors;
        QString qFillColor = QString(FillColor);
        QString qStrokeColor = QString(StrokeColor);
        if ((qFillColor != CommonStrings::None) && 
(!docColors.contains(qFillColor)))
@@ -167,7 +167,7 @@
 
        CharStyle TmpCharStyle;
        TmpCharStyle.setName(Name);
-       
TmpCharStyle.setFont((*ScCore->primaryMainWindow()->doc->AllFonts)[RealFont]);
+       TmpCharStyle.setFont((*currentDoc->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