Source code for history

from collections import defaultdict
from PyQt5.QtWidgets import QUndoCommand


[docs]class cmdSetCol(QUndoCommand): """Sets a color in a color palette :param palette: Target set of color palettes :type palette: gamedata.ColorPalettes :param name: Name of target color palette :type name: str :param index: Index of target color :type index: int :param color: New color to set to :type color: QColor :param orig: Original color :type orig: QColor :param desc: Text description of action :type desc: Str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, palette_name, update_color, update_index, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source self.palette_name = palette_name self.update_index = update_index self.update_color = update_color self.original_color = self.data_source.get_color_palette(palette_name)[update_index]
[docs] def redo(self): """Redo setting a color """ self.data_source.update_color(self.palette_name, self.update_color, self.update_index)
[docs] def undo(self): """Undo setting a color """ self.data_source.update_color(self.palette_name, self.original_color, self.update_index)
[docs]class cmdRenameColPal(QUndoCommand): """Set the name of a color palette :param palette: Target set of color palettes :type palette: gamedata.ColorPalettes :param cur_name: Target name of color palette :type cur_name: str :param new_name: New name for color palette :type new_name: str :param desc: Text description of action :type desc: str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, current_name, new_name, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source self.current_name = current_name self.new_name = new_name
[docs] def redo(self): """Redo setting a color palette name """ self.data_source.rename_color_palette(self.current_name, self.new_name)
[docs] def undo(self): """Undo setting a color palette name """ self.data_source.rename_color_palette(self.new_name, self.current_name)
[docs]class cmdAddColPal(QUndoCommand): """Add a new sprite/tile color palette :param palette: Target set of color palettes :type palette: gamedata.ColorPalettes :param name: Name of target color palette :type name: str :param contents: Contents of new color palette :type contents: list :param desc: Text description of action :type desc: str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, palette_name, palette_contents, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source self.palette_name = palette_name self.palette_contents = palette_contents
[docs] def redo(self): """Redo adding a color palette """ self.data_source.add_color_palette(self.palette_name, self.palette_contents)
[docs] def undo(self): """Undo adding a color palette """ self.data_source.remove_color_palette(self.palette_name)
[docs]class cmdRemoveColPal(QUndoCommand): """Add a new sprite/tile color palette :param palette: Target set of color palettes :type palette: gamedata.ColorPalettes :param name: Name of target color palette :type name: str :param contents: Contents of new color palette :type contents: list :param desc: Text description of action :type desc: str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, palette_name, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source self.palette_name = palette_name self.original_contents = self.data_source.get_color_palette(palette_name)
[docs] def redo(self): """Redo adding a color palette """ self.data_source.remove_color_palette(self.palette_name)
[docs] def undo(self): """Undo adding a color palette """ self.data_source.add_color_palette(self.palette_name, self.original_contents)
[docs]class cmdAddPixelRow(QUndoCommand): """Add a row of sprite/tiles to a pixel palette :param palette: Target set of pixel palettes :type palette: gamedata.PixelPalettes :param desc: Text description of action :type desc: str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source
[docs] def redo(self): """Redo adding a row of sprites/tiles """ self.data_source.add_palette_row()
[docs] def undo(self): """Undo addign a row of sprites/tiles """ self.data_source.remove_palette_row()
[docs]class cmdRemovePixelRow(QUndoCommand): """Add a row of sprite/tiles to a pixel palette :param palette: Target set of pixel palettes :type palette: gamedata.PixelPalettes :param desc: Text description of action :type desc: str :param parent: Parent widget, defaults to None :type parent: QWidget, optional """ def __init__(self, data_source, desc, parent=None): super().__init__(desc, parent) self.data_source = data_source self.removed_row = None
[docs] def redo(self): """Redo adding a row of sprites/tiles """ self.removed_row = self.data_source.remove_palette_row()
[docs] def undo(self): """Undo addign a row of sprites/tiles """ self.data_source.add_palette_row(self.removed_row)