void ChatWindowStyle::readStyleFiles() { // load style info QString infoPlistFile = d->baseHref + QLatin1String("../Info.plist"); ChatStylePlistFileReader plistReader(infoPlistFile); d->defaultVariantName = plistReader.defaultVariant(); if (d->defaultVariantName.isEmpty()) { // older themes use this d->defaultVariantName = plistReader.displayNameForNoVariant(); } if (d->defaultVariantName.isEmpty()) { // If name is still empty we use "Normal" d->defaultVariantName = i18nc("Normal style variant menu item", "Normal"); } kDebug() << "defaultVariantName = " << d->defaultVariantName; d->defaultFontFamily = plistReader.defaultFontFamily(); d->defaultFontSize = plistReader.defaultFontSize(); d->disableCombineConsecutive = plistReader.disableCombineConsecutive(); d->messageViewVersion = plistReader.messageViewVersion(); // specify the files for the identifiers QHash<InternalIdentifier, QLatin1String> templateFiles; templateFiles.insert(Template, QLatin1String("Template.html")); templateFiles.insert(Header, QLatin1String("Header.html")); templateFiles.insert(Content, QLatin1String("Content.html")); templateFiles.insert(Footer, QLatin1String("Footer.html")); templateFiles.insert(Topic, QLatin1String("Topic.html")); templateFiles.insert(IncomingContent, QLatin1String("Incoming/Content.html")); templateFiles.insert(IncomingNextContent, QLatin1String("Incoming/NextContent.html")); templateFiles.insert(OutgoingContent, QLatin1String("Outgoing/Content.html")); templateFiles.insert(OutgoingNextContent, QLatin1String("Outgoing/NextContent.html")); templateFiles.insert(Status, QLatin1String("Status.html")); templateFiles.insert(IncomingHistory, QLatin1String("Incoming/Context.html")); templateFiles.insert(IncomingNextHistory, QLatin1String("Incoming/NextContext.html")); templateFiles.insert(OutgoingHistory, QLatin1String("Outgoing/Context.html")); templateFiles.insert(OutgoingNextHistory, QLatin1String("Outgoing/NextContext.html")); templateFiles.insert(ActionIncoming, QLatin1String("Incoming/Action.html")); templateFiles.insert(ActionOutgoing, QLatin1String("Outgoing/Action.html")); templateFiles.insert(FileTransferIncoming, QLatin1String("FileTransferRequest.html")); templateFiles.insert(VoiceClipIncoming, QLatin1String("voiceClipRequest.html")); templateFiles.insert(OutgoingStateUnknown, QLatin1String("Outgoing/StateUnknown.html")); templateFiles.insert(OutgoingStateSending, QLatin1String("Outgoing/StateSending.html")); templateFiles.insert(OutgoingStateSent, QLatin1String("Outgoing/StateSent.html")); templateFiles.insert(OutgoingStateError, QLatin1String("Outgoing/StateError.html")); // load all files QFile fileAccess; Q_FOREACH(const QLatin1String &fileName, templateFiles) { QString path = d->baseHref + fileName; // Load template file if (QFile::exists(path)) { fileAccess.setFileName(path); fileAccess.open(QIODevice::ReadOnly); QTextStream headerStream(&fileAccess); headerStream.setCodec(QTextCodec::codecForName("UTF-8")); QString data = headerStream.readAll(); if(!data.isEmpty()) { //kDebug() << fileName << "was found!"; setContent( templateFiles.key(fileName), data); } else { kDebug() << fileName << "was not found!"; } //kDebug() << fileName << content(templateFiles.key(fileName)); fileAccess.close(); } }
void ChatWindowStyle::readStyleFiles() { // load style info QString infoPlistFile = d->baseHref + QLatin1String("../Info.plist"); ChatStylePlistFileReader plistReader(infoPlistFile); d->defaultVariantName = plistReader.defaultVariant(); if (d->defaultVariantName.isEmpty()) { // older themes use this d->defaultVariantName = plistReader.displayNameForNoVariant(); } if (d->defaultVariantName.isEmpty()) { // If name is still empty we use "Normal" d->defaultVariantName = i18nc("Normal style variant menu item", "Normal"); } qCDebug(KTP_TEXTUI_LIB) << "defaultVariantName = " << d->defaultVariantName; d->defaultFontFamily = plistReader.defaultFontFamily().isEmpty() ? QFontDatabase::systemFont(QFontDatabase::GeneralFont).family() : plistReader.defaultFontFamily(); // If the theme has no default font size, use the system font size, but since that is in points (pt), we need to convert // it to pixel size (and using pixelSize() does not work if the QFont was not set up using setPixelSize), so we use the // rough conversion ratio 4/3 and floor the number d->defaultFontSize = plistReader.defaultFontSize() == 0 ? qFloor(QFontDatabase::systemFont(QFontDatabase::GeneralFont).pointSizeF() * (4.0/3.0)) : plistReader.defaultFontSize(); d->disableCombineConsecutive = plistReader.disableCombineConsecutive(); d->messageViewVersion = plistReader.messageViewVersion(); // specify the files for the identifiers QHash<InternalIdentifier, QLatin1String> templateFiles; templateFiles.insert(Template, QLatin1String("Template.html")); templateFiles.insert(Header, QLatin1String("Header.html")); templateFiles.insert(Content, QLatin1String("Content.html")); templateFiles.insert(Footer, QLatin1String("Footer.html")); templateFiles.insert(Topic, QLatin1String("Topic.html")); templateFiles.insert(IncomingContent, QLatin1String("Incoming/Content.html")); templateFiles.insert(IncomingNextContent, QLatin1String("Incoming/NextContent.html")); templateFiles.insert(OutgoingContent, QLatin1String("Outgoing/Content.html")); templateFiles.insert(OutgoingNextContent, QLatin1String("Outgoing/NextContent.html")); templateFiles.insert(Status, QLatin1String("Status.html")); templateFiles.insert(IncomingHistory, QLatin1String("Incoming/Context.html")); templateFiles.insert(IncomingNextHistory, QLatin1String("Incoming/NextContext.html")); templateFiles.insert(OutgoingHistory, QLatin1String("Outgoing/Context.html")); templateFiles.insert(OutgoingNextHistory, QLatin1String("Outgoing/NextContext.html")); templateFiles.insert(ActionIncoming, QLatin1String("Incoming/Action.html")); templateFiles.insert(ActionOutgoing, QLatin1String("Outgoing/Action.html")); templateFiles.insert(FileTransferIncoming, QLatin1String("FileTransferRequest.html")); templateFiles.insert(VoiceClipIncoming, QLatin1String("voiceClipRequest.html")); templateFiles.insert(OutgoingStateUnknown, QLatin1String("Outgoing/StateUnknown.html")); templateFiles.insert(OutgoingStateSending, QLatin1String("Outgoing/StateSending.html")); templateFiles.insert(OutgoingStateSent, QLatin1String("Outgoing/StateSent.html")); templateFiles.insert(OutgoingStateError, QLatin1String("Outgoing/StateError.html")); // load all files QFile fileAccess; Q_FOREACH(const QLatin1String &fileName, templateFiles) { QString path = d->baseHref + fileName; // Load template file if (QFile::exists(path)) { fileAccess.setFileName(path); fileAccess.open(QIODevice::ReadOnly); QTextStream headerStream(&fileAccess); headerStream.setCodec(QTextCodec::codecForName("UTF-8")); QString data = headerStream.readAll(); if(!data.isEmpty()) { //qCDebug(KTP_TEXTUI_LIB) << fileName << "was found!"; setContent( templateFiles.key(fileName), data); } else { qCDebug(KTP_TEXTUI_LIB) << fileName << "was not found!"; } //qCDebug(KTP_TEXTUI_LIB) << fileName << content(templateFiles.key(fileName)); fileAccess.close(); } }