Fixed some stuff, procrastinating the real problem
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
import os
|
||||
from PyQt5.QtWidgets import QMainWindow, QWidget, QHBoxLayout, QMessageBox
|
||||
from PyQt5.QtCore import Qt
|
||||
from editortool.map.glwidget import GLWidget
|
||||
from editortool.map.chunkpanel import ChunkPanel
|
||||
from editortool.map.mapinfopanel import MapInfoPanel
|
||||
from editortool.map.mapdata import MapData
|
||||
from editortool.map.toolbar import MapToolbar
|
||||
from editortool.map.statusbar import StatusBar
|
||||
|
||||
from editortool.map.map import Map
|
||||
from editortool.map.mapdefs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH
|
||||
|
||||
class MapWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
@@ -14,6 +16,7 @@ class MapWindow(QMainWindow):
|
||||
|
||||
# Subclasses
|
||||
self.mapData = MapData()
|
||||
self.map = Map(self)
|
||||
|
||||
# Window setup
|
||||
self.setWindowTitle("Dusk Map Editor")
|
||||
@@ -28,7 +31,7 @@ class MapWindow(QMainWindow):
|
||||
mainLayout = QHBoxLayout(central)
|
||||
|
||||
# Left panel (ChunkPanel)
|
||||
self.chunkPanel = ChunkPanel()
|
||||
self.chunkPanel = ChunkPanel(self)
|
||||
leftWidget = QWidget()
|
||||
leftWidget.setLayout(self.chunkPanel.layout())
|
||||
leftWidget.setFixedWidth(200)
|
||||
@@ -48,6 +51,14 @@ class MapWindow(QMainWindow):
|
||||
self.statusBar = StatusBar(self)
|
||||
self.setStatusBar(self.statusBar)
|
||||
|
||||
self.installEventFilter(self)
|
||||
self._install_event_filter_recursive(self)
|
||||
|
||||
def _install_event_filter_recursive(self, widget):
|
||||
for child in widget.findChildren(QWidget):
|
||||
child.installEventFilter(self)
|
||||
self._install_event_filter_recursive(child)
|
||||
|
||||
def generateData(self):
|
||||
objOut = {}
|
||||
self.fileSaving.invoke(objOut)
|
||||
@@ -74,4 +85,33 @@ class MapWindow(QMainWindow):
|
||||
elif reply == QMessageBox.Cancel:
|
||||
event.ignore()
|
||||
return
|
||||
event.accept()
|
||||
event.accept()
|
||||
|
||||
def eventFilter(self, obj, event):
|
||||
if event.type() == event.KeyPress:
|
||||
amtX, amtY, amtZ = 0, 0, 0
|
||||
|
||||
key = event.key()
|
||||
if key == Qt.Key_Left:
|
||||
amtX = -1
|
||||
elif key == Qt.Key_Right:
|
||||
amtX = 1
|
||||
elif key == Qt.Key_Up:
|
||||
amtY = -1
|
||||
elif key == Qt.Key_Down:
|
||||
amtY = 1
|
||||
elif key == Qt.Key_PageUp:
|
||||
amtZ = 1
|
||||
elif key == Qt.Key_PageDown:
|
||||
amtZ = -1
|
||||
|
||||
if event.modifiers() & Qt.ShiftModifier:
|
||||
amtX *= int(TILE_WIDTH)
|
||||
amtY *= int(TILE_HEIGHT)
|
||||
amtZ *= int(TILE_DEPTH)
|
||||
|
||||
if amtX != 0 or amtY != 0 or amtZ != 0:
|
||||
self.map.moveRelative(amtX, amtY, amtZ)
|
||||
event.accept()
|
||||
return True
|
||||
return super().eventFilter(obj, event)
|
||||
Reference in New Issue
Block a user