Split 'picture' settings into two tabs to make more space available

This commit is contained in:
Balthasar Reuter
2018-07-30 17:21:55 +02:00
parent 81a8d205bd
commit f99a7ff13d
3 changed files with 56 additions and 47 deletions

View File

@@ -62,10 +62,6 @@ postprocess_time = 60
overwrite_error_message =
[Picture]
# Basedir of output pictures
basedir = %Y-%m-%d
# Basename of output pictures
basename = photobooth
# Number of pictures in horizontal direction
num_x = 2
# Number of pictures in vertical direction
@@ -78,9 +74,15 @@ size_y = 2362
min_dist_x = 20
# Minimum distance between thumbnails in vertical direction
min_dist_y = 20
# Keep single pictures (True/False)
keep_pictures = False
# Leave out last picture, e.g. for a logo (True/False)
skip_last = False
# Specify background image (filename, optional)
background =
background =
[Storage]
# Basedir of output pictures
basedir = %Y-%m-%d
# Basename of output pictures
basename = photobooth
# Keep single pictures (True/False)
keep_pictures = False

View File

@@ -473,6 +473,7 @@ class Settings(QtWidgets.QFrame):
tabs.addTab(self.createPhotoboothSettings(), _('Photobooth'))
tabs.addTab(self.createCameraSettings(), _('Camera'))
tabs.addTab(self.createPictureSettings(), _('Picture'))
tabs.addTab(self.createStorageSettings(), _('Storage'))
tabs.addTab(self.createGpioSettings(), _('GPIO'))
tabs.addTab(self.createPrinterSettings(), _('Printer'))
return tabs
@@ -653,15 +654,6 @@ class Settings(QtWidgets.QFrame):
min_dist_y.setValue(self._cfg.getInt('Picture', 'min_dist_y'))
self.add('Picture', 'min_dist_y', min_dist_y)
basedir = QtWidgets.QLineEdit(self._cfg.get('Picture', 'basedir'))
basename = QtWidgets.QLineEdit(self._cfg.get('Picture', 'basename'))
self.add('Picture', 'basedir', basedir)
self.add('Picture', 'basename', basename)
keep_pictures = QtWidgets.QCheckBox()
keep_pictures.setChecked(self._cfg.getBool('Picture', 'keep_pictures'))
self.add('Picture', 'keep_pictures', keep_pictures)
skip_last = QtWidgets.QCheckBox()
skip_last.setChecked(self._cfg.getBool('Picture', 'skip_last'))
self.add('Picture', 'skip_last', skip_last)
@@ -684,24 +676,11 @@ class Settings(QtWidgets.QFrame):
lay_dist.addWidget(QtWidgets.QLabel('x'))
lay_dist.addWidget(min_dist_y)
def directory_dialog():
dialog = QtWidgets.QFileDialog.getExistingDirectory
basedir.setText(dialog(self, _('Select directory'),
os.path.expanduser('~'),
QtWidgets.QFileDialog.ShowDirsOnly))
def file_dialog():
dialog = QtWidgets.QFileDialog.getOpenFileName
bg.setText(dialog(self, _('Select file'), os.path.expanduser('~'),
'Images (*.jpg *.png)')[0])
dir_button = QtWidgets.QPushButton(_('Select directory'))
dir_button.clicked.connect(directory_dialog)
lay_dir = QtWidgets.QHBoxLayout()
lay_dir.addWidget(basedir)
lay_dir.addWidget(dir_button)
file_button = QtWidgets.QPushButton(_('Select file'))
file_button.clicked.connect(file_dialog)
@@ -709,20 +688,47 @@ class Settings(QtWidgets.QFrame):
lay_file.addWidget(bg)
lay_file.addWidget(file_button)
lay_checkbox = QtWidgets.QHBoxLayout()
lay_checkbox.addWidget(keep_pictures)
lay_checkbox.addStretch(1)
lay_checkbox.addWidget(QtWidgets.QLabel(_('Omit last picture:')))
lay_checkbox.addWidget(skip_last)
layout = QtWidgets.QFormLayout()
layout.addRow(_('Number of shots per picture:'), lay_num)
layout.addRow(_('Size of assembled picture [px]:'), lay_size)
layout.addRow(_('Min. distance between shots [px]:'), lay_dist)
layout.addRow(_('Omit last picture:'), skip_last)
layout.addRow(_('Background image:'), lay_file)
widget = QtWidgets.QWidget()
widget.setLayout(layout)
return widget
def createStorageSettings(self):
self.init('Storage')
basedir = QtWidgets.QLineEdit(self._cfg.get('Storage', 'basedir'))
basename = QtWidgets.QLineEdit(self._cfg.get('Storage', 'basename'))
self.add('Storage', 'basedir', basedir)
self.add('Storage', 'basename', basename)
keep_pictures = QtWidgets.QCheckBox()
keep_pictures.setChecked(self._cfg.getBool('Storage', 'keep_pictures'))
self.add('Storage', 'keep_pictures', keep_pictures)
def directory_dialog():
dialog = QtWidgets.QFileDialog.getExistingDirectory
basedir.setText(dialog(self, _('Select directory'),
os.path.expanduser('~'),
QtWidgets.QFileDialog.ShowDirsOnly))
dir_button = QtWidgets.QPushButton(_('Select directory'))
dir_button.clicked.connect(directory_dialog)
lay_dir = QtWidgets.QHBoxLayout()
lay_dir.addWidget(basedir)
lay_dir.addWidget(dir_button)
layout = QtWidgets.QFormLayout()
layout.addRow(_('Output directory (strftime possible):'), lay_dir)
layout.addRow(_('Basename of files (strftime possible):'), basename)
layout.addRow(_('Keep single shots:'), lay_checkbox)
layout.addRow(_('Background image:'), lay_file)
layout.addRow(_('Keep single shots:'), keep_pictures)
widget = QtWidgets.QWidget()
widget.setLayout(layout)
@@ -867,17 +873,18 @@ class Settings(QtWidgets.QFrame):
self.get('Picture', 'min_dist_x').text())
self._cfg.set('Picture', 'min_dist_y',
self.get('Picture', 'min_dist_y').text())
self._cfg.set('Picture', 'basedir',
self.get('Picture', 'basedir').text())
self._cfg.set('Picture', 'basename',
self.get('Picture', 'basename').text())
self._cfg.set('Picture', 'keep_pictures',
str(self.get('Picture', 'keep_pictures').isChecked()))
self._cfg.set('Picture', 'skip_last',
str(self.get('Picture', 'skip_last').isChecked()))
self._cfg.set('Picture', 'background',
self.get('Picture', 'background').text())
self._cfg.set('Storage', 'basedir',
self.get('Storage', 'basedir').text())
self._cfg.set('Storage', 'basename',
self.get('Storage', 'basename').text())
self._cfg.set('Storage', 'keep_pictures',
str(self.get('Storage', 'keep_pictures').isChecked()))
self._cfg.set('Gpio', 'enable',
str(self.get('Gpio', 'enable').isChecked()))
self._cfg.set('Gpio', 'exit_pin', self.get('Gpio', 'exit_pin').text())

View File

@@ -67,8 +67,8 @@ class Worker:
self._postprocess_tasks = []
# PictureSaver for assembled pictures
path = os.path.join(config.get('Picture', 'basedir'),
config.get('Picture', 'basename'))
path = os.path.join(config.get('Storage', 'basedir'),
config.get('Storage', 'basename'))
basename = strftime(path, localtime())
self._postprocess_tasks.append(PictureSaver(basename))
@@ -77,8 +77,8 @@ class Worker:
self._picture_tasks = []
# PictureSaver for single shots
path = os.path.join(config.get('Picture', 'basedir'),
config.get('Picture', 'basename') + '_shot_')
path = os.path.join(config.get('Storage', 'basedir'),
config.get('Storage', 'basename') + '_shot_')
basename = strftime(path, localtime())
self._picture_tasks.append(PictureSaver(basename))