diff options
| author | Josh Ferrell <josh@vector35.com> | 2020-05-06 15:31:55 -0400 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2020-05-06 15:38:02 -0400 |
| commit | c0ec47186980e24bf9273c889599799e59b42ac7 (patch) | |
| tree | 2e76076f7ded2a1af50d1412ee151712a30a6391 /python | |
| parent | a867e60c569761852a4e33d85bfd1aea0a52fe15 (diff) | |
Remove python UndoAction class and old method
Diffstat (limited to 'python')
| -rw-r--r-- | python/__init__.py | 1 | ||||
| -rw-r--r-- | python/binaryview.py | 3 | ||||
| -rw-r--r-- | python/undoaction.py | 107 |
3 files changed, 0 insertions, 111 deletions
diff --git a/python/__init__.py b/python/__init__.py index f0c4446f..c046d51e 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -57,7 +57,6 @@ from binaryninja.demangle import * from binaryninja.mainthread import * from binaryninja.interaction import * from binaryninja.lineardisassembly import * -from binaryninja.undoaction import * from binaryninja.highlight import * from binaryninja.scriptingprovider import * from binaryninja.downloadprovider import * diff --git a/python/binaryview.py b/python/binaryview.py index a554f0e1..ff9b400f 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -2528,9 +2528,6 @@ class BinaryView(object): """ self._file.begin_undo_actions() - def add_undo_action(self, action): - core.BNAddUndoAction(self.handle, action.__class__.name, action._cb) - def commit_undo_actions(self): """ ``commit_undo_actions`` commit the actions taken since the last commit to the undo database. diff --git a/python/undoaction.py b/python/undoaction.py deleted file mode 100644 index e7938389..00000000 --- a/python/undoaction.py +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright (c) 2015-2020 Vector 35 Inc -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import traceback -import json -import ctypes - -# Binary Ninja components -from binaryninja import _binaryninjacore as core -from binaryninja.enums import ActionType -import binaryninja - - -class UndoAction(object): - name = None - action_type = None - _registered = False - _registered_cb = None - - def __init__(self, view): - self._cb = core.BNUndoAction() - if not self.__class__._registered: - raise TypeError("undo action type not registered") - action_type = self.__class__.action_type - if isinstance(action_type, str): - self._cb.type = ActionType[action_type] - else: - self._cb.type = action_type - self._cb.context = 0 - self._cb.undo = self._cb.undo.__class__(self._undo) - self._cb.redo = self._cb.redo.__class__(self._redo) - self._cb.serialize = self._cb.serialize.__class__(self._serialize) - self._view = view - - @classmethod - def register(cls): - binaryninja._init_plugins() - if cls.name is None: - raise ValueError("undo action 'name' not defined") - if cls.action_type is None: - raise ValueError("undo action 'action_type' not defined") - cb_type = ctypes.CFUNCTYPE(ctypes.c_bool, ctypes.c_void_p, ctypes.c_char_p, ctypes.POINTER(core.BNUndoAction)) - cls._registered_cb = cb_type(cls._deserialize) - core.BNRegisterUndoActionType(cls.name, 0, cls._registered_cb) - cls._registered = True - - @classmethod - def _deserialize(cls, ctxt, data, result): - try: - action = cls.deserialize(json.loads(data)) - if action is None: - return False - result.context = action._cb.context - result.undo = action._cb.undo - result.redo = action._cb.redo - result.serialize = action._cb.serialize - return True - except: - log.log_error(traceback.format_exc()) - return False - - def _undo(self, ctxt, view): - try: - self.undo() - except: - log.log_error(traceback.format_exc()) - return False - - def _redo(self, ctxt, view): - try: - self.redo() - except: - log.log_error(traceback.format_exc()) - return False - - def _serialize(self, ctxt): - try: - return json.dumps(self.serialize()) - except: - log.log_error(traceback.format_exc()) - return "null" - - @property - def view(self): - """ """ - return self._view - - @view.setter - def view(self, value): - self._view = value |
