changeset 46:a66b053697d2

GridCanvas: add zoom in and zoom out buttons This was easier than I thought!
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 03 Sep 2019 22:05:31 -0400
parents cb9febbf11c4
children 493bfe6b2b90
files tilerswift
diffstat 1 files changed, 38 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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()