From f99a7ff13d84fb335dd75a2422b6696656b22b45 Mon Sep 17 00:00:00 2001 From: Balthasar Reuter Date: Mon, 30 Jul 2018 17:21:55 +0200 Subject: [PATCH] Split 'picture' settings into two tabs to make more space available --- photobooth/defaults.cfg | 16 ++++--- photobooth/gui/Qt5Gui/Frames.py | 79 ++++++++++++++++++--------------- photobooth/worker/__init__.py | 8 ++-- 3 files changed, 56 insertions(+), 47 deletions(-) diff --git a/photobooth/defaults.cfg b/photobooth/defaults.cfg index b799c29..b1bc399 100644 --- a/photobooth/defaults.cfg +++ b/photobooth/defaults.cfg @@ -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 = \ No newline at end of file +background = + +[Storage] +# Basedir of output pictures +basedir = %Y-%m-%d +# Basename of output pictures +basename = photobooth +# Keep single pictures (True/False) +keep_pictures = False diff --git a/photobooth/gui/Qt5Gui/Frames.py b/photobooth/gui/Qt5Gui/Frames.py index fbcfd88..905d66e 100644 --- a/photobooth/gui/Qt5Gui/Frames.py +++ b/photobooth/gui/Qt5Gui/Frames.py @@ -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()) diff --git a/photobooth/worker/__init__.py b/photobooth/worker/__init__.py index 176f4eb..b8aecd6 100644 --- a/photobooth/worker/__init__.py +++ b/photobooth/worker/__init__.py @@ -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))