Skip to content

Commit

Permalink
Add GUI
Browse files Browse the repository at this point in the history
Very simple and most likely with bugs.
  • Loading branch information
rrooij committed May 26, 2017
1 parent 147bbed commit ccdd1d3
Show file tree
Hide file tree
Showing 5 changed files with 212 additions and 0 deletions.
Empty file added sd3save_editor/gui/__init__.py
Empty file.
9 changes: 9 additions & 0 deletions sd3save_editor/gui/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import sys

from PyQt5.QtWidgets import QApplication
from sd3save_editor.gui.mainwindow import MainWindow


app = QApplication(sys.argv)
mainwindow = MainWindow()
sys.exit(app.exec_())
45 changes: 45 additions & 0 deletions sd3save_editor/gui/mainwindow.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
from PyQt5.QtWidgets import QMainWindow, QFileDialog, QMessageBox
from sd3save_editor.gui.mainwindow_ui import Ui_MainWindow

import sd3save_editor.save as save
import sd3save_editor.locations as locations

class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.init_file_open_events()
self.init_location_combobox()
self.show()

def init_file_open_events(self):
self.ui.actionOpen.triggered.connect(self.open_file_dialog)

def init_location_combobox(self):
self.ui.locationComboBox.addItems(locations.get_locations())

def init_save_event(self):
self.ui.actionSave.triggered.connect(self.save_form_values)
self.ui.saveButton.clicked.connect(self.save_form_values)

def save_form_values(self):
location_id = self.ui.locationComboBox.currentIndex() + 1
save.change_location(self.save_file, location_id)
save.write_checksum(self.save_file)

def closeEvent(self, event):
if hasattr(self, 'save_file'):
self.save_file.close()
event.accept()


def open_file_dialog(self):
filename = QFileDialog.getOpenFileName(self, 'Open file', filter="Seiken3 Save (*.srm)")[0]
try:
self.save_file = save.read_save(filename)
self.ui.saveButton.setEnabled(True)
self.ui.actionSave.setEnabled(True)
self.init_save_event()
except Exception as ex:
QMessageBox.warning(self, "Can't open Seiken3 save", str(ex))
94 changes: 94 additions & 0 deletions sd3save_editor/gui/mainwindow.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Seiken Densetsu 3 Save Editor</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>791</width>
<height>80</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="locationLabel">
<property name="text">
<string>Location</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="locationComboBox"/>
</item>
</layout>
</widget>
<widget class="QPushButton" name="saveButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="geometry">
<rect>
<x>690</x>
<y>530</y>
<width>81</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Save</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>19</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionOpen"/>
<addaction name="actionSave"/>
</widget>
<addaction name="menuFile"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="actionOpen">
<property name="text">
<string>Open</string>
</property>
</action>
<action name="actionSave">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Save</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>
64 changes: 64 additions & 0 deletions sd3save_editor/gui/mainwindow_ui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.7
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.formLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.formLayoutWidget.setGeometry(QtCore.QRect(0, 0, 791, 80))
self.formLayoutWidget.setObjectName("formLayoutWidget")
self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
self.formLayout.setFieldGrowthPolicy(QtWidgets.QFormLayout.AllNonFixedFieldsGrow)
self.formLayout.setContentsMargins(0, 0, 0, 0)
self.formLayout.setObjectName("formLayout")
self.locationLabel = QtWidgets.QLabel(self.formLayoutWidget)
self.locationLabel.setObjectName("locationLabel")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.locationLabel)
self.locationComboBox = QtWidgets.QComboBox(self.formLayoutWidget)
self.locationComboBox.setObjectName("locationComboBox")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.locationComboBox)
self.saveButton = QtWidgets.QPushButton(self.centralwidget)
self.saveButton.setEnabled(False)
self.saveButton.setGeometry(QtCore.QRect(690, 530, 81, 22))
self.saveButton.setObjectName("saveButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 19))
self.menubar.setObjectName("menubar")
self.menuFile = QtWidgets.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionOpen = QtWidgets.QAction(MainWindow)
self.actionOpen.setObjectName("actionOpen")
self.actionSave = QtWidgets.QAction(MainWindow)
self.actionSave.setEnabled(False)
self.actionSave.setObjectName("actionSave")
self.menuFile.addAction(self.actionOpen)
self.menuFile.addAction(self.actionSave)
self.menubar.addAction(self.menuFile.menuAction())

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Seiken Densetsu 3 Save Editor"))
self.locationLabel.setText(_translate("MainWindow", "Location"))
self.saveButton.setText(_translate("MainWindow", "Save"))
self.menuFile.setTitle(_translate("MainWindow", "File"))
self.actionOpen.setText(_translate("MainWindow", "Open"))
self.actionSave.setText(_translate("MainWindow", "Save"))

0 comments on commit ccdd1d3

Please sign in to comment.