Fully functional. Has error dialog, dynamic logging, resizable UI

master
Griffiths Lott 3 years ago
parent 3aff9e4474
commit 5efa83f8db
  1. 4
      .gitignore
  2. 2
      ILParser.py
  3. 1
      config.json
  4. 70
      errorDialog.py
  5. 129
      main.py
  6. 4
      todo.txt
  7. 176
      ui.py

4
.gitignore vendored

@ -3,4 +3,6 @@ Inputs/
Outputs/
__pycache__/
*.csv
*.log
*.log
.vscode/
*.xlsx

@ -4,7 +4,7 @@ from logging import debug, DEBUG, basicConfig, warn
from typing import Optional, Union
logConfig = basicConfig(filename='ILFormatter.log', encoding='utf-8', level=DEBUG, filemode='w')
#logConfig = basicConfig(filename='ILFormatter.log', encoding='utf-8', level=DEBUG, filemode='w')
CONTRACT_NO_REGEX = "\d{3}-\d{7}-\d{3}"
class Column:

@ -0,0 +1 @@
{"loggingLevel": "DEBUG"}

@ -0,0 +1,70 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'errorDialog.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
from pandas import DataFrame
from typing import Union
class ErrorDialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(496, 195)
self.widget = QtWidgets.QWidget(Dialog)
self.widget.setGeometry(QtCore.QRect(10, 10, 471, 181))
self.widget.setObjectName("widget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.errorLabel = QtWidgets.QLabel(self.widget)
self.errorLabel.setMinimumSize(QtCore.QSize(202, 20))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.errorLabel.setFont(font)
self.errorLabel.setObjectName("errorLabel")
self.verticalLayout.addWidget(self.errorLabel)
self.errorDetailLabel = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.errorDetailLabel.setFont(font)
self.errorDetailLabel.setObjectName("errorDetailLabel")
self.verticalLayout.addWidget(self.errorDetailLabel)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.textBrowser = QtWidgets.QTextBrowser(self.widget)
self.textBrowser.setObjectName("textBrowser")
self.verticalLayout_2.addWidget(self.textBrowser)
self.okButton = QtWidgets.QDialogButtonBox(self.widget)
self.okButton.setStandardButtons(QtWidgets.QDialogButtonBox.Ok)
self.okButton.setCenterButtons(True)
self.okButton.setObjectName("okButton")
self.verticalLayout_2.addWidget(self.okButton)
# Actions
self.okButton.clicked.connect(lambda: Dialog.done(1))
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Error"))
self.errorLabel.setText(_translate("Dialog", "ERROR LABEL:"))
self.errorDetailLabel.setText(_translate("Dialog", "ERROR LABEL"))
def setFields(self, errorLabel: str, errorDescription: str, errorText: str):
self.errorLabel.setText(errorLabel)
self.errorDetailLabel.setText(errorDescription)
self.textBrowser.setText(errorText)

@ -1,22 +1,61 @@
from ui import Ui_MainWindow
from errorDialog import ErrorDialog
import ILParser
from PyQt5 import QtWidgets
from logging import debug, DEBUG, basicConfig, warn
from logging import debug, info, warning, exception as logException, error,DEBUG, INFO, WARNING, ERROR, basicConfig, getLogger
from sys import argv
from typing import Literal, Optional
from pandas import DataFrame, ExcelWriter
from datetime import datetime as dt
from os import startfile
from json import load, dump
from time import sleep
# Open the config file, create a dict, and set up logging
with open("config.json") as configFile:
config: dict[Literal["loggingLevel"], Literal["ERROR", "WARNING", "INFO", "DEBUG"]] = load(configFile)
basicConfig(filename='ILFormatter.log', encoding='utf-8', level=config["loggingLevel"], filemode='w', force=True)
info(f"Starting with log level: {getLogger().level}")
logConfig = basicConfig(filename='ILFormatter.log', encoding='utf-8', level=DEBUG, filemode='w')
# Change the current log level and save the change to config.json
def change_log_level(newLevel: Literal["ERROR", "WARNING", "INFO", "DEBUG"]):
config["loggingLevel"] = newLevel
with open("config.json", 'w') as configFile:
dump(config, configFile)
getLogger().setLevel(newLevel)
print(f"{now()} | New logging level: {getLogger().level}\n")
# Creates an error dialog pop up
# Based on the ui from errorDialog.py
def open_error_dialog(errorLabel: str, errorDescription: str, errorText: str):
dialog = QtWidgets.QDialog()
dialog.ui = ErrorDialog()
dialog.ui.setupUi(dialog)
dialog.ui.setFields(errorLabel, errorDescription, errorText)
dialog.exec_()
# Used to easily record uniform timestamps
now = lambda : dt.now().strftime("%H:%M-%S.%f")
# This class is responable for managing the UI of the application
# and connection it to the functionality of ILParser.py
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, *args, obj=None, **kwargs):
debug("MainWindow class init..")
super(MainWindow, self).__init__(*args, **kwargs)
self.setupUi(self)
self.processButton.setEnabled(False)
self.openButton.setEnabled(False)
# Fix log level action buttons
level: QtWidgets.QAction
for level in [self.actionError, self.warnAction, self.infoAction, self.debugAction]:
inUse = level.text().upper() == config["loggingLevel"]
level.setEnabled(not inUse)
level.setChecked(inUse)
if inUse: self.logLevel = level
debug(f"Logging Level: {self.logLevel}")
# File Locations
self.assetFile = None
self.custFile = None
@ -31,12 +70,20 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.finButton.clicked.connect(lambda: self._set_file(lineEdit= self.finLE, selfFile="FIN"))
self.outputButton.clicked.connect(lambda: self._set_output())
self.processButton.clicked.connect(lambda: self._process())
self.openButton.clicked.connect(lambda: self._open_with_default_app(self.outputLocation))
# Action Hooks
self.actionError.triggered.connect(lambda: self._switch_log_levels(self.actionError))
self.warnAction.triggered.connect(lambda: self._switch_log_levels(self.warnAction))
self.infoAction.triggered.connect(lambda: self._switch_log_levels(self.infoAction))
self.debugAction.triggered.connect(lambda: self._switch_log_levels(self.debugAction))
def _check_files(self):
debug(self.assetFile)
debug(self.custFile)
debug(self.dobFile)
debug(self.finFile)
self.openButton.setEnabled(False)
ready = (
self.assetFile != None and
self.custFile != None and
@ -46,7 +93,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
)
self.processButton.setEnabled(ready)
def _set_file(self, lineEdit: QtWidgets.QLineEdit, selfFile: Literal["ASSET", "CUST", "DOB", "FIN"]) -> str :
def _set_file(self, lineEdit: QtWidgets.QLineEdit, selfFile: Literal["ASSET", "CUST", "DOB", "FIN"]) -> Optional[str] :
selectedFile: list[str] = QtWidgets.QFileDialog.getOpenFileName(self, "OpenFile")
debug(f"Selected file: {selectedFile}")
lineEdit.setText(selectedFile[0])
@ -73,34 +120,88 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.outputLE.setText(self.outputLocation if self.outputLocation != None else '')
debug(f"Auto set output: {self.outputLocation}")
def _setAssetFile(self):
self.assetFile = self._set_file(self.assetLE)
def _open_with_default_app(self, item):
"""
Opens the linked item with it's default application (excel)
"""
debug(f"_open_with_default_app: {item}")
startfile(item)
def _switch_log_levels(self, newLevel: QtWidgets.QAction):
oldLevel: QtWidgets.QAction = self.logLevel
print(f"{now()} | Log Level Changed: {oldLevel.text()} -> {newLevel.text()}")
newLevel.setChecked(True)
oldLevel.setChecked(False)
newLevel.setEnabled(False)
oldLevel.setEnabled(True)
self.logLevel = newLevel
change_log_level(newLevel.text().upper())
def _parse_file(self, filePath: str, parseColumns: list[ILParser.Column]) -> Optional[DataFrame]:
with open(filePath) as file:
report = file.read()
debug(f"Report: {report}")
data: DataFrame = ILParser.parse(report, parseColumns)
debug(f"Parse Columns:\n{parseColumns}")
try:
data: DataFrame = ILParser.parse(report, parseColumns)
except Exception as e:
logException(f"Failed to parse file-> {filePath} :\n{e}")
open_error_dialog("Parsing Error:",f"Failed to parse file-> {filePath}",repr(e))
return None
debug(f"Data: {data}")
if data.empty:
error(f"Dataframe empty -> {filePath} | Returning none")
open_error_dialog("Data Processing Error:",f"Dataframe empty!",filePath)
return None
else: return data
def _process(self):
assetDf: DataFrame = self._parse_file(self.assetFile, ILParser.ASSET_COLS)
debug(assetDf)
assetDf: Optional[DataFrame] = self._parse_file(filePath= self.assetFile, parseColumns= ILParser.ASSET_COLS)
debug(f"AssetDF: {assetDf} | {type(assetDf)} ")
if type(assetDf) != DataFrame:
debug(f"Parse Columns: {ILParser.ASSET_COLS}")
self.assetLE.setText("")
self.assetFile = None
return None
custDf: DataFrame = self._parse_file(self.custFile, ILParser.CUST_COLS)
debug(custDf)
if type(custDf) != DataFrame:
debug(f"Parse Columns: {ILParser.CUST_COLS}")
self.custLe.setText("")
self.custFile = None
return None
dobDf: DataFrame = self._parse_file(self.dobFile, ILParser.DOB_COL)
debug(dobDf)
if type(dobDf) != DataFrame:
debug(f"Parse Columns: {ILParser.DOB_COL}")
self.dobLE.setText("")
self.dobFile = None
return None
finDf: DataFrame = self._parse_file(self.finFile, ILParser.FIN_COLUMNS)
debug(finDf)
with ExcelWriter(self.outputLocation) as writer:
assetDf.to_excel(writer, sheet_name="ASSET")
custDf.to_excel(writer, sheet_name="CUST")
dobDf.to_excel(writer, sheet_name="DOB")
finDf.to_excel(writer, sheet_name="FIN")
if type(finDf) != DataFrame:
debug(f"Parse Columns: {ILParser.FIN_COLUMNS}")
self.finLE.setText("")
self.finFile = None
return None
try:
with ExcelWriter(self.outputLocation) as writer:
assetDf.to_excel(writer, sheet_name="ASSET")
custDf.to_excel(writer, sheet_name="CUST")
dobDf.to_excel(writer, sheet_name="DOB")
finDf.to_excel(writer, sheet_name="FIN")
except Exception as e:
logException(f"{now()} | Failed to write to excel -> {self.outputLocation} :\n{e}")
open_error_dialog("Failed to Create Excel", f"Failed to write to excel -> {self.outputLocation}", repr(e))
return None
debug("Finished writing to excel.")
self.openButton.setEnabled(True)
# Defines the app

