Skip to content

Commit

Permalink
右クリックあぼーんを動くようにした
Browse files Browse the repository at this point in the history
  • Loading branch information
nodaguti committed May 2, 2014
1 parent f8b0875 commit cf1c8f7
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 19 deletions.
56 changes: 42 additions & 14 deletions chaika/chrome/content/chaika/browser/browserMenu.xml
Expand Up @@ -14,7 +14,8 @@
<xul:menuitem label="名前" anonid="abone-name" />
<xul:menuitem label="メール" anonid="abone-mail" />
<xul:menuitem label="ID" anonid="abone-id" />
<xul:menuitem label="ワード" anonid="abone-word" />
<xul:menuitem label="本文" anonid="abone-word" />
<xul:menuitem label="NGEx" anonid="abone-ex" />
<xul:menuseparator />
<xul:menuitem label="あぼーんマネージャ..." anonid="open-abone-manager" />
</xul:menupopup>
Expand Down Expand Up @@ -334,24 +335,28 @@
var disregardLimit = this.ChaikaCore.pref.getBool("browser.browsermenu.disregard_url_limit");
var selectedText = content.getSelection().toString();
var selectedText = content.getSelection();
switch(anonymousID){
case 'abone-name':
this.addAbone(0, selectedText);
this.addAbone(this.ChaikaAboneManager.ABONE_TYPE_NAME, selectedText);
break;
case 'abone-mail':
this.addAbone(1, selectedText);
this.addAbone(this.ChaikaAboneManager.ABONE_TYPE_MAIL, selectedText);
break;
case 'abone-id':
this.addAbone(2, selectedText);
this.addAbone(this.ChaikaAboneManager.ABONE_TYPE_ID, selectedText);
break;
case 'abone-word':
this.addAbone(3, selectedText);
this.addAbone(this.ChaikaAboneManager.ABONE_TYPE_WORD, selectedText);
break;
case 'abone-ex':
this.addAbone(this.ChaikaAboneManager.ABONE_TYPE_EX, selectedText);
break;
case "open-abone-manager":
Expand Down Expand Up @@ -457,26 +462,49 @@
<body><![CDATA[
var shouldConfirm = this.ChaikaCore.pref.getBool('browser.browsermenu.confirm_add_abone');
if(shouldConfirm){
this.openAboneManager({ ngType: ngType, ngWord: ngWord });
if(ngType !== this.ChaikaAboneManager.ABONE_TYPE_EX){
if(shouldConfirm){
this.openAboneManager(ngType, ngWord.toString());
}else{
this.ChaikaAboneManager[ngType].add(ngWord.toString());
}
}else{
this.ChaikaAboneManager.addAbone(ngWord, ngType);
let ngData = {
target: 'post',
match: 'all',
rules: [],
};
for(let i = 0, iz = ngWord.rangeCount; i < iz; i++){
let range = ngWord.getRangeAt(i);
ngData.rules.push({
target: 'msg',
query: range.toString(),
condition: 'contains'
});
}
this.openAboneManager(ngType, ngData);
}
]]></body>
</method>


<!--
/**
* あぼーんマネージャを開く
* @param {String} aData あぼーんマネージャに送るデータ(右クリックあぼーんで使用)
* あぼーんマネージャを開く (引数は右クリックあぼーんで使用)
* @param {String} [ngType] NGデータの種類
* @param {String|NGExData} [ngWord] NGデータ
*/
-->
<method name="openAboneManager">
<parameter name="aData"/>
<parameter name="ngType" />
<parameter name="ngWord" />
<body><![CDATA[
var aboneManagerURL = "chrome://chaika/content/settings/abone-manager.xul";
window.openDialog(aboneManagerURL, "_blank", "chrome, resizable, minimazable, toolbar", aData);
window.openDialog("chrome://chaika/content/settings/abone-manager.xul",
"_blank", "chrome, resizable, minimazable, toolbar",
ngType, ngWord);
]]></body>
</method>

Expand Down
2 changes: 1 addition & 1 deletion chaika/chrome/content/chaika/browser/overlay.js
Expand Up @@ -271,7 +271,7 @@ ChaikaBrowserOverlay.aboneEvent = {

switch(aTopic){
case "b2r-abone-data-add":
aboneType = aSubject.QueryInterface(Ci.nsISupportsPRInt32).data;
aboneType = aSubject.QueryInterface(Ci.nsISupportsString).data;
break;

default:
Expand Down
8 changes: 5 additions & 3 deletions chaika/chrome/content/chaika/settings/abone-manager-ngex.js
Expand Up @@ -261,8 +261,8 @@ NGExView.prototype = {
this._labelbox.value = ngData.title;
this._root.querySelector('.match').value = ngData.match;
this._root.querySelector('.target').value = ngData.target;
this._root.querySelector('.autoNGID').checked = ngData.autoNGID;
this._root.querySelector('.highlight').checked = ngData.highlight;
this._root.querySelector('.autoNGID').checked = !!ngData.autoNGID;
this._root.querySelector('.highlight').checked = !!ngData.highlight;

this._root.querySelector('.hide-abone').value = ngData.hide + '';
this._root.querySelector('.chain-abone').value = ngData.chain + '';
Expand All @@ -279,6 +279,8 @@ NGExView.prototype = {
datepicker.date = expire.getDate();
timepicker.hour = expire.getHours();
timepicker.minute = expire.getMinutes();
}else{
this._root.querySelector('.set-expire').checked = false;
}


Expand All @@ -290,7 +292,7 @@ NGExView.prototype = {
node.querySelector('.rule-target').value = rule.target;
node.querySelector('.rule-query').value = rule.query;
node.querySelector('.rule-condition').value = rule.condition;
node.querySelector('.rule-regexp').checked = rule.regexp;
node.querySelector('.rule-regexp').checked = !!rule.regexp;
node.querySelector('.rule-case-sensitive').checked = ! rule.ignoreCase;
});

Expand Down
8 changes: 7 additions & 1 deletion chaika/chrome/content/chaika/settings/abone-manager.js
Expand Up @@ -77,7 +77,7 @@ var gAboneManager = {
let ngType = window.arguments[0];
let ngData = window.arguments[1];

this[ngType].populateData(ngData);
setTimeout(() => { this[ngType].populateData(ngData) }, 0);
}
},

Expand Down Expand Up @@ -304,6 +304,12 @@ NGExAboneManagerView.prototype = Object.create(AboneManagerView.prototype, {
this._info.collapsed = false;
this._view.populateData(aData);
}else{
//タブを選択
let tabbox = document.getElementById('aboneManagerTabBox');
tabbox.selectedPanel = this._tab;
tabbox.selectedIndex = this._tab.parentNode.selectedIndex;

//追加ダイアログを表示する
this.add(aData);
}
},
Expand Down

0 comments on commit cf1c8f7

Please sign in to comment.