parent
38d1139d2d
commit
f50d812efb
@ -0,0 +1,40 @@
|
||||
from message.simple_messages import DataChgClickMessage
|
||||
from model import Sense
|
||||
|
||||
|
||||
def _get_sense_idx(sense, model):
|
||||
for idx, s in enumerate(model.entry.senses):
|
||||
if s == sense:
|
||||
return idx
|
||||
|
||||
class SenseMoveUp(DataChgClickMessage):
|
||||
def update_model(self, model):
|
||||
sense = self.get_arg(0, Sense)
|
||||
sidx = _get_sense_idx(sense, model)
|
||||
|
||||
assert(sidx >= 0)
|
||||
if sidx == 0:
|
||||
return
|
||||
|
||||
model.entry.senses[sidx], model.entry.senses[sidx - 1] = model.entry.senses[sidx - 1], model.entry.senses[sidx]
|
||||
|
||||
|
||||
class SenseMoveDown(DataChgClickMessage):
|
||||
def update_model(self, model):
|
||||
sense = self.get_arg(0, Sense)
|
||||
sidx = _get_sense_idx(sense, model)
|
||||
|
||||
assert(sidx >= 0)
|
||||
if sidx == len(model.senses) - 1:
|
||||
return
|
||||
|
||||
model.entry.senses[sidx], model.entry.senses[sidx + 1] = model.entry.senses[sidx + 1], model.entry.senses[sidx]
|
||||
|
||||
|
||||
class SenseBin(DataChgClickMessage):
|
||||
def update_model(self, model):
|
||||
sense = self.get_arg(0, Sense)
|
||||
sidx = _get_sense_idx(sense, model)
|
||||
|
||||
assert(sidx >= 0)
|
||||
model.entry.senses.splice(sidx, 1)
|
@ -0,0 +1,24 @@
|
||||
from model import Translation, Sense
|
||||
from message.simple_messages import ClickMessage
|
||||
|
||||
|
||||
class ShowMenu(ClickMessage):
|
||||
def on_event(self, event):
|
||||
location_x = event.currentTarget.offsetLeft
|
||||
location_y = event.currentTarget.offsetTop + event.currentTarget.offsetHeight
|
||||
self.menu_location = (location_x, location_y)
|
||||
super().on_event(event)
|
||||
|
||||
|
||||
class ShowTranslationMenu(ShowMenu):
|
||||
def update_model(self, model):
|
||||
model.menu_location = self.menu_location
|
||||
model.translation = self.get_arg(0, Translation)
|
||||
model.menu_target = model.translation
|
||||
|
||||
|
||||
class ShowSenseMenu(ShowMenu):
|
||||
def update_model(self, model):
|
||||
model.menu_location = self.menu_location
|
||||
sense = self.get_arg(0, Sense)
|
||||
model.menu_target = sense
|
Loading…
Reference in new issue