# HG changeset patch # User Jordi GutiƩrrez Hermoso # Date 1567562731 14400 # Node ID a66b053697d2693933ec44913068db6d8823725e # Parent cb9febbf11c4b26c6bc51de8e186f4843fd8396c GridCanvas: add zoom in and zoom out buttons This was easier than I thought! diff --git a/tilerswift b/tilerswift --- a/tilerswift +++ b/tilerswift @@ -72,7 +72,7 @@ super().__init__() self.file_name = filename - self.tiles = read_rom(self.file_name[0]) + self.tiles = read_rom(self.file_name) self.numcols = 16 self.numrows = len(self.tiles)//self.numcols @@ -80,16 +80,9 @@ self.scalefactor = 5 self.spacing = 2 - self.tilesize = self.spacing + self.scalefactor*8 self.setStyleSheet(CHECKERBOARD_CSS) - self.setFixedSize(QtCore.QSize( - self.tilesize*self.numcols + self.spacing, - self.tilesize*self.numrows + self.spacing, - )) - - - self.update() + self.resize() def paintEvent(self, event): painter = QtGui.QPainter(self) @@ -123,6 +116,30 @@ for row in tile.tile: print(row) + def resize(self): + self.tilesize = self.spacing + self.scalefactor*8 + self.setFixedSize(QtCore.QSize( + self.tilesize*self.numcols + self.spacing, + self.tilesize*self.numrows + self.spacing, + )) + self.update() + + def zoomOut(self): + self.scalefactor -= 1 + if self.scalefactor < 1: + self.scalefactor = 1 + return + + self.resize() + + def zoomIn(self): + self.scalefactor += 1 + if self.scalefactor > 10: + self.scalefactor = 10 + return + + self.resize() + class ColourPicker(QtWidgets.QDialog): @@ -175,7 +192,7 @@ "Open ROM", "", "NES Files (*.nes)" ) - self.grid_widget = GridCanvas(filename) + self.grid_widget = GridCanvas(filename[0]) scroll = QtWidgets.QScrollArea() scroll.setWidget(self.grid_widget) @@ -190,6 +207,17 @@ button = PaletteButton(button_idx, color_idx) button.pressed.connect(lambda idx=button_idx: self.pick_palette_colour(idx)) self.palette.addWidget(button) + + zoomInButton = QtWidgets.QPushButton("+") + zoomInButton.setFixedSize(QtCore.QSize(24, 24)) + zoomInButton.pressed.connect(self.grid_widget.zoomIn) + self.palette.addWidget(zoomInButton) + + zoomOutButton = QtWidgets.QPushButton("-") + zoomOutButton.setFixedSize(QtCore.QSize(24, 24)) + zoomOutButton.pressed.connect(self.grid_widget.zoomOut) + self.palette.addWidget(zoomOutButton) + vert.addLayout(self.palette) main_widget = QtWidgets.QWidget()