From 145de62ee0d336a29611b634b867c5aaaedcfe07 Mon Sep 17 00:00:00 2001 From: James Hogan Date: Tue, 23 Dec 2008 21:22:54 +0000 Subject: [PATCH] Convertion to CSS-like format of style sheets at top level (criteria, not styles) --- kworship/css/KwCssStyleRule.cpp | 34 ++++++++++++++++++++++++++++++++++ kworship/css/KwCssStyleRule.h | 3 +++ kworship/css/KwCssStyleSheet.cpp | 8 +++++++- kworship/css/KwCssStyles.cpp | 2 +- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/kworship/css/KwCssStyleRule.cpp b/kworship/css/KwCssStyleRule.cpp index 0f43f8a..095c34d 100644 --- a/kworship/css/KwCssStyleRule.cpp +++ b/kworship/css/KwCssStyleRule.cpp @@ -93,3 +93,37 @@ const ReferenceCountedExtension* KwCssStyleRule::getStyles() const return m_styles; } +/// Convert to CSS-like format. +QString KwCssStyleRule::toString() const +{ + QString result; + /// @todo Share styles among multiple rules + foreach (const KwCssScopeKey& key, m_criteriaKeys) + { + if (key.isTypeSpecified()) + { + result += key.getTypeName(); + } + if (key.isNameSpecified()) + { + result += "#" + key.getName(); + } + result += " "; + } + foreach (const QString& className, m_criteriaClasses) + { + result += QString(".%1 ").arg(className); + } + if (!m_includedStyles.isEmpty()) + { + result += ": "; + foreach (const QString& className, m_includedStyles) + { + result += QString(".%1 ").arg(className); + } + } + result += "{\n"; + result += m_styles->toString(); + result += "}\n"; + return result; +} diff --git a/kworship/css/KwCssStyleRule.h b/kworship/css/KwCssStyleRule.h index c474549..5377f70 100644 --- a/kworship/css/KwCssStyleRule.h +++ b/kworship/css/KwCssStyleRule.h @@ -97,6 +97,9 @@ class KwCssStyleRule /// Get the styles. const ReferenceCountedExtension* getStyles() const; + /// Convert to CSS-like format. + QString toString() const; + private: /* diff --git a/kworship/css/KwCssStyleSheet.cpp b/kworship/css/KwCssStyleSheet.cpp index 2f1e18a..51dbf3d 100644 --- a/kworship/css/KwCssStyleSheet.cpp +++ b/kworship/css/KwCssStyleSheet.cpp @@ -95,5 +95,11 @@ const KwCssStyleSheet::RuleList& KwCssStyleSheet::getRules() const /// Convert to CSS-like format. QString KwCssStyleSheet::toString() const { - return "/* KwCssStyleSheet::toString() unimplemented */"; + /// @todo Take into account of shared styles in rules! + QString result = "/* Doesn't take shared styles into account */\n"; + foreach (const KwCssStyleRule& rule, m_rules) + { + result += rule.toString(); + } + return result; } diff --git a/kworship/css/KwCssStyles.cpp b/kworship/css/KwCssStyles.cpp index 3d50a39..2fbd314 100644 --- a/kworship/css/KwCssStyles.cpp +++ b/kworship/css/KwCssStyles.cpp @@ -85,7 +85,7 @@ bool KwCssStyles::isEmpty() const /// Convert to CSS-like format. QString KwCssStyles::toString() const { - return "/* KwCssStyle::toString() unimplemented */"; + return "/* KwCssStyles::toString() unimplemented */\n"; } /* -- 2.11.4.GIT