@ -0,0 +1,4 @@
[X] Working log level button
[X] Open file button
[X] Error Dialog
[ ] Directory memory

176
ui.py

@ -14,76 +14,164 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(520, 314)
MainWindow.resize(518, 267)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setMaximumSize(QtCore.QSize(16777215, 219))
self.centralwidget.setObjectName("centralwidget")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(10, 10, 491, 251))
self.widget.setObjectName("widget")
self.mainVbox = QtWidgets.QVBoxLayout(self.widget)
self.mainVbox.setContentsMargins(0, 0, 0, 0)
self.mainVbox.setObjectName("mainVbox")
self.formLayout = QtWidgets.QFormLayout(self.centralwidget)
self.formLayout.setObjectName("formLayout")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.gridLayout.setObjectName("gridLayout")
self.assetHbox = QtWidgets.QHBoxLayout()
self.assetHbox.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.assetHbox.setObjectName("assetHbox")
self.assetButton = QtWidgets.QPushButton(self.widget)
self.assetButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.assetButton.sizePolicy().hasHeightForWidth())
self.assetButton.setSizePolicy(sizePolicy)
self.assetButton.setMinimumSize(QtCore.QSize(99, 27))
self.assetButton.setMaximumSize(QtCore.QSize(99, 27))
self.assetButton.setObjectName("assetButton")
self.assetHbox.addWidget(self.assetButton)
self.assetLE = QtWidgets.QLineEdit(self.widget)
self.assetLE = QtWidgets.QLineEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.assetLE.sizePolicy().hasHeightForWidth())
self.assetLE.setSizePolicy(sizePolicy)
self.assetLE.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.assetLE.setObjectName("assetLE")
self.assetHbox.addWidget(self.assetLE)
self.mainVbox.addLayout(self.assetHbox)
self.gridLayout.addLayout(self.assetHbox, 0, 0, 1, 1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.custButton = QtWidgets.QPushButton(self.widget)
self.custButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.custButton.sizePolicy().hasHeightForWidth())
self.custButton.setSizePolicy(sizePolicy)
self.custButton.setMinimumSize(QtCore.QSize(99, 27))
self.custButton.setMaximumSize(QtCore.QSize(99, 27))
self.custButton.setObjectName("custButton")
self.horizontalLayout_2.addWidget(self.custButton)
self.custLe = QtWidgets.QLineEdit(self.widget)
self.custLe = QtWidgets.QLineEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.custLe.sizePolicy().hasHeightForWidth())
self.custLe.setSizePolicy(sizePolicy)
self.custLe.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.custLe.setObjectName("custLe")
self.horizontalLayout_2.addWidget(self.custLe)
self.mainVbox.addLayout(self.horizontalLayout_2)
self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.dobButton = QtWidgets.QPushButton(self.widget)
self.dobButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.dobButton.sizePolicy().hasHeightForWidth())
self.dobButton.setSizePolicy(sizePolicy)
self.dobButton.setMinimumSize(QtCore.QSize(99, 27))
self.dobButton.setMaximumSize(QtCore.QSize(99, 27))
self.dobButton.setObjectName("dobButton")
self.horizontalLayout_6.addWidget(self.dobButton)
self.dobLE = QtWidgets.QLineEdit(self.widget)
self.dobLE = QtWidgets.QLineEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.dobLE.sizePolicy().hasHeightForWidth())
self.dobLE.setSizePolicy(sizePolicy)
self.dobLE.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.dobLE.setObjectName("dobLE")
self.horizontalLayout_6.addWidget(self.dobLE)
self.mainVbox.addLayout(self.horizontalLayout_6)
self.gridLayout.addLayout(self.horizontalLayout_6, 2, 0, 1, 1)
self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
self.horizontalLayout_7.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
self.finButton = QtWidgets.QPushButton(self.widget)
self.finButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.finButton.sizePolicy().hasHeightForWidth())
self.finButton.setSizePolicy(sizePolicy)
self.finButton.setMinimumSize(QtCore.QSize(99, 27))
self.finButton.setMaximumSize(QtCore.QSize(99, 27))
self.finButton.setObjectName("finButton")
self.horizontalLayout_7.addWidget(self.finButton)
self.finLE = QtWidgets.QLineEdit(self.widget)
self.finLE = QtWidgets.QLineEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.finLE.sizePolicy().hasHeightForWidth())
self.finLE.setSizePolicy(sizePolicy)
self.finLE.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.finLE.setObjectName("finLE")
self.horizontalLayout_7.addWidget(self.finLE)
self.mainVbox.addLayout(self.horizontalLayout_7)
self.gridLayout.addLayout(self.horizontalLayout_7, 3, 0, 1, 1)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.outputButton = QtWidgets.QPushButton(self.widget)
self.outputButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.outputButton.sizePolicy().hasHeightForWidth())
self.outputButton.setSizePolicy(sizePolicy)
self.outputButton.setMinimumSize(QtCore.QSize(99, 27))
self.outputButton.setMaximumSize(QtCore.QSize(99, 27))
self.outputButton.setObjectName("outputButton")
self.horizontalLayout_8.addWidget(self.outputButton)
self.outputLE = QtWidgets.QLineEdit(self.widget)
self.outputLE = QtWidgets.QLineEdit(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(20)
sizePolicy.setHeightForWidth(self.outputLE.sizePolicy().hasHeightForWidth())
self.outputLE.setSizePolicy(sizePolicy)
self.outputLE.setMaximumSize(QtCore.QSize(16777215, 16777215))
self.outputLE.setObjectName("outputLE")
self.horizontalLayout_8.addWidget(self.outputLE)
self.mainVbox.addLayout(self.horizontalLayout_8)
self.processButton = QtWidgets.QPushButton(self.widget)
self.gridLayout.addLayout(self.horizontalLayout_8, 4, 0, 1, 1)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
self.horizontalLayout.setObjectName("horizontalLayout")
self.processButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.processButton.sizePolicy().hasHeightForWidth())
self.processButton.setSizePolicy(sizePolicy)
self.processButton.setObjectName("processButton")
self.mainVbox.addWidget(self.processButton)
self.horizontalLayout.addWidget(self.processButton)
self.openButton = QtWidgets.QPushButton(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.openButton.sizePolicy().hasHeightForWidth())
self.openButton.setSizePolicy(sizePolicy)
self.openButton.setObjectName("openButton")
self.horizontalLayout.addWidget(self.openButton)
self.gridLayout.addLayout(self.horizontalLayout, 5, 0, 1, 1)
self.formLayout.setLayout(0, QtWidgets.QFormLayout.SpanningRole, self.gridLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 520, 24))
self.menubar.setGeometry(QtCore.QRect(0, 0, 518, 24))
self.menubar.setObjectName("menubar")
self.menuSettings = QtWidgets.QMenu(self.menubar)
self.menuSettings.setObjectName("menuSettings")
@ -93,15 +181,27 @@ class Ui_MainWindow(object):
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionDebug_2 = QtWidgets.QAction(MainWindow)
self.actionDebug_2.setObjectName("actionDebug_2")
self.actionInfo = QtWidgets.QAction(MainWindow)
self.actionInfo.setObjectName("actionInfo")
self.actionInfo_2 = QtWidgets.QAction(MainWindow)
self.actionInfo_2.setObjectName("actionInfo_2")
self.menuLog_Level.addAction(self.actionInfo)
self.menuLog_Level.addAction(self.actionInfo_2)
self.menuLog_Level.addAction(self.actionDebug_2)
self.debugAction = QtWidgets.QAction(MainWindow)
self.debugAction.setCheckable(True)
self.debugAction.setEnabled(True)
self.debugAction.setObjectName("debugAction")
self.warnAction = QtWidgets.QAction(MainWindow)
self.warnAction.setCheckable(True)
self.warnAction.setEnabled(True)
self.warnAction.setObjectName("warnAction")
self.infoAction = QtWidgets.QAction(MainWindow)
self.infoAction.setCheckable(True)
self.infoAction.setEnabled(True)
self.infoAction.setObjectName("infoAction")
self.actionError = QtWidgets.QAction(MainWindow)
self.actionError.setCheckable(True)
self.actionError.setChecked(True)
self.actionError.setEnabled(False)
self.actionError.setObjectName("actionError")
self.menuLog_Level.addAction(self.actionError)
self.menuLog_Level.addAction(self.warnAction)
self.menuLog_Level.addAction(self.infoAction)
self.menuLog_Level.addAction(self.debugAction)
self.menuSettings.addAction(self.menuLog_Level.menuAction())
self.menubar.addAction(self.menuSettings.menuAction())
@ -117,8 +217,10 @@ class Ui_MainWindow(object):
self.finButton.setText(_translate("MainWindow", "Select FIN:"))
self.outputButton.setText(_translate("MainWindow", "Select Output"))
self.processButton.setText(_translate("MainWindow", "Process Files"))
self.openButton.setText(_translate("MainWindow", "Open File"))
self.menuSettings.setTitle(_translate("MainWindow", "Settings"))
self.menuLog_Level.setTitle(_translate("MainWindow", "Log Level"))
self.actionDebug_2.setText(_translate("MainWindow", "Debug"))
self.actionInfo.setText(_translate("MainWindow", "Warn"))
self.actionInfo_2.setText(_translate("MainWindow", "Info"))
self.debugAction.setText(_translate("MainWindow", "Debug"))
self.warnAction.setText(_translate("MainWindow", "Warn"))
self.infoAction.setText(_translate("MainWindow", "Info"))
self.actionError.setText(_translate("MainWindow", "Error"))

Loading…
Cancel
Save