gui: more options
This commit is contained in:
@@ -19,7 +19,7 @@ class ColorSelect(QtWidgets.QPushButton):
|
|||||||
self.clicked.connect(self.handle_clicked)
|
self.clicked.connect(self.handle_clicked)
|
||||||
|
|
||||||
def handle_clicked(self):
|
def handle_clicked(self):
|
||||||
color = QtWidgets.QColorDialog.getColor()
|
color = QtWidgets.QColorDialog.getColor(QtGui.QColor(self._value))
|
||||||
|
|
||||||
if color.isValid():
|
if color.isValid():
|
||||||
self.set_value(color.name())
|
self.set_value(color.name())
|
||||||
@@ -202,6 +202,13 @@ class ConfigWidget(QtWidgets.QWidget):
|
|||||||
return widget.isChecked()
|
return widget.isChecked()
|
||||||
if typ is QtWidgets.QLineEdit:
|
if typ is QtWidgets.QLineEdit:
|
||||||
return widget.text()
|
return widget.text()
|
||||||
|
if typ is QtWidgets.QListWidget:
|
||||||
|
res = []
|
||||||
|
for i in range(widget.count()):
|
||||||
|
item = widget.item(i).text()
|
||||||
|
if item:
|
||||||
|
res.append(item)
|
||||||
|
return res
|
||||||
return widget.value()
|
return widget.value()
|
||||||
|
|
||||||
def widgets_to_state(self, widgets):
|
def widgets_to_state(self, widgets):
|
||||||
@@ -218,10 +225,33 @@ class ConfigWidget(QtWidgets.QWidget):
|
|||||||
|
|
||||||
|
|
||||||
class Debug(ConfigWidget):
|
class Debug(ConfigWidget):
|
||||||
|
log_levels = ['None', 'Error', 'Warn', 'Info', 'Debug', 'Trace']
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.widgets['render_timer'] = QtWidgets.QCheckBox()
|
self.widgets['render_timer'] = QtWidgets.QCheckBox()
|
||||||
self.widgets['render_timer'].setChecked(config.get('render_timer'))
|
self.widgets['render_timer'].setChecked(
|
||||||
|
config.get('render_timer', False)
|
||||||
|
)
|
||||||
|
self.widgets['persistent_logging'] = QtWidgets.QCheckBox()
|
||||||
|
self.widgets['persistent_logging'].setChecked(
|
||||||
|
config.get('persistent_logging', False)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.widgets['log_level'] = QtWidgets.QComboBox()
|
||||||
|
for option in self.log_levels:
|
||||||
|
self.widgets['log_level'].addItem(option)
|
||||||
|
dec = config.get('log_level')
|
||||||
|
if dec in self.log_levels:
|
||||||
|
self.widgets['log_level'].setCurrentIndex(
|
||||||
|
self.log_levels.index(dec)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.widgets['print_events'] = QtWidgets.QCheckBox()
|
||||||
|
self.widgets['print_events'].setChecked(
|
||||||
|
config.get('print_events', False)
|
||||||
|
)
|
||||||
|
self.widgets['ref_test'] = QtWidgets.QCheckBox()
|
||||||
|
self.widgets['ref_test'].setChecked(config.get('ref_test', False))
|
||||||
self.render_state()
|
self.render_state()
|
||||||
|
|
||||||
|
|
||||||
@@ -238,6 +268,10 @@ class Selection(ConfigWidget):
|
|||||||
self.widgets['semantic_escape_chars'] = QtWidgets.QLineEdit(
|
self.widgets['semantic_escape_chars'] = QtWidgets.QLineEdit(
|
||||||
config.get('semantic_escape_chars')
|
config.get('semantic_escape_chars')
|
||||||
)
|
)
|
||||||
|
self.widgets['save_to_clipboard'] = QtWidgets.QCheckBox()
|
||||||
|
self.widgets['save_to_clipboard'].setChecked(
|
||||||
|
config.get('save_to_clipboard', False)
|
||||||
|
)
|
||||||
self.render_state()
|
self.render_state()
|
||||||
|
|
||||||
|
|
||||||
@@ -245,6 +279,13 @@ class Shell(ConfigWidget):
|
|||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.widgets['program'] = QtWidgets.QLineEdit(config.get('program'))
|
self.widgets['program'] = QtWidgets.QLineEdit(config.get('program'))
|
||||||
|
self.widgets['args'] = QtWidgets.QListWidget()
|
||||||
|
for elem in config.get('args', []):
|
||||||
|
self.widgets['args'].addItem(elem)
|
||||||
|
for _ in range(3):
|
||||||
|
widget = QtWidgets.QListWidgetItem("")
|
||||||
|
widget.setFlags(widget.flags() | QtCore.Qt.ItemIsEditable)
|
||||||
|
self.widgets['args'].addItem(widget)
|
||||||
self.render_state()
|
self.render_state()
|
||||||
|
|
||||||
|
|
||||||
@@ -411,14 +452,16 @@ class Window(ConfigWidget):
|
|||||||
startup_mode.setCurrentIndex(self.startup_options.index(dec))
|
startup_mode.setCurrentIndex(self.startup_options.index(dec))
|
||||||
|
|
||||||
columns = QtWidgets.QSpinBox()
|
columns = QtWidgets.QSpinBox()
|
||||||
columns.setValue(config.get('dimensions', {}).get('columns'))
|
columns.setMaximum(300)
|
||||||
|
columns.setValue(config.get('dimensions', {}).get('columns', 80))
|
||||||
lines = QtWidgets.QSpinBox()
|
lines = QtWidgets.QSpinBox()
|
||||||
lines.setValue(config.get('dimensions', {}).get('lines'))
|
columns.setMaximum(200)
|
||||||
|
lines.setValue(config.get('dimensions', {}).get('lines', 24))
|
||||||
|
|
||||||
padding_x = QtWidgets.QSpinBox()
|
padding_x = QtWidgets.QSpinBox()
|
||||||
padding_x.setValue(config.get('padding', {}).get('x'))
|
padding_x.setValue(config.get('padding', {}).get('x', 0))
|
||||||
padding_y = QtWidgets.QSpinBox()
|
padding_y = QtWidgets.QSpinBox()
|
||||||
padding_y.setValue(config.get('padding', {}).get('y'))
|
padding_y.setValue(config.get('padding', {}).get('y', 0))
|
||||||
|
|
||||||
dynamic_padding = QtWidgets.QCheckBox()
|
dynamic_padding = QtWidgets.QCheckBox()
|
||||||
dynamic_padding.setChecked(config.get('dynamic_padding', False))
|
dynamic_padding.setChecked(config.get('dynamic_padding', False))
|
||||||
@@ -451,9 +494,13 @@ class Window(ConfigWidget):
|
|||||||
class Scrolling(ConfigWidget):
|
class Scrolling(ConfigWidget):
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
history = QtWidgets.QSpinBox(config.get('history'))
|
history = QtWidgets.QSpinBox()
|
||||||
multiplier = QtWidgets.QSpinBox(config.get('multiplier'))
|
history.setMaximum(2**30)
|
||||||
faux_multiplier = QtWidgets.QSpinBox(config.get('faux_multiplier'))
|
history.setValue(config.get('history', 10000))
|
||||||
|
multiplier = QtWidgets.QSpinBox()
|
||||||
|
multiplier.setValue(config.get('multiplier', 3))
|
||||||
|
faux_multiplier = QtWidgets.QSpinBox()
|
||||||
|
faux_multiplier.setValue(config.get('faux_multiplier', 3))
|
||||||
autoscroll = QtWidgets.QCheckBox()
|
autoscroll = QtWidgets.QCheckBox()
|
||||||
autoscroll.setChecked(config.get('autoscroll', False))
|
autoscroll.setChecked(config.get('autoscroll', False))
|
||||||
|
|
||||||
@@ -473,22 +520,22 @@ class Config(QtWidgets.QWidget):
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.layout = QtWidgets.QVBoxLayout()
|
self.layout = QtWidgets.QVBoxLayout()
|
||||||
self.config = config
|
self.config = config
|
||||||
self.add_tabs(config)
|
self.add_tabs()
|
||||||
self.add_buttons()
|
self.add_buttons()
|
||||||
self.setWindowTitle(NAME)
|
self.setWindowTitle(NAME)
|
||||||
self.setLayout(self.layout)
|
self.setLayout(self.layout)
|
||||||
|
|
||||||
def add_tabs(self, config):
|
def add_tabs(self):
|
||||||
self.tabs = QtWidgets.QTabWidget()
|
self.tabs = QtWidgets.QTabWidget()
|
||||||
|
|
||||||
self.tabs.addTab(Window(config.get('window', {})), "Window")
|
self.tabs.addTab(Window(self.config.get('window', {})), "Window")
|
||||||
self.tabs.addTab(Font(config.get('font', {})), "Font")
|
self.tabs.addTab(Font(self.config.get('font', {})), "Font")
|
||||||
self.tabs.addTab(Debug(config.get('debug', {})), "Debug")
|
self.tabs.addTab(Debug(self.config.get('debug', {})), "Debug")
|
||||||
self.tabs.addTab(Env(config.get('env', {})), "Env")
|
self.tabs.addTab(Env(self.config.get('env', {})), "Env")
|
||||||
self.tabs.addTab(Selection(config.get('selection', {})), "Selection")
|
self.tabs.addTab(Selection(self.config.get('selection', {})), "Selection")
|
||||||
self.tabs.addTab(Shell(config.get('shell', {})), "Shell")
|
self.tabs.addTab(Shell(self.config.get('shell', {})), "Shell")
|
||||||
self.tabs.addTab(Colors(config.get('colors', {})), "Colors")
|
self.tabs.addTab(Colors(self.config.get('colors', {})), "Colors")
|
||||||
self.tabs.addTab(Scrolling(config.get('scrolling', {})), "Scrolling")
|
self.tabs.addTab(Scrolling(self.config.get('scrolling', {})), "Scrolling")
|
||||||
|
|
||||||
self.layout.addWidget(self.tabs)
|
self.layout.addWidget(self.tabs)
|
||||||
|
|
||||||
@@ -516,10 +563,6 @@ class Config(QtWidgets.QWidget):
|
|||||||
f.write(yaml.dump(state))
|
f.write(yaml.dump(state))
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
def addDialog(self):
|
|
||||||
dialog = QtWidgets.QColorDialog()
|
|
||||||
dialog.show()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app = QtWidgets.QApplication([NAME])
|
app = QtWidgets.QApplication([NAME])
|
||||||
|
Reference in New Issue
Block a user