Replaced buchung with booking for better translation
This commit is contained in:
54
dialogs/bookingdialog.cpp
Normal file
54
dialogs/bookingdialog.cpp
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#include "bookingdialog.h"
|
||||||
|
#include "ui_bookingdialog.h"
|
||||||
|
|
||||||
|
BookingDialog::BookingDialog(QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::BookingDialog)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
BookingDialog::~BookingDialog()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTime BookingDialog::getTime() const
|
||||||
|
{
|
||||||
|
return ui->timeEditTime->time();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookingDialog::setTime(const QTime &time)
|
||||||
|
{
|
||||||
|
ui->timeEditTime->setTime(time);
|
||||||
|
}
|
||||||
|
|
||||||
|
QTime BookingDialog::getTimespan() const
|
||||||
|
{
|
||||||
|
return ui->timeEditTimespan->time();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookingDialog::setTimespan(const QTime ×pan)
|
||||||
|
{
|
||||||
|
ui->timeEditTimespan->setTime(timespan);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString BookingDialog::getType() const
|
||||||
|
{
|
||||||
|
return ui->comboBoxType->currentText();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookingDialog::setType(const QString &type)
|
||||||
|
{
|
||||||
|
ui->comboBoxType->setCurrentText(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString BookingDialog::getText() const
|
||||||
|
{
|
||||||
|
return ui->lineEditText->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookingDialog::setText(const QString &text)
|
||||||
|
{
|
||||||
|
ui->lineEditText->setText(text);
|
||||||
|
}
|
@@ -1,18 +1,18 @@
|
|||||||
#ifndef BUCHUNGDIALOG_H
|
#ifndef BOOKINGDIALOG_H
|
||||||
#define BUCHUNGDIALOG_H
|
#define BOOKINGDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
|
|
||||||
namespace Ui { class BuchungDialog; }
|
namespace Ui { class BookingDialog; }
|
||||||
|
|
||||||
class BuchungDialog : public QDialog
|
class BookingDialog : public QDialog
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BuchungDialog(QWidget *parent = 0);
|
explicit BookingDialog(QWidget *parent = 0);
|
||||||
~BuchungDialog();
|
~BookingDialog();
|
||||||
|
|
||||||
QTime getTime() const;
|
QTime getTime() const;
|
||||||
void setTime(const QTime &time);
|
void setTime(const QTime &time);
|
||||||
@@ -27,7 +27,7 @@ public:
|
|||||||
void setText(const QString &text);
|
void setText(const QString &text);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::BuchungDialog *ui;
|
Ui::BookingDialog *ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BUCHUNGDIALOG_H
|
#endif // BOOKINGDIALOG_H
|
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>BuchungDialog</class>
|
<class>BookingDialog</class>
|
||||||
<widget class="QDialog" name="BuchungDialog">
|
<widget class="QDialog" name="BookingDialog">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Buchung</string>
|
<string>Booking</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
|
||||||
<item>
|
<item>
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Buchung</string>
|
<string>Booking</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>accepted()</signal>
|
<signal>accepted()</signal>
|
||||||
<receiver>BuchungDialog</receiver>
|
<receiver>BookingDialog</receiver>
|
||||||
<slot>accept()</slot>
|
<slot>accept()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>rejected()</signal>
|
<signal>rejected()</signal>
|
||||||
<receiver>BuchungDialog</receiver>
|
<receiver>BookingDialog</receiver>
|
||||||
<slot>reject()</slot>
|
<slot>reject()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
@@ -1,54 +0,0 @@
|
|||||||
#include "buchungdialog.h"
|
|
||||||
#include "ui_buchungdialog.h"
|
|
||||||
|
|
||||||
BuchungDialog::BuchungDialog(QWidget *parent) :
|
|
||||||
QDialog(parent),
|
|
||||||
ui(new Ui::BuchungDialog)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
BuchungDialog::~BuchungDialog()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
QTime BuchungDialog::getTime() const
|
|
||||||
{
|
|
||||||
return ui->timeEditTime->time();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuchungDialog::setTime(const QTime &time)
|
|
||||||
{
|
|
||||||
ui->timeEditTime->setTime(time);
|
|
||||||
}
|
|
||||||
|
|
||||||
QTime BuchungDialog::getTimespan() const
|
|
||||||
{
|
|
||||||
return ui->timeEditTimespan->time();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuchungDialog::setTimespan(const QTime ×pan)
|
|
||||||
{
|
|
||||||
ui->timeEditTimespan->setTime(timespan);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString BuchungDialog::getType() const
|
|
||||||
{
|
|
||||||
return ui->comboBoxType->currentText();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuchungDialog::setType(const QString &type)
|
|
||||||
{
|
|
||||||
ui->comboBoxType->setCurrentText(type);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString BuchungDialog::getText() const
|
|
||||||
{
|
|
||||||
return ui->lineEditText->text();
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuchungDialog::setText(const QString &text)
|
|
||||||
{
|
|
||||||
ui->lineEditText->setText(text);
|
|
||||||
}
|
|
@@ -16,9 +16,9 @@ SettingsDialog::SettingsDialog(ZeiterfassungSettings &settings, QWidget *parent)
|
|||||||
ui->comboBoxLanguage->addItem(tr("German"), QLocale::German);
|
ui->comboBoxLanguage->addItem(tr("German"), QLocale::German);
|
||||||
|
|
||||||
ui->comboBoxLanguage->setCurrentIndex(ui->comboBoxLanguage->findData(settings.language()));
|
ui->comboBoxLanguage->setCurrentIndex(ui->comboBoxLanguage->findData(settings.language()));
|
||||||
ui->lineEditBuchungStartBackgroundColor->setText(settings.buchungStartBackgroundColor());
|
ui->lineEditBookingStartBackgroundColor->setText(settings.bookingStartBackgroundColor());
|
||||||
ui->lineEditBuchungEndBackgroundColor->setText(settings.buchungEndBackgroundColor());
|
ui->lineEditBookingEndBackgroundColor->setText(settings.bookingEndBackgroundColor());
|
||||||
ui->lineEditBuchungOtherBackgroundColor->setText(settings.buchungOtherBackgroundColor());
|
ui->lineEditBookingOtherBackgroundColor->setText(settings.bookingOtherBackgroundColor());
|
||||||
ui->lineEditTimeAssignmentBackgroundColor->setText(settings.timeAssignmentBackgroundColor());
|
ui->lineEditTimeAssignmentBackgroundColor->setText(settings.timeAssignmentBackgroundColor());
|
||||||
|
|
||||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::submit);
|
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::submit);
|
||||||
@@ -36,12 +36,12 @@ void SettingsDialog::submit()
|
|||||||
m_settings.setLanguage(ui->comboBoxLanguage->currentData().value<QLocale::Language>());
|
m_settings.setLanguage(ui->comboBoxLanguage->currentData().value<QLocale::Language>());
|
||||||
QMessageBox::warning(this, tr("Restart required!"), tr("To apply the new language a restart is required!"));
|
QMessageBox::warning(this, tr("Restart required!"), tr("To apply the new language a restart is required!"));
|
||||||
}
|
}
|
||||||
if(ui->lineEditBuchungStartBackgroundColor->text() != m_settings.buchungStartBackgroundColor())
|
if(ui->lineEditBookingStartBackgroundColor->text() != m_settings.bookingStartBackgroundColor())
|
||||||
m_settings.setBuchungStartBackgroundColor(ui->lineEditBuchungStartBackgroundColor->text());
|
m_settings.setBookingStartBackgroundColor(ui->lineEditBookingStartBackgroundColor->text());
|
||||||
if(ui->lineEditBuchungEndBackgroundColor->text() != m_settings.buchungEndBackgroundColor())
|
if(ui->lineEditBookingEndBackgroundColor->text() != m_settings.bookingEndBackgroundColor())
|
||||||
m_settings.setBuchungEndBackgroundColor(ui->lineEditBuchungEndBackgroundColor->text());
|
m_settings.setBookingEndBackgroundColor(ui->lineEditBookingEndBackgroundColor->text());
|
||||||
if(ui->lineEditBuchungOtherBackgroundColor->text() != m_settings.buchungOtherBackgroundColor())
|
if(ui->lineEditBookingOtherBackgroundColor->text() != m_settings.bookingOtherBackgroundColor())
|
||||||
m_settings.setBuchungOtherBackgroundColor(ui->lineEditBuchungOtherBackgroundColor->text());
|
m_settings.setBookingOtherBackgroundColor(ui->lineEditBookingOtherBackgroundColor->text());
|
||||||
if(ui->lineEditTimeAssignmentBackgroundColor->text() != m_settings.timeAssignmentBackgroundColor())
|
if(ui->lineEditTimeAssignmentBackgroundColor->text() != m_settings.timeAssignmentBackgroundColor())
|
||||||
m_settings.setTimeAssignmentBackgroundColor(ui->lineEditTimeAssignmentBackgroundColor->text());
|
m_settings.setTimeAssignmentBackgroundColor(ui->lineEditTimeAssignmentBackgroundColor->text());
|
||||||
|
|
||||||
|
@@ -45,32 +45,32 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="labelbuchungStartBackgroundColor">
|
<widget class="QLabel" name="labelbookingStartBackgroundColor">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>buchungStartBackgroundColor</string>
|
<string>bookingStartBackgroundColor</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
<property name="buddy">
|
||||||
<cstring>lineEditBuchungStartBackgroundColor</cstring>
|
<cstring>lineEditBookingStartBackgroundColor</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="labelbuchungEndBackgroundColor">
|
<widget class="QLabel" name="labelbookingEndBackgroundColor">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>buchungEndBackgroundColor</string>
|
<string>bookingEndBackgroundColor</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
<property name="buddy">
|
||||||
<cstring>lineEditBuchungEndBackgroundColor</cstring>
|
<cstring>lineEditBookingEndBackgroundColor</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="labelbuchungOtherBackgroundColor">
|
<widget class="QLabel" name="labelbookingOtherBackgroundColor">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>buchungOtherBackgroundColor</string>
|
<string>bookingOtherBackgroundColor</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buddy">
|
<property name="buddy">
|
||||||
<cstring>lineEditBuchungOtherBackgroundColor</cstring>
|
<cstring>lineEditBookingOtherBackgroundColor</cstring>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -88,13 +88,13 @@
|
|||||||
<widget class="QComboBox" name="comboBoxLanguage"/>
|
<widget class="QComboBox" name="comboBoxLanguage"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLineEdit" name="lineEditBuchungStartBackgroundColor"/>
|
<widget class="QLineEdit" name="lineEditBookingStartBackgroundColor"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QLineEdit" name="lineEditBuchungEndBackgroundColor"/>
|
<widget class="QLineEdit" name="lineEditBookingEndBackgroundColor"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="QLineEdit" name="lineEditBuchungOtherBackgroundColor"/>
|
<widget class="QLineEdit" name="lineEditBookingOtherBackgroundColor"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLineEdit" name="lineEditTimeAssignmentBackgroundColor"/>
|
<widget class="QLineEdit" name="lineEditTimeAssignmentBackgroundColor"/>
|
||||||
|
2
main.cpp
2
main.cpp
@@ -75,7 +75,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Invalid language selection!"),
|
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Invalid language selection!"),
|
||||||
QCoreApplication::translate("main", "Invalid language selection!") % "\n\n" %
|
QCoreApplication::translate("main", "Invalid language selection!") % "\n\n" %
|
||||||
QCoreApplication::translate("main", "You did not select a valid language."));
|
QCoreApplication::translate("main", "You did not select a valid language!"));
|
||||||
goto again0;
|
goto again0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
239
mainwindow.cpp
239
mainwindow.cpp
@@ -17,12 +17,12 @@
|
|||||||
#include "zeiterfassungsettings.h"
|
#include "zeiterfassungsettings.h"
|
||||||
#include "eventloopwithstatus.h"
|
#include "eventloopwithstatus.h"
|
||||||
#include "dialogs/aboutmedialog.h"
|
#include "dialogs/aboutmedialog.h"
|
||||||
#include "dialogs/buchungdialog.h"
|
#include "dialogs/bookingdialog.h"
|
||||||
#include "dialogs/timeassignmentdialog.h"
|
#include "dialogs/timeassignmentdialog.h"
|
||||||
#include "dialogs/settingsdialog.h"
|
#include "dialogs/settingsdialog.h"
|
||||||
#include "strips/buchungstrip.h"
|
#include "strips/bookingstrip.h"
|
||||||
#include "strips/timeassignmentstrip.h"
|
#include "strips/timeassignmentstrip.h"
|
||||||
#include "models/buchungenmodel.h"
|
#include "models/bookingsmodel.h"
|
||||||
#include "models/timeassignmentsmodel.h"
|
#include "models/timeassignmentsmodel.h"
|
||||||
|
|
||||||
MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent) :
|
MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung, const Zeiterfassung::UserInfo &userInfo, QWidget *parent) :
|
||||||
@@ -31,7 +31,7 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung
|
|||||||
m_settings(settings),
|
m_settings(settings),
|
||||||
m_erfassung(erfassung),
|
m_erfassung(erfassung),
|
||||||
m_userInfo(userInfo),
|
m_userInfo(userInfo),
|
||||||
m_buchungenModel(new BuchungenModel(erfassung, this)),
|
m_bookingsModel(new BookingsModel(erfassung, this)),
|
||||||
m_timeAssignmentsModel(new TimeAssignmentsModel(erfassung, this)),
|
m_timeAssignmentsModel(new TimeAssignmentsModel(erfassung, this)),
|
||||||
m_flag(false)
|
m_flag(false)
|
||||||
{
|
{
|
||||||
@@ -93,11 +93,11 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung
|
|||||||
connect(ui->pushButtonStart, &QAbstractButton::pressed, this, &MainWindow::pushButtonStartPressed);
|
connect(ui->pushButtonStart, &QAbstractButton::pressed, this, &MainWindow::pushButtonStartPressed);
|
||||||
connect(ui->pushButtonEnd, &QAbstractButton::pressed, this, &MainWindow::pushButtonEndPressed);
|
connect(ui->pushButtonEnd, &QAbstractButton::pressed, this, &MainWindow::pushButtonEndPressed);
|
||||||
|
|
||||||
ui->treeViewBuchungen->setModel(m_buchungenModel);
|
ui->treeViewBookings->setModel(m_bookingsModel);
|
||||||
ui->treeViewTimeAssignments->setModel(m_timeAssignmentsModel);
|
ui->treeViewTimeAssignments->setModel(m_timeAssignmentsModel);
|
||||||
|
|
||||||
connect(ui->treeViewBuchungen, &QWidget::customContextMenuRequested,
|
connect(ui->treeViewBookings, &QWidget::customContextMenuRequested,
|
||||||
this, &MainWindow::contextMenuBuchung);
|
this, &MainWindow::contextMenuBooking);
|
||||||
connect(ui->treeViewTimeAssignments, &QWidget::customContextMenuRequested,
|
connect(ui->treeViewTimeAssignments, &QWidget::customContextMenuRequested,
|
||||||
this, &MainWindow::contextMenuTimeAssignment);
|
this, &MainWindow::contextMenuTimeAssignment);
|
||||||
|
|
||||||
@@ -155,16 +155,16 @@ void MainWindow::refresh(bool forceAuswertung)
|
|||||||
ui->comboBoxText->setEnabled(false);
|
ui->comboBoxText->setEnabled(false);
|
||||||
ui->pushButtonStart->setEnabled(false);
|
ui->pushButtonStart->setEnabled(false);
|
||||||
ui->pushButtonEnd->setEnabled(false);
|
ui->pushButtonEnd->setEnabled(false);
|
||||||
ui->treeViewBuchungen->setEnabled(false);
|
ui->treeViewBookings->setEnabled(false);
|
||||||
ui->treeViewTimeAssignments->setEnabled(false);
|
ui->treeViewTimeAssignments->setEnabled(false);
|
||||||
|
|
||||||
m_workingTimeLabel->setText(tr("%0: %1").arg(tr("Assigned time")).arg(tr("???")));
|
m_workingTimeLabel->setText(tr("%0: %1").arg(tr("Assigned time")).arg(tr("???")));
|
||||||
|
|
||||||
auto waitForBuchugen = m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
|
auto waitForBookings = m_bookingsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
|
||||||
if(waitForBuchugen)
|
if(waitForBookings)
|
||||||
{
|
{
|
||||||
connect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||||
this, &MainWindow::refreshBuchungenFinished);
|
this, &MainWindow::refreshBookingsFinished);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto waitForTimeAssignments = m_timeAssignmentsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
|
auto waitForTimeAssignments = m_timeAssignmentsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
|
||||||
@@ -174,11 +174,11 @@ void MainWindow::refresh(bool forceAuswertung)
|
|||||||
this, &MainWindow::refreshTimeAssignmentsFinished);
|
this, &MainWindow::refreshTimeAssignmentsFinished);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!waitForBuchugen || !waitForTimeAssignments)
|
if(!waitForBookings || !waitForTimeAssignments)
|
||||||
QMessageBox::warning(this, tr("Unknown error occured."), tr("An unknown error occured."));
|
QMessageBox::warning(this, tr("Unknown error occured!"), tr("Unknown error occured!"));
|
||||||
|
|
||||||
if(waitForBuchugen || waitForTimeAssignments)
|
if(waitForBookings || waitForTimeAssignments)
|
||||||
m_flag = waitForBuchugen == waitForTimeAssignments;
|
m_flag = waitForBookings == waitForTimeAssignments;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ui->actionToday->setEnabled(true);
|
ui->actionToday->setEnabled(true);
|
||||||
@@ -209,7 +209,7 @@ void MainWindow::refresh(bool forceAuswertung)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_auswertungDate = QDate();
|
m_auswertungDate = QDate();
|
||||||
QMessageBox::warning(this, tr("Unknown error occured."), tr("An unknown error occured."));
|
QMessageBox::warning(this, tr("Unknown error occured!"), tr("Unknown error occured!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -221,7 +221,7 @@ void MainWindow::getProjekctsFinished(bool success, const QString &message, cons
|
|||||||
|
|
||||||
if(!success)
|
if(!success)
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not load Buchungen!"), tr("Could not load Buchungen!") % "\n\n" % message);
|
QMessageBox::warning(this, tr("Could not load bookings!"), tr("Could not load bookings!") % "\n\n" % message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -280,13 +280,13 @@ void MainWindow::getAuswertungFinished(bool success, const QString &message, con
|
|||||||
m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(urlaubsAnspruch));
|
m_holidaysLabel->setText(tr("%0: %1").arg(tr("Holidays")).arg(urlaubsAnspruch));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::refreshBuchungenFinished(bool success, const QString &message)
|
void MainWindow::refreshBookingsFinished(bool success, const QString &message)
|
||||||
{
|
{
|
||||||
disconnect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
disconnect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||||
this, &MainWindow::refreshBuchungenFinished);
|
this, &MainWindow::refreshBookingsFinished);
|
||||||
|
|
||||||
if(success)
|
if(success)
|
||||||
ui->treeViewBuchungen->setEnabled(true);
|
ui->treeViewBookings->setEnabled(true);
|
||||||
|
|
||||||
if(m_flag)
|
if(m_flag)
|
||||||
m_flag = false;
|
m_flag = false;
|
||||||
@@ -294,7 +294,7 @@ void MainWindow::refreshBuchungenFinished(bool success, const QString &message)
|
|||||||
validateEntries();
|
validateEntries();
|
||||||
|
|
||||||
if(!success)
|
if(!success)
|
||||||
QMessageBox::warning(Q_NULLPTR, tr("Could not refresh Buchungen!"), tr("Could not refresh Buchungen!") % "\n\n" % message);
|
QMessageBox::warning(Q_NULLPTR, tr("Could not load bookings!"), tr("Could not load bookings!") % "\n\n" % message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::refreshTimeAssignmentsFinished(bool success, const QString &message)
|
void MainWindow::refreshTimeAssignmentsFinished(bool success, const QString &message)
|
||||||
@@ -311,35 +311,35 @@ void MainWindow::refreshTimeAssignmentsFinished(bool success, const QString &mes
|
|||||||
validateEntries();
|
validateEntries();
|
||||||
|
|
||||||
if(!success)
|
if(!success)
|
||||||
QMessageBox::warning(Q_NULLPTR, tr("Could not refresh time assignments!"), tr("Could not refresh time assignments!") % "\n\n" % message);
|
QMessageBox::warning(Q_NULLPTR, tr("Could not load time assignments!"), tr("Could not load time assignments!") % "\n\n" % message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::contextMenuBuchung(const QPoint &pos)
|
void MainWindow::contextMenuBooking(const QPoint &pos)
|
||||||
{
|
{
|
||||||
auto index = ui->treeViewBuchungen->indexAt(pos);
|
auto index = ui->treeViewBookings->indexAt(pos);
|
||||||
|
|
||||||
if(index.isValid())
|
if(index.isValid())
|
||||||
{
|
{
|
||||||
auto buchung = m_buchungenModel->getBuchung(index);
|
auto booking = m_bookingsModel->getBooking(index);
|
||||||
|
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
auto editAction = menu.addAction(tr("Edit"));
|
auto editAction = menu.addAction(tr("Edit booking"));
|
||||||
auto deleteAction = menu.addAction(tr("Delete"));
|
auto deleteAction = menu.addAction(tr("Delete booking"));
|
||||||
auto selectedAction = menu.exec(ui->treeViewBuchungen->viewport()->mapToGlobal(pos));
|
auto selectedAction = menu.exec(ui->treeViewBookings->viewport()->mapToGlobal(pos));
|
||||||
if(selectedAction == editAction)
|
if(selectedAction == editAction)
|
||||||
{
|
{
|
||||||
BuchungDialog dialog(this);
|
BookingDialog dialog(this);
|
||||||
dialog.setTime(buchung.time);
|
dialog.setTime(booking.time);
|
||||||
dialog.setTimespan(buchung.timespan);
|
dialog.setTimespan(booking.timespan);
|
||||||
dialog.setType(buchung.type);
|
dialog.setType(booking.type);
|
||||||
dialog.setText(buchung.text);
|
dialog.setText(booking.text);
|
||||||
again1:
|
again1:
|
||||||
if(dialog.exec() == QDialog::Accepted)
|
if(dialog.exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
EventLoopWithStatus eventLoop;
|
EventLoopWithStatus eventLoop;
|
||||||
connect(&m_erfassung, &Zeiterfassung::updateBuchungFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
connect(&m_erfassung, &Zeiterfassung::updateBookingFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||||
|
|
||||||
m_erfassung.doUpdateBuchung(buchung.id, m_userInfo.userId, ui->dateEditDate->date(),
|
m_erfassung.doUpdateBooking(booking.id, m_userInfo.userId, ui->dateEditDate->date(),
|
||||||
dialog.getTime(), dialog.getTimespan(),
|
dialog.getTime(), dialog.getTimespan(),
|
||||||
dialog.getType(), dialog.getText());
|
dialog.getType(), dialog.getText());
|
||||||
eventLoop.exec();
|
eventLoop.exec();
|
||||||
@@ -358,14 +358,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
ui->comboBoxText->setEnabled(false);
|
ui->comboBoxText->setEnabled(false);
|
||||||
ui->pushButtonStart->setEnabled(false);
|
ui->pushButtonStart->setEnabled(false);
|
||||||
ui->pushButtonEnd->setEnabled(false);
|
ui->pushButtonEnd->setEnabled(false);
|
||||||
ui->treeViewBuchungen->setEnabled(false);
|
ui->treeViewBookings->setEnabled(false);
|
||||||
|
|
||||||
clearStrips();
|
clearStrips();
|
||||||
|
|
||||||
if(m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
if(m_bookingsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
||||||
{
|
{
|
||||||
connect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||||
this, &MainWindow::refreshBuchungenFinished);
|
this, &MainWindow::refreshBookingsFinished);
|
||||||
m_flag = false;
|
m_flag = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -379,7 +379,7 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not update Buchung!"), tr("Could not update Buchung!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not edit booking!"), tr("Could not edit booking!") % "\n\n" % eventLoop.message());
|
||||||
goto again1;
|
goto again1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -387,15 +387,15 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
else if(selectedAction == deleteAction)
|
else if(selectedAction == deleteAction)
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText("Do you really want to delete the Buchung?");
|
msgBox.setText("Do you really want to delete the booking?");
|
||||||
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::Cancel);
|
msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::Cancel);
|
||||||
msgBox.setDefaultButton(QMessageBox::Cancel);
|
msgBox.setDefaultButton(QMessageBox::Cancel);
|
||||||
if(msgBox.exec() == QMessageBox::Yes)
|
if(msgBox.exec() == QMessageBox::Yes)
|
||||||
{
|
{
|
||||||
EventLoopWithStatus eventLoop;
|
EventLoopWithStatus eventLoop;
|
||||||
connect(&m_erfassung, &Zeiterfassung::deleteBuchungFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
connect(&m_erfassung, &Zeiterfassung::deleteBookingFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||||
|
|
||||||
m_erfassung.doDeleteBuchung(buchung.id);
|
m_erfassung.doDeleteBooking(booking.id);
|
||||||
eventLoop.exec();
|
eventLoop.exec();
|
||||||
|
|
||||||
if(eventLoop.success())
|
if(eventLoop.success())
|
||||||
@@ -412,14 +412,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
ui->comboBoxText->setEnabled(false);
|
ui->comboBoxText->setEnabled(false);
|
||||||
ui->pushButtonStart->setEnabled(false);
|
ui->pushButtonStart->setEnabled(false);
|
||||||
ui->pushButtonEnd->setEnabled(false);
|
ui->pushButtonEnd->setEnabled(false);
|
||||||
ui->treeViewBuchungen->setEnabled(false);
|
ui->treeViewBookings->setEnabled(false);
|
||||||
|
|
||||||
clearStrips();
|
clearStrips();
|
||||||
|
|
||||||
if(m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
if(m_bookingsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
||||||
{
|
{
|
||||||
connect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||||
this, &MainWindow::refreshBuchungenFinished);
|
this, &MainWindow::refreshBookingsFinished);
|
||||||
m_flag = false;
|
m_flag = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -432,26 +432,26 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
QMessageBox::warning(this, tr("Could not delete Buchung!"), tr("Could not delete Buchung!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not delete booking!"), tr("Could not delete booking!") % "\n\n" % eventLoop.message());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
auto createAction = menu.addAction(tr("Create"));
|
auto createAction = menu.addAction(tr("Create booking"));
|
||||||
auto selectedAction = menu.exec(ui->treeViewBuchungen->viewport()->mapToGlobal(pos));
|
auto selectedAction = menu.exec(ui->treeViewBookings->viewport()->mapToGlobal(pos));
|
||||||
if(selectedAction == createAction)
|
if(selectedAction == createAction)
|
||||||
{
|
{
|
||||||
BuchungDialog dialog(this);
|
BookingDialog dialog(this);
|
||||||
dialog.setTime(timeNormalise(QTime::currentTime()));
|
dialog.setTime(timeNormalise(QTime::currentTime()));
|
||||||
again2:
|
again2:
|
||||||
if(dialog.exec() == QDialog::Accepted)
|
if(dialog.exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
EventLoopWithStatus eventLoop;
|
EventLoopWithStatus eventLoop;
|
||||||
connect(&m_erfassung, &Zeiterfassung::createBuchungFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
connect(&m_erfassung, &Zeiterfassung::createBookingFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||||
|
|
||||||
m_erfassung.doCreateBuchung(m_userInfo.userId, ui->dateEditDate->date(),
|
m_erfassung.doCreateBooking(m_userInfo.userId, ui->dateEditDate->date(),
|
||||||
dialog.getTime(), dialog.getTimespan(),
|
dialog.getTime(), dialog.getTimespan(),
|
||||||
dialog.getType(), dialog.getText());
|
dialog.getType(), dialog.getText());
|
||||||
eventLoop.exec();
|
eventLoop.exec();
|
||||||
@@ -470,14 +470,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
ui->comboBoxText->setEnabled(false);
|
ui->comboBoxText->setEnabled(false);
|
||||||
ui->pushButtonStart->setEnabled(false);
|
ui->pushButtonStart->setEnabled(false);
|
||||||
ui->pushButtonEnd->setEnabled(false);
|
ui->pushButtonEnd->setEnabled(false);
|
||||||
ui->treeViewBuchungen->setEnabled(false);
|
ui->treeViewBookings->setEnabled(false);
|
||||||
|
|
||||||
clearStrips();
|
clearStrips();
|
||||||
|
|
||||||
if(m_buchungenModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
if(m_bookingsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date()))
|
||||||
{
|
{
|
||||||
connect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||||
this, &MainWindow::refreshBuchungenFinished);
|
this, &MainWindow::refreshBookingsFinished);
|
||||||
m_flag = false;
|
m_flag = false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -491,7 +491,7 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not create Buchung!"), tr("Could not create Buchung!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % eventLoop.message());
|
||||||
goto again2;
|
goto again2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -508,8 +508,8 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
|||||||
auto timeAssignment = m_timeAssignmentsModel->getTimeAssignment(index);
|
auto timeAssignment = m_timeAssignmentsModel->getTimeAssignment(index);
|
||||||
|
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
auto editAction = menu.addAction(tr("Edit"));
|
auto editAction = menu.addAction(tr("Edit time assignment"));
|
||||||
auto deleteAction = menu.addAction(tr("Delete"));
|
auto deleteAction = menu.addAction(tr("Delete time assignment"));
|
||||||
auto selectedAction = menu.exec(ui->treeViewTimeAssignments->viewport()->mapToGlobal(pos));
|
auto selectedAction = menu.exec(ui->treeViewTimeAssignments->viewport()->mapToGlobal(pos));
|
||||||
if(selectedAction == editAction)
|
if(selectedAction == editAction)
|
||||||
{
|
{
|
||||||
@@ -572,7 +572,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not update time assignment!"), tr("Could not update time assignment!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % eventLoop.message());
|
||||||
goto again1;
|
goto again1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -632,7 +632,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMenu menu;
|
QMenu menu;
|
||||||
auto createAction = menu.addAction(tr("Create"));
|
auto createAction = menu.addAction(tr("Create time assignment"));
|
||||||
auto selectedAction = menu.exec(ui->treeViewTimeAssignments->viewport()->mapToGlobal(pos));
|
auto selectedAction = menu.exec(ui->treeViewTimeAssignments->viewport()->mapToGlobal(pos));
|
||||||
if(selectedAction == createAction)
|
if(selectedAction == createAction)
|
||||||
{
|
{
|
||||||
@@ -699,20 +699,20 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
|||||||
|
|
||||||
void MainWindow::pushButtonStartPressed()
|
void MainWindow::pushButtonStartPressed()
|
||||||
{
|
{
|
||||||
if(m_buchungenModel->rbegin() == m_buchungenModel->rend() ||
|
if(m_bookingsModel->rbegin() == m_bookingsModel->rend() ||
|
||||||
m_buchungenModel->rbegin()->type == QStringLiteral("G"))
|
m_bookingsModel->rbegin()->type == QStringLiteral("G"))
|
||||||
{
|
{
|
||||||
EventLoopWithStatus eventLoop;
|
EventLoopWithStatus eventLoop;
|
||||||
connect(&m_erfassung, &Zeiterfassung::createBuchungFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
connect(&m_erfassung, &Zeiterfassung::createBookingFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||||
|
|
||||||
m_erfassung.doCreateBuchung(m_userInfo.userId, ui->dateEditDate->date(),
|
m_erfassung.doCreateBooking(m_userInfo.userId, ui->dateEditDate->date(),
|
||||||
timeNormalise(ui->timeEditTime->time()), QTime(0, 0),
|
timeNormalise(ui->timeEditTime->time()), QTime(0, 0),
|
||||||
QStringLiteral("K"), QStringLiteral(""));
|
QStringLiteral("K"), QStringLiteral(""));
|
||||||
eventLoop.exec();
|
eventLoop.exec();
|
||||||
|
|
||||||
if(!eventLoop.success())
|
if(!eventLoop.success())
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not create Buchung!"), tr("Could not create Buchung!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % eventLoop.message());
|
||||||
refresh(true);
|
refresh(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -738,7 +738,7 @@ void MainWindow::pushButtonStartPressed()
|
|||||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not update time assignment!"), tr("Could not update time assignment!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % eventLoop.message());
|
||||||
refresh(true);
|
refresh(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -775,16 +775,16 @@ void MainWindow::pushButtonEndPressed()
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
EventLoopWithStatus eventLoop;
|
EventLoopWithStatus eventLoop;
|
||||||
connect(&m_erfassung, &Zeiterfassung::createBuchungFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
connect(&m_erfassung, &Zeiterfassung::createBookingFinished, &eventLoop, &EventLoopWithStatus::quitWithStatus);
|
||||||
|
|
||||||
m_erfassung.doCreateBuchung(m_userInfo.userId, ui->dateEditDate->date(),
|
m_erfassung.doCreateBooking(m_userInfo.userId, ui->dateEditDate->date(),
|
||||||
timeNormalise(ui->timeEditTime->time()), QTime(0, 0),
|
timeNormalise(ui->timeEditTime->time()), QTime(0, 0),
|
||||||
QStringLiteral("G"), QStringLiteral(""));
|
QStringLiteral("G"), QStringLiteral(""));
|
||||||
eventLoop.exec();
|
eventLoop.exec();
|
||||||
|
|
||||||
if(!eventLoop.success())
|
if(!eventLoop.success())
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not create Buchung!"), tr("Could not create Buchung!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not create booking!"), tr("Could not create booking!") % "\n\n" % eventLoop.message());
|
||||||
refresh(true);
|
refresh(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -809,7 +809,7 @@ void MainWindow::pushButtonEndPressed()
|
|||||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Could not update time assignment!"), tr("Could not update time assignment!") % "\n\n" % eventLoop.message());
|
QMessageBox::warning(this, tr("Could not edit time assignment!"), tr("Could not edit time assignment!") % "\n\n" % eventLoop.message());
|
||||||
refresh(true);
|
refresh(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -828,65 +828,65 @@ void MainWindow::validateEntries()
|
|||||||
ui->pushButtonNext->setEnabled(true);
|
ui->pushButtonNext->setEnabled(true);
|
||||||
ui->pushButtonStart->setText(tr("Start"));
|
ui->pushButtonStart->setText(tr("Start"));
|
||||||
|
|
||||||
if(!ui->treeViewBuchungen->isEnabled())
|
if(!ui->treeViewBookings->isEnabled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!ui->treeViewTimeAssignments->isEnabled())
|
if(!ui->treeViewTimeAssignments->isEnabled())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto buchungenIter = m_buchungenModel->constBegin();
|
auto bookingsIter = m_bookingsModel->constBegin();
|
||||||
auto timeAssignmentsIter = m_timeAssignmentsModel->constBegin();
|
auto timeAssignmentsIter = m_timeAssignmentsModel->constBegin();
|
||||||
|
|
||||||
m_timeAssignmentTime = QTime(0, 0);
|
m_timeAssignmentTime = QTime(0, 0);
|
||||||
auto buchungTimespan = QTime(0, 0);
|
auto bookingTimespan = QTime(0, 0);
|
||||||
|
|
||||||
const Zeiterfassung::Buchung *lastBuchung = Q_NULLPTR;
|
const Zeiterfassung::Booking *lastBooking = Q_NULLPTR;
|
||||||
const Zeiterfassung::TimeAssignment *lastTimeAssignment = Q_NULLPTR;
|
const Zeiterfassung::TimeAssignment *lastTimeAssignment = Q_NULLPTR;
|
||||||
|
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
if(buchungenIter == m_buchungenModel->constEnd() &&
|
if(bookingsIter == m_bookingsModel->constEnd() &&
|
||||||
timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||||
{
|
{
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(buchungenIter == m_buchungenModel->constEnd())
|
if(bookingsIter == m_bookingsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("Missing Buchung.");
|
errorMessage = tr("Missing booking!");
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto startBuchung = *buchungenIter++;
|
auto startBooking = *bookingsIter++;
|
||||||
if(startBuchung.type != QStringLiteral("K"))
|
if(startBooking.type != QStringLiteral("K"))
|
||||||
{
|
{
|
||||||
errorMessage = tr("Expected start Buchung, instead got type %0\nBuchung ID: %1")
|
errorMessage = tr("Expected start booking, instead got type %0\nBooking ID: %1")
|
||||||
.arg(startBuchung.type)
|
.arg(startBooking.type)
|
||||||
.arg(startBuchung.id);
|
.arg(startBooking.id);
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(lastBuchung)
|
if(lastBooking)
|
||||||
{
|
{
|
||||||
auto label = new QLabel(tr("%0: %1")
|
auto label = new QLabel(tr("%0: %1")
|
||||||
.arg(tr("Break"))
|
.arg(tr("Break"))
|
||||||
.arg(tr("%0h").arg(timeBetween(lastBuchung->time, startBuchung.time).toString(QStringLiteral("HH:mm")))),
|
.arg(tr("%0h").arg(timeBetween(lastBooking->time, startBooking.time).toString(QStringLiteral("HH:mm")))),
|
||||||
ui->scrollAreaWidgetContents);
|
ui->scrollAreaWidgetContents);
|
||||||
ui->verticalLayout2->addWidget(label);
|
ui->verticalLayout2->addWidget(label);
|
||||||
label->setMinimumHeight(20);
|
label->setMinimumHeight(20);
|
||||||
label->setMaximumHeight(20);
|
label->setMaximumHeight(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
lastBuchung = &startBuchung;
|
lastBooking = &startBooking;
|
||||||
|
|
||||||
m_lastTimeAssignmentStart = startBuchung.time;
|
m_lastTimeAssignmentStart = startBooking.time;
|
||||||
ui->verticalLayout2->addWidget(new BuchungStrip(startBuchung.id, startBuchung.time, startBuchung.type, m_settings, ui->scrollAreaWidgetContents));
|
ui->verticalLayout2->addWidget(new BookingStrip(startBooking.id, startBooking.time, startBooking.type, m_settings, ui->scrollAreaWidgetContents));
|
||||||
|
|
||||||
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("Missing time assignment.");
|
errorMessage = tr("Missing time assignment!");
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -908,10 +908,10 @@ void MainWindow::validateEntries()
|
|||||||
|
|
||||||
if(timeAssignment.timespan == QTime(0, 0))
|
if(timeAssignment.timespan == QTime(0, 0))
|
||||||
{
|
{
|
||||||
if(buchungenIter != m_buchungenModel->constEnd())
|
if(bookingsIter != m_bookingsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("There is another Buchung after an unfinished time assignment.\nBuchung ID: %0\nTime assignment ID: %1")
|
errorMessage = tr("There is another booking after an unfinished time assignment.\nBooking ID: %0\nTime assignment ID: %1")
|
||||||
.arg(buchungenIter->id)
|
.arg(bookingsIter->id)
|
||||||
.arg(timeAssignment.id);
|
.arg(timeAssignment.id);
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
@@ -934,13 +934,13 @@ void MainWindow::validateEntries()
|
|||||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timeAssignment.timespan);
|
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timeAssignment.timespan);
|
||||||
m_lastTimeAssignmentStart = timeAdd(m_lastTimeAssignmentStart, timeAssignment.timespan);
|
m_lastTimeAssignmentStart = timeAdd(m_lastTimeAssignmentStart, timeAssignment.timespan);
|
||||||
|
|
||||||
if(buchungenIter == m_buchungenModel->constEnd())
|
if(bookingsIter == m_bookingsModel->constEnd())
|
||||||
{
|
{
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("The last time assignment is finished without end Buchung\nTime assignment ID: %0")
|
errorMessage = tr("The last time assignment is finished without end booking\nTime assignment ID: %0")
|
||||||
.arg(timeAssignment.id);
|
.arg(timeAssignment.id);
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
@@ -986,26 +986,26 @@ void MainWindow::validateEntries()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto endBuchung = *buchungenIter++;
|
auto endBooking = *bookingsIter++;
|
||||||
if(endBuchung.type != QStringLiteral("G"))
|
if(endBooking.type != QStringLiteral("G"))
|
||||||
{
|
{
|
||||||
errorMessage = tr("Expected end Buchung, instead got type %0\nBuchung ID: %1")
|
errorMessage = tr("Expected end booking, instead got type %0\nBooking ID: %1")
|
||||||
.arg(endBuchung.type)
|
.arg(endBooking.type)
|
||||||
.arg(endBuchung.id);
|
.arg(endBooking.id);
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastBuchung = &endBuchung;
|
lastBooking = &endBooking;
|
||||||
|
|
||||||
buchungTimespan = timeAdd(buchungTimespan, timeBetween(startBuchung.time, endBuchung.time));
|
bookingTimespan = timeAdd(bookingTimespan, timeBetween(startBooking.time, endBooking.time));
|
||||||
ui->timeEditTime->setMinimumTime(timeAdd(endBuchung.time, QTime(0, 1)));
|
ui->timeEditTime->setMinimumTime(timeAdd(endBooking.time, QTime(0, 1)));
|
||||||
|
|
||||||
while(m_timeAssignmentTime < buchungTimespan)
|
while(m_timeAssignmentTime < bookingTimespan)
|
||||||
{
|
{
|
||||||
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("Missing time assignment(s)! Missing: %0h")
|
errorMessage = tr("Missing time assignment! Missing: %0h")
|
||||||
.arg(timeBetween(m_timeAssignmentTime, buchungTimespan).toString("HH:mm:ss"));
|
.arg(timeBetween(m_timeAssignmentTime, bookingTimespan).toString("HH:mm:ss"));
|
||||||
|
|
||||||
{
|
{
|
||||||
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
||||||
@@ -1014,7 +1014,7 @@ void MainWindow::validateEntries()
|
|||||||
label->setMaximumHeight(20);
|
label->setMaximumHeight(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->verticalLayout2->addWidget(new BuchungStrip(endBuchung.id, endBuchung.time, endBuchung.type, m_settings, ui->scrollAreaWidgetContents));
|
ui->verticalLayout2->addWidget(new BookingStrip(endBooking.id, endBooking.time, endBooking.type, m_settings, ui->scrollAreaWidgetContents));
|
||||||
|
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
@@ -1037,11 +1037,11 @@ void MainWindow::validateEntries()
|
|||||||
|
|
||||||
if(timeAssignment.timespan == QTime(0, 0))
|
if(timeAssignment.timespan == QTime(0, 0))
|
||||||
{
|
{
|
||||||
if(buchungenIter != m_buchungenModel->constEnd())
|
if(bookingsIter != m_bookingsModel->constEnd())
|
||||||
{
|
{
|
||||||
errorMessage = tr("There is another Buchung after an unfinished time assignment.\n"
|
errorMessage = tr("There is another booking after an unfinished time assignment.\n"
|
||||||
"Buchung ID: %0\nTime assignment ID: %1")
|
"Booking ID: %0\nTime assignment ID: %1")
|
||||||
.arg(buchungenIter->id)
|
.arg(bookingsIter->id)
|
||||||
.arg(timeAssignment.id);
|
.arg(timeAssignment.id);
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
@@ -1065,11 +1065,11 @@ void MainWindow::validateEntries()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(m_timeAssignmentTime > buchungTimespan)
|
if(m_timeAssignmentTime > bookingTimespan)
|
||||||
{
|
{
|
||||||
errorMessage = tr("Time assignment time longer than Buchung time! Time assignment: %0 Buchung: %1")
|
errorMessage = tr("Time assignment time longer than booking time! Time assignment: %0 Booking: %1")
|
||||||
.arg(m_timeAssignmentTime.toString("HH:mm:ss"))
|
.arg(m_timeAssignmentTime.toString("HH:mm:ss"))
|
||||||
.arg(buchungTimespan.toString("HH:mm:ss"));
|
.arg(bookingTimespan.toString("HH:mm:ss"));
|
||||||
|
|
||||||
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
||||||
ui->verticalLayout2->addWidget(label);
|
ui->verticalLayout2->addWidget(label);
|
||||||
@@ -1077,9 +1077,9 @@ void MainWindow::validateEntries()
|
|||||||
label->setMaximumHeight(20);
|
label->setMaximumHeight(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->verticalLayout2->addWidget(new BuchungStrip(endBuchung.id, endBuchung.time, endBuchung.type, m_settings, ui->scrollAreaWidgetContents));
|
ui->verticalLayout2->addWidget(new BookingStrip(endBooking.id, endBooking.time, endBooking.type, m_settings, ui->scrollAreaWidgetContents));
|
||||||
|
|
||||||
if(m_timeAssignmentTime > buchungTimespan)
|
if(m_timeAssignmentTime > bookingTimespan)
|
||||||
goto after;
|
goto after;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1100,8 +1100,7 @@ void MainWindow::validateEntries()
|
|||||||
|
|
||||||
if(!errorMessage.isEmpty())
|
if(!errorMessage.isEmpty())
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, tr("Illegal state!"), tr("Your Buchungen and time assignments for this day are in an invalid state:\n\n%0")
|
QMessageBox::warning(this, tr("Illegal state!"), tr("Your bookings and time assignments for this day are in an illegal state!") % "\n\n" % errorMessage);
|
||||||
.arg(errorMessage));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@ class QLabel;
|
|||||||
|
|
||||||
namespace Ui { class MainWindow; }
|
namespace Ui { class MainWindow; }
|
||||||
class ZeiterfassungSettings;
|
class ZeiterfassungSettings;
|
||||||
class BuchungenModel;
|
class BookingsModel;
|
||||||
class TimeAssignmentsModel;
|
class TimeAssignmentsModel;
|
||||||
|
|
||||||
class MainWindow : public QMainWindow
|
class MainWindow : public QMainWindow
|
||||||
@@ -30,9 +30,9 @@ private Q_SLOTS:
|
|||||||
void refresh(bool forceAuswertung = false);
|
void refresh(bool forceAuswertung = false);
|
||||||
void getProjekctsFinished(bool success, const QString &message, const QVector<Zeiterfassung::Project> &projects);
|
void getProjekctsFinished(bool success, const QString &message, const QVector<Zeiterfassung::Project> &projects);
|
||||||
void getAuswertungFinished(bool success, const QString &message, const QByteArray &content);
|
void getAuswertungFinished(bool success, const QString &message, const QByteArray &content);
|
||||||
void refreshBuchungenFinished(bool success, const QString &message);
|
void refreshBookingsFinished(bool success, const QString &message);
|
||||||
void refreshTimeAssignmentsFinished(bool success, const QString &message);
|
void refreshTimeAssignmentsFinished(bool success, const QString &message);
|
||||||
void contextMenuBuchung(const QPoint &pos);
|
void contextMenuBooking(const QPoint &pos);
|
||||||
void contextMenuTimeAssignment(const QPoint &pos);
|
void contextMenuTimeAssignment(const QPoint &pos);
|
||||||
void pushButtonStartPressed();
|
void pushButtonStartPressed();
|
||||||
void pushButtonEndPressed();
|
void pushButtonEndPressed();
|
||||||
@@ -55,7 +55,7 @@ private:
|
|||||||
QLabel *m_balanceLabel;
|
QLabel *m_balanceLabel;
|
||||||
QLabel *m_holidaysLabel;
|
QLabel *m_holidaysLabel;
|
||||||
|
|
||||||
BuchungenModel *m_buchungenModel;
|
BookingsModel *m_bookingsModel;
|
||||||
TimeAssignmentsModel *m_timeAssignmentsModel;
|
TimeAssignmentsModel *m_timeAssignmentsModel;
|
||||||
|
|
||||||
bool m_flag;
|
bool m_flag;
|
||||||
|
@@ -213,13 +213,13 @@
|
|||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Advanced view</string>
|
<string>Advanced view</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="QGroupBox" name="groupBoxBuchungen">
|
<widget class="QGroupBox" name="groupBoxBookings">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Buchungen</string>
|
<string>Bookings</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTreeView" name="treeViewBuchungen">
|
<widget class="QTreeView" name="treeViewBookings">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
106
models/bookingsmodel.cpp
Normal file
106
models/bookingsmodel.cpp
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
#include "bookingsmodel.h"
|
||||||
|
|
||||||
|
BookingsModel::BookingsModel(Zeiterfassung &erfassung, QObject *parent) :
|
||||||
|
QAbstractListModel(parent),
|
||||||
|
m_erfassung(erfassung)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int BookingsModel::rowCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(parent)
|
||||||
|
|
||||||
|
return m_bookings.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
int BookingsModel::columnCount(const QModelIndex &parent) const
|
||||||
|
{
|
||||||
|
Q_UNUSED(parent)
|
||||||
|
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant BookingsModel::data(const QModelIndex &index, int role) const
|
||||||
|
{
|
||||||
|
Q_ASSERT(index.row() < m_bookings.count());
|
||||||
|
const auto &booking = m_bookings.at(index.row());
|
||||||
|
|
||||||
|
switch(role)
|
||||||
|
{
|
||||||
|
case Qt::DisplayRole:
|
||||||
|
case Qt::EditRole:
|
||||||
|
switch(index.column())
|
||||||
|
{
|
||||||
|
case 0: return booking.id;
|
||||||
|
case 1: return booking.time;
|
||||||
|
case 2: return booking.timespan;
|
||||||
|
case 3: return booking.type;
|
||||||
|
case 4: return booking.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant BookingsModel::headerData(int section, Qt::Orientation orientation, int role) const
|
||||||
|
{
|
||||||
|
switch(orientation)
|
||||||
|
{
|
||||||
|
case Qt::Horizontal:
|
||||||
|
switch(role)
|
||||||
|
{
|
||||||
|
case Qt::DisplayRole:
|
||||||
|
case Qt::EditRole:
|
||||||
|
switch(section)
|
||||||
|
{
|
||||||
|
case 0: return tr("ID");
|
||||||
|
case 1: return tr("Time");
|
||||||
|
case 2: return tr("Timespan");
|
||||||
|
case 3: return tr("Type");
|
||||||
|
case 4: return tr("Text");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
|
||||||
|
Zeiterfassung::Booking BookingsModel::getBooking(const QModelIndex &index) const
|
||||||
|
{
|
||||||
|
if(!index.isValid())
|
||||||
|
return Zeiterfassung::Booking();
|
||||||
|
|
||||||
|
Q_ASSERT(index.row() <= m_bookings.count());
|
||||||
|
return m_bookings.at(index.row());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BookingsModel::refresh(int userId, const QDate &from, const QDate &to)
|
||||||
|
{
|
||||||
|
if(!m_erfassung.doGetBookings(userId, from, to))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
beginResetModel();
|
||||||
|
m_bookings.clear();
|
||||||
|
endResetModel();
|
||||||
|
|
||||||
|
connect(&m_erfassung, &Zeiterfassung::getBookingsFinished,
|
||||||
|
this, &BookingsModel::getBookingsFinished);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BookingsModel::getBookingsFinished(bool success, const QString &message, const QVector<Zeiterfassung::Booking> &bookings)
|
||||||
|
{
|
||||||
|
disconnect(&m_erfassung, &Zeiterfassung::getBookingsFinished,
|
||||||
|
this, &BookingsModel::getBookingsFinished);
|
||||||
|
|
||||||
|
if(success)
|
||||||
|
{
|
||||||
|
beginResetModel();
|
||||||
|
m_bookings = bookings;
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_EMIT refreshFinished(success, message);
|
||||||
|
}
|
@@ -1,17 +1,17 @@
|
|||||||
#ifndef BUCHUNGENMODEL_H
|
#ifndef BOOKINGSMODEL_H
|
||||||
#define BUCHUNGENMODEL_H
|
#define BOOKINGSMODEL_H
|
||||||
|
|
||||||
#include <QAbstractListModel>
|
#include <QAbstractListModel>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
#include "zeiterfassung.h"
|
#include "zeiterfassung.h"
|
||||||
|
|
||||||
class BuchungenModel : public QAbstractListModel
|
class BookingsModel : public QAbstractListModel
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit BuchungenModel(Zeiterfassung &erfassung, QObject *parent = nullptr);
|
explicit BookingsModel(Zeiterfassung &erfassung, QObject *parent = nullptr);
|
||||||
|
|
||||||
// QAbstractItemModel interface
|
// QAbstractItemModel interface
|
||||||
int rowCount(const QModelIndex &parent) const Q_DECL_OVERRIDE;
|
int rowCount(const QModelIndex &parent) const Q_DECL_OVERRIDE;
|
||||||
@@ -19,50 +19,50 @@ public:
|
|||||||
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
||||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const Q_DECL_OVERRIDE;
|
QVariant headerData(int section, Qt::Orientation orientation, int role) const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
Zeiterfassung::Buchung getBuchung(const QModelIndex &index) const;
|
Zeiterfassung::Booking getBooking(const QModelIndex &index) const;
|
||||||
|
|
||||||
bool refresh(int userId, const QDate &from, const QDate &to);
|
bool refresh(int userId, const QDate &from, const QDate &to);
|
||||||
|
|
||||||
typedef QVector<Zeiterfassung::Buchung>::iterator iterator;
|
typedef QVector<Zeiterfassung::Booking>::iterator iterator;
|
||||||
typedef QVector<Zeiterfassung::Buchung>::const_iterator const_iterator;
|
typedef QVector<Zeiterfassung::Booking>::const_iterator const_iterator;
|
||||||
typedef QVector<Zeiterfassung::Buchung>::reverse_iterator reverse_iterator;
|
typedef QVector<Zeiterfassung::Booking>::reverse_iterator reverse_iterator;
|
||||||
typedef QVector<Zeiterfassung::Buchung>::const_reverse_iterator const_reverse_iterator;
|
typedef QVector<Zeiterfassung::Booking>::const_reverse_iterator const_reverse_iterator;
|
||||||
|
|
||||||
#if !defined(QT_STRICT_ITERATORS) || defined(Q_QDOC)
|
#if !defined(QT_STRICT_ITERATORS) || defined(Q_QDOC)
|
||||||
//inline iterator begin() { return m_buchungen.begin(); }
|
//inline iterator begin() { return m_bookings.begin(); }
|
||||||
inline const_iterator begin() const Q_DECL_NOTHROW { return m_buchungen.begin(); }
|
inline const_iterator begin() const Q_DECL_NOTHROW { return m_bookings.begin(); }
|
||||||
inline const_iterator cbegin() const Q_DECL_NOTHROW { return m_buchungen.cbegin(); }
|
inline const_iterator cbegin() const Q_DECL_NOTHROW { return m_bookings.cbegin(); }
|
||||||
inline const_iterator constBegin() const Q_DECL_NOTHROW { return m_buchungen.constBegin(); }
|
inline const_iterator constBegin() const Q_DECL_NOTHROW { return m_bookings.constBegin(); }
|
||||||
//inline iterator end() { return m_buchungen.end(); }
|
//inline iterator end() { return m_bookings.end(); }
|
||||||
inline const_iterator end() const Q_DECL_NOTHROW { return m_buchungen.end(); }
|
inline const_iterator end() const Q_DECL_NOTHROW { return m_bookings.end(); }
|
||||||
inline const_iterator cend() const Q_DECL_NOTHROW { return m_buchungen.cend(); }
|
inline const_iterator cend() const Q_DECL_NOTHROW { return m_bookings.cend(); }
|
||||||
inline const_iterator constEnd() const Q_DECL_NOTHROW { return m_buchungen.constEnd(); }
|
inline const_iterator constEnd() const Q_DECL_NOTHROW { return m_bookings.constEnd(); }
|
||||||
#else
|
#else
|
||||||
//inline iterator begin(iterator = iterator()) { return m_buchungen.begin(); }
|
//inline iterator begin(iterator = iterator()) { return m_bookings.begin(); }
|
||||||
inline const_iterator begin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.begin(); }
|
inline const_iterator begin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.begin(); }
|
||||||
inline const_iterator cbegin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return d->constBegin(); }
|
inline const_iterator cbegin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return d->constBegin(); }
|
||||||
inline const_iterator constBegin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.constBegin(); }
|
inline const_iterator constBegin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.constBegin(); }
|
||||||
//inline iterator end(iterator = iterator()) { return m_buchungen.end(); }
|
//inline iterator end(iterator = iterator()) { return m_bookings.end(); }
|
||||||
inline const_iterator end(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.end(); }
|
inline const_iterator end(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.end(); }
|
||||||
inline const_iterator cend(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.cend(); }
|
inline const_iterator cend(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.cend(); }
|
||||||
inline const_iterator constEnd(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.constEnd(); }
|
inline const_iterator constEnd(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.constEnd(); }
|
||||||
#endif
|
#endif
|
||||||
//reverse_iterator rbegin() { return m_buchungen.rbegin(); }
|
//reverse_iterator rbegin() { return m_bookings.rbegin(); }
|
||||||
//reverse_iterator rend() { return m_buchungen.rbegin(); }
|
//reverse_iterator rend() { return m_bookings.rbegin(); }
|
||||||
const_reverse_iterator rbegin() const Q_DECL_NOTHROW { return m_buchungen.rbegin(); }
|
const_reverse_iterator rbegin() const Q_DECL_NOTHROW { return m_bookings.rbegin(); }
|
||||||
const_reverse_iterator rend() const Q_DECL_NOTHROW { return m_buchungen.rend(); }
|
const_reverse_iterator rend() const Q_DECL_NOTHROW { return m_bookings.rend(); }
|
||||||
const_reverse_iterator crbegin() const Q_DECL_NOTHROW { return m_buchungen.crbegin(); }
|
const_reverse_iterator crbegin() const Q_DECL_NOTHROW { return m_bookings.crbegin(); }
|
||||||
const_reverse_iterator crend() const Q_DECL_NOTHROW { return m_buchungen.crend(); }
|
const_reverse_iterator crend() const Q_DECL_NOTHROW { return m_bookings.crend(); }
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void refreshFinished(bool success, const QString &message);
|
void refreshFinished(bool success, const QString &message);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void getBuchungenFinished(bool success, const QString &message, const QVector<Zeiterfassung::Buchung> &buchungen);
|
void getBookingsFinished(bool success, const QString &message, const QVector<Zeiterfassung::Booking> &bookings);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Zeiterfassung &m_erfassung;
|
Zeiterfassung &m_erfassung;
|
||||||
QVector<Zeiterfassung::Buchung> m_buchungen;
|
QVector<Zeiterfassung::Booking> m_bookings;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // BUCHUNGENMODEL_H
|
#endif // BOOKINGSMODEL_H
|
@@ -1,106 +0,0 @@
|
|||||||
#include "buchungenmodel.h"
|
|
||||||
|
|
||||||
BuchungenModel::BuchungenModel(Zeiterfassung &erfassung, QObject *parent) :
|
|
||||||
QAbstractListModel(parent),
|
|
||||||
m_erfassung(erfassung)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int BuchungenModel::rowCount(const QModelIndex &parent) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(parent)
|
|
||||||
|
|
||||||
return m_buchungen.count();
|
|
||||||
}
|
|
||||||
|
|
||||||
int BuchungenModel::columnCount(const QModelIndex &parent) const
|
|
||||||
{
|
|
||||||
Q_UNUSED(parent)
|
|
||||||
|
|
||||||
return 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant BuchungenModel::data(const QModelIndex &index, int role) const
|
|
||||||
{
|
|
||||||
Q_ASSERT(index.row() < m_buchungen.count());
|
|
||||||
const auto &buchung = m_buchungen.at(index.row());
|
|
||||||
|
|
||||||
switch(role)
|
|
||||||
{
|
|
||||||
case Qt::DisplayRole:
|
|
||||||
case Qt::EditRole:
|
|
||||||
switch(index.column())
|
|
||||||
{
|
|
||||||
case 0: return buchung.id;
|
|
||||||
case 1: return buchung.time;
|
|
||||||
case 2: return buchung.timespan;
|
|
||||||
case 3: return buchung.type;
|
|
||||||
case 4: return buchung.text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return QVariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant BuchungenModel::headerData(int section, Qt::Orientation orientation, int role) const
|
|
||||||
{
|
|
||||||
switch(orientation)
|
|
||||||
{
|
|
||||||
case Qt::Horizontal:
|
|
||||||
switch(role)
|
|
||||||
{
|
|
||||||
case Qt::DisplayRole:
|
|
||||||
case Qt::EditRole:
|
|
||||||
switch(section)
|
|
||||||
{
|
|
||||||
case 0: return tr("ID");
|
|
||||||
case 1: return tr("Time");
|
|
||||||
case 2: return tr("Timespan");
|
|
||||||
case 3: return tr("Type");
|
|
||||||
case 4: return tr("Text");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return QVariant();
|
|
||||||
}
|
|
||||||
|
|
||||||
Zeiterfassung::Buchung BuchungenModel::getBuchung(const QModelIndex &index) const
|
|
||||||
{
|
|
||||||
if(!index.isValid())
|
|
||||||
return Zeiterfassung::Buchung();
|
|
||||||
|
|
||||||
Q_ASSERT(index.row() <= m_buchungen.count());
|
|
||||||
return m_buchungen.at(index.row());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool BuchungenModel::refresh(int userId, const QDate &from, const QDate &to)
|
|
||||||
{
|
|
||||||
if(!m_erfassung.doGetBuchungen(userId, from, to))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
beginResetModel();
|
|
||||||
m_buchungen.clear();
|
|
||||||
endResetModel();
|
|
||||||
|
|
||||||
connect(&m_erfassung, &Zeiterfassung::getBuchungenFinished,
|
|
||||||
this, &BuchungenModel::getBuchungenFinished);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BuchungenModel::getBuchungenFinished(bool success, const QString &message, const QVector<Zeiterfassung::Buchung> &buchungen)
|
|
||||||
{
|
|
||||||
disconnect(&m_erfassung, &Zeiterfassung::getBuchungenFinished,
|
|
||||||
this, &BuchungenModel::getBuchungenFinished);
|
|
||||||
|
|
||||||
if(success)
|
|
||||||
{
|
|
||||||
beginResetModel();
|
|
||||||
m_buchungen = buchungen;
|
|
||||||
endResetModel();
|
|
||||||
}
|
|
||||||
|
|
||||||
Q_EMIT refreshFinished(success, message);
|
|
||||||
}
|
|
@@ -1,14 +1,14 @@
|
|||||||
#include "buchungstrip.h"
|
#include "bookingstrip.h"
|
||||||
#include "ui_buchungstrip.h"
|
#include "ui_bookingstrip.h"
|
||||||
|
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
|
|
||||||
#include "zeiterfassungsettings.h"
|
#include "zeiterfassungsettings.h"
|
||||||
|
|
||||||
BuchungStrip::BuchungStrip(int id, const QTime &time, const QString &type, const ZeiterfassungSettings &settings, QWidget *parent) :
|
BookingStrip::BookingStrip(int id, const QTime &time, const QString &type, const ZeiterfassungSettings &settings, QWidget *parent) :
|
||||||
QFrame(parent),
|
QFrame(parent),
|
||||||
ui(new Ui::BuchungStrip)
|
ui(new Ui::BookingStrip)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -18,24 +18,24 @@ BuchungStrip::BuchungStrip(int id, const QTime &time, const QString &type, const
|
|||||||
ui->labelTime->setText(time.toString(QStringLiteral("HH:mm")));
|
ui->labelTime->setText(time.toString(QStringLiteral("HH:mm")));
|
||||||
if(type == QStringLiteral("K"))
|
if(type == QStringLiteral("K"))
|
||||||
{
|
{
|
||||||
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.buchungStartBackgroundColor()));
|
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.bookingStartBackgroundColor()));
|
||||||
ui->labelType->setText(tr("START"));
|
ui->labelType->setText(tr("START"));
|
||||||
}
|
}
|
||||||
else if(type == QStringLiteral("G"))
|
else if(type == QStringLiteral("G"))
|
||||||
{
|
{
|
||||||
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.buchungEndBackgroundColor()));
|
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.bookingEndBackgroundColor()));
|
||||||
ui->labelType->setText(tr("END"));
|
ui->labelType->setText(tr("END"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.buchungOtherBackgroundColor()));
|
setStyleSheet(QStringLiteral("%0 { background-color: %1; }").arg(staticMetaObject.className()).arg(settings.bookingOtherBackgroundColor()));
|
||||||
ui->labelType->setText(tr("UNKNOWN"));
|
ui->labelType->setText(tr("UNKNOWN"));
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->labelId->setText(QString::number(id));
|
ui->labelId->setText(QString::number(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
BuchungStrip::~BuchungStrip()
|
BookingStrip::~BookingStrip()
|
||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
23
strips/bookingstrip.h
Normal file
23
strips/bookingstrip.h
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#ifndef BOOKINGSTRIP_H
|
||||||
|
#define BOOKINGSTRIP_H
|
||||||
|
|
||||||
|
#include <QFrame>
|
||||||
|
|
||||||
|
class QTime;
|
||||||
|
|
||||||
|
class ZeiterfassungSettings;
|
||||||
|
namespace Ui { class BookingStrip; }
|
||||||
|
|
||||||
|
class BookingStrip : public QFrame
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit BookingStrip(int id, const QTime &time, const QString &type, const ZeiterfassungSettings &settings, QWidget *parent = 0);
|
||||||
|
~BookingStrip();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::BookingStrip *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BOOKINGSTRIP_H
|
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>BuchungStrip</class>
|
<class>BookingStrip</class>
|
||||||
<widget class="QFrame" name="BuchungStrip">
|
<widget class="QFrame" name="BookingStrip">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
@@ -1,23 +0,0 @@
|
|||||||
#ifndef BUCHUNGSTRIP_H
|
|
||||||
#define BUCHUNGSTRIP_H
|
|
||||||
|
|
||||||
#include <QFrame>
|
|
||||||
|
|
||||||
class QTime;
|
|
||||||
|
|
||||||
class ZeiterfassungSettings;
|
|
||||||
namespace Ui { class BuchungStrip; }
|
|
||||||
|
|
||||||
class BuchungStrip : public QFrame
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit BuchungStrip(int id, const QTime &time, const QString &type, const ZeiterfassungSettings &settings, QWidget *parent = 0);
|
|
||||||
~BuchungStrip();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::BuchungStrip *ui;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // BUCHUNGSTRIP_H
|
|
Binary file not shown.
@@ -4,26 +4,33 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>AboutMeDialog</name>
|
<name>AboutMeDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="31"/>
|
||||||
<source>About me</source>
|
<source>About me</source>
|
||||||
<translation>Über mich</translation>
|
<translation>Über mich</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="40"/>
|
||||||
<source>User-ID:</source>
|
<source>User-ID:</source>
|
||||||
<translation>Benutzer-ID:</translation>
|
<translation>Benutzer-ID:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="50"/>
|
||||||
<source>E-Mail:</source>
|
<source>E-Mail:</source>
|
||||||
<translation>E-Mail:</translation>
|
<translation>E-Mail:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="60"/>
|
||||||
<source>Long username:</source>
|
<source>Long username:</source>
|
||||||
<translation>Langer Benutzername:</translation>
|
<translation>Langer Benutzername:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="70"/>
|
||||||
<source>Text:</source>
|
<source>Text:</source>
|
||||||
<translation>Text:</translation>
|
<translation>Text:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="80"/>
|
||||||
<source>Username:</source>
|
<source>Username:</source>
|
||||||
<translation>Benutzername:</translation>
|
<translation>Benutzername:</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -31,75 +38,93 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>AuthenticationDialog</name>
|
<name>AuthenticationDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="55"/>
|
||||||
<source>Authentication</source>
|
<source>Authentication</source>
|
||||||
<translation>Authentifizierung</translation>
|
<translation>Authentifizierung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="66"/>
|
||||||
<source>Username:</source>
|
<source>Username:</source>
|
||||||
<translation>Benutzername:</translation>
|
<translation>Benutzername:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="76"/>
|
||||||
<source>Password:</source>
|
<source>Password:</source>
|
||||||
<translation>Passwort:</translation>
|
<translation>Passwort:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungDialog</name>
|
<name>BookingDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Buchung</source>
|
<location filename="../dialogs/bookingdialog.ui" line="20"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../dialogs/bookingdialog.ui" line="31"/>
|
||||||
|
<source>Booking</source>
|
||||||
|
<translation>Buchung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="40"/>
|
||||||
<source>Time:</source>
|
<source>Time:</source>
|
||||||
<translation>Zeit:</translation>
|
<translation>Zeit:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="50"/>
|
||||||
<source>Timespan:</source>
|
<source>Timespan:</source>
|
||||||
<translation>Zeitspanne:</translation>
|
<translation>Zeitspanne:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="60"/>
|
||||||
<source>Type:</source>
|
<source>Type:</source>
|
||||||
<translation>Typ:</translation>
|
<translation>Typ:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="70"/>
|
||||||
<source>Text:</source>
|
<source>Text:</source>
|
||||||
<translation>Text:</translation>
|
<translation>Text:</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungStrip</name>
|
<name>BookingStrip</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="22"/>
|
||||||
<source>START</source>
|
<source>START</source>
|
||||||
<translation>KOMMEN</translation>
|
<translation>KOMMEN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="27"/>
|
||||||
<source>END</source>
|
<source>END</source>
|
||||||
<translation>GEHEN</translation>
|
<translation>GEHEN</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="32"/>
|
||||||
<source>UNKNOWN</source>
|
<source>UNKNOWN</source>
|
||||||
<translation>UNBEKANNT</translation>
|
<translation>UNBEKANNT</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungenModel</name>
|
<name>BookingsModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="57"/>
|
||||||
<source>ID</source>
|
<source>ID</source>
|
||||||
<translation>ID</translation>
|
<translation>ID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="58"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Zeit</translation>
|
<translation>Zeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="59"/>
|
||||||
<source>Timespan</source>
|
<source>Timespan</source>
|
||||||
<translation>Zeitspanne</translation>
|
<translation>Zeitspanne</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="60"/>
|
||||||
<source>Type</source>
|
<source>Type</source>
|
||||||
<translation>Typ</translation>
|
<translation>Typ</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="61"/>
|
||||||
<source>Text</source>
|
<source>Text</source>
|
||||||
<translation>Text</translation>
|
<translation>Text</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -107,22 +132,28 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>LanguageSelectionDialog</name>
|
<name>LanguageSelectionDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="31"/>
|
||||||
<source>Language selection</source>
|
<source>Language selection</source>
|
||||||
<translation>Sprachauswahl</translation>
|
<translation>Sprachauswahl</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="38"/>
|
||||||
<source>Please select a language:</source>
|
<source>Please select a language:</source>
|
||||||
<translation>Bitte wählen sie eine Sprache:</translation>
|
<translation>Bitte wählen Sie eine Sprache:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="47"/>
|
||||||
<source>Language:</source>
|
<source>Language:</source>
|
||||||
<translation>Sprache:</translation>
|
<translation>Sprache:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.cpp" line="10"/>
|
||||||
<source>English</source>
|
<source>English</source>
|
||||||
<translation>Englisch</translation>
|
<translation>Englisch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.cpp" line="11"/>
|
||||||
<source>German</source>
|
<source>German</source>
|
||||||
<translation>Deutsch</translation>
|
<translation>Deutsch</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -130,333 +161,447 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="146"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="829"/>
|
||||||
<source>Start</source>
|
<source>Start</source>
|
||||||
<translation>Kommen</translation>
|
<translation>Kommen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="169"/>
|
||||||
<source>End</source>
|
<source>End</source>
|
||||||
<translation>Gehen</translation>
|
<translation>Gehen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="191"/>
|
||||||
<source>Optimized view</source>
|
<source>Optimized view</source>
|
||||||
<translation>Optimierte Anzeige</translation>
|
<translation>Optimierte Anzeige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="214"/>
|
||||||
<source>Advanced view</source>
|
<source>Advanced view</source>
|
||||||
<translation>Erweiterte Anzeige</translation>
|
<translation>Erweiterte Anzeige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Buchungen</source>
|
<location filename="../mainwindow.ui" line="218"/>
|
||||||
<translation type="unfinished"></translation>
|
<source>Bookings</source>
|
||||||
|
<translation>Buchungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="235"/>
|
||||||
<source>Time assignments</source>
|
<source>Time assignments</source>
|
||||||
<translation>Kontierungen</translation>
|
<translation>Kontierungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="266"/>
|
||||||
<source>&File</source>
|
<source>&File</source>
|
||||||
<translation>&Datei</translation>
|
<translation>&Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="272"/>
|
||||||
<source>&About</source>
|
<source>&About</source>
|
||||||
<translation>&Über</translation>
|
<translation>&Über</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="282"/>
|
||||||
<source>&View</source>
|
<source>&View</source>
|
||||||
<translation>&Ansicht</translation>
|
<translation>&Ansicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="289"/>
|
||||||
<source>&Tools</source>
|
<source>&Tools</source>
|
||||||
<translation>&Werkzeuge</translation>
|
<translation>&Werkzeuge</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="305"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation>&Beenden</translation>
|
<translation>&Beenden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="310"/>
|
||||||
<source>About &Me</source>
|
<source>About &Me</source>
|
||||||
<translation>Über &mich</translation>
|
<translation>Über &mich</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="315"/>
|
||||||
<source>About &zeiterfassung</source>
|
<source>About &zeiterfassung</source>
|
||||||
<translation>Über &zeiterfassung</translation>
|
<translation>Über &zeiterfassung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="320"/>
|
||||||
<source>About &Qt</source>
|
<source>About &Qt</source>
|
||||||
<translation>Über &Qt</translation>
|
<translation>Über &Qt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="332"/>
|
||||||
<source>&Today</source>
|
<source>&Today</source>
|
||||||
<translation>&Heute</translation>
|
<translation>&Heute</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="344"/>
|
||||||
<source>&Refresh</source>
|
<source>&Refresh</source>
|
||||||
<translation>&Aktualisieren</translation>
|
<translation>&Aktualisieren</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="352"/>
|
||||||
<source>&Auswertung</source>
|
<source>&Auswertung</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="357"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation>&Einstellungen</translation>
|
<translation>&Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="40"/>
|
||||||
<source>Zeiterfassung - %0 (%1)</source>
|
<source>Zeiterfassung - %0 (%1)</source>
|
||||||
<translation>Zeiterfassung - %0 (%1)</translation>
|
<translation>Zeiterfassung - %0 (%1)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="54"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="63"/>
|
||||||
<source>Could not open auswertung!</source>
|
<source>Could not open auswertung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="63"/>
|
||||||
<source>Could not open default PDF viewer!</source>
|
<source>Could not open default PDF viewer!</source>
|
||||||
<translation>Konnte das PDF-Anzeigeprogramm nicht öffnen!</translation>
|
<translation>Konnte den PDF-Anzeiger nicht öffnen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="87"/>
|
||||||
|
<source>Subproject</source>
|
||||||
|
<translation>Subprojekt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="88"/>
|
||||||
<source>Workpackage</source>
|
<source>Workpackage</source>
|
||||||
<translation>Arbeitspaket</translation>
|
<translation>Arbeitspaket</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="89"/>
|
||||||
<source>Text</source>
|
<source>Text</source>
|
||||||
<translation>Text</translation>
|
<translation>Text</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="279"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="280"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="873"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
<source>%0: %1</source>
|
<source>%0: %1</source>
|
||||||
<translation>%0: %1</translation>
|
<translation>%0: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
|
<source>Assigned time</source>
|
||||||
|
<translation>Kontierte Zeit</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="251"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="252"/>
|
||||||
<source>???</source>
|
<source>???</source>
|
||||||
<translation>???</translation>
|
<translation>???</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unknown error occured.</source>
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../mainwindow.cpp" line="279"/>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>An unknown error occured.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Balance</source>
|
<source>Balance</source>
|
||||||
<translation>Saldo</translation>
|
<translation>Saldo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="280"/>
|
||||||
<source>Holidays</source>
|
<source>Holidays</source>
|
||||||
<translation>Urlaubsanspruch</translation>
|
<translation>Urlaubstage</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not load Buchungen!</source>
|
<location filename="../mainwindow.cpp" line="224"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../mainwindow.cpp" line="297"/>
|
||||||
|
<source>Could not load bookings!</source>
|
||||||
|
<translation>Konnte Buchungen nicht laden!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="244"/>
|
||||||
<source>Could not load Auswertung!</source>
|
<source>Could not load Auswertung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="273"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="875"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
<source>%0h</source>
|
<source>%0h</source>
|
||||||
<translation>%0h</translation>
|
<translation>%0h</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not refresh Buchungen!</source>
|
<location filename="../mainwindow.cpp" line="889"/>
|
||||||
|
<source>Missing time assignment!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not refresh time assignments!</source>
|
<location filename="../mainwindow.cpp" line="1007"/>
|
||||||
<translation>Konnte Kontierungen nicht aktualisieren!</translation>
|
<source>Missing time assignment! Missing: %0h</source>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Edit</source>
|
|
||||||
<translation>Bearbeiten</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation>Löschen</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not update Buchung!</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not delete Buchung!</source>
|
<location filename="../mainwindow.cpp" line="178"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../mainwindow.cpp" line="212"/>
|
||||||
|
<source>Unknown error occured!</source>
|
||||||
|
<translation>Unbekannter Fehler aufgetreten!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Create</source>
|
<location filename="../mainwindow.cpp" line="314"/>
|
||||||
<translation>Erstellen</translation>
|
<source>Could not load time assignments!</source>
|
||||||
|
<translation>Konnte Kontierungen nicht laden!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not create Buchung!</source>
|
<location filename="../mainwindow.cpp" line="435"/>
|
||||||
<translation type="unfinished"></translation>
|
<source>Could not delete booking!</source>
|
||||||
|
<translation>Konnte Buchung nicht löschen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not update time assignment!</source>
|
<location filename="../mainwindow.cpp" line="326"/>
|
||||||
|
<source>Edit booking</source>
|
||||||
|
<translation>Buchung bearbeiten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="327"/>
|
||||||
|
<source>Delete booking</source>
|
||||||
|
<translation>Buchung löschen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="382"/>
|
||||||
|
<source>Could not edit booking!</source>
|
||||||
|
<translation>Konnte Buchung nicht bearbeiten!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="442"/>
|
||||||
|
<source>Create booking</source>
|
||||||
|
<translation>Buchung erstellen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="494"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="715"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="787"/>
|
||||||
|
<source>Could not create booking!</source>
|
||||||
|
<translation>Konnte Buchung nicht erstellen!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="511"/>
|
||||||
|
<source>Edit time assignment</source>
|
||||||
|
<translation>Kontierung bearbeiten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="512"/>
|
||||||
|
<source>Delete time assignment</source>
|
||||||
|
<translation>Kontierung löschen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="575"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="741"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="812"/>
|
||||||
|
<source>Could not edit time assignment!</source>
|
||||||
<translation>Konnte Kontierung nicht bearbeiten!</translation>
|
<translation>Konnte Kontierung nicht bearbeiten!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="628"/>
|
||||||
<source>Could not delete time assignment!</source>
|
<source>Could not delete time assignment!</source>
|
||||||
<translation>Konnte Kontierung nicht löschen!</translation>
|
<translation>Konnte Kontierung nicht löschen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="635"/>
|
||||||
|
<source>Create time assignment</source>
|
||||||
|
<translation>Kontierung erstellen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="692"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="759"/>
|
||||||
<source>Could not create time assignment!</source>
|
<source>Could not create time assignment!</source>
|
||||||
<translation>Konnte Kontierung nicht erstellen!</translation>
|
<translation>Konnte Kontierung nicht erstellen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing Buchung.</source>
|
<location filename="../mainwindow.cpp" line="858"/>
|
||||||
<translation type="unfinished"></translation>
|
<source>Missing booking!</source>
|
||||||
</message>
|
<translation>Kontierung fehlend!</translation>
|
||||||
<message>
|
</message>
|
||||||
<source>Expected start Buchung, instead got type %0
|
<message>
|
||||||
Buchung ID: %1</source>
|
<location filename="../mainwindow.cpp" line="865"/>
|
||||||
|
<source>Expected start booking, instead got type %0
|
||||||
|
Booking ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="874"/>
|
||||||
<source>Break</source>
|
<source>Break</source>
|
||||||
<translation>Pause</translation>
|
<translation>Pause</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing time assignment.</source>
|
<location filename="../mainwindow.cpp" line="896"/>
|
||||||
<translation>Kontierung fehlend.</translation>
|
<location filename="../mainwindow.cpp" line="951"/>
|
||||||
</message>
|
<location filename="../mainwindow.cpp" line="1025"/>
|
||||||
<message>
|
|
||||||
<source>Expected %0 but received %1 in time assignment.
|
<source>Expected %0 but received %1 in time assignment.
|
||||||
Time assignment ID: %2</source>
|
Time assignment ID: %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is another Buchung after an unfinished time assignment.
|
<location filename="../mainwindow.cpp" line="913"/>
|
||||||
Buchung ID: %0
|
<location filename="../mainwindow.cpp" line="1042"/>
|
||||||
|
<source>There is another booking after an unfinished time assignment.
|
||||||
|
Booking ID: %0
|
||||||
Time assignment ID: %1</source>
|
Time assignment ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="921"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="968"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1051"/>
|
||||||
<source>There is another time assignment after an unfinished time assignment.
|
<source>There is another time assignment after an unfinished time assignment.
|
||||||
Time assignment ID: %0
|
Time assignment ID: %0
|
||||||
Time assignment ID: %1</source>
|
Time assignment ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="928"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="976"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1058"/>
|
||||||
<source>Switch</source>
|
<source>Switch</source>
|
||||||
<translation>Wechseln</translation>
|
<translation>Wechseln</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The last time assignment is finished without end Buchung
|
<location filename="../mainwindow.cpp" line="943"/>
|
||||||
|
<source>The last time assignment is finished without end booking
|
||||||
Time assignment ID: %0</source>
|
Time assignment ID: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Expected end Buchung, instead got type %0
|
<location filename="../mainwindow.cpp" line="992"/>
|
||||||
Buchung ID: %1</source>
|
<source>Expected end booking, instead got type %0
|
||||||
|
Booking ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing time assignment(s)! Missing: %0h</source>
|
<location filename="../mainwindow.cpp" line="1070"/>
|
||||||
<translation type="unfinished"></translation>
|
<source>Time assignment time longer than booking time! Time assignment: %0 Booking: %1</source>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Time assignment time longer than Buchung time! Time assignment: %0 Buchung: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="1093"/>
|
||||||
<source>Strip rendering aborted due error.</source>
|
<source>Strip rendering aborted due error.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="1103"/>
|
||||||
<source>Illegal state!</source>
|
<source>Illegal state!</source>
|
||||||
<translation>Ungültiger Zustand!</translation>
|
<translation>Ungültiger Zustand!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your Buchungen and time assignments for this day are in an invalid state:
|
<location filename="../mainwindow.cpp" line="1103"/>
|
||||||
|
<source>Your bookings and time assignments for this day are in an illegal state!</source>
|
||||||
%0</source>
|
<translation>Ihre Buchungen und Kontierungen für diesen Tag sind in einem ungültigen Zustand!</translation>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Assigned time</source>
|
|
||||||
<translation>Kontierte Zeit</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Subproject</source>
|
|
||||||
<translation>Subprojekt</translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsDialog</name>
|
<name>SettingsDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="31"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Einstellungen</translation>
|
<translation>Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>buchungStartBackgroundColor</source>
|
<location filename="../dialogs/settingsdialog.ui" line="40"/>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>buchungEndBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>buchungOtherBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>timeAssignmentBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>language</source>
|
<source>language</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="50"/>
|
||||||
|
<source>bookingStartBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="60"/>
|
||||||
|
<source>bookingEndBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="70"/>
|
||||||
|
<source>bookingOtherBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="80"/>
|
||||||
|
<source>timeAssignmentBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="15"/>
|
||||||
<source>English</source>
|
<source>English</source>
|
||||||
<translation>Englisch</translation>
|
<translation>Englisch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="16"/>
|
||||||
<source>German</source>
|
<source>German</source>
|
||||||
<translation>Deutsch</translation>
|
<translation>Deutsch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||||
<source>Restart required!</source>
|
<source>Restart required!</source>
|
||||||
<translation>Neustart erforderlich!</translation>
|
<translation>Neustart erforderlich!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||||
<source>To apply the new language a restart is required!</source>
|
<source>To apply the new language a restart is required!</source>
|
||||||
<translation>Um die neue Sprache anzuwenden ist ein Neustart erforderlich!</translation>
|
<translation>Um die neue Sprache anzuwenden, ist ein Neustart erforderlich!</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentDialog</name>
|
<name>TimeAssignmentDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
|
||||||
<source>Time assignment</source>
|
<source>Time assignment</source>
|
||||||
<translation>Kontierung</translation>
|
<translation>Kontierung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
|
||||||
<source>Time:</source>
|
<source>Time:</source>
|
||||||
<translation>Zeit:</translation>
|
<translation>Zeit:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
|
||||||
<source>Timespan:</source>
|
<source>Timespan:</source>
|
||||||
<translation>Zeitspanne:</translation>
|
<translation>Zeitspanne:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Workpackage:</source>
|
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
|
||||||
<translation>Arbeitspaket:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Text:</source>
|
|
||||||
<translation>Text:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Project:</source>
|
<source>Project:</source>
|
||||||
<translation>Projekt:</translation>
|
<translation>Projekt:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
|
||||||
<source>Subproject:</source>
|
<source>Subproject:</source>
|
||||||
<translation>Subprojekt:</translation>
|
<translation>Subprojekt:</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="77"/>
|
||||||
|
<source>Workpackage:</source>
|
||||||
|
<translation>Arbeitspaket:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="84"/>
|
||||||
|
<source>Text:</source>
|
||||||
|
<translation>Text:</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentStrip</name>
|
<name>TimeAssignmentStrip</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/timeassignmentstrip.cpp" line="22"/>
|
||||||
<source>Open</source>
|
<source>Open</source>
|
||||||
<translation>Offen</translation>
|
<translation>Offen</translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -464,85 +609,134 @@ Buchung ID: %1</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentsModel</name>
|
<name>TimeAssignmentsModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="59"/>
|
||||||
<source>ID</source>
|
<source>ID</source>
|
||||||
<translation>ID</translation>
|
<translation>ID</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="60"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Zeit</translation>
|
<translation>Zeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="61"/>
|
||||||
<source>Timespan</source>
|
<source>Timespan</source>
|
||||||
<translation>Zeitspanne</translation>
|
<translation>Zeitspanne</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Workpackage</source>
|
<location filename="../models/timeassignmentsmodel.cpp" line="62"/>
|
||||||
<translation>Arbeitspaket</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Text</source>
|
|
||||||
<translation>Text</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Project</source>
|
<source>Project</source>
|
||||||
<translation>Projekt</translation>
|
<translation>Projekt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="63"/>
|
||||||
<source>Subproject</source>
|
<source>Subproject</source>
|
||||||
<translation>Subprojekt</translation>
|
<translation>Subprojekt</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="64"/>
|
||||||
|
<source>Workpackage</source>
|
||||||
|
<translation>Arbeitspaket</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="65"/>
|
||||||
|
<source>Text</source>
|
||||||
|
<translation>Text</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Zeiterfassung</name>
|
<name>Zeiterfassung</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="379"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="400"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="439"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="494"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="542"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="583"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="624"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="640"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="692"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="733"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="774"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="790"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="850"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="870"/>
|
||||||
<source>Request error occured: %0</source>
|
<source>Request error occured: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="385"/>
|
||||||
<source>Could not find necessary keywords in login page!</source>
|
<source>Could not find necessary keywords in login page!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="406"/>
|
||||||
<source>Request did not contain a Location header.</source>
|
<source>Request did not contain a Location header.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="420"/>
|
||||||
<source>Authentication failure. Please check username and password.</source>
|
<source>Authentication failure. Please check username and password.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="425"/>
|
||||||
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="448"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="503"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="551"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="592"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="649"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="701"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="742"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="799"/>
|
||||||
<source>Parsing JSON failed: %0</source>
|
<source>Parsing JSON failed: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="454"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="557"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="598"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="707"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="748"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="805"/>
|
||||||
<source>JSON document is not an object!</source>
|
<source>JSON document is not an object!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="462"/>
|
||||||
<source>JSON does not contain evoAppsUser!</source>
|
<source>JSON does not contain evoAppsUser!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="470"/>
|
||||||
<source>evoAppsUser is not an object!</source>
|
<source>evoAppsUser is not an object!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="509"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="655"/>
|
||||||
<source>JSON document is not an array!</source>
|
<source>JSON document is not an array!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="565"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="606"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="715"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="756"/>
|
||||||
<source>JSON does not contain bookingNr!</source>
|
<source>JSON does not contain bookingNr!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="813"/>
|
||||||
<source>JSON does not contain elements!</source>
|
<source>JSON does not contain elements!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="821"/>
|
||||||
<source>elements is not an array!</source>
|
<source>elements is not an array!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -550,48 +744,63 @@ Buchung ID: %1</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="61"/>
|
||||||
<source>Loading settings...</source>
|
<source>Loading settings...</source>
|
||||||
<translation>Lade Einstellungen...</translation>
|
<translation>Lade Einstellungen...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="76"/>
|
||||||
|
<location filename="../main.cpp" line="77"/>
|
||||||
<source>Invalid language selection!</source>
|
<source>Invalid language selection!</source>
|
||||||
<translation>Ungültige Sprachauswahl!</translation>
|
<translation>Ungültige Sprachauswahl!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="78"/>
|
||||||
|
<source>You did not select a valid language!</source>
|
||||||
|
<translation>Sie haben keine gültige Sprachauswahl getroffen!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="96"/>
|
||||||
<source>Loading login page...</source>
|
<source>Loading login page...</source>
|
||||||
<translation>Lade Login-Seite...</translation>
|
<translation>Lade Login-Seite...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Base url</source>
|
<location filename="../main.cpp" line="111"/>
|
||||||
<translation>Basis URL</translation>
|
<location filename="../main.cpp" line="112"/>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Please enter the base url to the Zeiterfassung:</source>
|
|
||||||
<translation>Bitte geben Sie die Basis URL zur Zeiterfassung ein:</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Authenticating...</source>
|
|
||||||
<translation>Authentifizieren...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Getting user information...</source>
|
|
||||||
<translation>Hole Benutzer Information...</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not get user information!</source>
|
|
||||||
<translation>Konnte Benutzer Information nicht holen!</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>You did not select a valid language.</source>
|
|
||||||
<translation>Sie haben keine gültige Sprache ausgewählt.</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not access Zeiterfassung!</source>
|
<source>Could not access Zeiterfassung!</source>
|
||||||
<translation>Konnte Zeiterfassung nicht erreichen!</translation>
|
<translation>Konnte Zeiterfassung nicht erreichen!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="114"/>
|
||||||
|
<source>Base url</source>
|
||||||
|
<translation>Basis URL</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="115"/>
|
||||||
|
<source>Please enter the base url to the Zeiterfassung:</source>
|
||||||
|
<translation>Bitte geben Sie die Basis URL zur Zeiterfassung ein:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="125"/>
|
||||||
|
<source>Authenticating...</source>
|
||||||
|
<translation>Authentifiziere...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="146"/>
|
||||||
|
<location filename="../main.cpp" line="147"/>
|
||||||
<source>Could not authenticate with Zeiterfassung!</source>
|
<source>Could not authenticate with Zeiterfassung!</source>
|
||||||
<translation>Konnte nicht bei Zeiterfassung authentifizieren!</translation>
|
<translation>Konnte nicht mit Zeiterfassung authentifizieren!</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="161"/>
|
||||||
|
<source>Getting user information...</source>
|
||||||
|
<translation>Hole Benutzer Information...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="180"/>
|
||||||
|
<location filename="../main.cpp" line="181"/>
|
||||||
|
<source>Could not get user information!</source>
|
||||||
|
<translation>Konnte Benutzer Information nicht holen!</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
@@ -4,26 +4,33 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>AboutMeDialog</name>
|
<name>AboutMeDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="31"/>
|
||||||
<source>About me</source>
|
<source>About me</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="40"/>
|
||||||
<source>User-ID:</source>
|
<source>User-ID:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="50"/>
|
||||||
<source>E-Mail:</source>
|
<source>E-Mail:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="60"/>
|
||||||
<source>Long username:</source>
|
<source>Long username:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="70"/>
|
||||||
<source>Text:</source>
|
<source>Text:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/aboutmedialog.ui" line="80"/>
|
||||||
<source>Username:</source>
|
<source>Username:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -31,75 +38,93 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>AuthenticationDialog</name>
|
<name>AuthenticationDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="55"/>
|
||||||
<source>Authentication</source>
|
<source>Authentication</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="66"/>
|
||||||
<source>Username:</source>
|
<source>Username:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/authenticationdialog.ui" line="76"/>
|
||||||
<source>Password:</source>
|
<source>Password:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungDialog</name>
|
<name>BookingDialog</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Buchung</source>
|
<location filename="../dialogs/bookingdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="31"/>
|
||||||
|
<source>Booking</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="40"/>
|
||||||
<source>Time:</source>
|
<source>Time:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="50"/>
|
||||||
<source>Timespan:</source>
|
<source>Timespan:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="60"/>
|
||||||
<source>Type:</source>
|
<source>Type:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/bookingdialog.ui" line="70"/>
|
||||||
<source>Text:</source>
|
<source>Text:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungStrip</name>
|
<name>BookingStrip</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="22"/>
|
||||||
<source>START</source>
|
<source>START</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="27"/>
|
||||||
<source>END</source>
|
<source>END</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/bookingstrip.cpp" line="32"/>
|
||||||
<source>UNKNOWN</source>
|
<source>UNKNOWN</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>BuchungenModel</name>
|
<name>BookingsModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="57"/>
|
||||||
<source>ID</source>
|
<source>ID</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="58"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="59"/>
|
||||||
<source>Timespan</source>
|
<source>Timespan</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="60"/>
|
||||||
<source>Type</source>
|
<source>Type</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/bookingsmodel.cpp" line="61"/>
|
||||||
<source>Text</source>
|
<source>Text</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -107,22 +132,28 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>LanguageSelectionDialog</name>
|
<name>LanguageSelectionDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="31"/>
|
||||||
<source>Language selection</source>
|
<source>Language selection</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="38"/>
|
||||||
<source>Please select a language:</source>
|
<source>Please select a language:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.ui" line="47"/>
|
||||||
<source>Language:</source>
|
<source>Language:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.cpp" line="10"/>
|
||||||
<source>English</source>
|
<source>English</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/languageselectiondialog.cpp" line="11"/>
|
||||||
<source>German</source>
|
<source>German</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -130,295 +161,400 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="146"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="829"/>
|
||||||
<source>Start</source>
|
<source>Start</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="169"/>
|
||||||
<source>End</source>
|
<source>End</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="191"/>
|
||||||
<source>Optimized view</source>
|
<source>Optimized view</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="214"/>
|
||||||
<source>Advanced view</source>
|
<source>Advanced view</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Buchungen</source>
|
<location filename="../mainwindow.ui" line="218"/>
|
||||||
|
<source>Bookings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="235"/>
|
||||||
<source>Time assignments</source>
|
<source>Time assignments</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="266"/>
|
||||||
<source>&File</source>
|
<source>&File</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="272"/>
|
||||||
<source>&About</source>
|
<source>&About</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="282"/>
|
||||||
<source>&View</source>
|
<source>&View</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="289"/>
|
||||||
<source>&Tools</source>
|
<source>&Tools</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="305"/>
|
||||||
<source>&Quit</source>
|
<source>&Quit</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="310"/>
|
||||||
<source>About &Me</source>
|
<source>About &Me</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="315"/>
|
||||||
<source>About &zeiterfassung</source>
|
<source>About &zeiterfassung</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="320"/>
|
||||||
<source>About &Qt</source>
|
<source>About &Qt</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="332"/>
|
||||||
<source>&Today</source>
|
<source>&Today</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="344"/>
|
||||||
<source>&Refresh</source>
|
<source>&Refresh</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="352"/>
|
||||||
<source>&Auswertung</source>
|
<source>&Auswertung</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.ui" line="357"/>
|
||||||
<source>&Settings</source>
|
<source>&Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="40"/>
|
||||||
<source>Zeiterfassung - %0 (%1)</source>
|
<source>Zeiterfassung - %0 (%1)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="54"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="63"/>
|
||||||
<source>Could not open auswertung!</source>
|
<source>Could not open auswertung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="63"/>
|
||||||
<source>Could not open default PDF viewer!</source>
|
<source>Could not open default PDF viewer!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="87"/>
|
||||||
|
<source>Subproject</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="88"/>
|
||||||
<source>Workpackage</source>
|
<source>Workpackage</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="89"/>
|
||||||
<source>Text</source>
|
<source>Text</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="279"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="280"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="873"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
<source>%0: %1</source>
|
<source>%0: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
|
<source>Assigned time</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="161"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="251"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="252"/>
|
||||||
<source>???</source>
|
<source>???</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Unknown error occured.</source>
|
<location filename="../mainwindow.cpp" line="196"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../mainwindow.cpp" line="279"/>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>An unknown error occured.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Balance</source>
|
<source>Balance</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="197"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="280"/>
|
||||||
<source>Holidays</source>
|
<source>Holidays</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not load Buchungen!</source>
|
<location filename="../mainwindow.cpp" line="224"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="297"/>
|
||||||
|
<source>Could not load bookings!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="244"/>
|
||||||
<source>Could not load Auswertung!</source>
|
<source>Could not load Auswertung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="273"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="875"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1090"/>
|
||||||
<source>%0h</source>
|
<source>%0h</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not refresh Buchungen!</source>
|
<location filename="../mainwindow.cpp" line="889"/>
|
||||||
|
<source>Missing time assignment!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not refresh time assignments!</source>
|
<location filename="../mainwindow.cpp" line="1007"/>
|
||||||
|
<source>Missing time assignment! Missing: %0h</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Edit</source>
|
<location filename="../mainwindow.cpp" line="178"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="212"/>
|
||||||
|
<source>Unknown error occured!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Delete</source>
|
<location filename="../mainwindow.cpp" line="314"/>
|
||||||
|
<source>Could not load time assignments!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not update Buchung!</source>
|
<location filename="../mainwindow.cpp" line="435"/>
|
||||||
|
<source>Could not delete booking!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not delete Buchung!</source>
|
<location filename="../mainwindow.cpp" line="326"/>
|
||||||
|
<source>Edit booking</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Create</source>
|
<location filename="../mainwindow.cpp" line="327"/>
|
||||||
|
<source>Delete booking</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not create Buchung!</source>
|
<location filename="../mainwindow.cpp" line="382"/>
|
||||||
|
<source>Could not edit booking!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Could not update time assignment!</source>
|
<location filename="../mainwindow.cpp" line="442"/>
|
||||||
|
<source>Create booking</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="494"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="715"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="787"/>
|
||||||
|
<source>Could not create booking!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="511"/>
|
||||||
|
<source>Edit time assignment</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="512"/>
|
||||||
|
<source>Delete time assignment</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="575"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="741"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="812"/>
|
||||||
|
<source>Could not edit time assignment!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="628"/>
|
||||||
<source>Could not delete time assignment!</source>
|
<source>Could not delete time assignment!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="635"/>
|
||||||
|
<source>Create time assignment</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="692"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="759"/>
|
||||||
<source>Could not create time assignment!</source>
|
<source>Could not create time assignment!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing Buchung.</source>
|
<location filename="../mainwindow.cpp" line="858"/>
|
||||||
|
<source>Missing booking!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Expected start Buchung, instead got type %0
|
<location filename="../mainwindow.cpp" line="865"/>
|
||||||
Buchung ID: %1</source>
|
<source>Expected start booking, instead got type %0
|
||||||
|
Booking ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="874"/>
|
||||||
<source>Break</source>
|
<source>Break</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing time assignment.</source>
|
<location filename="../mainwindow.cpp" line="896"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../mainwindow.cpp" line="951"/>
|
||||||
</message>
|
<location filename="../mainwindow.cpp" line="1025"/>
|
||||||
<message>
|
|
||||||
<source>Expected %0 but received %1 in time assignment.
|
<source>Expected %0 but received %1 in time assignment.
|
||||||
Time assignment ID: %2</source>
|
Time assignment ID: %2</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>There is another Buchung after an unfinished time assignment.
|
<location filename="../mainwindow.cpp" line="913"/>
|
||||||
Buchung ID: %0
|
<location filename="../mainwindow.cpp" line="1042"/>
|
||||||
|
<source>There is another booking after an unfinished time assignment.
|
||||||
|
Booking ID: %0
|
||||||
Time assignment ID: %1</source>
|
Time assignment ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="921"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="968"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1051"/>
|
||||||
<source>There is another time assignment after an unfinished time assignment.
|
<source>There is another time assignment after an unfinished time assignment.
|
||||||
Time assignment ID: %0
|
Time assignment ID: %0
|
||||||
Time assignment ID: %1</source>
|
Time assignment ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="928"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="976"/>
|
||||||
|
<location filename="../mainwindow.cpp" line="1058"/>
|
||||||
<source>Switch</source>
|
<source>Switch</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The last time assignment is finished without end Buchung
|
<location filename="../mainwindow.cpp" line="943"/>
|
||||||
|
<source>The last time assignment is finished without end booking
|
||||||
Time assignment ID: %0</source>
|
Time assignment ID: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Expected end Buchung, instead got type %0
|
<location filename="../mainwindow.cpp" line="992"/>
|
||||||
Buchung ID: %1</source>
|
<source>Expected end booking, instead got type %0
|
||||||
|
Booking ID: %1</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Missing time assignment(s)! Missing: %0h</source>
|
<location filename="../mainwindow.cpp" line="1070"/>
|
||||||
<translation type="unfinished"></translation>
|
<source>Time assignment time longer than booking time! Time assignment: %0 Booking: %1</source>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Time assignment time longer than Buchung time! Time assignment: %0 Buchung: %1</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="1093"/>
|
||||||
<source>Strip rendering aborted due error.</source>
|
<source>Strip rendering aborted due error.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../mainwindow.cpp" line="1103"/>
|
||||||
<source>Illegal state!</source>
|
<source>Illegal state!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Your Buchungen and time assignments for this day are in an invalid state:
|
<location filename="../mainwindow.cpp" line="1103"/>
|
||||||
|
<source>Your bookings and time assignments for this day are in an illegal state!</source>
|
||||||
%0</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Assigned time</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Subproject</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingsDialog</name>
|
<name>SettingsDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="31"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>buchungStartBackgroundColor</source>
|
<location filename="../dialogs/settingsdialog.ui" line="40"/>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>buchungEndBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>buchungOtherBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>timeAssignmentBackgroundColor</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>language</source>
|
<source>language</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="50"/>
|
||||||
|
<source>bookingStartBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="60"/>
|
||||||
|
<source>bookingEndBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="70"/>
|
||||||
|
<source>bookingOtherBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.ui" line="80"/>
|
||||||
|
<source>timeAssignmentBackgroundColor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="15"/>
|
||||||
<source>English</source>
|
<source>English</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="16"/>
|
||||||
<source>German</source>
|
<source>German</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||||
<source>Restart required!</source>
|
<source>Restart required!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||||
<source>To apply the new language a restart is required!</source>
|
<source>To apply the new language a restart is required!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -426,37 +562,46 @@ Buchung ID: %1</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentDialog</name>
|
<name>TimeAssignmentDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
|
||||||
<source>Time assignment</source>
|
<source>Time assignment</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
|
||||||
<source>Time:</source>
|
<source>Time:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
|
||||||
<source>Timespan:</source>
|
<source>Timespan:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Workpackage:</source>
|
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Text:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Project:</source>
|
<source>Project:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
|
||||||
<source>Subproject:</source>
|
<source>Subproject:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="77"/>
|
||||||
|
<source>Workpackage:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../dialogs/timeassignmentdialog.ui" line="84"/>
|
||||||
|
<source>Text:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentStrip</name>
|
<name>TimeAssignmentStrip</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../strips/timeassignmentstrip.cpp" line="22"/>
|
||||||
<source>Open</source>
|
<source>Open</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -464,85 +609,134 @@ Buchung ID: %1</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>TimeAssignmentsModel</name>
|
<name>TimeAssignmentsModel</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="59"/>
|
||||||
<source>ID</source>
|
<source>ID</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="60"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="61"/>
|
||||||
<source>Timespan</source>
|
<source>Timespan</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Workpackage</source>
|
<location filename="../models/timeassignmentsmodel.cpp" line="62"/>
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Text</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Project</source>
|
<source>Project</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="63"/>
|
||||||
<source>Subproject</source>
|
<source>Subproject</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="64"/>
|
||||||
|
<source>Workpackage</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../models/timeassignmentsmodel.cpp" line="65"/>
|
||||||
|
<source>Text</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Zeiterfassung</name>
|
<name>Zeiterfassung</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="379"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="400"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="439"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="494"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="542"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="583"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="624"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="640"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="692"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="733"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="774"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="790"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="850"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="870"/>
|
||||||
<source>Request error occured: %0</source>
|
<source>Request error occured: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="385"/>
|
||||||
<source>Could not find necessary keywords in login page!</source>
|
<source>Could not find necessary keywords in login page!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="406"/>
|
||||||
<source>Request did not contain a Location header.</source>
|
<source>Request did not contain a Location header.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="420"/>
|
||||||
<source>Authentication failure. Please check username and password.</source>
|
<source>Authentication failure. Please check username and password.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="425"/>
|
||||||
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="448"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="503"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="551"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="592"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="649"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="701"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="742"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="799"/>
|
||||||
<source>Parsing JSON failed: %0</source>
|
<source>Parsing JSON failed: %0</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="454"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="557"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="598"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="707"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="748"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="805"/>
|
||||||
<source>JSON document is not an object!</source>
|
<source>JSON document is not an object!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="462"/>
|
||||||
<source>JSON does not contain evoAppsUser!</source>
|
<source>JSON does not contain evoAppsUser!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="470"/>
|
||||||
<source>evoAppsUser is not an object!</source>
|
<source>evoAppsUser is not an object!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="509"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="655"/>
|
||||||
<source>JSON document is not an array!</source>
|
<source>JSON document is not an array!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="565"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="606"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="715"/>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="756"/>
|
||||||
<source>JSON does not contain bookingNr!</source>
|
<source>JSON does not contain bookingNr!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="813"/>
|
||||||
<source>JSON does not contain elements!</source>
|
<source>JSON does not contain elements!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../zeiterfassung.cpp" line="821"/>
|
||||||
<source>elements is not an array!</source>
|
<source>elements is not an array!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@@ -550,48 +744,63 @@ Buchung ID: %1</source>
|
|||||||
<context>
|
<context>
|
||||||
<name>main</name>
|
<name>main</name>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="61"/>
|
||||||
<source>Loading settings...</source>
|
<source>Loading settings...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="76"/>
|
||||||
|
<location filename="../main.cpp" line="77"/>
|
||||||
<source>Invalid language selection!</source>
|
<source>Invalid language selection!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="78"/>
|
||||||
|
<source>You did not select a valid language!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="96"/>
|
||||||
<source>Loading login page...</source>
|
<source>Loading login page...</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Base url</source>
|
<location filename="../main.cpp" line="111"/>
|
||||||
<translation type="unfinished"></translation>
|
<location filename="../main.cpp" line="112"/>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Please enter the base url to the Zeiterfassung:</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Authenticating...</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Getting user information...</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not get user information!</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>You did not select a valid language.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Could not access Zeiterfassung!</source>
|
<source>Could not access Zeiterfassung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
|
<location filename="../main.cpp" line="114"/>
|
||||||
|
<source>Base url</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="115"/>
|
||||||
|
<source>Please enter the base url to the Zeiterfassung:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="125"/>
|
||||||
|
<source>Authenticating...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="146"/>
|
||||||
|
<location filename="../main.cpp" line="147"/>
|
||||||
<source>Could not authenticate with Zeiterfassung!</source>
|
<source>Could not authenticate with Zeiterfassung!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="161"/>
|
||||||
|
<source>Getting user information...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../main.cpp" line="180"/>
|
||||||
|
<location filename="../main.cpp" line="181"/>
|
||||||
|
<source>Could not get user information!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
@@ -84,11 +84,13 @@ bool Zeiterfassung::doUserInfo()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Zeiterfassung::doGetBuchungen(int userId, const QDate &start, const QDate &end)
|
#define NAMEOF(x) #x
|
||||||
|
|
||||||
|
bool Zeiterfassung::doGetBookings(int userId, const QDate &start, const QDate &end)
|
||||||
{
|
{
|
||||||
if(m_replies.getBuchungen)
|
if(m_replies.getBookings)
|
||||||
{
|
{
|
||||||
qWarning() << "another getBuchungen already processing!";
|
qWarning() << "another getBookings already processing!";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,18 +101,18 @@ bool Zeiterfassung::doGetBuchungen(int userId, const QDate &start, const QDate &
|
|||||||
.arg(userId)));
|
.arg(userId)));
|
||||||
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||||
|
|
||||||
m_replies.getBuchungen = m_manager->get(request);
|
m_replies.getBookings = m_manager->get(request);
|
||||||
connect(m_replies.getBuchungen, &QNetworkReply::finished,
|
connect(m_replies.getBookings, &QNetworkReply::finished,
|
||||||
this, &Zeiterfassung::getBuchungenRequestFinished);
|
this, &Zeiterfassung::getBookingsRequestFinished);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Zeiterfassung::doCreateBuchung(int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
|
bool Zeiterfassung::doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
|
||||||
{
|
{
|
||||||
if(m_replies.createBuchung)
|
if(m_replies.createBooking)
|
||||||
{
|
{
|
||||||
qWarning() << "another createBuchung already processing!";
|
qWarning() << "another createBooking already processing!";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,27 +131,27 @@ bool Zeiterfassung::doCreateBuchung(int userId, const QDate &date, const QTime &
|
|||||||
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
|
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
|
||||||
obj[QStringLiteral("text")] = text;
|
obj[QStringLiteral("text")] = text;
|
||||||
|
|
||||||
m_replies.createBuchung = m_manager->post(request, QJsonDocument(obj).toJson());
|
m_replies.createBooking = m_manager->post(request, QJsonDocument(obj).toJson());
|
||||||
connect(m_replies.createBuchung, &QNetworkReply::finished,
|
connect(m_replies.createBooking, &QNetworkReply::finished,
|
||||||
this, &Zeiterfassung::createBuchungRequestFinished);
|
this, &Zeiterfassung::createBookingRequestFinished);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Zeiterfassung::doUpdateBuchung(int buchungId, int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
|
bool Zeiterfassung::doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time, const QTime ×pan, const QString &type, const QString &text)
|
||||||
{
|
{
|
||||||
if(m_replies.updateBuchung)
|
if(m_replies.updateBooking)
|
||||||
{
|
{
|
||||||
qWarning() << "another updateBuchung already processing!";
|
qWarning() << "another updateBooking already processing!";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1").arg(m_url).arg(buchungId)));
|
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1").arg(m_url).arg(bookingId)));
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
|
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
|
||||||
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||||
|
|
||||||
QJsonObject obj;
|
QJsonObject obj;
|
||||||
obj[QStringLiteral("bookingNr")] = buchungId;
|
obj[QStringLiteral("bookingNr")] = bookingId;
|
||||||
obj[QStringLiteral("persNr")] = userId;
|
obj[QStringLiteral("persNr")] = userId;
|
||||||
obj[QStringLiteral("bookingDate")] = date.toString("yyyyMMdd").toInt();
|
obj[QStringLiteral("bookingDate")] = date.toString("yyyyMMdd").toInt();
|
||||||
obj[QStringLiteral("bookingTime")] = time.toString("Hmmss").toInt();
|
obj[QStringLiteral("bookingTime")] = time.toString("Hmmss").toInt();
|
||||||
@@ -160,29 +162,29 @@ bool Zeiterfassung::doUpdateBuchung(int buchungId, int userId, const QDate &date
|
|||||||
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
|
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
|
||||||
obj[QStringLiteral("text")] = text;
|
obj[QStringLiteral("text")] = text;
|
||||||
|
|
||||||
m_replies.updateBuchung = m_manager->put(request, QJsonDocument(obj).toJson());
|
m_replies.updateBooking = m_manager->put(request, QJsonDocument(obj).toJson());
|
||||||
connect(m_replies.updateBuchung, &QNetworkReply::finished,
|
connect(m_replies.updateBooking, &QNetworkReply::finished,
|
||||||
this, &Zeiterfassung::updateBuchungRequestFinished);
|
this, &Zeiterfassung::updateBookingRequestFinished);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Zeiterfassung::doDeleteBuchung(int buchungId)
|
bool Zeiterfassung::doDeleteBooking(int bookingId)
|
||||||
{
|
{
|
||||||
if(m_replies.deleteBuchung)
|
if(m_replies.deleteBooking)
|
||||||
{
|
{
|
||||||
qWarning() << "another deleteBuchung already processing!";
|
qWarning() << "another deleteBooking already processing!";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1?text=")
|
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1?text=")
|
||||||
.arg(m_url)
|
.arg(m_url)
|
||||||
.arg(buchungId)));
|
.arg(bookingId)));
|
||||||
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||||
|
|
||||||
m_replies.deleteBuchung = m_manager->deleteResource(request);
|
m_replies.deleteBooking = m_manager->deleteResource(request);
|
||||||
connect(m_replies.deleteBuchung, &QNetworkReply::finished,
|
connect(m_replies.deleteBooking, &QNetworkReply::finished,
|
||||||
this, &Zeiterfassung::deleteBuchungRequestFinished);
|
this, &Zeiterfassung::deleteBookingRequestFinished);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -485,37 +487,37 @@ void Zeiterfassung::userInfoRequestFinished()
|
|||||||
m_replies.userInfo = Q_NULLPTR;
|
m_replies.userInfo = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zeiterfassung::getBuchungenRequestFinished()
|
void Zeiterfassung::getBookingsRequestFinished()
|
||||||
{
|
{
|
||||||
if(m_replies.getBuchungen->error() != QNetworkReply::NoError)
|
if(m_replies.getBookings->error() != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT getBuchungenFinished(false, tr("Request error occured: %0").arg(m_replies.getBuchungen->error()), {});
|
Q_EMIT getBookingsFinished(false, tr("Request error occured: %0").arg(m_replies.getBookings->error()), {});
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QJsonParseError error;
|
QJsonParseError error;
|
||||||
QJsonDocument document = QJsonDocument::fromJson(m_replies.getBuchungen->readAll(), &error);
|
QJsonDocument document = QJsonDocument::fromJson(m_replies.getBookings->readAll(), &error);
|
||||||
if(error.error != QJsonParseError::NoError)
|
if(error.error != QJsonParseError::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT getBuchungenFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), {});
|
Q_EMIT getBookingsFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), {});
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!document.isArray())
|
if(!document.isArray())
|
||||||
{
|
{
|
||||||
Q_EMIT getBuchungenFinished(false, tr("JSON document is not an array!"), {});
|
Q_EMIT getBookingsFinished(false, tr("JSON document is not an array!"), {});
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto arr = document.array();
|
auto arr = document.array();
|
||||||
QVector<Buchung> buchungen;
|
QVector<Booking> bookings;
|
||||||
|
|
||||||
for(const auto &val : arr)
|
for(const auto &val : arr)
|
||||||
{
|
{
|
||||||
auto obj = val.toObject();
|
auto obj = val.toObject();
|
||||||
|
|
||||||
buchungen.append({
|
bookings.append({
|
||||||
obj.value(QStringLiteral("bookingNr")).toInt(),
|
obj.value(QStringLiteral("bookingNr")).toInt(),
|
||||||
QDate::fromString(QString::number(obj.value(QStringLiteral("bookingDate")).toInt()), QStringLiteral("yyyyMMdd")),
|
QDate::fromString(QString::number(obj.value(QStringLiteral("bookingDate")).toInt()), QStringLiteral("yyyyMMdd")),
|
||||||
QTime::fromString(QString("%0").arg(obj.value(QStringLiteral("bookingTime")).toInt(), 6, 10, QChar('0')), QStringLiteral("HHmmss")),
|
QTime::fromString(QString("%0").arg(obj.value(QStringLiteral("bookingTime")).toInt(), 6, 10, QChar('0')), QStringLiteral("HHmmss")),
|
||||||
@@ -525,34 +527,34 @@ void Zeiterfassung::getBuchungenRequestFinished()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT getBuchungenFinished(true, QString(), buchungen);
|
Q_EMIT getBookingsFinished(true, QString(), bookings);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
m_replies.getBuchungen->deleteLater();
|
m_replies.getBookings->deleteLater();
|
||||||
m_replies.getBuchungen = Q_NULLPTR;
|
m_replies.getBookings = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zeiterfassung::createBuchungRequestFinished()
|
void Zeiterfassung::createBookingRequestFinished()
|
||||||
{
|
{
|
||||||
if(m_replies.createBuchung->error() != QNetworkReply::NoError)
|
if(m_replies.createBooking->error() != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT createBuchungFinished(false, tr("Request error occured: %0").arg(m_replies.createBuchung->error()), -1);
|
Q_EMIT createBookingFinished(false, tr("Request error occured: %0").arg(m_replies.createBooking->error()), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QJsonParseError error;
|
QJsonParseError error;
|
||||||
QJsonDocument document = QJsonDocument::fromJson(m_replies.createBuchung->readAll(), &error);
|
QJsonDocument document = QJsonDocument::fromJson(m_replies.createBooking->readAll(), &error);
|
||||||
if(error.error != QJsonParseError::NoError)
|
if(error.error != QJsonParseError::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT createBuchungFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), -1);
|
Q_EMIT createBookingFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!document.isObject())
|
if(!document.isObject())
|
||||||
{
|
{
|
||||||
Q_EMIT createBuchungFinished(false, tr("JSON document is not an object!"), -1);
|
Q_EMIT createBookingFinished(false, tr("JSON document is not an object!"), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -560,40 +562,40 @@ void Zeiterfassung::createBuchungRequestFinished()
|
|||||||
|
|
||||||
if(!obj.contains(QStringLiteral("bookingNr")))
|
if(!obj.contains(QStringLiteral("bookingNr")))
|
||||||
{
|
{
|
||||||
Q_EMIT createBuchungFinished(false, tr("JSON does not contain bookingNr!"), -1);
|
Q_EMIT createBookingFinished(false, tr("JSON does not contain bookingNr!"), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto buchungId = obj.value(QStringLiteral("bookingNr")).toInt();
|
auto bookingId = obj.value(QStringLiteral("bookingNr")).toInt();
|
||||||
|
|
||||||
Q_EMIT createBuchungFinished(true, QString(), buchungId);
|
Q_EMIT createBookingFinished(true, QString(), bookingId);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
m_replies.createBuchung->deleteLater();
|
m_replies.createBooking->deleteLater();
|
||||||
m_replies.createBuchung = Q_NULLPTR;
|
m_replies.createBooking = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zeiterfassung::updateBuchungRequestFinished()
|
void Zeiterfassung::updateBookingRequestFinished()
|
||||||
{
|
{
|
||||||
if(m_replies.updateBuchung->error() != QNetworkReply::NoError)
|
if(m_replies.updateBooking->error() != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT updateBuchungFinished(false, tr("Request error occured: %0").arg(m_replies.updateBuchung->error()), -1);
|
Q_EMIT updateBookingFinished(false, tr("Request error occured: %0").arg(m_replies.updateBooking->error()), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QJsonParseError error;
|
QJsonParseError error;
|
||||||
QJsonDocument document = QJsonDocument::fromJson(m_replies.updateBuchung->readAll(), &error);
|
QJsonDocument document = QJsonDocument::fromJson(m_replies.updateBooking->readAll(), &error);
|
||||||
if(error.error != QJsonParseError::NoError)
|
if(error.error != QJsonParseError::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT updateBuchungFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), -1);
|
Q_EMIT updateBookingFinished(false, tr("Parsing JSON failed: %0").arg(error.errorString()), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!document.isObject())
|
if(!document.isObject())
|
||||||
{
|
{
|
||||||
Q_EMIT updateBuchungFinished(false, tr("JSON document is not an object!"), -1);
|
Q_EMIT updateBookingFinished(false, tr("JSON document is not an object!"), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -601,34 +603,34 @@ void Zeiterfassung::updateBuchungRequestFinished()
|
|||||||
|
|
||||||
if(!obj.contains(QStringLiteral("bookingNr")))
|
if(!obj.contains(QStringLiteral("bookingNr")))
|
||||||
{
|
{
|
||||||
Q_EMIT updateBuchungFinished(false, tr("JSON does not contain bookingNr!"), -1);
|
Q_EMIT updateBookingFinished(false, tr("JSON does not contain bookingNr!"), -1);
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto buchungId = obj.value(QStringLiteral("bookingNr")).toInt();
|
auto bookingId = obj.value(QStringLiteral("bookingNr")).toInt();
|
||||||
|
|
||||||
Q_EMIT updateBuchungFinished(true, QString(), buchungId);
|
Q_EMIT updateBookingFinished(true, QString(), bookingId);
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
m_replies.updateBuchung->deleteLater();
|
m_replies.updateBooking->deleteLater();
|
||||||
m_replies.updateBuchung = Q_NULLPTR;
|
m_replies.updateBooking = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zeiterfassung::deleteBuchungRequestFinished()
|
void Zeiterfassung::deleteBookingRequestFinished()
|
||||||
{
|
{
|
||||||
if(m_replies.deleteBuchung->error() != QNetworkReply::NoError)
|
if(m_replies.deleteBooking->error() != QNetworkReply::NoError)
|
||||||
{
|
{
|
||||||
Q_EMIT deleteBuchungFinished(false, tr("Request error occured: %0").arg(m_replies.deleteBuchung->error()));
|
Q_EMIT deleteBookingFinished(false, tr("Request error occured: %0").arg(m_replies.deleteBooking->error()));
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
//should be empty, so nothing to check...
|
//should be empty, so nothing to check...
|
||||||
Q_EMIT deleteBuchungFinished(true, QString());
|
Q_EMIT deleteBookingFinished(true, QString());
|
||||||
|
|
||||||
end:
|
end:
|
||||||
m_replies.deleteBuchung->deleteLater();
|
m_replies.deleteBooking->deleteLater();
|
||||||
m_replies.deleteBuchung = Q_NULLPTR;
|
m_replies.deleteBooking = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Zeiterfassung::getTimeAssignmentsRequestFinished()
|
void Zeiterfassung::getTimeAssignmentsRequestFinished()
|
||||||
|
@@ -30,7 +30,7 @@ public:
|
|||||||
QString username;
|
QString username;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Buchung
|
struct Booking
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
QDate date;
|
QDate date;
|
||||||
@@ -63,12 +63,12 @@ public Q_SLOTS:
|
|||||||
bool doLogin(const QString &username, const QString &password);
|
bool doLogin(const QString &username, const QString &password);
|
||||||
bool doUserInfo();
|
bool doUserInfo();
|
||||||
|
|
||||||
bool doGetBuchungen(int userId, const QDate &start, const QDate &end);
|
bool doGetBookings(int userId, const QDate &start, const QDate &end);
|
||||||
bool doCreateBuchung(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
bool doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
||||||
const QString &type, const QString &text);
|
const QString &type, const QString &text);
|
||||||
bool doUpdateBuchung(int buchungId, int userId, const QDate &date, const QTime &time,
|
bool doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time,
|
||||||
const QTime ×pan, const QString &type, const QString &text);
|
const QTime ×pan, const QString &type, const QString &text);
|
||||||
bool doDeleteBuchung(int buchungId);
|
bool doDeleteBooking(int bookingId);
|
||||||
|
|
||||||
bool doGetTimeAssignments(int userId, const QDate &start, const QDate &end);
|
bool doGetTimeAssignments(int userId, const QDate &start, const QDate &end);
|
||||||
bool doCreateTimeAssignment(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
bool doCreateTimeAssignment(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
||||||
@@ -89,10 +89,10 @@ Q_SIGNALS:
|
|||||||
void loginFinished(bool success, const QString &message);
|
void loginFinished(bool success, const QString &message);
|
||||||
void userInfoFinished(bool success, const QString &message, const UserInfo &userInfo);
|
void userInfoFinished(bool success, const QString &message, const UserInfo &userInfo);
|
||||||
|
|
||||||
void getBuchungenFinished(bool success, const QString &message, const QVector<Buchung> &buchungen);
|
void getBookingsFinished(bool success, const QString &message, const QVector<Booking> &bookings);
|
||||||
void createBuchungFinished(bool success, const QString &message, int buchungId);
|
void createBookingFinished(bool success, const QString &message, int bookingId);
|
||||||
void updateBuchungFinished(bool success, const QString &message, int buchungId);
|
void updateBookingFinished(bool success, const QString &message, int bookingId);
|
||||||
void deleteBuchungFinished(bool success, const QString &message);
|
void deleteBookingFinished(bool success, const QString &message);
|
||||||
|
|
||||||
void getTimeAssignmentsFinished(bool success, const QString &message, const QVector<TimeAssignment> &timeAssignments);
|
void getTimeAssignmentsFinished(bool success, const QString &message, const QVector<TimeAssignment> &timeAssignments);
|
||||||
void createTimeAssignmentFinished(bool success, const QString &message, int timeAssignmentId);
|
void createTimeAssignmentFinished(bool success, const QString &message, int timeAssignmentId);
|
||||||
@@ -107,10 +107,10 @@ private Q_SLOTS:
|
|||||||
void loginRequestFinished();
|
void loginRequestFinished();
|
||||||
void userInfoRequestFinished();
|
void userInfoRequestFinished();
|
||||||
|
|
||||||
void getBuchungenRequestFinished();
|
void getBookingsRequestFinished();
|
||||||
void createBuchungRequestFinished();
|
void createBookingRequestFinished();
|
||||||
void updateBuchungRequestFinished();
|
void updateBookingRequestFinished();
|
||||||
void deleteBuchungRequestFinished();
|
void deleteBookingRequestFinished();
|
||||||
|
|
||||||
void getTimeAssignmentsRequestFinished();
|
void getTimeAssignmentsRequestFinished();
|
||||||
void createTimeAssignmentRequestFinished();
|
void createTimeAssignmentRequestFinished();
|
||||||
@@ -130,10 +130,10 @@ private:
|
|||||||
QNetworkReply *login;
|
QNetworkReply *login;
|
||||||
QNetworkReply *userInfo;
|
QNetworkReply *userInfo;
|
||||||
|
|
||||||
QNetworkReply *getBuchungen;
|
QNetworkReply *getBookings;
|
||||||
QNetworkReply *createBuchung;
|
QNetworkReply *createBooking;
|
||||||
QNetworkReply *updateBuchung;
|
QNetworkReply *updateBooking;
|
||||||
QNetworkReply *deleteBuchung;
|
QNetworkReply *deleteBooking;
|
||||||
|
|
||||||
QNetworkReply *getTimeAssignments;
|
QNetworkReply *getTimeAssignments;
|
||||||
QNetworkReply *createTimeAssignment;
|
QNetworkReply *createTimeAssignment;
|
||||||
|
@@ -21,43 +21,43 @@ SOURCES += main.cpp \
|
|||||||
mainwindow.cpp \
|
mainwindow.cpp \
|
||||||
dialogs/aboutmedialog.cpp \
|
dialogs/aboutmedialog.cpp \
|
||||||
dialogs/authenticationdialog.cpp \
|
dialogs/authenticationdialog.cpp \
|
||||||
dialogs/buchungdialog.cpp \
|
|
||||||
models/buchungenmodel.cpp \
|
|
||||||
eventloopwithstatus.cpp \
|
eventloopwithstatus.cpp \
|
||||||
strips/buchungstrip.cpp \
|
|
||||||
zeiterfassungsettings.cpp \
|
zeiterfassungsettings.cpp \
|
||||||
dialogs/settingsdialog.cpp \
|
dialogs/settingsdialog.cpp \
|
||||||
dialogs/languageselectiondialog.cpp \
|
dialogs/languageselectiondialog.cpp \
|
||||||
dialogs/timeassignmentdialog.cpp \
|
dialogs/timeassignmentdialog.cpp \
|
||||||
models/timeassignmentsmodel.cpp \
|
models/timeassignmentsmodel.cpp \
|
||||||
strips/timeassignmentstrip.cpp
|
strips/timeassignmentstrip.cpp \
|
||||||
|
dialogs/bookingdialog.cpp \
|
||||||
|
models/bookingsmodel.cpp \
|
||||||
|
strips/bookingstrip.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
zeiterfassung.h \
|
zeiterfassung.h \
|
||||||
mainwindow.h \
|
mainwindow.h \
|
||||||
dialogs/aboutmedialog.h \
|
dialogs/aboutmedialog.h \
|
||||||
dialogs/authenticationdialog.h \
|
dialogs/authenticationdialog.h \
|
||||||
dialogs/buchungdialog.h \
|
|
||||||
models/buchungenmodel.h \
|
|
||||||
eventloopwithstatus.h \
|
eventloopwithstatus.h \
|
||||||
strips/buchungstrip.h \
|
|
||||||
zeiterfassungsettings.h \
|
zeiterfassungsettings.h \
|
||||||
dialogs/settingsdialog.h \
|
dialogs/settingsdialog.h \
|
||||||
dialogs/languageselectiondialog.h \
|
dialogs/languageselectiondialog.h \
|
||||||
dialogs/timeassignmentdialog.h \
|
dialogs/timeassignmentdialog.h \
|
||||||
models/timeassignmentsmodel.h \
|
models/timeassignmentsmodel.h \
|
||||||
strips/timeassignmentstrip.h
|
strips/timeassignmentstrip.h \
|
||||||
|
dialogs/bookingdialog.h \
|
||||||
|
models/bookingsmodel.h \
|
||||||
|
strips/bookingstrip.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
mainwindow.ui \
|
mainwindow.ui \
|
||||||
dialogs/aboutmedialog.ui \
|
dialogs/aboutmedialog.ui \
|
||||||
dialogs/authenticationdialog.ui \
|
dialogs/authenticationdialog.ui \
|
||||||
dialogs/buchungdialog.ui \
|
|
||||||
strips/buchungstrip.ui \
|
|
||||||
dialogs/settingsdialog.ui \
|
dialogs/settingsdialog.ui \
|
||||||
dialogs/languageselectiondialog.ui \
|
dialogs/languageselectiondialog.ui \
|
||||||
dialogs/timeassignmentdialog.ui \
|
dialogs/timeassignmentdialog.ui \
|
||||||
strips/timeassignmentstrip.ui
|
strips/timeassignmentstrip.ui \
|
||||||
|
dialogs/bookingdialog.ui \
|
||||||
|
strips/bookingstrip.ui
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
resources.qrc
|
resources.qrc
|
||||||
|
@@ -132,34 +132,34 @@ void ZeiterfassungSettings::prependText(const QString &text)
|
|||||||
prepentItem("texte", text);
|
prepentItem("texte", text);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ZeiterfassungSettings::buchungStartBackgroundColor() const
|
QString ZeiterfassungSettings::bookingStartBackgroundColor() const
|
||||||
{
|
{
|
||||||
return value("buchungStartBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFF7F, stop:1 #6FBF6F)")).toString();
|
return value("bookingStartBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #7FFF7F, stop:1 #6FBF6F)")).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZeiterfassungSettings::setBuchungStartBackgroundColor(const QString &buchungStartBackgroundColor)
|
void ZeiterfassungSettings::setBookingStartBackgroundColor(const QString &bookingStartBackgroundColor)
|
||||||
{
|
{
|
||||||
setValue("buchungStartBackgroundColor", buchungStartBackgroundColor);
|
setValue("bookingStartBackgroundColor", bookingStartBackgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ZeiterfassungSettings::buchungEndBackgroundColor() const
|
QString ZeiterfassungSettings::bookingEndBackgroundColor() const
|
||||||
{
|
{
|
||||||
return value("buchungEndBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FF7F7F, stop:1 #BF6F6F)")).toString();
|
return value("bookingEndBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FF7F7F, stop:1 #BF6F6F)")).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZeiterfassungSettings::setBuchungEndBackgroundColor(const QString &buchungEndBackgroundColor)
|
void ZeiterfassungSettings::setBookingEndBackgroundColor(const QString &bookingEndBackgroundColor)
|
||||||
{
|
{
|
||||||
setValue("buchungEndBackgroundColor", buchungEndBackgroundColor);
|
setValue("bookingEndBackgroundColor", bookingEndBackgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ZeiterfassungSettings::buchungOtherBackgroundColor() const
|
QString ZeiterfassungSettings::bookingOtherBackgroundColor() const
|
||||||
{
|
{
|
||||||
return value("buchungOtherBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FFFF7F, stop:1 #BFBF6F)")).toString();
|
return value("bookingOtherBackgroundColor", QStringLiteral("qlineargradient( x1:0 y1:0, x2:0 y2:1, stop:0 #FFFF7F, stop:1 #BFBF6F)")).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZeiterfassungSettings::setBuchungOtherBackgroundColor(const QString &buchungOtherBackgroundColor)
|
void ZeiterfassungSettings::setBookingOtherBackgroundColor(const QString &bookingOtherBackgroundColor)
|
||||||
{
|
{
|
||||||
setValue("buchungOtherBackgroundColor", buchungOtherBackgroundColor);
|
setValue("bookingOtherBackgroundColor", bookingOtherBackgroundColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ZeiterfassungSettings::timeAssignmentBackgroundColor() const
|
QString ZeiterfassungSettings::timeAssignmentBackgroundColor() const
|
||||||
|
@@ -46,14 +46,14 @@ public:
|
|||||||
void setTexte(const QStringList &texte);
|
void setTexte(const QStringList &texte);
|
||||||
void prependText(const QString &text);
|
void prependText(const QString &text);
|
||||||
|
|
||||||
QString buchungStartBackgroundColor() const;
|
QString bookingStartBackgroundColor() const;
|
||||||
void setBuchungStartBackgroundColor(const QString &buchungStartBackgroundColor);
|
void setBookingStartBackgroundColor(const QString &bookingStartBackgroundColor);
|
||||||
|
|
||||||
QString buchungEndBackgroundColor() const;
|
QString bookingEndBackgroundColor() const;
|
||||||
void setBuchungEndBackgroundColor(const QString &buchungEndBackgroundColor);
|
void setBookingEndBackgroundColor(const QString &bookingEndBackgroundColor);
|
||||||
|
|
||||||
QString buchungOtherBackgroundColor() const;
|
QString bookingOtherBackgroundColor() const;
|
||||||
void setBuchungOtherBackgroundColor(const QString &buchungOtherBackgroundColor);
|
void setBookingOtherBackgroundColor(const QString &bookingOtherBackgroundColor);
|
||||||
|
|
||||||
QString timeAssignmentBackgroundColor() const;
|
QString timeAssignmentBackgroundColor() const;
|
||||||
void setTimeAssignmentBackgroundColor(const QString timeAssignmentBackgroundColor);
|
void setTimeAssignmentBackgroundColor(const QString timeAssignmentBackgroundColor);
|
||||||
|
Reference in New Issue
Block a user