File indexing completed on 2025-03-23 03:32:51

0001 // xlsxtheme.cpp
0002 
0003 #include "xlsxtheme_p.h"
0004 
0005 #include <QIODevice>
0006 
0007 QT_BEGIN_NAMESPACE_XLSX
0008 
0009 const char *defaultXmlData =
0010         "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
0011         "<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office \xe4\xb8\xbb\xe9\xa2\x98\">"
0012         "<a:themeElements>"
0013         "<a:clrScheme name=\"Office\">"
0014         "<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>"
0015         "<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>"
0016         "<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>"
0017         "<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>"
0018         "<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>"
0019         "<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>"
0020         "<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>"
0021         "<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>"
0022         "<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>"
0023         "<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>"
0024         "<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>"
0025         "<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>"
0026         "</a:clrScheme>"
0027         "<a:fontScheme name=\"Office\">"
0028         "<a:majorFont>"
0029         "<a:latin typeface=\"Cambria\"/>"
0030         "<a:ea typeface=\"\"/>"
0031         "<a:cs typeface=\"\"/>"
0032         "<a:font script=\"Jpan\" typeface=\"\xef\xbc\xad\xef\xbc\xb3 \xef\xbc\xb0\xe3\x82\xb4\xe3\x82\xb7\xe3\x83\x83\xe3\x82\xaf\"/>"
0033         "<a:font script=\"Hang\" typeface=\"\xeb\xa7\x91\xec\x9d\x80 \xea\xb3\xa0\xeb\x94\x95\"/>"
0034         "<a:font script=\"Hans\" typeface=\"\xe5\xae\x8b\xe4\xbd\x93\"/>"
0035         "<a:font script=\"Hant\" typeface=\"\xe6\x96\xb0\xe7\xb4\xb0\xe6\x98\x8e\xe9\xab\x94\"/>"
0036         "<a:font script=\"Arab\" typeface=\"Times New Roman\"/>"
0037         "<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>"
0038         "<a:font script=\"Thai\" typeface=\"Tahoma\"/>"
0039         "<a:font script=\"Ethi\" typeface=\"Nyala\"/>"
0040         "<a:font script=\"Beng\" typeface=\"Vrinda\"/>"
0041         "<a:font script=\"Gujr\" typeface=\"Shruti\"/>"
0042         "<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>"
0043         "<a:font script=\"Knda\" typeface=\"Tunga\"/>"
0044         "<a:font script=\"Guru\" typeface=\"Raavi\"/>"
0045         "<a:font script=\"Cans\" typeface=\"Euphemia\"/>"
0046         "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>"
0047         "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>"
0048         "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>"
0049         "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>"
0050         "<a:font script=\"Deva\" typeface=\"Mangal\"/>"
0051         "<a:font script=\"Telu\" typeface=\"Gautami\"/>"
0052         "<a:font script=\"Taml\" typeface=\"Latha\"/>"
0053         "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>"
0054         "<a:font script=\"Orya\" typeface=\"Kalinga\"/>"
0055         "<a:font script=\"Mlym\" typeface=\"Kartika\"/>"
0056         "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>"
0057         "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>"
0058         "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>"
0059         "<a:font script=\"Viet\" typeface=\"Times New Roman\"/>"
0060         "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>"
0061         "</a:majorFont>"
0062         "<a:minorFont>"
0063         "<a:latin typeface=\"Calibri\"/>"
0064         "<a:ea typeface=\"\"/>"
0065         "<a:cs typeface=\"\"/>"
0066         "<a:font script=\"Jpan\" typeface=\"\xef\xbc\xad\xef\xbc\xb3 \xef\xbc\xb0\xe3\x82\xb4\xe3\x82\xb7\xe3\x83\x83\xe3\x82\xaf\"/>"
0067         "<a:font script=\"Hang\" typeface=\"\xeb\xa7\x91\xec\x9d\x80 \xea\xb3\xa0\xeb\x94\x95\"/>"
0068         "<a:font script=\"Hans\" typeface=\"\xe5\xae\x8b\xe4\xbd\x93\"/>"
0069         "<a:font script=\"Hant\" typeface=\"\xe6\x96\xb0\xe7\xb4\xb0\xe6\x98\x8e\xe9\xab\x94\"/>"
0070         "<a:font script=\"Arab\" typeface=\"Arial\"/>"
0071         "<a:font script=\"Hebr\" typeface=\"Arial\"/>"
0072         "<a:font script=\"Thai\" typeface=\"Tahoma\"/>"
0073         "<a:font script=\"Ethi\" typeface=\"Nyala\"/>"
0074         "<a:font script=\"Beng\" typeface=\"Vrinda\"/>"
0075         "<a:font script=\"Gujr\" typeface=\"Shruti\"/>"
0076         "<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>"
0077         "<a:font script=\"Knda\" typeface=\"Tunga\"/>"
0078         "<a:font script=\"Guru\" typeface=\"Raavi\"/>"
0079         "<a:font script=\"Cans\" typeface=\"Euphemia\"/>"
0080         "<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>"
0081         "<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>"
0082         "<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>"
0083         "<a:font script=\"Thaa\" typeface=\"MV Boli\"/>"
0084         "<a:font script=\"Deva\" typeface=\"Mangal\"/>"
0085         "<a:font script=\"Telu\" typeface=\"Gautami\"/>"
0086         "<a:font script=\"Taml\" typeface=\"Latha\"/>"
0087         "<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>"
0088         "<a:font script=\"Orya\" typeface=\"Kalinga\"/>"
0089         "<a:font script=\"Mlym\" typeface=\"Kartika\"/>"
0090         "<a:font script=\"Laoo\" typeface=\"DokChampa\"/>"
0091         "<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>"
0092         "<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>"
0093         "<a:font script=\"Viet\" typeface=\"Arial\"/>"
0094         "<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>"
0095         "</a:minorFont>"
0096         "</a:fontScheme>"
0097         "<a:fmtScheme name=\"Office\">"
0098         "<a:fillStyleLst>"
0099         "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
0100         "<a:gradFill rotWithShape=\"1\">"
0101         "<a:gsLst>"
0102         "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>"
0103         "<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>"
0104         "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>"
0105         "</a:gsLst>"
0106         "<a:lin ang=\"16200000\" scaled=\"1\"/>"
0107         "</a:gradFill>"
0108         "<a:gradFill rotWithShape=\"1\">"
0109         "<a:gsLst>"
0110         "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:shade val=\"51000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>"
0111         "<a:gs pos=\"80000\"><a:schemeClr val=\"phClr\"><a:shade val=\"93000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>"
0112         "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"94000\"/><a:satMod val=\"135000\"/></a:schemeClr></a:gs>"
0113         "</a:gsLst>"
0114         "<a:lin ang=\"16200000\" scaled=\"0\"/>"
0115         "</a:gradFill>"
0116         "</a:fillStyleLst>"
0117         "<a:lnStyleLst>"
0118         "<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">"
0119         "<a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill>"
0120         "<a:prstDash val=\"solid\"/>"
0121         "</a:ln>"
0122         "<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">"
0123         "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
0124         "<a:prstDash val=\"solid\"/>"
0125         "</a:ln>"
0126         "<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\">"
0127         "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
0128         "<a:prstDash val=\"solid\"/>"
0129         "</a:ln>"
0130         "</a:lnStyleLst>"
0131         "<a:effectStyleLst>"
0132         "<a:effectStyle>"
0133         "<a:effectLst>"
0134         "<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\">"
0135         "<a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr>"
0136         "</a:outerShdw>"
0137         "</a:effectLst>"
0138         "</a:effectStyle>"
0139         "<a:effectStyle>"
0140         "<a:effectLst>"
0141         "<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\">"
0142         "<a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr>"
0143         "</a:outerShdw>"
0144         "</a:effectLst>"
0145         "</a:effectStyle>"
0146         "<a:effectStyle>"
0147         "<a:effectLst>"
0148         "<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\">"
0149         "<a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr>"
0150         "</a:outerShdw>"
0151         "</a:effectLst>"
0152         "<a:scene3d>"
0153         "<a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera>"
0154         "<a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig>"
0155         "</a:scene3d>"
0156         "<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>"
0157         "</a:effectStyle>"
0158         "</a:effectStyleLst>"
0159         "<a:bgFillStyleLst>"
0160         "<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>"
0161         "<a:gradFill rotWithShape=\"1\">"
0162         "<a:gsLst>"
0163         "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>"
0164         "<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>"
0165         "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs></a:gsLst>"
0166         "<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>"
0167         "</a:gradFill>"
0168         "<a:gradFill rotWithShape=\"1\">"
0169         "<a:gsLst>"
0170         "<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>"
0171         "<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>"
0172         "</a:gsLst>"
0173         "<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>"
0174         "</a:gradFill>"
0175         "</a:bgFillStyleLst>"
0176         "</a:fmtScheme>"
0177         "</a:themeElements>"
0178         "<a:objectDefaults/>"
0179         "<a:extraClrSchemeLst/>"
0180         "</a:theme>"
0181         ;
0182 
0183 Theme::Theme(CreateFlag flag)
0184     :AbstractOOXmlFile(flag)
0185 {
0186 }
0187 
0188 void Theme::saveToXmlFile(QIODevice *device) const
0189 {
0190     if (xmlData.isEmpty())
0191         device->write(defaultXmlData);
0192     else
0193         device->write(xmlData);
0194 }
0195 
0196 QByteArray Theme::saveToXmlData() const
0197 {
0198     if (xmlData.isEmpty())
0199         return defaultXmlData;
0200     else
0201         return xmlData;
0202 }
0203 
0204 bool Theme::loadFromXmlData(const QByteArray &data)
0205 {
0206     xmlData = data;
0207     return true;
0208 }
0209 
0210 bool Theme::loadFromXmlFile(QIODevice *device)
0211 {
0212     xmlData = device->readAll();
0213     return true;
0214 }
0215 
0216 QT_END_NAMESPACE_XLSX