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

📄 kjs_navigator.cpp

📁 konqueror3 embedded版本, KDE环境下的当家浏览器的嵌入式版本源码包.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                    MimeClassInfo *mime = new MimeClassInfo;                    QStringList::Iterator token = tokens.begin();                    mime->type = (*token).lower();                    //kdDebug(6070) << "mime->type=" << mime->type << endl;                    ++token;                    mime->suffixes = *token;                    ++token;                    mime->desc = *token;                    ++token;                    mime->plugin = plugin;                    mimes->append( mime );                    plugin->mimes.append( mime );                }            }        }#else	return;#endif    }    m_refCount++;}PluginBase::~PluginBase(){    m_refCount--;    if ( m_refCount==0 ) {        delete plugins;        delete mimes;        plugins = 0;        mimes = 0;    }}/*******************************************************************/const ClassInfo Plugins::info = { "PluginArray", 0, &PluginsTable, 0 };/*@begin PluginsTable 4  length	Plugins_Length  	DontDelete|ReadOnly  refresh	Plugins_Refresh 	DontDelete|Function 0  item  	Plugins_Item    	DontDelete|Function 1  namedItem  	Plugins_NamedItem   	DontDelete|Function 1@end*/IMPLEMENT_PROTOFUNC_DOM(PluginsFunc)Value Plugins::get(ExecState *exec, const Identifier &propertyName) const{#ifdef KJS_VERBOSE  kdDebug(6070) << "Plugins::get " << propertyName.qstring() << endl;#endif  if ( propertyName == lengthPropertyName )    return Number(plugins->count());  // plugins[#]  bool ok;  unsigned int i = propertyName.toULong(&ok);  if( ok && i<plugins->count() )    return Value( new Plugin( exec, plugins->at(i) ) );  // plugin[name]  Value val = pluginByName( exec, propertyName.qstring() );  if (!val.isA(UndefinedType))    return val;  return lookupGet<PluginsFunc,Plugins,ObjectImp>(exec,propertyName,&PluginsTable,this);}Value Plugins::pluginByName( ExecState* exec, const QString& name ) const{  for ( PluginInfo *pl = plugins->first(); pl!=0; pl = plugins->next() ) {    if ( pl->name == name )      return Value( new Plugin( exec, pl ) );  }  return Undefined();}Value Plugins::getValueProperty(ExecState* /*exec*/, int token) const{  kdDebug(6070) << "WARNING: Unhandled token in Plugins::getValueProperty : " << token << endl;  return Undefined();}Value PluginsFunc::tryCall(ExecState *exec, Object &thisObj, const List &args){  KJS_CHECK_THIS( KJS::Plugins, thisObj );  KJS::Plugins* base = static_cast<KJS::Plugins *>(thisObj.imp());  switch( id ) {  case Plugins_Refresh:    return Undefined(); //## TODO  case Plugins_Item:  {    bool ok;    unsigned int i = args[0].toString(exec).toArrayIndex(&ok);    if( ok && i<base->plugins->count() )      return Value( new Plugin( exec, base->plugins->at(i) ) );    return Undefined();  }  case Plugins_NamedItem:  {    UString s = args[0].toString(exec);    return base->pluginByName( exec, s.qstring() );  }  default:    kdDebug(6070) << "WARNING: Unhandled token in PluginsFunc::tryCall : " << id << endl;    return Undefined();  }}/*******************************************************************/const ClassInfo MimeTypes::info = { "MimeTypeArray", 0, &MimeTypesTable, 0 };/*@begin MimeTypesTable 3  length	MimeTypes_Length  	DontDelete|ReadOnly  item  	MimeTypes_Item    	DontDelete|Function 1  namedItem  	MimeTypes_NamedItem   	DontDelete|Function 1@end*/IMPLEMENT_PROTOFUNC_DOM(MimeTypesFunc)Value MimeTypes::get(ExecState *exec, const Identifier &propertyName) const{#ifdef KJS_VERBOSE  kdDebug(6070) << "MimeTypes::get " << propertyName.qstring() << endl;#endif  if( propertyName==lengthPropertyName )    return Number( mimes->count() );  // mimeTypes[#]  bool ok;  unsigned int i = propertyName.toULong(&ok);  if( ok && i<mimes->count() )    return Value( new MimeType( exec, mimes->at(i) ) );  // mimeTypes[name]  Value val = mimeTypeByName( exec, propertyName.qstring() );  if (!val.isA(UndefinedType))    return val;  return lookupGet<MimeTypesFunc,MimeTypes,ObjectImp>(exec,propertyName,&MimeTypesTable,this);}Value MimeTypes::mimeTypeByName( ExecState* exec, const QString& name ) const{  //kdDebug(6070) << "MimeTypes[" << name << "]" << endl;  for ( MimeClassInfo *m = mimes->first(); m!=0; m = mimes->next() ) {    if ( m->type == name )      return Value( new MimeType( exec, m ) );  }  return Undefined();}Value MimeTypes::getValueProperty(ExecState* /*exec*/, int token) const{  kdDebug(6070) << "WARNING: Unhandled token in MimeTypes::getValueProperty : " << token << endl;  return Undefined();}Value MimeTypesFunc::tryCall(ExecState *exec, Object &thisObj, const List &args){  KJS_CHECK_THIS( KJS::MimeTypes, thisObj );  KJS::MimeTypes* base = static_cast<KJS::MimeTypes *>(thisObj.imp());  switch( id ) {  case MimeTypes_Item:  {    bool ok;    unsigned int i = args[0].toString(exec).toArrayIndex(&ok);    if( ok && i<base->mimes->count() )      return Value( new MimeType( exec, base->mimes->at(i) ) );    return Undefined();  }  case MimeTypes_NamedItem:  {    UString s = args[0].toString(exec);    return base->mimeTypeByName( exec, s.qstring() );  }  default:    kdDebug(6070) << "WARNING: Unhandled token in MimeTypesFunc::tryCall : " << id << endl;    return Undefined();  }}/************************************************************************/const ClassInfo Plugin::info = { "Plugin", 0, &PluginTable, 0 };/*@begin PluginTable 7  name  	Plugin_Name	  	DontDelete|ReadOnly  filename  	Plugin_FileName    	DontDelete|ReadOnly  description  	Plugin_Description    	DontDelete|ReadOnly  length  	Plugin_Length    	DontDelete|ReadOnly  item  	Plugin_Item	   	DontDelete|Function 1  namedItem  	Plugin_NamedItem   	DontDelete|Function 1@end*/IMPLEMENT_PROTOFUNC_DOM(PluginFunc)Value Plugin::get(ExecState *exec, const Identifier &propertyName) const{#ifdef KJS_VERBOSE  kdDebug(6070) << "Plugin::get " << propertyName.qstring() << endl;#endif  if ( propertyName == lengthPropertyName )    return Number( m_info->mimes.count() );  // plugin[#]  bool ok;  unsigned int i = propertyName.toULong(&ok);  //kdDebug(6070) << "Plugin::get plugin[" << i << "]" << endl;  if( ok && i<m_info->mimes.count() )  {    //kdDebug(6070) << "returning mimetype " << m_info->mimes.at(i)->type << endl;    return Value(new MimeType(exec, m_info->mimes.at(i)));  }  // plugin["name"]  Value val = mimeByName( exec, propertyName.qstring() );  if (!val.isA(UndefinedType))    return val;  return lookupGet<PluginFunc,Plugin,ObjectImp>(exec, propertyName, &PluginTable, this );}Value Plugin::mimeByName(ExecState* exec, const QString& name) const{  for ( PluginBase::MimeClassInfo *m = m_info->mimes.first();        m != 0; m = m_info->mimes.next() ) {    if ( m->type == name )      return Value(new MimeType(exec, m));  }  return Undefined();}Value Plugin::getValueProperty(ExecState* /*exec*/, int token) const{  switch( token ) {  case Plugin_Name:    return String( m_info->name );  case Plugin_FileName:    return String( m_info->file );  case Plugin_Description:    return String( m_info->desc );  default:    kdDebug(6070) << "WARNING: Unhandled token in Plugin::getValueProperty : " << token << endl;    return Undefined();  }}Value PluginFunc::tryCall(ExecState *exec, Object &thisObj, const List &args){  KJS_CHECK_THIS( KJS::Plugin, thisObj );  KJS::Plugin* plugin = static_cast<KJS::Plugin *>(thisObj.imp());  switch( id ) {  case Plugin_Item:  {    bool ok;    unsigned int i = args[0].toString(exec).toArrayIndex(&ok);    if( ok && i< plugin->pluginInfo()->mimes.count() )      return Value( new MimeType( exec, plugin->pluginInfo()->mimes.at(i) ) );    return Undefined();  }  case Plugin_NamedItem:  {    UString s = args[0].toString(exec);    return plugin->mimeByName( exec, s.qstring() );  }  default:    kdDebug(6070) << "WARNING: Unhandled token in PluginFunc::tryCall : " << id << endl;    return Undefined();  }}/*****************************************************************************/const ClassInfo MimeType::info = { "MimeType", 0, &MimeTypesTable, 0 };/*@begin MimeTypeTable 4  description  	MimeType_Description    	DontDelete|ReadOnly  enabledPlugin MimeType_EnabledPlugin    	DontDelete|ReadOnly  suffixes	MimeType_Suffixes	    	DontDelete|ReadOnly  type  	MimeType_Type			DontDelete|ReadOnly@end*/Value MimeType::get(ExecState *exec, const Identifier &propertyName) const{#ifdef KJS_VERBOSE  kdDebug(6070) << "MimeType::get " << propertyName.qstring() << endl;#endif  return lookupGetValue<MimeType,ObjectImp>(exec, propertyName, &MimeTypeTable, this );}Value MimeType::getValueProperty(ExecState* exec, int token) const{  switch( token ) {  case MimeType_Type:    return String( m_info->type );  case MimeType_Suffixes:    return String( m_info->suffixes );  case MimeType_Description:    return String( m_info->desc );  case MimeType_EnabledPlugin:    return Value(new Plugin(exec, m_info->plugin));  default:    kdDebug(6070) << "WARNING: Unhandled token in MimeType::getValueProperty : " << token << endl;    return Undefined();  }}Value NavigatorFunc::tryCall(ExecState *exec, Object &thisObj, const List &){  KJS_CHECK_THIS( KJS::Navigator, thisObj );  Navigator *nav = static_cast<Navigator *>(thisObj.imp());  // javaEnabled()  return Boolean(nav->part()->javaEnabled());}

⌨️ 快捷键说明

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