📄 render_cachecss.cpp
字号:
#include <assert.h>#include "string.h"#include "render_interface.h"#include "../css/css_valueimpl.h"#include "html_headimpl.h"#include "render_cachecss.h"#include "render_loadcss.h"#define DEBUG_BY_XHTANG 0using namespace DOM;using namespace khtml;MGCachedCSSStyleSheet::MGCachedCSSStyleSheet(DOM::DOMString &murl){ m_sheet = 0; m_loadOk = 0; m_url = murl;} MGCachedCSSStyleSheet::MGCachedCSSStyleSheet(DOM::DOMString &murl,unsigned char *url){ m_sheet = 0; m_loadOk = 0; m_url = murl; LoadDataFromTempFile((char*)url);#if 0 // It's css we want. setAccept( QString::fromLatin1("text/css") ); // load the file Cache::loader()->load(this, baseURL, false); loading = true;#endif}MGCachedCSSStyleSheet::~MGCachedCSSStyleSheet(){}void MGCachedCSSStyleSheet::checkNotify(){ if(!m_loadOk)return; DOM::CSSImportRuleImpl *c; for ( c = m_clients.first(); c != 0; c = m_clients.next() ){ c->setStyleSheet( m_url, m_sheet ); } DOM::HTMLLinkElementImpl *cLink; for ( cLink = m_clientsLink.first(); cLink != 0; cLink = m_clientsLink.next() ){ cLink->setStyleSheet( m_url, m_sheet ); }}void MGCachedCSSStyleSheet::error( int /*err*/, const char */*text*/ ){ m_loadOk = 1;//false; checkNotify();}bool MGCachedCSSStyleSheet::LoadDataFromTempFile( char TempName[]){ FILE* fp; int len; char buf[1025]; fp = fopen(TempName, "r" ); if(fp==NULL) return 0; m_sheet = (const char*)""; while(1){ len = fread( buf, 1, 1024, fp ); if(len<0)break; buf[len] = 0; m_sheet +=(const char*)buf; if(len<1024)break; } fclose( fp ); m_loadOk = 1; checkNotify(); return 1;}void MGCachedCSSStyleSheet::ref(DOM::CSSImportRuleImpl *c){ // make sure we don't get it twice... m_clients.remove(c); m_clients.append(c); m_ref++; if(m_loadOk) c->setStyleSheet( m_url, m_sheet );}void MGCachedCSSStyleSheet::deref(DOM::CSSImportRuleImpl *c){ m_clients.remove(c); m_ref--; if( m_ref <= 0 ) delete this; } void MGCachedCSSStyleSheet::ref(DOM::HTMLLinkElementImpl *c,bool b){ // make sure we don't get it twice... m_clientsLink.remove(c); m_clientsLink.append(c); m_ref++; if(m_loadOk) c->setStyleSheet( m_url, m_sheet );}void MGCachedCSSStyleSheet::deref(DOM::HTMLLinkElementImpl *c,bool b){ m_clientsLink.remove(c); m_ref--; if( m_ref <= 0 ) delete this; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -