亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? feed-subscriptions.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 3 頁
字號:
      while (!done)       {        var folder = folderEnumerator.currentItem().QueryInterface(Components.interfaces.nsIMsgFolder);        folderObject.children.push(this.makeFolderObject(folder, aCurrentLevel + 1));        try {          folderEnumerator.next();        }         catch (ex)        {          done = true;        }              }    }    var feeds = this.getFeedsInFolder(aFolder);        for (feed in feeds)    {      // Special case, if a folder only has a single feed associated with it, then just use the feed      // in the view and don't show the folder at all. //      if (feedUrlArray.length <= 2 && !aFolder.hasSubFolders) // Note: split always adds an empty element to the array...//        this.mFeedContainers[aCurrentLength] = this.makeFeedObject(feed, aCurrentLevel);//      else // now add any feed urls for the folder        folderObject.children.push(this.makeFeedObject(feeds[feed], aCurrentLevel + 1));               }    return folderObject;  },  getFeedsInFolder: function (aFolder)  {    var feeds = new Array();    try    {      var msgdb = aFolder.QueryInterface(Components.interfaces.nsIMsgFolder).getMsgDatabase(null);      var folderInfo = msgdb.dBFolderInfo;      var feedurls = folderInfo.getCharPtrProperty("feedUrl");      var feedUrlArray = feedurls.split("|");      for (url in feedUrlArray)      {        if (!feedUrlArray[url])          continue;        var feedResource  = rdf.GetResource(feedUrlArray[url]);        var feed = new Feed(feedResource, this.mRSSServer);        feeds.push(feed);      }    }    catch(ex) {}    return feeds;  },    makeFeedObject: function (aFeed, aLevel)  {    // look inside the data source for the feed properties    var feed = { children    : [],                 name        : aFeed.title,                 url         : aFeed.url,                 level       : aLevel,                 open        : false,                 container   : false };    return feed;  },    loadSubscriptions: function ()   {    // put together an array of folders    var numFolders = 0;    this.mFeedContainers = [];    if (this.mRSSServer.rootFolder.hasSubFolders)    {      var folderEnumerator = this.mRSSServer.rootFolder.GetSubFolders();      var done = false;      while (!done)       {        var folder = folderEnumerator.currentItem().QueryInterface(Components.interfaces.nsIMsgFolder);        if (folder && !folder.getFlag(MSG_FOLDER_FLAG_TRASH))         {          this.mFeedContainers.push(this.makeFolderObject(folder, 0));          numFolders++;        }        try {          folderEnumerator.next();        }         catch (ex)        {          done = true;        }              }    }    this.mView.mRowCount = numFolders;    gFeedSubscriptionsWindow.mTree.focus();  },    updateFeedData: function (aItem)  {    var ids = ['nameLabel', 'nameValue', 'locationLabel', 'locationValue'];    if (aItem && !aItem.container)     {      // set the feed location and title info      document.getElementById('nameValue').value = aItem.name;      document.getElementById('locationValue').value = aItem.url;    }    else     {      var noneSelected = this.mBundle.getString("subscribe-noFeedSelected");      document.getElementById('nameValue').value = noneSelected;      document.getElementById('locationValue').value = "";    }    for (i = 0; i < ids.length; ++i)      document.getElementById(ids[i]).disabled = !aItem || aItem.container;  },    onKeyPress: function(aEvent)  {     if (aEvent.keyCode == aEvent.DOM_VK_ENTER || aEvent.keyCode == aEvent.DOM_VK_RETURN)    {      var seln = this.mTree.view.selection;      item = this.mView.getItemAtIndex(seln.currentIndex);      if (item && !item.container)        this.editFeed();     }  },  onSelect: function ()   {    var properties, item;    var seln = this.mTree.view.selection;    item = this.mView.getItemAtIndex(seln.currentIndex);          this.updateFeedData(item);            document.getElementById("removeFeed").disabled = !item || item.container;    document.getElementById("editFeed").disabled = !item || item.container;  },    removeFeed: function ()   {     var seln = this.mView.selection;    if (seln.count != 1) return;    var itemToRemove = this.mView.getItemAtIndex(seln.currentIndex);    if (!itemToRemove)      return;    // ask the user if he really wants to unsubscribe from the feed    var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(IPS);    var abortRemoval = promptService.confirmEx(window, this.mBundle.getString('subsribe-confirmFeedDeletionTitle'),                                                   this.mBundle.getFormattedString('subsribe-confirmFeedDeletion', [itemToRemove.name], 1),                                                   (IPS.BUTTON_TITLE_YES * IPS.BUTTON_POS_0) + (IPS.BUTTON_TITLE_NO * IPS.BUTTON_POS_1),                                                  null, null, null, null, { });    if (abortRemoval)      return;    var resource = rdf.GetResource(itemToRemove.url);    var feed = new Feed(resource);    var ds = getSubscriptionsDS(this.mRSSServer);    if (feed && ds)    {      // remove the feed from the subscriptions ds      var feeds = getSubscriptionsList(this.mRSSServer);      var index = feeds.IndexOf(resource);      if (index != kRowIndexUndefined)        feeds.RemoveElementAt(index, false);      // remove the feed property string from the folder data base      var currentFolder = ds.GetTarget(resource, FZ_DESTFOLDER, true);      if (currentFolder)       {        var currentFolderURI = currentFolder.QueryInterface(Components.interfaces.nsIRDFResource).Value;        currentFolder = rdf.GetResource(currentFolderURI).QueryInterface(Components.interfaces.nsIMsgFolder);            var feedUrl = ds.GetTarget(resource, DC_IDENTIFIER, true);            ds.Unassert(resource, DC_IDENTIFIER, feedUrl, true);        feedUrl = feedUrl ? feedUrl.QueryInterface(Components.interfaces.nsIRDFLiteral).Value : "";        updateFolderFeedUrl(currentFolder, feedUrl, true); // remove the old url      }      // Remove all assertions about the feed from the subscriptions database.      removeAssertions(ds, resource);      ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); // flush any changes      // Remove all assertions about items in the feed from the items database.      var itemds = getItemsDS(this.mRSSServer);      feed.invalidateItems();      feed.removeInvalidItems();      itemds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); // flush any changes    }    // Now that we have removed the feed from the datasource, it is time to update our    // view layer. Start by removing the child from its parent folder object    this.mView.removeItemAtIndex(seln.currentIndex);    // If we don't have any more subscriptions pointing into    // this folder, then I think we should offer to delete it...    // Cheat and look at the feed url property to see if anyone else is still using the feed...    // you could also accomplish this by looking at some properties in the data source...//    var msgdb = currentFolder.QueryInterface(Components.interfaces.nsIMsgFolder).getMsgDatabase(null);//   var folderInfo = msgdb.dBFolderInfo;//    var oldFeedUrl = folderInfo.getCharPtrProperty("feedUrl");//    if (!oldFeedUrl) // no more feeds pointing to the folder?//    {//      try {//        var openerResource = this.mRSSServer.rootMsgFolder.QueryInterface(Components.interfaces.nsIRDFResource);//        var folderResource = currentFolder.QueryInterface(Components.interfaces.nsIRDFResource);//        window.opener.messenger.DeleteFolders(window.opener.GetFolderDatasource(), openerResource, folderResource);//      } catch (e) { }//    }  },    // aRootFolderURI --> optional argument. The folder to initially create the new feed under.  addFeed: function(aFeedLocation, aRootFolderURI)  {    var userAddedFeed = false;     var defaultQuickMode = this.mRSSServer.getBoolAttribute('quickMode');    var feedProperties = { feedName: "", feedLocation: aFeedLocation,                            serverURI: this.mRSSServer.serverURI,                            serverPrettyName: this.mRSSServer.prettyName,                             folderURI: aRootFolderURI,                            quickMode: this.mRSSServer.getBoolAttribute('quickMode'),                            newFeed: true,                           result: userAddedFeed};    feedProperties = openFeedEditor(feedProperties);    // if the user hit cancel, exit without doing anything    if (!feedProperties.result)      return;    if (!feedProperties.feedLocation)      return;    // before we go any further, make sure the user is not already subscribed to this feed.    if (feedAlreadyExists(feedProperties.feedLocation, this.mRSSServer))    {      var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(IPS);      promptService.alert(window, null, this.mBundle.getString("subscribe-feedAlreadySubscribed"));                  return;    }      var feed = this.storeFeed(feedProperties);    if(!feed)      return;    // Now validate and start downloadng the feed....    updateStatusItem('statusText', document.getElementById("bundle_newsblog").getString('subscribe-validating'));    updateStatusItem('progressMeter', 0);    document.getElementById('addFeed').setAttribute('disabled', 'true');    feed.download(true, this.mFeedDownloadCallback);  },  // helper routine used by addFeed and importOPMLFile  storeFeed: function(feedProperties)  {    var itemResource = rdf.GetResource(feedProperties.feedLocation);    feed = new Feed(itemResource, this.mRSSServer);    // if the user specified a specific folder to add the feed too, then set it here    if (feedProperties.folderURI)    {      var folderResource = rdf.GetResource(feedProperties.folderURI);         if (folderResource)      {        var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);        if (folder && !folder.isServer)          feed.folder = folder;      }    }    feed.quickMode = feedProperties.quickMode;    return feed;  },  editFeed: function()   {    var seln = this.mView.selection;    if (seln.count != 1)       return;    var itemToEdit = this.mView.getItemAtIndex(seln.currentIndex);    if (!itemToEdit || itemToEdit.container)      return;    var resource = rdf.GetResource(itemToEdit.url);    var feed = new Feed(resource, this.mRSSServer);    var ds = getSubscriptionsDS(this.mRSSServer);    var currentFolder = ds.GetTarget(resource, FZ_DESTFOLDER, true);    var currentFolderURI = currentFolder.QueryInterface(Components.interfaces.nsIRDFResource).Value;       var userModifiedFeed = false;     var feedProperties = { feedLocation: itemToEdit.url, serverURI: this.mRSSServer.serverURI,                            serverPrettyName: this.mRSSServer.prettyName, folderURI: currentFolderURI,                            quickMode: feed.quickMode, newFeed: false, result: userModifiedFeed};    feedProperties = openFeedEditor(feedProperties);    if (!feedProperties.result) // did the user cancel?      return;    // check to see if the quickMode value changed    if (feed.quickMode != feedProperties.quickMode)      feed.quickMode = feedProperties.quickMode;    // did the user change the folder URI for storing the feed?    if (feedProperties.folderURI && feedProperties.folderURI != currentFolderURI)    {      // we need to find the index of the new parent folder...      var newParentIndex = kRowIndexUndefined;      for (index = 0; index < this.mView.rowCount; index++)      {        var item = this.mView.getItemAtIndex(index);        if (item && item.container && item.url == feedProperties.folderURI)        {          newParentIndex = index;          break;        }            }      if (newParentIndex != kRowIndexUndefined)        this.moveFeed(seln.currentIndex, newParentIndex)    }          ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource).Flush(); // flush any changes  },   // moves the feed located at aOldFeedIndex to a child of aNewParentIndex  moveFeed: function(aOldFeedIndex, aNewParentIndex)  {    // if the new parent is the same as the current parent, then do nothing    if (this.mView.getParentIndex(aOldFeedIndex) == aNewParentIndex)      return;    var currentItem = this.mView.getItemAtIndex(aOldFeedIndex);    var currentParentItem = this.mView.getItemAtIndex(this.mView.getParentIndex(aOldFeedIndex));    var currentParentResource = rdf.GetResource(currentParentItem.url);    var newParentItem = this.mView.getItemAtIndex(aNewParentIndex);    var newParentResource = rdf.GetResource(newParentItem.url);    var ds = getSubscriptionsDS(this.mRSSServer);    var resource = rdf.GetResource(currentItem.url);    var currentFolder = currentParentResource.QueryInterface(Components.interfaces.nsIMsgFolder);    // unassert the older URI, add an assertion for the new parent URI...

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产91久久久久久久妲己| 日韩精品一区二区三区中文精品| 亚洲v中文字幕| 国产精品入口麻豆九色| 精品嫩草影院久久| 欧美videossexotv100| 亚洲欧美日韩电影| 亚洲男人天堂av| 国内精品伊人久久久久av一坑| 视频在线在亚洲| 青青草一区二区三区| 久久国产日韩欧美精品| 激情另类小说区图片区视频区| 日本韩国欧美国产| 欧美私模裸体表演在线观看| 精品视频一区二区不卡| 欧美日产在线观看| 日韩午夜三级在线| 国产色婷婷亚洲99精品小说| 国产精品理论片| 一区二区三区在线免费播放| 樱桃视频在线观看一区| 日韩一区精品视频| 欧美日韩一区在线| 一区二区日韩av| 色香蕉久久蜜桃| 欧美精品亚洲二区| 日本一区二区三区dvd视频在线| 亚洲欧美视频一区| 成人av网在线| 91高清在线观看| 亚洲欧美一区二区久久 | 久久综合九色综合欧美98| 久久久久国产精品麻豆| 一区二区中文视频| 日本视频在线一区| 成人丝袜视频网| 欧美欧美欧美欧美| 五月激情六月综合| 国产一区二区精品久久99| 99在线精品免费| 91精品国产综合久久福利| 国产三级欧美三级日产三级99| 久久不见久久见中文字幕免费| 91精品国产91综合久久蜜臀| 日本vs亚洲vs韩国一区三区二区| 欧美精品丝袜久久久中文字幕| 日韩高清在线不卡| 精品美女在线观看| 国产成人小视频| 欧美一区二区三区喷汁尤物| 麻豆成人久久精品二区三区小说| 91免费视频网| 久久久久久久久97黄色工厂| 成人手机在线视频| 亚洲国产中文字幕| aa级大片欧美| 亚洲午夜精品网| 日韩精品资源二区在线| 国产精品白丝jk白祙喷水网站| 欧美视频精品在线| 精品影视av免费| 日韩一级片在线观看| 国产精品18久久久久| 亚洲欧美日韩电影| 精品久久久久久久久久久院品网| 99久久伊人网影院| 日韩一区二区三区在线| 国产福利精品一区二区| 一区二区三区91| 精品国产亚洲一区二区三区在线观看| 成人福利在线看| 蜜臀精品久久久久久蜜臀| 国产精品免费视频观看| 国产精品视频在线看| 欧美日韩精品一区二区三区蜜桃 | 欧美三级一区二区| 激情久久久久久久久久久久久久久久| 成人免费在线视频| 日韩一区二区精品葵司在线| heyzo一本久久综合| 蜜臀99久久精品久久久久久软件| 国产精品每日更新| 欧美一级日韩免费不卡| 色88888久久久久久影院按摩 | 亚洲国产精品ⅴa在线观看| 日韩成人精品在线观看| 亚洲色图一区二区| 91丨九色丨蝌蚪富婆spa| 美女视频第一区二区三区免费观看网站| 亚洲三级理论片| 久久精品在线观看| 日韩欧美电影一区| 欧美日韩一二三| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | av高清久久久| 国产精品一级二级三级| 欧美aaaaa成人免费观看视频| 亚洲激情校园春色| 国产精品国产a| 国产午夜久久久久| 久久久久久久久久电影| 日韩午夜av电影| 91精品黄色片免费大全| 美女视频网站久久| 亚洲成人激情av| 亚洲制服丝袜av| 精品少妇一区二区三区| 3atv在线一区二区三区| 91搞黄在线观看| 欧美偷拍一区二区| 色菇凉天天综合网| 色婷婷亚洲精品| 色婷婷综合中文久久一本| 白白色亚洲国产精品| 粉嫩嫩av羞羞动漫久久久| 亚洲一区电影777| 亚洲一区免费观看| 一区2区3区在线看| 亚洲专区一二三| 日韩精品乱码免费| 免费人成在线不卡| 狠狠色丁香九九婷婷综合五月| 蜜臀精品一区二区三区在线观看| 蜜桃传媒麻豆第一区在线观看| 日韩精品一二区| 国内成人免费视频| 国产91精品一区二区麻豆网站| 丰满亚洲少妇av| 色综合色综合色综合色综合色综合| www.激情成人| 在线亚洲一区二区| 国产一区二区三区四区在线观看| 国产一区二区三区在线观看免费| 国产成人日日夜夜| 色网综合在线观看| 3751色影院一区二区三区| xnxx国产精品| 国产精品成人免费在线| 亚洲乱码精品一二三四区日韩在线 | 亚洲曰韩产成在线| 日本视频一区二区| 成人免费毛片高清视频| 色综合久久久久久久久久久| 欧美精品久久99| 国产欧美视频一区二区| 亚洲黄色录像片| 激情久久久久久久久久久久久久久久| 成人美女视频在线看| 欧美日韩一区二区不卡| 久久女同性恋中文字幕| 亚洲高清在线精品| 国产精品亚洲第一| 欧美天天综合网| 国产精品视频一区二区三区不卡| 一区二区三区日韩| 国产精品一区二区在线观看不卡| 色婷婷亚洲婷婷| 久久久久青草大香线综合精品| 亚洲欧美另类小说视频| 久热成人在线视频| 欧美视频在线一区二区三区 | 91丨porny丨国产| 日韩一区二区电影在线| 亚洲免费观看视频| 国产综合一区二区| 欧美日韩三级一区二区| 国产偷国产偷精品高清尤物| 午夜欧美在线一二页| 99精品视频中文字幕| 精品国产伦一区二区三区观看体验| 亚洲男人的天堂一区二区 | 久久午夜电影网| 亚洲成va人在线观看| av在线这里只有精品| 精品久久久久香蕉网| 天堂va蜜桃一区二区三区| 99久精品国产| 国产精品伦理在线| 国产精品资源网| 欧美电视剧免费全集观看| 亚洲高清免费视频| 欧美在线视频全部完| 国产精品久久久久久久蜜臀 | 国产欧美一区二区三区在线看蜜臀| 亚洲综合久久久久| 99久久精品国产毛片| 国产视频亚洲色图| 国产成人免费av在线| 精品国产乱码久久久久久闺蜜| 天天做天天摸天天爽国产一区| 91免费视频观看| 玉足女爽爽91| 91欧美一区二区| 亚洲乱码精品一二三四区日韩在线| 成人性生交大合| 中文字幕欧美一| 色婷婷亚洲精品| 亚洲一区免费观看| 欧美三级电影在线观看|