Browse Source

Simplified setTo calls and used Writer API instead of DocumentSelection.

Maciej Bukowski 8 năm trước cách đây
mục cha
commit
44d1a80b56

+ 5 - 1
packages/ckeditor5-engine/src/conversion/model-selection-to-view-converters.js

@@ -3,7 +3,11 @@
  * For licensing, see LICENSE.md.
  */
 
+<<<<<<< HEAD
 import ViewRange from '../view/range';
+=======
+import ViewElement from '../view/element';
+>>>>>>> Simplified setTo calls and used Writer API instead of DocumentSelection.
 import viewWriter from '../view/writer';
 
 /**
@@ -84,7 +88,7 @@ export function convertCollapsedSelection() {
 		const viewPosition = conversionApi.mapper.toViewPosition( modelPosition );
 		const brokenPosition = viewWriter.breakAttributes( viewPosition );
 
-		conversionApi.viewSelection.setTo( new ViewRange( brokenPosition, brokenPosition ) );
+		conversionApi.viewSelection.setTo( brokenPosition );
 	};
 }
 

+ 10 - 5
packages/ckeditor5-engine/src/dev-utils/model.js

@@ -115,8 +115,11 @@ export function setData( model, data, options = {} ) {
 		writer.insert( modelDocumentFragment, modelRoot );
 
 		// Clean up previous document selection.
-		model.document.selection._clearAttributes();
-		model.document.selection._setTo( null );
+		for ( const key of model.document.selection.getAttributeKeys() ) {
+			writer.removeSelectionAttribute( key );
+		}
+
+		writer.setSelection( null );
 
 		// Update document selection if specified.
 		if ( selection ) {
@@ -129,10 +132,12 @@ export function setData( model, data, options = {} ) {
 				ranges.push( new ModelRange( start, end ) );
 			}
 
-			model.document.selection._setTo( ranges, selection.isBackward );
+			writer.setSelection( ranges, selection.isBackward );
 
 			if ( options.selectionAttributes ) {
-				model.document.selection._setAttributesTo( selection.getAttributes() );
+				for ( const [ key, value ] of selection.getAttributes() ) {
+					writer.setSelectionAttribute( key, value );
+				}
 			}
 		}
 	} );
@@ -188,7 +193,7 @@ export function stringify( node, selectionOrPositionOrRange = null ) {
 		selection.setTo( selectionOrPositionOrRange );
 	} else if ( selectionOrPositionOrRange instanceof ModelPosition ) {
 		selection = new ModelSelection();
-		selection.setTo( new ModelRange( selectionOrPositionOrRange, selectionOrPositionOrRange ) );
+		selection.setTo( selectionOrPositionOrRange );
 	}
 
 	// Setup model to view converter.

+ 4 - 4
packages/ckeditor5-engine/src/dev-utils/view.js

@@ -209,10 +209,10 @@ setData._parse = parse;
 export function stringify( node, selectionOrPositionOrRange = null, options = {} ) {
 	let selection;
 
-	if ( selectionOrPositionOrRange instanceof Position ) {
-		selection = new Selection();
-		selection.setTo( new Range( selectionOrPositionOrRange, selectionOrPositionOrRange ) );
-	} else if ( selectionOrPositionOrRange instanceof Range ) {
+	if (
+		selectionOrPositionOrRange instanceof Position ||
+		selectionOrPositionOrRange instanceof Range
+	) {
 		selection = new Selection();
 		selection.setTo( selectionOrPositionOrRange );
 	} else {