JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.5
[ckeditor.git] / _source / plugins / dialogadvtab / plugin.js
index 1748692..39f2b80 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -132,9 +132,12 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                                                label : lang.styles,\r
                                                'default' : '',\r
 \r
+                                               validate : CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ),\r
+                                               onChange : function(){},\r
+\r
                                                getStyle : function( name, defaultValue )\r
                                                {\r
-                                                       var match = this.getValue().match( new RegExp( name + '\\s*:\s*([^;]*)', 'i') );\r
+                                                       var match = this.getValue().match( new RegExp( name + '\\s*:\\s*([^;]*)', 'i') );\r
                                                        return match ? match[ 1 ] : defaultValue;\r
                                                },\r
 \r
@@ -142,23 +145,12 @@ CKEDITOR.plugins.add( 'dialogadvtab',
                                                {\r
                                                        var styles = this.getValue();\r
 \r
-                                                       // Remove the current value.\r
-                                                       if ( styles )\r
-                                                       {\r
-                                                               styles = styles\r
-                                                                       .replace( new RegExp( '\\s*' + name + '\s*:[^;]*(?:$|;\s*)', 'i' ), '' )\r
-                                                                       .replace( /^[;\s]+/, '' )\r
-                                                                       .replace( /\s+$/, '' );\r
-                                                       }\r
-\r
-                                                       if ( value )\r
-                                                       {\r
-                                                               styles && !(/;\s*$/).test( styles ) && ( styles += '; ' );\r
-                                                               styles += name + ': ' + value;\r
-                                                       }\r
+                                                       var tmp = editor.document.createElement( 'span' );\r
+                                                       tmp.setAttribute( 'style', styles );\r
+                                                       tmp.setStyle( name, value );\r
+                                                       styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) );\r
 \r
                                                        this.setValue( styles, 1 );\r
-\r
                                                },\r
 \r
                                                setup : setupAdvParams,\r