r1767 - in branches/bxe_2_0: mozile plugins
[email protected] Fri, 26 Oct 2007 10:45:47 +0200 (CEST)
| Newsgroups | gmane.editors.bitflux.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: chregu
Date: Fri Oct 26 10:45:47 2007
New Revision: 1767
Log:
fix BXEB-47 and BXEB-48
always append stuff from clipboard (except text only)
Modified:
branches/bxe_2_0/mozile/mozCE.js
branches/bxe_2_0/plugins/ClipboardPasteDialog.js
Modified: branches/bxe_2_0/mozile/mozCE.js
==============================================================================
--- branches/bxe_2_0/mozile/mozCE.js (original)
+++ branches/bxe_2_0/mozile/mozCE.js Fri Oct 26 10:45:47 2007
@@ -758,24 +758,24 @@
/**
* POST05: paste more than text
*/
-Selection.prototype.paste = function(paraElementVdom,selNode)
+Selection.prototype.paste = function(paraElementVdom,selNode,alwaysAppend)
{
var clipboard = mozilla.getClipboard();
- var content = clipboard.getData(MozClipboard.TEXT_FLAVOR);
+ var cntnt = clipboard.getData(MozClipboard.TEXT_FLAVOR);
- if (content.nodeType == 11 && content.firstChild.nodeType == 3 && content.childNodes.length == 1) {
+ if (cntnt.nodeType == 11 && cntnt.firstChild.nodeType == 3 && cntnt.childNodes.length == 1) {
- content.data = content.firstChild.data;
+ cntnt.data = cntnt.firstChild.data;
}
- for (var i in content.childNodes) {
+ for (var i in cntnt.childNodes) {
- if (content.childNodes[i].nodeType == 1) {
- content.childNodes[i].setBxeIds(true);
+ if (cntnt.childNodes[i].nodeType == 1) {
+ cntnt.childNodes[i].setBxeIds(true);
}
}
- if (content && content.data) {
+ if (cntnt && cntnt.data) {
var elementNameParent = null;
var elementNameGrandParent = null;
var elementNamespace = null;
@@ -802,39 +802,39 @@
elementName = bxe_config.options['autoParaElementName'];
elementNamespace = bxe_config.options['autoParaElementNamespace']
}
- content.data = content.data.replace(/\r/g,"\n").replace(/\n+/g,"\n");
- if (elementName && clipboard._system && content.data.search(/[\n]./) > -1) {
- content = content.data;
- content = content.replace(/&/g,"&").replace(/</g,"<");
+ cntnt.data = cntnt.data.replace(/\r/g,"\n").replace(/\n+/g,"\n");
+ if (elementName && clipboard._system && (alwaysAppend || cntnt.data.search(/[\n]./) > -1)) {
+ cntnt = cntnt.data;
+ cntnt = cntnt.replace(/&/g,"&").replace(/</g,"<");
var elementName_start = elementName;
if (elementNamespace) {
elementName_start += " xmlns='"+elementNamespace +"'";
}
if (elementNameGrandParent) {
- content = content + "\n";
- var row = content.match(/(.*[\n$]+)/g);
- var content = "<" + elementNameGrandParent;
+ cntnt = cntnt + "\n";
+ var row = cntnt.match(/(.*[\n$]+)/g);
+ var cntnt = "<" + elementNameGrandParent;
if (elementNamespace) {
- content2 += " xmlns='"+elementNamespace +"'";
+ cntnt2 += " xmlns='"+elementNamespace +"'";
}
- content += ">";
+ cntnt += ">";
var delimiter = eval("'" + clipboard.delimiter + "'");
var _starti = 0;
if (paraElementVdom.bxeClipboardFirstChild) {
if (! paraElementVdom.bxeClipboardEmptyFirstRow ) {
_starti = 1;
}
- content += "<"+ paraElementVdom.bxeClipboardFirstChild +">";
+ cntnt += "<"+ paraElementVdom.bxeClipboardFirstChild +">";
var cell = row[0].split(delimiter);
for (var j = 0; j < cell.length; j++) {
- content += "<"+paraElementVdom.bxeClipboardFirstGrandChild + ">";
+ cntnt += "<"+paraElementVdom.bxeClipboardFirstGrandChild + ">";
if (! paraElementVdom.bxeClipboardEmptyFirstRow ) {
- content += cell[j];
+ cntnt += cell[j];
}
- content += "</" + paraElementVdom.bxeClipboardFirstGrandChild + ">\n";
+ cntnt += "</" + paraElementVdom.bxeClipboardFirstGrandChild + ">\n";
}
- content += "</"+ paraElementVdom.bxeClipboardFirstChild +">\n";
+ cntnt += "</"+ paraElementVdom.bxeClipboardFirstChild +">\n";
}
//find largest row
@@ -848,41 +848,46 @@
}
}
for (var i = _starti; i < row.length; i++) {
- content += "<"+ elementNameParent +">";
+ cntnt += "<"+ elementNameParent +">";
var cell = row[i].split(delimiter);
for (var j = 0; j < max; j++) {
- content += "<"+elementName_start + ">";
+ cntnt += "<"+elementName_start + ">";
if (cell[j]) {
- content += cell[j];
+ cntnt += cell[j];
} else {
- content += "#";
+ cntnt += "#";
}
- content += "</" + elementName + ">\n";
+ cntnt += "</" + elementName + ">\n";
}
- content += "</"+ elementNameParent +">\n";
+ cntnt += "</"+ elementNameParent +">\n";
}
- content += "</" + elementNameGrandParent + ">\n";
+ cntnt += "</" + elementNameGrandParent + ">\n";
} else {
- content = content.replace(/\n+$/,"");
- content = "<"+elementName_start + ">"+ content.replace(/[\n]+/g,"</"+elementName+"><"+elementName_start+" >")+"</"+elementName+">";
+ cntnt = cntnt.replace(/\n+$/,"");
+ cntnt = "<"+elementName_start + ">"+ cntnt.replace(/[\n]+/g,"</"+elementName+"><"+elementName_start+" >")+"</"+elementName+">";
if (elementNameParent) {
- var content2 = "<" + elementNameParent;
+ var cntnt2 = "<" + elementNameParent;
if (elementNamespace) {
- content2 += " xmlns='"+elementNamespace +"'";
+ cntnt2 += " xmlns='"+elementNamespace +"'";
}
- content = content2 + ">" + content + "</" + elementNameParent + ">";
+ cntnt = cntnt2 + ">" + cntnt + "</" + elementNameParent + ">";
}
}
-
- bxe_insertContent_async(content,BXE_SELECTION,BXE_SPLIT_IF_INLINE,selNode._node);
-
+ if (alwaysAppend) {
+ var docfrag = cntnt.convertToXML();
+ var e = {'additionalInfo': {'node': docfrag ,'appendToNode': selNode} };
+
+ bxe_appendNode(e);
+ } else {
+ bxe_insertContent_async(cntnt,BXE_SELECTION,BXE_SPLIT_IF_INLINE,selNode._node);
+ }
} else {
- window.getSelection().insertNode(content);
+ window.getSelection().insertNode(cntnt);
}
} else {
- window.getSelection().insertNode(content);
+ window.getSelection().insertNode(cntnt);
}
var node = window.getSelection().anchorNode;
Modified: branches/bxe_2_0/plugins/ClipboardPasteDialog.js
==============================================================================
--- branches/bxe_2_0/plugins/ClipboardPasteDialog.js (original)
+++ branches/bxe_2_0/plugins/ClipboardPasteDialog.js Fri Oct 26 10:45:47 2007
@@ -49,7 +49,11 @@
var content = clipboard.setData(values.clipboard);
clipboard._system = true;
var mod = mozilla.getWidgetModalBox();
- window.getSelection().paste(_eles[values['element']],mod.selNode);
+ var _append = true;
+ if (_eles[values['element']] == '__text__') {
+ _append = false;
+ }
+ window.getSelection().paste(_eles[values['element']],mod.selNode,_append);
});
var ac = selNode.parentNode.allowedChildren;
--
Bx-editor-cvs mailing list
[email protected]
http://lists.bitflux.ch/cgi-bin/listinfo/bx-editor-cvs