CVS commit by pmk: Fixed a problem where the page would not be displayed if a stylesheet referenced via @import could not be loaded. M +14 -0 css/css_ruleimpl.cpp 1.43 M +2 -1 css/css_ruleimpl.h 1.24 M +4 -0 html/html_headimpl.cpp 1.102 --- kdelibs/khtml/css/css_ruleimpl.cpp #1.42:1.43 @@ -147,4 +147,17 @@ void CSSImportRuleImpl::setStyleSheet(co } +void CSSImportRuleImpl::error(int /*err*/, const QString &/*text*/) +{ + if ( m_styleSheet ) { + m_styleSheet->setParent(0); + m_styleSheet->deref(); + } + m_styleSheet = 0; + + m_loading = false; + + checkLoaded(); +} + bool CSSImportRuleImpl::isLoading() { @@ -154,4 +167,5 @@ bool CSSImportRuleImpl::isLoading() void CSSImportRuleImpl::init() { + m_loading = 0; khtml::DocLoader *docLoader = 0; StyleBaseImpl *root = this; --- kdelibs/khtml/css/css_ruleimpl.h #1.23:1.24 @@ -115,4 +115,5 @@ public: // from CachedObjectClient virtual void setStyleSheet(const DOM::DOMString &url, const DOM::DOMString &sheet); + virtual void error(int err, const QString &text); bool isLoading(); --- kdelibs/khtml/html/html_headimpl.cpp #1.101:1.102 @@ -199,4 +199,8 @@ void HTMLLinkElementImpl::process() m_cachedSheet->ref(this); } + else { + // Error requesting sheet; decrement pending sheet count + getDocument()->styleSheetLoaded(); + } } }