Abt to cutscene
Some checks failed
Build Dusk / build-linux (push) Failing after 6m26s
Build Dusk / build-psp (push) Failing after 1m1s

This commit is contained in:
2025-11-25 08:45:12 -06:00
parent fe0529d021
commit 538079880d
4 changed files with 95 additions and 14 deletions

View File

@@ -1,5 +1,7 @@
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QListWidget, QListWidgetItem
from editortool.cutscene.cutsceneitem import CutsceneItemEditor
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QListWidget, QListWidgetItem, QMenuBar, QAction, QFileDialog, QMessageBox
from PyQt5.QtGui import QKeySequence
from editortool.cutscene.cutsceneitemeditor import CutsceneItemEditor
from editortool.cutscene.cutscenemenubar import CutsceneMenuBar
import sys
class CutsceneToolWindow(QMainWindow):
@@ -8,6 +10,12 @@ class CutsceneToolWindow(QMainWindow):
self.setWindowTitle("Dusk Cutscene Editor")
self.setGeometry(100, 100, 800, 600)
self.nextItemNumber = 1 # Track next available number
self.currentFile = None
self.dirty = False # Track unsaved changes
# File menu (handled by CutsceneMenuBar)
menubar = CutsceneMenuBar(self)
self.setMenuBar(menubar)
# Main layout: horizontal split
central = QWidget()
@@ -44,21 +52,34 @@ class CutsceneToolWindow(QMainWindow):
def addCutsceneItem(self):
name = f"Cutscene item {self.nextItemNumber}"
item = QListWidgetItem(name)
self.timelineList.addItem(item)
self.timelineList.setCurrentItem(item)
timelineItem = QListWidgetItem(name)
self.timelineList.addItem(timelineItem)
self.timelineList.setCurrentItem(timelineItem)
self.nextItemNumber += 1
self.dirty = True
def removeCutsceneItem(self):
row = self.timelineList.currentRow()
if row >= 0:
self.timelineList.takeItem(row)
# Remove editor if nothing selected
if self.timelineList.currentItem() is None:
if self.itemEditor:
self.editorLayout.removeWidget(self.itemEditor)
self.itemEditor.deleteLater()
self.itemEditor = None
if row < 0:
return
self.timelineList.takeItem(row)
self.dirty = True
# Remove editor if nothing selected
if self.timelineList.currentItem() is None or self.itemEditor is None:
return
self.editorLayout.removeWidget(self.itemEditor)
self.itemEditor.deleteLater()
self.itemEditor = None
def clearCutscene(self):
self.timelineList.clear()
self.nextItemNumber = 1
self.currentFile = None
self.dirty = False
if self.itemEditor:
self.editorLayout.removeWidget(self.itemEditor)
def onItemSelected(self, current, previous):
if current: