示例#1
0
 def __init__(self, parent=None):
     super().__init__(parent)
     self.setupUi(self)
     self.setWindowIcon(QIcon('img/cloverball.png'))
     
     editDir = QDir.homePath()
     editDir += '/documents/KONAMI/Pro Evolution Soccer 2016/save'
     if (os.path.isdir(editDir)):
         self._directory = editDir
     else:
         self._directory = QDir.currentPath()
     self._editFile = EditFile()
     self._editData = None
    
     # Handle open/save buttons
     if (EditFile.crypterAvailable()):
         self.actionOpen_Edit_File.setEnabled(True)
     else:
         self.actionOpen_Edit_File.setEnabled(False)
     self.actionSave_As_Edit_File.setEnabled(False)
     self.actionOpen_Edit_data.setEnabled(True)
     self.actionSave_As_Edit_data.setEnabled(False)
     
     self.actionOpen_Edit_File.triggered.connect(lambda:
     self.openEdit(False))
     self.actionSave_As_Edit_File.triggered.connect(lambda:
     self.saveEdit(False))
     self.actionOpen_Edit_data.triggered.connect(lambda:
     self.openEdit(True))
     self.actionSave_As_Edit_data.triggered.connect(lambda:
     self.saveEdit(True))
     self.actionExit.triggered.connect(self.close)
示例#2
0
    from modules.mainwindow import MainWindow # import after compilation
    app = QApplication(sys.argv)
    mainWindow = MainWindow()
    mainWindow.setWindowTitle(name + ' v' + version)

    # Prepare status bar
    versionString = '<a href=\'' + repository + '\'>' + 'v' + version + '</a>'
    versionLabel = QLabel(versionString)
    versionLabel.setOpenExternalLinks(True)
    mainWindow.statusbar.insertPermanentWidget(0, versionLabel)
    websiteLabel = QLabel('<a href=\'' + wiki + '\'>' + wiki + '</a>')
    websiteLabel.setOpenExternalLinks(True)
    mainWindow.statusbar.insertPermanentWidget(0, websiteLabel)
    decrypterText = '<a href="https://github.com/tunabrain4cc/pes16decrypter">'
    decrypterText += 'pes16decrypter</a> status: '
    if (EditFile.crypterAvailable()):
        decrypterText += 'found'
    else:
        decrypterText += 'missing'
    pes16decrypterLabel = QLabel(decrypterText)
    mainWindow.statusbar.insertPermanentWidget(0, pes16decrypterLabel)
    mainWindow.statusbar.showMessage(welcomeText)

    # Add tabs and show main window #TODO: do this by searching the directory?
    from modules.players import PlayersWidget
    playersTab = PlayersWidget(mainWindow)
    mainWindow.mainTabs.addTab(playersTab, playersTab.windowTitle())
    from modules.batchplayerediting4cc import BatchPlayerEditing4ccWidget
    batchTab = BatchPlayerEditing4ccWidget(mainWindow)
    mainWindow.mainTabs.addTab(batchTab, batchTab.windowTitle())
    mainWindow.show()
示例#3
0
class MainWindow(QMainWindow, Ui_MainWindow):
    loadedEditData = pyqtSignal(EditData)
    savedEditFile = pyqtSignal()

    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.setWindowIcon(QIcon('img/cloverball.png'))
        
        editDir = QDir.homePath()
        editDir += '/documents/KONAMI/Pro Evolution Soccer 2016/save'
        if (os.path.isdir(editDir)):
            self._directory = editDir
        else:
            self._directory = QDir.currentPath()
        self._editFile = EditFile()
        self._editData = None
       
        # Handle open/save buttons
        if (EditFile.crypterAvailable()):
            self.actionOpen_Edit_File.setEnabled(True)
        else:
            self.actionOpen_Edit_File.setEnabled(False)
        self.actionSave_As_Edit_File.setEnabled(False)
        self.actionOpen_Edit_data.setEnabled(True)
        self.actionSave_As_Edit_data.setEnabled(False)
        
        self.actionOpen_Edit_File.triggered.connect(lambda:
        self.openEdit(False))
        self.actionSave_As_Edit_File.triggered.connect(lambda:
        self.saveEdit(False))
        self.actionOpen_Edit_data.triggered.connect(lambda:
        self.openEdit(True))
        self.actionSave_As_Edit_data.triggered.connect(lambda:
        self.saveEdit(True))
        self.actionExit.triggered.connect(self.close)
        
    @pyqtSlot(bool, str)
    def openEdit(self, dataOnly, filename=None):
        if (self._editData != None):
            QMessageBox.warning(None, 'Warning',
            'You will lose any unsaved changes!')
        
        # Get open filename if needed
        if (filename == None):
            if (dataOnly):
                filter = 'Edit data file (*.dat *)'
            else:
                filter = 'Edit file (*)'
            filename = getOpenFileName(self, self._directory, filter)
        if (filename == None):
            return
        
        # Parse data
        if (dataOnly):
            # Read input file #TODO: move outside of block with proper cryptor
            try:
                with open(filename, 'rb') as f:
                    data = bytearray(f.read())
            except FileNotFoundError:
                QMessageBox.critical(None, 'Error', 'File not found!')
                return False
            self._editData = EditData(data) #TODO: needs error handling
        else: #TODO: needs error handling
            self._editFile.fromEditFile(filename)
            self._editData = EditData(self._editFile.data) 
            self.actionSave_As_Edit_File.setEnabled(True) # we got an edit file
        self._directory = os.path.dirname(filename)

        # Update GUI
        self.actionSave_As_Edit_data.setEnabled(True)
        self.loadedEditData.emit(self._editData)
        self.statusbar.showMessage('Loaded ' + os.path.basename(filename) +
        ' successfully.')

    @pyqtSlot(bool, str)
    def saveEdit(self, dataOnly, filename=None):
        # Get save filename if needed
        if (filename == None):
            if (dataOnly):
                filter = 'Edit data file (*.dat *)'
            else:
                filter = 'Edit file (*)'
            filename = getSaveFileName(self, self._directory, filter)
        if (filename == None):
            return
        
        # Write to file #TODO: error handling
        if (dataOnly):
            with open(filename, 'wb') as f:
                f.write(self._editData.toBytearray())
        else:
            self._editFile.data = self._editData.toBytearray()
            self._editFile.saveToEditFile(filename)
        self._directory = os.path.dirname(filename)
        self.savedEditFile.emit()
        self.statusbar.showMessage('Saved ' + os.path.basename(filename) +
        ' successfully.')