Mercurial > hg > tilerswift
view tilerswift @ 104:dd2a309eefa9
refactor: move widgets into their own module
This allows multiple ROM canvases to be opened at once, and each one
has its own palette, which can change the palette in the tile picker.
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Sun, 15 Sep 2019 22:03:03 -0400 |
parents | 2d1ffeafb003 |
children | e3ffae4d7528 |
line wrap: on
line source
#!/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): 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)" ) try: new_rom_dockable = ROMDockable(filename, filetype, self.tile_picker) except ROMOpeningError: pass 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) app = QW.QApplication(sys.argv) window = MainWindow() window.show() app.exec_()