Release v1.4 #11

Merged
0xFEEDC0DE64 merged 16 commits from devel into master 2017-12-17 17:14:39 +01:00
164 changed files with 1444 additions and 906 deletions
Showing only changes of commit 206d696efc - Show all commits

View File

@@ -1,24 +1,27 @@
# Zeiterfassung # Zeiterfassung
This tool helps me assigning my working hours to various accounts at work. This tool helps me assigning my working hours to projects at work.
![Screenshot of the main window](https://raw.githubusercontent.com/0xFEEDC0DE64/QtZeiterfassung/master/screenshot.png)
## Building from source ## Building from source
The build process has only been tested with gcc. On windows you have to use MinGW (provided by the Qt setup). All necessary config files or translations should be copied over to the build folder. The executable with all plugin lands in your build folder under /bin
The simplest way to get it up and running is to just open it in QtCreator. If you are more like a terminal monkey, you can build it there too:
``` ```
git clone https://github.com/0xFEEDC0DE64/QtZeiterfassung.git git clone https://github.com/0xFEEDC0DE64/QtZeiterfassung.git
pushd QtZeiterfassung
lrelease translations/zeiterfassung_*.ts
popd
mkdir build_QtZeiterfassung mkdir build_QtZeiterfassung
cd build_QtZeiterfassung cd build_QtZeiterfassung
qmake ../QtZeiterfassung qmake ../QtZeiterfassung
make make
make install # to copy Qt's translations
``` ```
## Launching ## Launching (on unix)
``` ```
./zeiterfassung LD_LIBRARY_PATH=../lib ./zeiterfassung # or just use start.sh
``` ```
## Launching (on win32)
Double click the **zeiterfassung.exe**. Please report any error message like missing libraries or plugins!
## Configuration
This tool saves its configuration using [QSettings](https://doc.qt.io/qt-5/qsettings.html). On linux, the configuration files are placed in `~/.config/db-software/zeiterfassung.conf`. **Be careful!** This config file contains your password in plain text (if you log in correctly). You can alter the code in main.cpp to change the behaviour of QSettings (for example: saving into an ini file at working directory). This tool saves its configuration using [QSettings](https://doc.qt.io/qt-5/qsettings.html). On linux, the configuration files are placed in `~/.config/db-software/zeiterfassung.conf`. **Be careful!** This config file contains your password in plain text (if you log in correctly). You can alter the code in main.cpp to change the behaviour of QSettings (for example: saving into an ini file at working directory).
![Screenshot of the main window](https://raw.githubusercontent.com/0xFEEDC0DE64/QtZeiterfassung/master/screenshot.png)

View File

@@ -5,7 +5,7 @@ isEmpty(QMAKE_LRELEASE) {
lrelease.input = TRANSLATIONS lrelease.input = TRANSLATIONS
lrelease.output = $${OUT_PWD}/translations/${QMAKE_FILE_BASE}.qm lrelease.output = $${OUT_PWD}/translations/${QMAKE_FILE_BASE}.qm
lrelease.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm $${OUT_PWD}/translations/${QMAKE_FILE_BASE}.qm lrelease.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
lrelease.CONFIG += no_link lrelease.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += lrelease QMAKE_EXTRA_COMPILERS += lrelease
PRE_TARGETDEPS += compiler_lrelease_make_all PRE_TARGETDEPS += compiler_lrelease_make_all

View File

@@ -1,71 +1,91 @@
translationsinstall.path = $${DESTDIR}/translations COMPILED_TRANSLATIONS += $$[QT_INSTALL_TRANSLATIONS]/qt_en.qm \
translationsinstall.files = $$[QT_INSTALL_TRANSLATIONS]/qt_en.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtbase_en.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtbase_en.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtmultimedia_en.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtmultimedia_en.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtquick1_en.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtquick1_en.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtscript_en.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtscript_nen.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtxmlpatterns_en.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtxmlpatterns_en.qm \ $$[QT_INSTALL_TRANSLATIONS]/qt_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qt_de.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtbase_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtbase_de.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtmultimedia_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtmultimedia_de.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtquick1_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtquick1_de.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtscript_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtscript_de.qm \ $$[QT_INSTALL_TRANSLATIONS]/qtxmlpatterns_de.qm \
$$[QT_INSTALL_TRANSLATIONS]/qtxmlpatterns_de.qm \ $${OUT_PWD}/translations/zeiterfassung_en.qm \
$$OUT_PWD/translations/zeiterfassung_en.qm \ $${OUT_PWD}/translations/zeiterfassung_de.qm \
$$OUT_PWD/translations/zeiterfassung_de.qm \ $${OUT_PWD}/../zeiterfassunglib/translations/zeiterfassunglib_en.qm \
$$OUT_PWD/../zeiterfassunglib/translations/zeiterfassunglib_en.qm \ $${OUT_PWD}/../zeiterfassunglib/translations/zeiterfassunglib_de.qm
$$OUT_PWD/../zeiterfassunglib/translations/zeiterfassunglib_de.qm
INSTALLS += translationsinstall
themesinstall.path = $${DESTDIR}/themes copy_compiled_translations.input = COMPILED_TRANSLATIONS
themesinstall.files = themes/dark_theme.qss copy_compiled_translations.output = $${DESTDIR}/translations/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
INSTALLS += themesinstall copy_compiled_translations.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_compiled_translations.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_compiled_translations
PRE_TARGETDEPS += compiler_copy_compiled_translations_make_all
darkthemeinstall.path = $${DESTDIR}/themes/dark_theme THEMES += themes/dark_theme.qss
darkthemeinstall.files = themes/dark_theme/checkbox_indeterminate_disabled.png \
themes/dark_theme/radio_unchecked.png \
themes/dark_theme/up_arrow.png \
themes/dark_theme/branch_closed-on.png \
themes/dark_theme/checkbox_checked_disabled.png \
themes/dark_theme/checkbox_unchecked.png \
themes/dark_theme/checkbox_indeterminate.png \
themes/dark_theme/stylesheet-branch-more.png \
themes/dark_theme/checkbox_checked.png \
themes/dark_theme/checkbox_unchecked_disabled.png \
themes/dark_theme/radio_checked.png \
themes/dark_theme/checkbox_indeterminate_focus.png \
themes/dark_theme/checkbox_checked_focus.png \
themes/dark_theme/branch_closed.png \
themes/dark_theme/Vsepartoolbar.png \
themes/dark_theme/radio_checked_disabled.png \
themes/dark_theme/left_arrow.png \
themes/dark_theme/Vmovetoolbar.png \
themes/dark_theme/branch_open-on.png \
themes/dark_theme/close.png \
themes/dark_theme/stylesheet-branch-end.png \
themes/dark_theme/stylesheet-vline.png \
themes/dark_theme/down_arrow_disabled.png \
themes/dark_theme/radio_unchecked_disabled.png \
themes/dark_theme/left_arrow_disabled.png \
themes/dark_theme/Hmovetoolbar.png \
themes/dark_theme/close-pressed.png \
themes/dark_theme/up_arrow_disabled.png \
themes/dark_theme/branch_open.png \
themes/dark_theme/radio_checked_focus.png \
themes/dark_theme/sizegrip.png \
themes/dark_theme/checkbox_unchecked_focus.png \
themes/dark_theme/right_arrow_disabled.png \
themes/dark_theme/Hsepartoolbar.png \
themes/dark_theme/undock.png \
themes/dark_theme/transparent.png \
themes/dark_theme/close-hover.png \
themes/dark_theme/radio_unchecked_focus.png \
themes/dark_theme/down_arrow.png \
themes/dark_theme/right_arrow.png
INSTALLS += darkthemeinstall
stripsinstall.path = $${DESTDIR}/strips copy_themes.input = THEMES
stripsinstall.files = strips/bookingstartstrip.ui \ copy_themes.output = $${DESTDIR}/themes/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
strips/bookingendstrip.ui \ copy_themes.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
strips/timeassignmentstrip.ui copy_themes.CONFIG += no_link
INSTALLS += stripsinstall QMAKE_EXTRA_COMPILERS += copy_themes
PRE_TARGETDEPS += compiler_copy_themes_make_all
DARK_THEME_RESOURCES += themes/dark_theme/checkbox_indeterminate_disabled.png \
themes/dark_theme/radio_unchecked.png \
themes/dark_theme/up_arrow.png \
themes/dark_theme/branch_closed-on.png \
themes/dark_theme/checkbox_checked_disabled.png \
themes/dark_theme/checkbox_unchecked.png \
themes/dark_theme/checkbox_indeterminate.png \
themes/dark_theme/stylesheet-branch-more.png \
themes/dark_theme/checkbox_checked.png \
themes/dark_theme/checkbox_unchecked_disabled.png \
themes/dark_theme/radio_checked.png \
themes/dark_theme/checkbox_indeterminate_focus.png \
themes/dark_theme/checkbox_checked_focus.png \
themes/dark_theme/branch_closed.png \
themes/dark_theme/Vsepartoolbar.png \
themes/dark_theme/radio_checked_disabled.png \
themes/dark_theme/left_arrow.png \
themes/dark_theme/Vmovetoolbar.png \
themes/dark_theme/branch_open-on.png \
themes/dark_theme/close.png \
themes/dark_theme/stylesheet-branch-end.png \
themes/dark_theme/stylesheet-vline.png \
themes/dark_theme/down_arrow_disabled.png \
themes/dark_theme/radio_unchecked_disabled.png \
themes/dark_theme/left_arrow_disabled.png \
themes/dark_theme/Hmovetoolbar.png \
themes/dark_theme/close-pressed.png \
themes/dark_theme/up_arrow_disabled.png \
themes/dark_theme/branch_open.png \
themes/dark_theme/radio_checked_focus.png \
themes/dark_theme/sizegrip.png \
themes/dark_theme/checkbox_unchecked_focus.png \
themes/dark_theme/right_arrow_disabled.png \
themes/dark_theme/Hsepartoolbar.png \
themes/dark_theme/undock.png \
themes/dark_theme/transparent.png \
themes/dark_theme/close-hover.png \
themes/dark_theme/radio_unchecked_focus.png \
themes/dark_theme/down_arrow.png \
themes/dark_theme/right_arrow.png
copy_dark_theme_resouces.input = DARK_THEME_RESOURCES
copy_dark_theme_resouces.output = $${DESTDIR}/themes/dark_theme/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_dark_theme_resouces.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_dark_theme_resouces.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_dark_theme_resouces
PRE_TARGETDEPS += compiler_copy_dark_theme_resouces_make_all
STRIPLAYOUTS += strips/bookingstartstrip.ui \
strips/bookingendstrip.ui \
strips/timeassignmentstrip.ui
copy_striplayouts.input = STRIPLAYOUTS
copy_striplayouts.output = $${DESTDIR}/strips/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_striplayouts.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_striplayouts.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_striplayouts
PRE_TARGETDEPS += compiler_copy_striplayouts_make_all

View File

@@ -1,3 +1,8 @@
scriptsinstall.path = $${DESTDIR} SCRIPTS += unix/start.sh
scriptsinstall.files = unix/start.sh
INSTALLS += scriptsinstall copy_scripts.input = SCRIPTS
copy_scripts.output = $${DESTDIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_scripts.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_scripts.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_scripts
PRE_TARGETDEPS += compiler_copy_scripts_make_all

View File

@@ -1,34 +1,45 @@
CONFIG(debug, release|debug): DEBUG_SIGN = d CONFIG(debug, release|debug): DEBUG_SIGN = d
libinstall.path = $${DESTDIR} LIBRARIES += win32/Qt.conf \
libinstall.files = win32/Qt.conf \ $$OUT_PWD/../lib/zeiterfassunglib.dll \
$$OUT_PWD/../lib/zeiterfassunglib.dll \ $$[QT_INSTALL_BINS]/Qt5Core$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_BINS]/Qt5Core$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_BINS]/Qt5Gui$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_BINS]/Qt5Gui$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_BINS]/Qt5Network$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_BINS]/Qt5Network$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_BINS]/Qt5Widgets$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_BINS]/Qt5Widgets$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_BINS]/libgcc_s_dw2-1.dll \
$$[QT_INSTALL_BINS]/libgcc_s_dw2-1.dll \ $$[QT_INSTALL_BINS]/libstdc++-6.dll \
$$[QT_INSTALL_BINS]/libstd~1.dll \ $$[QT_INSTALL_BINS]/libwinpthread-1.dll
$$[QT_INSTALL_BINS]/libwinpthread-1.dll
INSTALLS += libinstall
iconenginesinstall.path = $$DESTDIR/plugins/iconengines copy_libraries.input = LIBRARIES
iconenginesinstall.files = $$[QT_INSTALL_PLUGINS]/iconengines/qsvgicon$${DEBUG_SIGN}.dll copy_libraries.output = $${DESTDIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
INSTALLS += iconenginesinstall copy_libraries.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_libraries.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_libraries
PRE_TARGETDEPS += compiler_copy_libraries_make_all
imageformatsinstall.path = $$DESTDIR/plugins/imageformats IMAGE_FORMATS += $$[QT_INSTALL_PLUGINS]/imageformats/qdds$${DEBUG_SIGN}.dll \
imageformatsinstall.files = $$[QT_INSTALL_PLUGINS]/imageformats/qdds$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qgif$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qgif$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qicns$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qicns$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qico$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qico$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qjpeg$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qjpeg$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qsvg$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qsvg$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qtga$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qtga$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qtiff$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qtiff$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qwbmp$${DEBUG_SIGN}.dll \
$$[QT_INSTALL_PLUGINS]/imageformats/qwbmp$${DEBUG_SIGN}.dll \ $$[QT_INSTALL_PLUGINS]/imageformats/qwebp$${DEBUG_SIGN}.dll
$$[QT_INSTALL_PLUGINS]/imageformats/qwebp$${DEBUG_SIGN}.dll
INSTALLS += imageformatsinstall
platformsinstall.path = $$DESTDIR/plugins/platforms copy_image_formats.input = IMAGE_FORMATS
win32: platformsinstall.files = $$[QT_INSTALL_PLUGINS]/platforms/qwindows$${DEBUG_SIGN}.dll copy_image_formats.output = $${DESTDIR}/plugins/imageformats/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
INSTALLS += platformsinstall copy_image_formats.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_image_formats.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_image_formats
PRE_TARGETDEPS += compiler_copy_image_formats_make_all
PLATFORMS += $$[QT_INSTALL_PLUGINS]/platforms/qwindows$${DEBUG_SIGN}.dll
copy_platforms.input = PLATFORMS
copy_platforms.output = $${DESTDIR}/plugins/platforms/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_platforms.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
copy_platforms.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += copy_platforms
PRE_TARGETDEPS += compiler_copy_platforms_make_all

View File

@@ -27,8 +27,8 @@ FORMS += strips/bookingstartstrip.ui \
RESOURCES += RESOURCES +=
TRANSLATIONS += translations/zeiterfassung_en.ts \ TRANSLATIONS += translations/zeiterfassung_en.ts \
translations/zeiterfassung_de.ts translations/zeiterfassung_de.ts
include(../lrelease.pri) include(../lrelease.pri)