New pastel theme added with pretty pictures, custom font etc.
@@ -82,23 +82,22 @@ class IdleMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('IdleMessage')
|
||||||
|
|
||||||
self._message = 'Hit the button!'
|
self._message_label = 'Hit the'
|
||||||
|
self._message_button = 'Button!'
|
||||||
|
|
||||||
def _paintMessage(self, painter):
|
self.initFrame()
|
||||||
|
|
||||||
f = self.font()
|
def initFrame(self):
|
||||||
f.setPixelSize(self.height() / 5)
|
|
||||||
painter.setFont(f)
|
|
||||||
|
|
||||||
rect = self.rect()
|
lbl = QtWidgets.QLabel(self._message_label)
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._message)
|
btn = QtWidgets.QPushButton(self._message_button)
|
||||||
|
|
||||||
def paintEvent(self, event):
|
lay = QtWidgets.QVBoxLayout()
|
||||||
|
lay.addWidget(lbl)
|
||||||
painter = QtGui.QPainter(self)
|
lay.addWidget(btn)
|
||||||
self._paintMessage(painter)
|
self.setLayout(lay)
|
||||||
painter.end()
|
|
||||||
|
|
||||||
|
|
||||||
class GreeterMessage(QtWidgets.QFrame):
|
class GreeterMessage(QtWidgets.QFrame):
|
||||||
@@ -106,34 +105,31 @@ class GreeterMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self, num_x, num_y):
|
def __init__(self, num_x, num_y):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('GreeterMessage')
|
||||||
|
|
||||||
self._title = 'Get ready!'
|
self._text_title = 'Get ready!'
|
||||||
|
self._text_button = 'Start countdown'
|
||||||
if num_x * num_y > 1:
|
if num_x * num_y > 1:
|
||||||
self._text = ('Capturing {} pictures...'.format(num_x * num_y))
|
self._text_label = ('for {} pictures...'.format(num_x * num_y))
|
||||||
else:
|
else:
|
||||||
self._text = 'Starting the countdown...'
|
self._text_label = ''
|
||||||
|
|
||||||
def _paintMessage(self, painter):
|
self.initFrame()
|
||||||
|
|
||||||
f = self.font()
|
def initFrame(self):
|
||||||
|
|
||||||
f.setPixelSize(self.height() / 5)
|
ttl = QtWidgets.QLabel(self._text_title)
|
||||||
painter.setFont(f)
|
ttl.setObjectName('title')
|
||||||
rect = QtCore.QRect(0, self.height() * 1 / 5,
|
btn = QtWidgets.QPushButton(self._text_button)
|
||||||
self.width(), self.height() * 3 / 10)
|
btn.setObjectName('button')
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._title)
|
lbl = QtWidgets.QLabel(self._text_label)
|
||||||
|
lbl.setObjectName('message')
|
||||||
|
|
||||||
f.setPixelSize(self.height() / 8)
|
lay = QtWidgets.QVBoxLayout()
|
||||||
painter.setFont(f)
|
lay.addWidget(ttl)
|
||||||
rect = QtCore.QRect(0, self.height() * 3 / 5,
|
lay.addWidget(btn)
|
||||||
self.width(), self.height() * 3 / 10)
|
lay.addWidget(lbl)
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._text)
|
self.setLayout(lay)
|
||||||
|
|
||||||
def paintEvent(self, event):
|
|
||||||
|
|
||||||
painter = QtGui.QPainter(self)
|
|
||||||
self._paintMessage(painter)
|
|
||||||
painter.end()
|
|
||||||
|
|
||||||
|
|
||||||
class PoseMessage(QtWidgets.QFrame):
|
class PoseMessage(QtWidgets.QFrame):
|
||||||
@@ -141,35 +137,22 @@ class PoseMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self, num_picture, num_x, num_y):
|
def __init__(self, num_picture, num_x, num_y):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('PoseMessage')
|
||||||
|
|
||||||
self._title = 'Pose!'
|
|
||||||
if num_x * num_y > 1:
|
if num_x * num_y > 1:
|
||||||
self._text = 'Picture {} of {}...'.format(num_picture,
|
self._text = 'Picture {} of {}...'.format(num_picture,
|
||||||
num_x * num_y)
|
num_x * num_y)
|
||||||
else:
|
else:
|
||||||
self._text = 'Taking a photo...'
|
self._text = 'Taking a photo...'
|
||||||
|
|
||||||
def _paintMessage(self, painter):
|
self.initFrame()
|
||||||
|
|
||||||
f = self.font()
|
def initFrame(self):
|
||||||
|
|
||||||
f.setPixelSize(self.height() / 5)
|
lbl = QtWidgets.QLabel(self._text)
|
||||||
painter.setFont(f)
|
lay = QtWidgets.QVBoxLayout()
|
||||||
rect = QtCore.QRect(0, self.height() * 1 / 5,
|
lay.addWidget(lbl)
|
||||||
self.width(), self.height() * 3 / 10)
|
self.setLayout(lay)
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._title)
|
|
||||||
|
|
||||||
f.setPixelSize(self.height() / 8)
|
|
||||||
painter.setFont(f)
|
|
||||||
rect = QtCore.QRect(0, self.height() * 3 / 5,
|
|
||||||
self.width(), self.height() * 3 / 10)
|
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._text)
|
|
||||||
|
|
||||||
def paintEvent(self, event):
|
|
||||||
|
|
||||||
painter = QtGui.QPainter(self)
|
|
||||||
self._paintMessage(painter)
|
|
||||||
painter.end()
|
|
||||||
|
|
||||||
|
|
||||||
class PictureMessage(QtWidgets.QFrame):
|
class PictureMessage(QtWidgets.QFrame):
|
||||||
@@ -177,6 +160,7 @@ class PictureMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self, picture):
|
def __init__(self, picture):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('PictureMessage')
|
||||||
|
|
||||||
self._picture = picture
|
self._picture = picture
|
||||||
|
|
||||||
@@ -205,10 +189,20 @@ class WaitMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self, message):
|
def __init__(self, message):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('WaitMessage')
|
||||||
|
|
||||||
self._message = message
|
self._text = message
|
||||||
self._clock = Widgets.SpinningWaitClock()
|
self._clock = Widgets.SpinningWaitClock()
|
||||||
|
|
||||||
|
self.initFrame()
|
||||||
|
|
||||||
|
def initFrame(self):
|
||||||
|
|
||||||
|
lbl = QtWidgets.QLabel(self._text)
|
||||||
|
lay = QtWidgets.QVBoxLayout()
|
||||||
|
lay.addWidget(lbl)
|
||||||
|
self.setLayout(lay)
|
||||||
|
|
||||||
def showEvent(self, event):
|
def showEvent(self, event):
|
||||||
|
|
||||||
self.startTimer(100)
|
self.startTimer(100)
|
||||||
@@ -218,23 +212,12 @@ class WaitMessage(QtWidgets.QFrame):
|
|||||||
self._clock.value += 1
|
self._clock.value += 1
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def _paintMessage(self, painter):
|
|
||||||
|
|
||||||
f = self.font()
|
|
||||||
f.setPixelSize(self.height() / 8)
|
|
||||||
painter.setFont(f)
|
|
||||||
|
|
||||||
rect = QtCore.QRect(0, self.height() * 3 / 5, self.width(),
|
|
||||||
self.height() * 3 / 10)
|
|
||||||
painter.drawText(rect, QtCore.Qt.AlignCenter, self._message)
|
|
||||||
|
|
||||||
def paintEvent(self, event):
|
def paintEvent(self, event):
|
||||||
|
|
||||||
offset = ((self.width() - self._clock.width()) // 2,
|
offset = ((self.width() - self._clock.width()) // 2,
|
||||||
(self.height() - self._clock.height()) // 2)
|
(self.height() - self._clock.height()) // 2)
|
||||||
|
|
||||||
painter = QtGui.QPainter(self)
|
painter = QtGui.QPainter(self)
|
||||||
self._paintMessage(painter)
|
|
||||||
self._clock.render(painter, QtCore.QPoint(*offset),
|
self._clock.render(painter, QtCore.QPoint(*offset),
|
||||||
self._clock.visibleRegion(),
|
self._clock.visibleRegion(),
|
||||||
QtWidgets.QWidget.DrawChildren)
|
QtWidgets.QWidget.DrawChildren)
|
||||||
@@ -246,6 +229,7 @@ class CountdownMessage(QtWidgets.QFrame):
|
|||||||
def __init__(self, time, action):
|
def __init__(self, time, action):
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
self.setObjectName('CountdownMessage')
|
||||||
|
|
||||||
self._step_size = 50
|
self._step_size = 50
|
||||||
self._value = time * (1000 // self._step_size)
|
self._value = time * (1000 // self._step_size)
|
||||||
@@ -309,7 +293,8 @@ class CountdownMessage(QtWidgets.QFrame):
|
|||||||
if self.picture is not None:
|
if self.picture is not None:
|
||||||
|
|
||||||
pix = QtGui.QPixmap.fromImage(self.picture)
|
pix = QtGui.QPixmap.fromImage(self.picture)
|
||||||
pix = pix.scaled(self.size(), QtCore.Qt.KeepAspectRatio,
|
pix = pix.scaled(self.contentsRect().size(),
|
||||||
|
QtCore.Qt.KeepAspectRatio,
|
||||||
QtCore.Qt.FastTransformation)
|
QtCore.Qt.FastTransformation)
|
||||||
origin = ((self.width() - pix.width()) // 2,
|
origin = ((self.width() - pix.width()) // 2,
|
||||||
(self.height() - pix.height()) // 2)
|
(self.height() - pix.height()) // 2)
|
||||||
@@ -479,6 +464,10 @@ class Settings(QtWidgets.QFrame):
|
|||||||
idx = [x for x, m in enumerate(module_list) if m[0] == current_module]
|
idx = [x for x, m in enumerate(module_list) if m[0] == current_module]
|
||||||
cb.setCurrentIndex(idx[0] if len(idx) > 0 else -1)
|
cb.setCurrentIndex(idx[0] if len(idx) > 0 else -1)
|
||||||
|
|
||||||
|
# Fix bug in Qt to allow changing the items in a stylesheet
|
||||||
|
delegate = QtWidgets.QStyledItemDelegate()
|
||||||
|
cb.setItemDelegate(delegate)
|
||||||
|
|
||||||
return cb
|
return cb
|
||||||
|
|
||||||
def createGuiSettings(self):
|
def createGuiSettings(self):
|
||||||
@@ -645,11 +634,11 @@ class Settings(QtWidgets.QFrame):
|
|||||||
layout = QtWidgets.QFormLayout()
|
layout = QtWidgets.QFormLayout()
|
||||||
layout.addRow('Number of shots per picture:', lay_num)
|
layout.addRow('Number of shots per picture:', lay_num)
|
||||||
layout.addRow('Size of assembled picture [px]:', lay_size)
|
layout.addRow('Size of assembled picture [px]:', lay_size)
|
||||||
layout.addRow('Minimum distance between shots in picture [px]:',
|
layout.addRow('Min. distance between shots [px]:',
|
||||||
lay_dist)
|
lay_dist)
|
||||||
layout.addRow('Output directory (strftime directives possible):',
|
layout.addRow('Output directory (strftime possible):',
|
||||||
lay_file)
|
lay_file)
|
||||||
layout.addRow('Basename of files (strftime directives possible):',
|
layout.addRow('Basename of files (strftime possible):',
|
||||||
basename)
|
basename)
|
||||||
|
|
||||||
widget = QtWidgets.QWidget()
|
widget = QtWidgets.QWidget()
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from PyQt5 import QtCore
|
from PyQt5 import QtCore
|
||||||
|
from PyQt5 import QtGui
|
||||||
from PyQt5 import QtWidgets
|
from PyQt5 import QtWidgets
|
||||||
|
|
||||||
from PIL import ImageQt
|
from PIL import ImageQt
|
||||||
@@ -91,6 +92,12 @@ class PyQt5Gui(GuiSkeleton):
|
|||||||
self._app.setStyleSheet(stylesheet)
|
self._app.setStyleSheet(stylesheet)
|
||||||
self._gui = PyQt5MainWindow(self._cfg, self._handleKeypressEvent)
|
self._gui = PyQt5MainWindow(self._cfg, self._handleKeypressEvent)
|
||||||
|
|
||||||
|
fonts = ['photobooth/gui/Qt5Gui/fonts/AmaticSC-Regular.ttf',
|
||||||
|
'photobooth/gui/Qt5Gui/fonts/AmaticSC-Bold.ttf']
|
||||||
|
self._fonts = QtGui.QFontDatabase()
|
||||||
|
for font in fonts:
|
||||||
|
self._fonts.addApplicationFont(font)
|
||||||
|
|
||||||
def _initReceiver(self):
|
def _initReceiver(self):
|
||||||
|
|
||||||
self._receiver = Receiver.Receiver([self._conn])
|
self._receiver = Receiver.Receiver([self._conn])
|
||||||
@@ -200,7 +207,7 @@ class PyQt5Gui(GuiSkeleton):
|
|||||||
self._disableTrigger()
|
self._disableTrigger()
|
||||||
|
|
||||||
num_pic = (self._cfg.getInt('Picture', 'num_x'),
|
num_pic = (self._cfg.getInt('Picture', 'num_x'),
|
||||||
self._cfg.getInt('Picture', 'num_x'))
|
self._cfg.getInt('Picture', 'num_y'))
|
||||||
greeter_time = self._cfg.getInt('Photobooth', 'greeter_time') * 1000
|
greeter_time = self._cfg.getInt('Photobooth', 'greeter_time') * 1000
|
||||||
|
|
||||||
self._setWidget(Frames.GreeterMessage(*num_pic))
|
self._setWidget(Frames.GreeterMessage(*num_pic))
|
||||||
@@ -219,7 +226,7 @@ class PyQt5Gui(GuiSkeleton):
|
|||||||
def _showPose(self, state):
|
def _showPose(self, state):
|
||||||
|
|
||||||
num_pic = (self._cfg.getInt('Picture', 'num_x'),
|
num_pic = (self._cfg.getInt('Picture', 'num_x'),
|
||||||
self._cfg.getInt('Picture', 'num_x'))
|
self._cfg.getInt('Picture', 'num_y'))
|
||||||
self._setWidget(Frames.PoseMessage(state.num_picture, *num_pic))
|
self._setWidget(Frames.PoseMessage(state.num_picture, *num_pic))
|
||||||
|
|
||||||
def _showAssemble(self, state):
|
def _showAssemble(self, state):
|
||||||
@@ -267,8 +274,8 @@ class PyQt5MainWindow(QtWidgets.QMainWindow):
|
|||||||
if self._cfg.getBool('Gui', 'fullscreen'):
|
if self._cfg.getBool('Gui', 'fullscreen'):
|
||||||
self.showFullScreen()
|
self.showFullScreen()
|
||||||
else:
|
else:
|
||||||
self.resize(self._cfg.getInt('Gui', 'width'),
|
self.setFixedSize(self._cfg.getInt('Gui', 'width'),
|
||||||
self._cfg.getInt('Gui', 'height'))
|
self._cfg.getInt('Gui', 'height'))
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def closeEvent(self, e):
|
def closeEvent(self, e):
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
# Available style sheets as tuples of (style name, style file)
|
# Available style sheets as tuples of (style name, style file)
|
||||||
styles = (('default', 'stylesheets/default.qss'),
|
styles = (('default', 'stylesheets/default.qss'),
|
||||||
('dark', 'stylesheets/dark.qss'))
|
('dark', 'stylesheets/dark.qss'),
|
||||||
|
('pastel', 'stylesheets/pastel.qss'))
|
||||||
|
|
||||||
from .PyQt5Gui import PyQt5Gui # noqa
|
from .PyQt5Gui import PyQt5Gui # noqa
|
||||||
|
|||||||
BIN
photobooth/gui/Qt5Gui/fonts/AmaticSC-Bold.ttf
Normal file
BIN
photobooth/gui/Qt5Gui/fonts/AmaticSC-Regular.ttf
Normal file
93
photobooth/gui/Qt5Gui/fonts/OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2015 The Amatic SC Project Authors (https://github.com/googlefonts/AmaticSC)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
photobooth/gui/Qt5Gui/images/arrow.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
134
photobooth/gui/Qt5Gui/images/arrow.svg
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="199.6391mm"
|
||||||
|
height="297.63135mm"
|
||||||
|
viewBox="0 0 199.6391 297.63135"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.3 (unknown)"
|
||||||
|
sodipodi:docname="arrow.svg">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter6254">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="3"
|
||||||
|
seed="2"
|
||||||
|
baseFrequency="0.011 0.018"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence6250" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap6252" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter6260">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="3"
|
||||||
|
seed="2"
|
||||||
|
baseFrequency="0.011 0.018"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence6256" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap6258" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter6266">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="3"
|
||||||
|
seed="2"
|
||||||
|
baseFrequency="0.011 0.018"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence6262" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap6264" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.49497475"
|
||||||
|
inkscape:cx="756.22901"
|
||||||
|
inkscape:cy="432.22136"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1855"
|
||||||
|
inkscape:window-height="1056"
|
||||||
|
inkscape:window-x="65"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-0.46865904,-8.1350937)">
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.11666667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter6254)"
|
||||||
|
d="m 17.10525,32.937706 c 176.93243,0 166.24164,248.026114 166.24164,248.026114"
|
||||||
|
id="path1172"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.11666667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter6260)"
|
||||||
|
d="M 183.34689,280.96382 C 172.82815,259.95369 158.67307,262.38934 158.67307,262.38934"
|
||||||
|
id="path1176"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2.11666667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter6266)"
|
||||||
|
d="m 183.34689,280.96382 c 5.29447,-27.1829 14.9916,-26.55026 14.9916,-26.55026"
|
||||||
|
id="path1178"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
BIN
photobooth/gui/Qt5Gui/images/camera.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
82
photobooth/gui/Qt5Gui/images/camera.svg
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
version="1.1"
|
||||||
|
id="svg869"
|
||||||
|
width="431.00336"
|
||||||
|
height="336.13913"
|
||||||
|
viewBox="0 0 431.00336 336.13913"
|
||||||
|
sodipodi:docname="camera.svg"
|
||||||
|
inkscape:version="0.92.3 (unknown)">
|
||||||
|
<metadata
|
||||||
|
id="metadata875">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs873">
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB;"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter25">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="3"
|
||||||
|
seed="2"
|
||||||
|
baseFrequency="0.011 0.018"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence21" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap23" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1855"
|
||||||
|
inkscape:window-height="1056"
|
||||||
|
id="namedview871"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.7851562"
|
||||||
|
inkscape:cx="80.830818"
|
||||||
|
inkscape:cy="187.73854"
|
||||||
|
inkscape:window-x="65"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg869"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;filter:url(#filter25)"
|
||||||
|
d="m 216.16797,16.240234 c -26.91862,0.06966 -53.83724,0.139323 -80.75586,0.208985 -9.0655,15.411877 -18.12787,30.825594 -27.19531,46.236328 -22.584828,3.853171 -47.148081,-3.075582 -68.406253,7.009765 -19.445949,9.5995 -27.304654,33.482688 -23.690254,53.812438 0.802732,55.17088 -2.605777,110.54325 2.373848,165.52545 7.004449,21.6574 31.478151,34.38982 53.238143,30.61232 2.690963,-1.02717 13.850114,2.59703 9.47382,-2.33887 -1.773376,-3.16899 -4.275476,-6.53406 -8.352588,-5.14845 -15.448777,0.77231 -33.967207,-1.88705 -42.845704,-16.17187 -9.553761,-15.36007 -4.893543,-34.22222 -6.312514,-51.22261 -0.09122,-48.73024 -1.13992,-97.56767 0.986343,-146.230517 4.796172,-18.64457 25.684326,-30.117367 44.160138,-26.355367 14.241362,0.08785 28.475597,-0.471229 42.714861,-0.603617 9.33462,-15.879568 18.66938,-31.759054 28.00391,-47.638672 51.19466,0.191096 102.38932,0.385027 153.58398,0.576172 9.19861,15.747373 18.39713,31.494795 27.5957,47.242187 22.19547,1.144812 45.2087,-2.084811 66.95508,3.605469 15.64296,8.651188 23.14697,28.108915 19.71929,45.298715 -0.94932,55.63715 2.66805,111.44418 -2.43022,166.94738 -6.16267,19.21283 -29.0139,28.2415 -47.71094,23.88086 -5.45988,-1.09829 -6.18767,5.15836 -8.98242,8.18945 17.79356,0.63983 38.75674,1.58845 52.16601,-12.13086 12.0822,-11.39415 16.47267,-28.93606 14.19699,-45.0371 -0.0284,-55.42016 1.74408,-111.00056 -0.9216,-166.316414 -6.69033,-20.542321 -28.63918,-34.682641 -50.24706,-31.906513 -12.97463,-0.354259 -26.12005,0.04116 -39.1338,-0.919659 C 315.1713,47.587953 305.9937,31.809122 296.81445,16.03125 c -26.88216,0.06966 -53.76432,0.139323 -80.64648,0.208984 z m -2.4043,96.101566 c -49.67423,-0.37758 -96.48985,41.53517 -101.3164,91.21679 -5.51568,44.77972 21.32918,92.27056 64.00617,108.39963 39.2546,16.44182 88.41015,5.71204 116.18669,-26.96827 27.51001,-30.56158 35.26166,-78.1908 15.5962,-115.3044 -17.50925,-34.92134 -55.15768,-58.66893 -94.47266,-57.34375 z m 3.15039,5.83984 c 50.526,-0.51826 96.3024,44.71875 96.46653,95.24587 1.14932,41.54157 -26.50392,82.64569 -66.46982,95.23264 -35.99332,12.03431 -78.87114,1.8712 -104.04675,-27.00091 -28.8013,-31.67336 -33.92229,-83.10132 -9.45777,-118.76471 18.03048,-27.61273 50.31796,-45.65489 83.50781,-44.71289 z"
|
||||||
|
id="path879"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.4 KiB |
BIN
photobooth/gui/Qt5Gui/images/checkmark.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
110
photobooth/gui/Qt5Gui/images/checkmark.svg
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="19.050001mm"
|
||||||
|
height="19.050001mm"
|
||||||
|
viewBox="0 0 19.050001 19.050001"
|
||||||
|
version="1.1"
|
||||||
|
id="svg33"
|
||||||
|
inkscape:version="0.92.3 (unknown)"
|
||||||
|
sodipodi:docname="checkmark.svg">
|
||||||
|
<defs
|
||||||
|
id="defs27">
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter1302">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="1"
|
||||||
|
seed="1"
|
||||||
|
baseFrequency="0.058 0.051"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence1298" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap1300" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Roughen"
|
||||||
|
id="filter1308">
|
||||||
|
<feTurbulence
|
||||||
|
type="fractalNoise"
|
||||||
|
numOctaves="1"
|
||||||
|
seed="1"
|
||||||
|
baseFrequency="0.058 0.051"
|
||||||
|
result="turbulence"
|
||||||
|
id="feTurbulence1304" />
|
||||||
|
<feDisplacementMap
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="turbulence"
|
||||||
|
scale="4"
|
||||||
|
yChannelSelector="G"
|
||||||
|
xChannelSelector="R"
|
||||||
|
id="feDisplacementMap1306" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.7"
|
||||||
|
inkscape:cx="-331.64987"
|
||||||
|
inkscape:cy="17.573885"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1855"
|
||||||
|
inkscape:window-height="1056"
|
||||||
|
inkscape:window-x="65"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata30">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-45.281548,-119.27559)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.11666656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1308)"
|
||||||
|
d="m 46.869048,120.86309 15.875,15.875"
|
||||||
|
id="path35"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:2.11666656;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1302)"
|
||||||
|
d="m 62.744048,120.86309 -15.875,15.875"
|
||||||
|
id="path35-3"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.3 KiB |
BIN
photobooth/gui/Qt5Gui/images/down.png
Normal file
|
After Width: | Height: | Size: 316 B |
83
photobooth/gui/Qt5Gui/images/up-down.svg
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="2.5244994mm"
|
||||||
|
height="3.3670478mm"
|
||||||
|
viewBox="0 0 2.5244994 3.3670478"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1335"
|
||||||
|
inkscape:version="0.92.3 (unknown)"
|
||||||
|
sodipodi:docname="up-down.svg">
|
||||||
|
<defs
|
||||||
|
id="defs1329">
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="Arrow2Lend"
|
||||||
|
style="overflow:visible"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
id="path1903"
|
||||||
|
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="3.959798"
|
||||||
|
inkscape:cx="-25.987692"
|
||||||
|
inkscape:cy="101.94875"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:window-width="1855"
|
||||||
|
inkscape:window-height="1056"
|
||||||
|
inkscape:window-x="65"
|
||||||
|
inkscape:window-y="24"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata1332">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-87.944799,-119.45095)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
|
||||||
|
d="M 89.202381,120.33484 V 122.375"
|
||||||
|
id="path1337"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
BIN
photobooth/gui/Qt5Gui/images/up.png
Normal file
|
After Width: | Height: | Size: 310 B |
182
photobooth/gui/Qt5Gui/stylesheets/pastel.qss
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
/* Outer items */
|
||||||
|
|
||||||
|
QWidget {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #eeeeee;
|
||||||
|
font-family: AmaticSC, sans-serif;
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow {
|
||||||
|
background: #ffffff qlineargradient(x1:0 y1:1, x2:1, y2:0, stop:0 rgba(255,165,150,255), stop:1 rgba(0,228,255,112));
|
||||||
|
color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* General controls */
|
||||||
|
|
||||||
|
QPushButton {
|
||||||
|
background-color: transparent;
|
||||||
|
border-style: outset;
|
||||||
|
border-width: 1px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border-color: #eeeeee;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:pressed {
|
||||||
|
background-color: #66ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Idle Screen */
|
||||||
|
|
||||||
|
QFrame#IdleMessage {
|
||||||
|
background-image: url(photobooth/gui/Qt5Gui/images/arrow.png);
|
||||||
|
background-repeat:; no-repeat;
|
||||||
|
padding: 80px 400px 120px 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#IdleMessage QLabel {
|
||||||
|
font-size: 160px;
|
||||||
|
qproperty-alignment: AlignCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#IdleMessage QPushButton {
|
||||||
|
border: none;
|
||||||
|
color: rgba(255, 27, 0, 200);
|
||||||
|
font-size: 200px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#IdleMessage QPushButton:pressed {
|
||||||
|
background-color: rgba(255, 27, 0, 200);
|
||||||
|
color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Greeter Screen */
|
||||||
|
|
||||||
|
QFrame#GreeterMessage {
|
||||||
|
padding: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#GreeterMessage QLabel#title {
|
||||||
|
font-size: 180px;
|
||||||
|
qproperty-alignment: AlignCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#GreeterMessage QPushButton#button {
|
||||||
|
border: none;
|
||||||
|
font-size: 120px;
|
||||||
|
margin: 60px 0 20px 0;
|
||||||
|
min-height: 160px;
|
||||||
|
padding: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#GreeterMessage QLabel#message {
|
||||||
|
font-size: 120px;
|
||||||
|
qproperty-alignment: AlignCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Countdown Screen */
|
||||||
|
|
||||||
|
QFrame#CountdownMessage {
|
||||||
|
margin: 20px;
|
||||||
|
padding: 30px;
|
||||||
|
background-color: #eeeeee;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pose Screen */
|
||||||
|
|
||||||
|
QFrame#PoseMessage {
|
||||||
|
background-image: url(photobooth/gui/Qt5Gui/images/camera.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding: 380px 80px 80px 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#PoseMessage QLabel {
|
||||||
|
font-size: 120px;
|
||||||
|
qproperty-alignment: AlignCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wait Screen */
|
||||||
|
|
||||||
|
QFrame#WaitMessage {
|
||||||
|
padding: 350px 80px 80px 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame#WaitMessage QLabel {
|
||||||
|
font-size: 110px;
|
||||||
|
qproperty-alignment: AlignCenter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Picture Screen*/
|
||||||
|
|
||||||
|
QFrame#PictureMessage {
|
||||||
|
margin: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Customizing settings */
|
||||||
|
|
||||||
|
QTabWidget::pane {
|
||||||
|
background-color: #eeeeee;
|
||||||
|
border-style: outset;
|
||||||
|
border-width: 1px;
|
||||||
|
border-radius: 15px;
|
||||||
|
border-color: #eeeeee;
|
||||||
|
color: #333333;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabWidget::tab-bar {
|
||||||
|
alignment: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabBar::tab {
|
||||||
|
background-color: transparent;
|
||||||
|
border-style: outset;
|
||||||
|
border-width: 2px;
|
||||||
|
border-top-left-radius: 15px;
|
||||||
|
border-top-right-radius: 15px;
|
||||||
|
border-color: #eeeeee;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabBar::tab:selected {
|
||||||
|
background-color: #66ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabWidget QWidget {
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox::indicator {
|
||||||
|
width: 45px;
|
||||||
|
height: 45px;
|
||||||
|
background-color: transparent;
|
||||||
|
border-style: outset;
|
||||||
|
border-width: 2px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border-color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox::indicator::checked {
|
||||||
|
background-image: url(photobooth/gui/Qt5Gui/images/checkmark.png);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox, QDateEdit, QLineEdit, QSpinBox, QTimeEdit {
|
||||||
|
background-color: #eeeeee;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox QAbstractItemView {
|
||||||
|
background-color: #cccccc;
|
||||||
|
color: #333333;
|
||||||
|
selection-background-color: #eeeeee;
|
||||||
|
selection-color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox QAbstractItemView::item {
|
||||||
|
margin: 5px;
|
||||||
|
min-height: 50px;
|
||||||
|
}
|
||||||