def node_model_factory_drop_handler(self, event): """ Drag and Drop from the Model """ mimedata = event.mimeData() if mimedata.hasFormat("openalealab/model"): from openalea.oalab.service.mimedata import decode # -- retreive the data from the event mimeData -- model, kwds = decode(str(mimedata.data("openalealab/model")), "openalealab/model", "openalealab/model") model_id = model.name try: # version > August 2014 (Git) from openalea.oalab.model.visualea import ModelNodeFactory except ImportError: try: # Backward compatibility with oalab from svn June 2014 from openalea.oalab.model.model import ModelFactory except ImportError: event.ignore() return else: factory = ModelFactory(model_id) else: factory = ModelNodeFactory(model_id) """ # -- see if we can safely open this factory (with user input) -- if not self.__check_factory(factory): return""" # -- instantiate the new node at the given position -- position = self.mapToScene(event.pos()) self.__drop_from_factory(factory, [position.x(), position.y()]) event.setDropAction(qt.QtCore.Qt.MoveAction)
def test_codec(): mimetype = 'custom/data' initial = SampleCustomData(1, 'b') mimetype, raw_data = encode(initial, mimetype_in=mimetype, mimetype_out=mimetype) final, kwds = decode(raw_data, mimetype_in=mimetype, mimetype_out=mimetype) assert initial.num == final.num assert initial.letter == final.letter