changeset 114:4b1e034dc9fb

MainWindow: move into widgets module I like it better to have an almost trivial "main" entrypoint.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Fri, 20 Sep 2019 13:38:02 -0400
parents ef1a879802ad
children 76044c28c981
files tilerswift widgets.py
diffstat 2 files changed, 50 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- a/tilerswift
+++ b/tilerswift
@@ -1,56 +1,9 @@
 #!/usr/bin/python3
 import sys
 
-from PyQt5 import QtCore as QC, QtWidgets as QW
-
-from exceptions import ROMOpeningError
-from widgets import TilePicker, ROMDockable
-
-
-class MainWindow(QW.QMainWindow):
-    def __init__(self, app):
-        super().__init__()
-
-        self.resize(QC.QSize(1200, 800))
-        self.rom_dockables = []
-
-        bar = self.menuBar()
-        file = bar.addMenu("&File")
-        open_action = file.addAction("&Open")
-        quit_action = file.addAction("&Quit")
-        open_action.triggered.connect(self.open_rom)
-        quit_action.triggered.connect(app.quit)
-
-        self.tile_picker = TilePicker()
-
-        tile_picker_scroll = QW.QScrollArea(self)
-        tile_picker_scroll.setWidget(self.tile_picker)
+from PyQt5 import QtWidgets as QW
 
-        self.setCentralWidget(tile_picker_scroll)
-
-    def open_rom(self):
-        filename, filetype = QW.QFileDialog.getOpenFileName(
-            self,
-            "Open ROM", "", "NES Files (*.nes *.NES *.zip *.ZIP)"
-        )
-        if not filename:
-            return
-
-        try:
-            new_rom_dockable = ROMDockable(filename, filetype, self.tile_picker)
-        except ROMOpeningError as exc:
-            QW.QMessageBox.critical(self, "Tilerswift message", str(exc))
-            return
-
-        try:
-            last_docked = self.rom_dockables[-1]
-            self.tabifyDockWidget(last_docked, new_rom_dockable)
-        except IndexError:
-            self.addDockWidget(QC.Qt.LeftDockWidgetArea, new_rom_dockable)
-
-        new_rom_dockable.show()
-        new_rom_dockable.raise_()
-        self.rom_dockables.append(new_rom_dockable)
+from widgets import MainWindow
 
 
 def main():
@@ -59,5 +12,6 @@
     window.show()
     app.exec_()
 
+
 if __name__ == "__main__":
     main()
--- a/widgets.py
+++ b/widgets.py
@@ -1,7 +1,7 @@
 from PyQt5 import QtCore as QC, QtGui as QG, QtWidgets as QW
 
 from colours import NES_PALETTE, TILE_PALETTES, is_dark, widget_icon_path
-
+from exceptions import ROMOpeningError
 from nes import NES_ROM, Tile
 
 BUTTON_SIZE = 32
@@ -507,3 +507,49 @@
             self.rom_palette_buttons.layout.itemAt(button_idx).widget().set_colour(colour_idx)
         self.rom_canvas.update()
         self.rom_canvas.tile_picker.update()
+
+
+class MainWindow(QW.QMainWindow):
+    def __init__(self, app):
+        super().__init__()
+
+        self.resize(QC.QSize(1200, 800))
+        self.rom_dockables = []
+
+        bar = self.menuBar()
+        file = bar.addMenu("&File")
+        open_action = file.addAction("&Open")
+        quit_action = file.addAction("&Quit")
+        open_action.triggered.connect(self.open_rom)
+        quit_action.triggered.connect(app.quit)
+
+        self.tile_picker = TilePicker()
+
+        tile_picker_scroll = QW.QScrollArea(self)
+        tile_picker_scroll.setWidget(self.tile_picker)
+
+        self.setCentralWidget(tile_picker_scroll)
+
+    def open_rom(self):
+        filename, filetype = QW.QFileDialog.getOpenFileName(
+            self,
+            "Open ROM", "", "NES Files (*.nes *.NES *.zip *.ZIP)"
+        )
+        if not filename:
+            return
+
+        try:
+            new_rom_dockable = ROMDockable(filename, filetype, self.tile_picker)
+        except ROMOpeningError as exc:
+            QW.QMessageBox.critical(self, "Tilerswift message", str(exc))
+            return
+
+        try:
+            last_docked = self.rom_dockables[-1]
+            self.tabifyDockWidget(last_docked, new_rom_dockable)
+        except IndexError:
+            self.addDockWidget(QC.Qt.LeftDockWidgetArea, new_rom_dockable)
+
+        new_rom_dockable.show()
+        new_rom_dockable.raise_()
+        self.rom_dockables.append(new_rom_dockable)