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