OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2005, 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "bindings/v8/ExceptionState.h" | 29 #include "bindings/v8/ExceptionState.h" |
30 #include "bindings/v8/ExceptionStatePlaceholder.h" | 30 #include "bindings/v8/ExceptionStatePlaceholder.h" |
31 #include "core/dom/Document.h" | 31 #include "core/dom/Document.h" |
32 #include "core/dom/DocumentMarkerController.h" | 32 #include "core/dom/DocumentMarkerController.h" |
33 #include "core/dom/Text.h" | 33 #include "core/dom/Text.h" |
34 #include "wtf/Assertions.h" | 34 #include "wtf/Assertions.h" |
35 | 35 |
36 namespace WebCore { | 36 namespace WebCore { |
37 | 37 |
38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset) | 38 SplitTextNodeCommand::SplitTextNodeCommand(PassRefPtr<Text> text, int offset) |
39 : SimpleEditCommand(text->document()) | 39 : SimpleEditCommand(&text->document()) |
40 , m_text2(text) | 40 , m_text2(text) |
41 , m_offset(offset) | 41 , m_offset(offset) |
42 { | 42 { |
43 // NOTE: Various callers rely on the fact that the original node becomes | 43 // NOTE: Various callers rely on the fact that the original node becomes |
44 // the second node (i.e. the new node is inserted before the existing one). | 44 // the second node (i.e. the new node is inserted before the existing one). |
45 // That is not a fundamental dependency (i.e. it could be re-coded), but | 45 // That is not a fundamental dependency (i.e. it could be re-coded), but |
46 // rather is based on how this code happens to work. | 46 // rather is based on how this code happens to work. |
47 ASSERT(m_text2); | 47 ASSERT(m_text2); |
48 ASSERT(m_text2->length() > 0); | 48 ASSERT(m_text2->length() > 0); |
49 ASSERT(m_offset > 0); | 49 ASSERT(m_offset > 0); |
(...skipping 15 matching lines...) Expand all Loading... |
65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get()
, 0); | 65 document()->markers()->copyMarkers(m_text2.get(), 0, m_offset, m_text1.get()
, 0); |
66 | 66 |
67 insertText1AndTrimText2(); | 67 insertText1AndTrimText2(); |
68 } | 68 } |
69 | 69 |
70 void SplitTextNodeCommand::doUnapply() | 70 void SplitTextNodeCommand::doUnapply() |
71 { | 71 { |
72 if (!m_text1 || !m_text1->rendererIsEditable()) | 72 if (!m_text1 || !m_text1->rendererIsEditable()) |
73 return; | 73 return; |
74 | 74 |
75 ASSERT(m_text1->document() == document()); | 75 ASSERT(&m_text1->document() == document()); |
76 | 76 |
77 String prefixText = m_text1->data(); | 77 String prefixText = m_text1->data(); |
78 | 78 |
79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow)
; | 79 m_text2->insertData(0, prefixText, ASSERT_NO_EXCEPTION, DeprecatedAttachNow)
; |
80 | 80 |
81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_
text2.get(), 0); | 81 document()->markers()->copyMarkers(m_text1.get(), 0, prefixText.length(), m_
text2.get(), 0); |
82 m_text1->remove(ASSERT_NO_EXCEPTION); | 82 m_text1->remove(ASSERT_NO_EXCEPTION); |
83 } | 83 } |
84 | 84 |
85 void SplitTextNodeCommand::doReapply() | 85 void SplitTextNodeCommand::doReapply() |
(...skipping 19 matching lines...) Expand all Loading... |
105 | 105 |
106 #ifndef NDEBUG | 106 #ifndef NDEBUG |
107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes) | 107 void SplitTextNodeCommand::getNodesInCommand(HashSet<Node*>& nodes) |
108 { | 108 { |
109 addNodeAndDescendants(m_text1.get(), nodes); | 109 addNodeAndDescendants(m_text1.get(), nodes); |
110 addNodeAndDescendants(m_text2.get(), nodes); | 110 addNodeAndDescendants(m_text2.get(), nodes); |
111 } | 111 } |
112 #endif | 112 #endif |
113 | 113 |
114 } // namespace WebCore | 114 } // namespace WebCore |
OLD | NEW |