Title: [90808] trunk/Source/WebKit/efl
- Revision
- 90808
- Author
- commit-qu...@webkit.org
- Date
- 2011-07-11 22:58:21 -0700 (Mon, 11 Jul 2011)
Log Message
Patch by Jaehun Lim <ljaehun....@samsung.com> on 2011-07-11
Reviewed by Ryosuke Niwa.
[EFL] Supports to execute "redo" command.
https://bugs.webkit.org/show_bug.cgi?id=62536
Implements basic functions for "redo" command.
* WebCoreSupport/EditorClientEfl.cpp:
(WebCore::EditorClientEfl::registerCommandForUndo):
(WebCore::EditorClientEfl::registerCommandForRedo):
(WebCore::EditorClientEfl::clearUndoRedoOperations):
(WebCore::EditorClientEfl::canRedo):
(WebCore::EditorClientEfl::undo):
(WebCore::EditorClientEfl::redo):
(WebCore::EditorClientEfl::EditorClientEfl):
* WebCoreSupport/EditorClientEfl.h:
Modified Paths
Diff
Modified: trunk/Source/WebKit/efl/ChangeLog (90807 => 90808)
--- trunk/Source/WebKit/efl/ChangeLog 2011-07-12 04:54:54 UTC (rev 90807)
+++ trunk/Source/WebKit/efl/ChangeLog 2011-07-12 05:58:21 UTC (rev 90808)
@@ -1,3 +1,22 @@
+2011-07-11 Jaehun Lim <ljaehun....@samsung.com>
+
+ Reviewed by Ryosuke Niwa.
+
+ [EFL] Supports to execute "redo" command.
+ https://bugs.webkit.org/show_bug.cgi?id=62536
+
+ Implements basic functions for "redo" command.
+
+ * WebCoreSupport/EditorClientEfl.cpp:
+ (WebCore::EditorClientEfl::registerCommandForUndo):
+ (WebCore::EditorClientEfl::registerCommandForRedo):
+ (WebCore::EditorClientEfl::clearUndoRedoOperations):
+ (WebCore::EditorClientEfl::canRedo):
+ (WebCore::EditorClientEfl::undo):
+ (WebCore::EditorClientEfl::redo):
+ (WebCore::EditorClientEfl::EditorClientEfl):
+ * WebCoreSupport/EditorClientEfl.h:
+
2011-06-29 Kangil Han <kangil....@samsung.com>
Reviewed by Kenneth Rohde Christiansen.
Modified: trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp (90807 => 90808)
--- trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp 2011-07-12 04:54:54 UTC (rev 90807)
+++ trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp 2011-07-12 05:58:21 UTC (rev 90808)
@@ -163,17 +163,20 @@
void EditorClientEfl::registerCommandForUndo(WTF::PassRefPtr<EditCommand> command)
{
- undoStack.append(command);
+ if (!m_isInRedo)
+ redoStack.clear();
+ undoStack.prepend(command);
}
-void EditorClientEfl::registerCommandForRedo(WTF::PassRefPtr<EditCommand>)
+void EditorClientEfl::registerCommandForRedo(WTF::PassRefPtr<EditCommand> command)
{
- notImplemented();
+ redoStack.prepend(command);
}
void EditorClientEfl::clearUndoRedoOperations()
{
undoStack.clear();
+ redoStack.clear();
}
bool EditorClientEfl::canCopyCut(Frame*, bool defaultValue) const
@@ -193,20 +196,27 @@
bool EditorClientEfl::canRedo() const
{
- notImplemented();
- return false;
+ return !redoStack.isEmpty();
}
void EditorClientEfl::undo()
{
- RefPtr<WebCore::EditCommand> command(*(--undoStack.end()));
- undoStack.remove(--undoStack.end());
- command->unapply();
+ if (canUndo()) {
+ RefPtr<WebCore::EditCommand> command = undoStack.takeFirst();
+ command->unapply();
+ }
}
void EditorClientEfl::redo()
{
- notImplemented();
+ if (canRedo()) {
+ RefPtr<WebCore::EditCommand> command = redoStack.takeFirst();
+
+ ASSERT(!m_isInRedo);
+ m_isInRedo = true;
+ command->reapply();
+ m_isInRedo = false;
+ }
}
bool EditorClientEfl::shouldInsertNode(Node*, Range*, EditorInsertAction)
@@ -425,8 +435,9 @@
{
}
-EditorClientEfl::EditorClientEfl(Evas_Object *view)
- : m_view(view)
+EditorClientEfl::EditorClientEfl(Evas_Object* view)
+ : m_isInRedo(false)
+ , m_view(view)
{
notImplemented();
}
Modified: trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h (90807 => 90808)
--- trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h 2011-07-12 04:54:54 UTC (rev 90807)
+++ trunk/Source/WebKit/efl/WebCoreSupport/EditorClientEfl.h 2011-07-12 05:58:21 UTC (rev 90808)
@@ -46,7 +46,9 @@
class EditorClientEfl : public EditorClient, public TextCheckerClient {
protected:
+ bool m_isInRedo;
WTF::Deque<WTF::RefPtr<WebCore::EditCommand> > undoStack;
+ WTF::Deque<WTF::RefPtr<WebCore::EditCommand> > redoStack;
public:
EditorClientEfl(Evas_Object *view);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes