Skip to content

Commit

Permalink
editor now has a toolbar
Browse files Browse the repository at this point in the history
  • Loading branch information
anh committed Aug 17, 2023
1 parent 3d961be commit 078dbe2
Showing 1 changed file with 59 additions and 24 deletions.
83 changes: 59 additions & 24 deletions pyqt_run.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
from re import match
from aparser import parse_s as parse
from argparse import ArgumentParser
from os import getcwd, remove, mkdir, environ, path
from os import getcwd, remove, environ, path
from subprocess import Popen, PIPE
from importlib import import_module
from glob import glob
from sys import argv, exit

Expand Down Expand Up @@ -372,7 +371,8 @@ def browse_dir(t):

#print("slider created")
#creates a horizontal slider
label_slider = qw.QLineEdit(str(e['value']))
init = float(e['value'])
label_slider = qw.QLineEdit(str(int(init) if init.is_integer() else init))
label_slider.setAlignment(qc.Qt.AlignRight)
label_slider.setFixedWidth(85)
# the label slider is unique to this slider
Expand All @@ -381,10 +381,10 @@ def browse_dir(t):
slider = qw.QSlider(self)
self.sliders[k] = {
'key':slider,
'factor':factor,
'is_int':params[0].isdigit() and params[1].isdigit() and params[2].isdigit()
'factor':factor
#'is_int':params[0].isdigit() and params[1].isdigit() and params[2].isdigit()
}
[minimum, maximum, increment, init] = [float(x) for x in params + [e['value']]]
[minimum, maximum, increment] = [float(x) for x in params]
slider.setOrientation(qc.Qt.Horizontal)
slider.setSingleStep(int(factor * increment))
slider.setPageStep(int(factor * increment)) #moves the slider when clicking or up/down
Expand All @@ -403,7 +403,7 @@ def browse_dir(t):
def updateLabel(self, key, label, value):
slider_info = self.sliders[key]
scaled = value/slider_info['factor']
label.setText(str(int(scaled) if slider_info['is_int'] else scaled))
label.setText(str(int(scaled) if (scaled).is_integer() else scaled))

class ConfirmWindow(qw.QWidget):
def __init__(self, parent):
Expand Down Expand Up @@ -441,34 +441,71 @@ def cancel(self):
self.par.ok = False
self.close()

class ViewerWindow(qw.QWidget):
class ViewerWindow(qw.QMainWindow):
def __init__(self):
super().__init__()
global lines
self.ok = False
self.windows = []
self.setWindowTitle(args.file)
self.resize(750, 750)

toolbar = self.addToolBar('ToolBar')

load_action = qw.QAction('Load', self)
load_action.setToolTip('Reload the GUI with this file')
load_action.triggered.connect(self.load)
toolbar.addAction(load_action)
toolbar.addSeparator()

save_as_action = qw.QAction('Save As', self)
save_as_action.setToolTip('Save as a new file (Ctrl+Shift+s)')
save_as_action.triggered.connect(self.save_as)
save_as_action.setShortcut('Ctrl+Shift+s')
toolbar.addAction(save_as_action)
toolbar.addSeparator()

save_action = qw.QAction('Save', self)
save_action.setToolTip('Save changes to the original input file (Ctrl+s)')
save_action.triggered.connect(self.save)
save_action.setShortcut('Ctrl+s')
toolbar.addAction(save_action)
toolbar.addSeparator()

quit_action = qw.QAction('Quit', self)
quit_action.setToolTip('Closes the editor')
quit_action.triggered.connect(self.quit)
toolbar.addAction(quit_action)
toolbar.addSeparator()

layout = qw.QVBoxLayout()
box = qw.QPlainTextEdit(''.join(lines), self)
box.setFont(qg.QFont('Courier New', 10))
layout.addWidget(box)
btn_layout = qw.QHBoxLayout()
self.box = qw.QPlainTextEdit(''.join(lines), self)
self.box.resize(750, 700)
self.box.setFont(qg.QFont('Courier New', 10))
layout.addWidget(self.box)

#set the main page layout
widget = qw.QWidget()
widget.setLayout(layout)
# self.setGeometry(500, 100, 700, 500)
self.setCentralWidget(widget)

'''btn_layout = qw.QHBoxLayout()
btn = qw.QPushButton()
btn.setText('Load')
btn.clicked.connect(lambda _, b=box: self.load(b))
btn.clicked.connect(self.load)
btn_layout.addWidget(btn)
btn = qw.QPushButton()
btn.setText('Save As')
btn.clicked.connect(lambda _, b=box: self.save_as(b))
btn.clicked.connect(self.save_as)
btn.setShortcut('Ctrl+Shift+s')
btn_layout.addWidget(btn)
btn = qw.QPushButton()
btn.setText('Save')
btn.clicked.connect(lambda _, b=box: self.save(b))
btn.clicked.connect(self.save)
btn.setShortcut('Ctrl+s')
btn_layout.addWidget(btn)
Expand All @@ -478,28 +515,26 @@ def __init__(self):
btn.clicked.connect(self.quit)
btn_layout.addWidget(btn)
layout.addLayout(btn_layout)

self.setLayout(layout)
layout.addLayout(btn_layout)'''

def load(self, box):
def load(self):
global data, info, lines, main
lines = [line + '\n' for line in box.toPlainText().split('\n')]
lines = [line + '\n' for line in self.box.toPlainText().split('\n')]
data, info, _ = parse(lines, silent=True)
main.close()
build_main(data, info)
self.close()

def save_as(self, box):
def save_as(self):
filename, _ = qw.QFileDialog.getSaveFileName(self,
'Save File',
'',
'All Files(*);;Text Files(*.txt);;AthenaK Input(*.athinput);;Athena Input(athinput.*)')
if filename:
with open(filename, 'w') as file:
file.write(box.toPlainText())
file.write(self.box.toPlainText())

def save(self, box):
def save(self):
w = ConfirmWindow(self)
self.windows.append(w)
w.setAttribute(qc.Qt.WA_DeleteOnClose)
Expand All @@ -510,7 +545,7 @@ def save(self, box):
loop.exec()
if self.ok:
with open(args.file, 'w') as file:
file.write(box.toPlainText())
file.write(self.box.toPlainText())

def quit(self):
self.close()
Expand Down

0 comments on commit 078dbe2

Please sign in to comment.