⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 khtml_settings.cc

📁 konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版本源码包.
💻 CC
📖 第 1 页 / 共 3 页
字号:
                  rx.setWildcard(true);                  rx.setPattern(url.mid(left,right-left));                  d->adFilters.append(rx);              }          }      }  }  if (reset || config->hasGroup("HTML Settings"))  {    config->setGroup( "HTML Settings" );    // Fonts and colors    if( reset ) {        d->defaultFonts = QStringList();        d->defaultFonts.append( config->readEntry( "StandardFont", KGlobalSettings::generalFont().family() ) );        d->defaultFonts.append( config->readEntry( "FixedFont", KGlobalSettings::fixedFont().family() ) );        d->defaultFonts.append( config->readEntry( "SerifFont", HTML_DEFAULT_VIEW_SERIF_FONT ) );        d->defaultFonts.append( config->readEntry( "SansSerifFont", HTML_DEFAULT_VIEW_SANSSERIF_FONT ) );        d->defaultFonts.append( config->readEntry( "CursiveFont", HTML_DEFAULT_VIEW_CURSIVE_FONT ) );        d->defaultFonts.append( config->readEntry( "FantasyFont", HTML_DEFAULT_VIEW_FANTASY_FONT ) );        d->defaultFonts.append( QString( "0" ) ); // font size adjustment    }    if ( reset || config->hasKey( "MinimumFontSize" ) )        d->m_minFontSize = config->readNumEntry( "MinimumFontSize", HTML_DEFAULT_MIN_FONT_SIZE );    if ( reset || config->hasKey( "MediumFontSize" ) )        d->m_fontSize = config->readNumEntry( "MediumFontSize", 12 );    d->fonts = config->readListEntry( "Fonts" );    if ( reset || config->hasKey( "DefaultEncoding" ) )        d->m_encoding = config->readEntry( "DefaultEncoding", "" );    if ( reset || config->hasKey( "EnforceDefaultCharset" ) )        d->enforceCharset = config->readBoolEntry( "EnforceDefaultCharset", false );    // Behavior    if ( reset || config->hasKey( "ChangeCursor" ) )        d->m_bChangeCursor = config->readBoolEntry( "ChangeCursor", KDE_DEFAULT_CHANGECURSOR );    if ( reset || config->hasKey("UnderlineLinks") )        d->m_underlineLink = config->readBoolEntry( "UnderlineLinks", true );    if ( reset || config->hasKey( "HoverLinks" ) )    {        if ( ( d->m_hoverLink = config->readBoolEntry( "HoverLinks", false ) ) )            d->m_underlineLink = false;    }    if ( reset || config->hasKey( "AllowTabulation" ) )        d->m_allowTabulation = config->readBoolEntry( "AllowTabulation", false );    if ( reset || config->hasKey( "AutoSpellCheck" ) )        d->m_autoSpellCheck = config->readBoolEntry( "AutoSpellCheck", true );    // Other    if ( reset || config->hasKey( "AutoLoadImages" ) )      d->m_bAutoLoadImages = config->readBoolEntry( "AutoLoadImages", true );    if ( reset || config->hasKey( "UnfinishedImageFrame" ) )      d->m_bUnfinishedImageFrame = config->readBoolEntry( "UnfinishedImageFrame", true );    if ( reset || config->hasKey( "ShowAnimations" ) )    {      QString value = config->readEntry( "ShowAnimations").lower();      if (value == "disabled")         d->m_showAnimations = KAnimationDisabled;      else if (value == "looponce")         d->m_showAnimations = KAnimationLoopOnce;      else         d->m_showAnimations = KAnimationEnabled;    }    if ( config->readBoolEntry( "UserStyleSheetEnabled", false ) == true ) {        if ( reset || config->hasKey( "UserStyleSheet" ) )            d->m_userSheet = config->readEntry( "UserStyleSheet", "" );    }    d->m_formCompletionEnabled = config->readBoolEntry("FormCompletion", true);    d->m_maxFormCompletionItems = config->readNumEntry("MaxFormCompletionItems", 10);    d->m_autoDelayedActionsEnabled = config->readBoolEntry ("AutoDelayedActions", true);    d->m_jsErrorsEnabled = config->readBoolEntry("ReportJSErrors", true);    QStringList accesskeys = config->readListEntry("FallbackAccessKeysAssignments");    d->m_fallbackAccessKeysAssignments.clear();    for( QStringList::ConstIterator it = accesskeys.begin(); it != accesskeys.end(); ++it )        if( (*it).length() > 2 && (*it)[ 1 ] == ':' )            d->m_fallbackAccessKeysAssignments.append( qMakePair( (*it).mid( 2 ), (*it)[ 0 ] ));  }  // Colors  if ( reset || config->hasKey( "FollowSystemColors" ) )      d->m_follow_system_colors = config->readBoolEntry( "FollowSystemColors", false );  if ( reset || config->hasGroup( "General" ) )  {    config->setGroup( "General" ); // group will be restored by cgs anyway    if ( reset || config->hasKey( "foreground" ) )      d->m_textColor = config->readColorEntry( "foreground", &HTML_DEFAULT_TXT_COLOR );    if ( reset || config->hasKey( "linkColor" ) )      d->m_linkColor = config->readColorEntry( "linkColor", &HTML_DEFAULT_LNK_COLOR );    if ( reset || config->hasKey( "visitedLinkColor" ) )      d->m_vLinkColor = config->readColorEntry( "visitedLinkColor", &HTML_DEFAULT_VLNK_COLOR);    if ( reset || config->hasKey( "background" ) )      d->m_baseColor = config->readColorEntry( "background", &HTML_DEFAULT_BASE_COLOR);  }  if( reset || config->hasGroup( "Java/JavaScript Settings" ) )  {    config->setGroup( "Java/JavaScript Settings" );    // The global setting for JavaScript debugging    // This is currently always enabled by default    if ( reset || config->hasKey( "EnableJavaScriptDebug" ) )      d->m_bEnableJavaScriptDebug = config->readBoolEntry( "EnableJavaScriptDebug", false );    // The global setting for JavaScript error reporting    if ( reset || config->hasKey( "ReportJavaScriptErrors" ) )      d->m_bEnableJavaScriptErrorReporting = config->readBoolEntry( "ReportJavaScriptErrors", false );    // The global setting for popup block passive popup    if ( reset || config->hasKey( "PopupBlockerPassivePopup" ) )      d->m_jsPopupBlockerPassivePopup = config->readBoolEntry("PopupBlockerPassivePopup", true);    // Read options from the global "domain"    readDomainSettings(config,reset,true,d->global);#ifdef DEBUG_SETTINGS    d->global.dump("init global");#endif    // The domain-specific settings.    static const char *const domain_keys[] = {	// always keep order of keys    	"ECMADomains", "JavaDomains", "PluginDomains"    };    bool check_old_ecma_settings = true;    bool check_old_java_settings = true;    // merge all domains into one list    QMap<QString,int> domainList;	// why can't Qt have a QSet?    for (unsigned i = 0; i < sizeof domain_keys/sizeof domain_keys[0]; ++i) {      if ( reset || config->hasKey(domain_keys[i]) ) {        if (i == 0) check_old_ecma_settings = false;	else if (i == 1) check_old_java_settings = false;        const QStringList dl = config->readListEntry( domain_keys[i] );	const QMap<QString,int>::Iterator notfound = domainList.end();	QStringList::ConstIterator it = dl.begin();	const QStringList::ConstIterator itEnd = dl.end();	for (; it != itEnd; ++it) {	  const QString domain = (*it).lower();	  QMap<QString,int>::Iterator pos = domainList.find(domain);	  if (pos == notfound) domainList.insert(domain,0);	}/*next it*/      }    }/*next i*/    if (reset)      d->domainPolicy.clear();    QString js_group_save = config->group();    {      QMap<QString,int>::ConstIterator it = domainList.begin();      const QMap<QString,int>::ConstIterator itEnd = domainList.end();      for ( ; it != itEnd; ++it)      {        const QString domain = it.key();        config->setGroup(domain);        readDomainSettings(config,reset,false,d->domainPolicy[domain]);#ifdef DEBUG_SETTINGS        d->domainPolicy[domain].dump("init "+domain);#endif      }    }    config->setGroup(js_group_save);    bool check_old_java = true;    if( ( reset || config->hasKey( "JavaDomainSettings" ) )    	&& check_old_java_settings )    {      check_old_java = false;      const QStringList domainList = config->readListEntry( "JavaDomainSettings" );      QStringList::ConstIterator it = domainList.begin();      const QStringList::ConstIterator itEnd = domainList.end();      for ( ; it != itEnd; ++it)      {        QString domain;        KJavaScriptAdvice javaAdvice;        KJavaScriptAdvice javaScriptAdvice;        splitDomainAdvice(*it, domain, javaAdvice, javaScriptAdvice);        setup_per_domain_policy(d,domain).m_bEnableJava =		javaAdvice == KJavaScriptAccept;#ifdef DEBUG_SETTINGS	setup_per_domain_policy(d,domain).dump("JavaDomainSettings 4 "+domain);#endif      }    }    bool check_old_ecma = true;    if( ( reset || config->hasKey( "ECMADomainSettings" ) )	&& check_old_ecma_settings )    {      check_old_ecma = false;      const QStringList domainList = config->readListEntry( "ECMADomainSettings" );      QStringList::ConstIterator it = domainList.begin();      const QStringList::ConstIterator itEnd = domainList.end();      for ( ; it != itEnd; ++it)      {        QString domain;        KJavaScriptAdvice javaAdvice;        KJavaScriptAdvice javaScriptAdvice;        splitDomainAdvice(*it, domain, javaAdvice, javaScriptAdvice);        setup_per_domain_policy(d,domain).m_bEnableJavaScript =			javaScriptAdvice == KJavaScriptAccept;#ifdef DEBUG_SETTINGS	setup_per_domain_policy(d,domain).dump("ECMADomainSettings 4 "+domain);#endif      }    }    if( ( reset || config->hasKey( "JavaScriptDomainAdvice" ) )             && ( check_old_java || check_old_ecma )	     && ( check_old_ecma_settings || check_old_java_settings ) )    {      const QStringList domainList = config->readListEntry( "JavaScriptDomainAdvice" );      QStringList::ConstIterator it = domainList.begin();      const QStringList::ConstIterator itEnd = domainList.end();      for ( ; it != itEnd; ++it)      {        QString domain;        KJavaScriptAdvice javaAdvice;        KJavaScriptAdvice javaScriptAdvice;        splitDomainAdvice(*it, domain, javaAdvice, javaScriptAdvice);        if( check_old_java )          setup_per_domain_policy(d,domain).m_bEnableJava =	  		javaAdvice == KJavaScriptAccept;        if( check_old_ecma )          setup_per_domain_policy(d,domain).m_bEnableJavaScript =	  		javaScriptAdvice == KJavaScriptAccept;#ifdef DEBUG_SETTINGS	setup_per_domain_policy(d,domain).dump("JavaScriptDomainAdvice 4 "+domain);#endif      }      //save all the settings into the new keywords if they don't exist#if 0      if( check_old_java )      {        QStringList domainConfig;        PolicyMap::Iterator it;        for( it = d->javaDomainPolicy.begin(); it != d->javaDomainPolicy.end(); ++it )        {          QCString javaPolicy = adviceToStr( it.data() );          QCString javaScriptPolicy = adviceToStr( KJavaScriptDunno );          domainConfig.append(QString::fromLatin1("%1:%2:%3").arg(it.key()).arg(javaPolicy).arg(javaScriptPolicy));        }        config->writeEntry( "JavaDomainSettings", domainConfig );      }      if( check_old_ecma )      {        QStringList domainConfig;        PolicyMap::Iterator it;        for( it = d->javaScriptDomainPolicy.begin(); it != d->javaScriptDomainPolicy.end(); ++it )        {          QCString javaPolicy = adviceToStr( KJavaScriptDunno );          QCString javaScriptPolicy = adviceToStr( it.data() );          domainConfig.append(QString::fromLatin1("%1:%2:%3").arg(it.key()).arg(javaPolicy).arg(javaScriptPolicy));        }        config->writeEntry( "ECMADomainSettings", domainConfig );      }#endif    }  }  config->setGroup(group_save);}/** Local helper for retrieving per-domain settings.  *  * In case of doubt, the global domain is returned.  */static const KPerDomainSettings &lookup_hostname_policy(			const KHTMLSettingsPrivate *d,			const QString& hostname){#ifdef DEBUG_SETTINGS  kdDebug() << "lookup_hostname_policy(" << hostname << ")" << endl;#endif  if (hostname.isEmpty()) {#ifdef DEBUG_SETTINGS    d->global.dump("global");#endif    return d->global;  }  const PolicyMap::const_iterator notfound = d->domainPolicy.end();  // First check whether there is a perfect match.  PolicyMap::const_iterator it = d->domainPolicy.find(hostname);  if( it != notfound ) {#ifdef DEBUG_SETTINGS    kdDebug() << "perfect match" << endl;    (*it).dump(hostname);#endif    // yes, use it (unless dunno)    return *it;  }  // Now, check for partial match.  Chop host from the left until  // there's no dots left.  QString host_part = hostname;  int dot_idx = -1;  while( (dot_idx = host_part.find(QChar('.'))) >= 0 ) {    host_part.remove(0,dot_idx);    it = d->domainPolicy.find(host_part);    Q_ASSERT(notfound == d->domainPolicy.end());    if( it != notfound ) {#ifdef DEBUG_SETTINGS      kdDebug() << "partial match" << endl;      (*it).dump(host_part);#endif      return *it;    }    // assert(host_part[0] == QChar('.'));    host_part.remove(0,1); // Chop off the dot.  }  // No domain-specific entry: use global domain#ifdef DEBUG_SETTINGS  kdDebug() << "no match" << endl;  d->global.dump("global");#endif  return d->global;}bool KHTMLSettings::isOpenMiddleClickEnabled(){  return d->m_bOpenMiddleClick;}bool KHTMLSettings::isBackRightClickEnabled(){  return d->m_bBackRightClick;}bool KHTMLSettings::accessKeysEnabled() const{    return d->m_accessKeysEnabled;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -