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
|
||||
#define BUCHUNGDIALOG_H
|
||||
#ifndef BOOKINGDIALOG_H
|
||||
#define BOOKINGDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QTime>
|
||||
|
||||
namespace Ui { class BuchungDialog; }
|
||||
namespace Ui { class BookingDialog; }
|
||||
|
||||
class BuchungDialog : public QDialog
|
||||
class BookingDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BuchungDialog(QWidget *parent = 0);
|
||||
~BuchungDialog();
|
||||
explicit BookingDialog(QWidget *parent = 0);
|
||||
~BookingDialog();
|
||||
|
||||
QTime getTime() const;
|
||||
void setTime(const QTime &time);
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
void setText(const QString &text);
|
||||
|
||||
private:
|
||||
Ui::BuchungDialog *ui;
|
||||
Ui::BookingDialog *ui;
|
||||
};
|
||||
|
||||
#endif // BUCHUNGDIALOG_H
|
||||
#endif // BOOKINGDIALOG_H
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>BuchungDialog</class>
|
||||
<widget class="QDialog" name="BuchungDialog">
|
||||
<class>BookingDialog</class>
|
||||
<widget class="QDialog" name="BookingDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@@ -17,7 +17,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Buchung</string>
|
||||
<string>Booking</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,1,0">
|
||||
<item>
|
||||
@@ -28,7 +28,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Buchung</string>
|
||||
<string>Booking</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -130,7 +130,7 @@
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>BuchungDialog</receiver>
|
||||
<receiver>BookingDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
@@ -146,7 +146,7 @@
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>BuchungDialog</receiver>
|
||||
<receiver>BookingDialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<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->setCurrentIndex(ui->comboBoxLanguage->findData(settings.language()));
|
||||
ui->lineEditBuchungStartBackgroundColor->setText(settings.buchungStartBackgroundColor());
|
||||
ui->lineEditBuchungEndBackgroundColor->setText(settings.buchungEndBackgroundColor());
|
||||
ui->lineEditBuchungOtherBackgroundColor->setText(settings.buchungOtherBackgroundColor());
|
||||
ui->lineEditBookingStartBackgroundColor->setText(settings.bookingStartBackgroundColor());
|
||||
ui->lineEditBookingEndBackgroundColor->setText(settings.bookingEndBackgroundColor());
|
||||
ui->lineEditBookingOtherBackgroundColor->setText(settings.bookingOtherBackgroundColor());
|
||||
ui->lineEditTimeAssignmentBackgroundColor->setText(settings.timeAssignmentBackgroundColor());
|
||||
|
||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::submit);
|
||||
@@ -36,12 +36,12 @@ void SettingsDialog::submit()
|
||||
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!"));
|
||||
}
|
||||
if(ui->lineEditBuchungStartBackgroundColor->text() != m_settings.buchungStartBackgroundColor())
|
||||
m_settings.setBuchungStartBackgroundColor(ui->lineEditBuchungStartBackgroundColor->text());
|
||||
if(ui->lineEditBuchungEndBackgroundColor->text() != m_settings.buchungEndBackgroundColor())
|
||||
m_settings.setBuchungEndBackgroundColor(ui->lineEditBuchungEndBackgroundColor->text());
|
||||
if(ui->lineEditBuchungOtherBackgroundColor->text() != m_settings.buchungOtherBackgroundColor())
|
||||
m_settings.setBuchungOtherBackgroundColor(ui->lineEditBuchungOtherBackgroundColor->text());
|
||||
if(ui->lineEditBookingStartBackgroundColor->text() != m_settings.bookingStartBackgroundColor())
|
||||
m_settings.setBookingStartBackgroundColor(ui->lineEditBookingStartBackgroundColor->text());
|
||||
if(ui->lineEditBookingEndBackgroundColor->text() != m_settings.bookingEndBackgroundColor())
|
||||
m_settings.setBookingEndBackgroundColor(ui->lineEditBookingEndBackgroundColor->text());
|
||||
if(ui->lineEditBookingOtherBackgroundColor->text() != m_settings.bookingOtherBackgroundColor())
|
||||
m_settings.setBookingOtherBackgroundColor(ui->lineEditBookingOtherBackgroundColor->text());
|
||||
if(ui->lineEditTimeAssignmentBackgroundColor->text() != m_settings.timeAssignmentBackgroundColor())
|
||||
m_settings.setTimeAssignmentBackgroundColor(ui->lineEditTimeAssignmentBackgroundColor->text());
|
||||
|
||||
|
@@ -45,32 +45,32 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelbuchungStartBackgroundColor">
|
||||
<widget class="QLabel" name="labelbookingStartBackgroundColor">
|
||||
<property name="text">
|
||||
<string>buchungStartBackgroundColor</string>
|
||||
<string>bookingStartBackgroundColor</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEditBuchungStartBackgroundColor</cstring>
|
||||
<cstring>lineEditBookingStartBackgroundColor</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="labelbuchungEndBackgroundColor">
|
||||
<widget class="QLabel" name="labelbookingEndBackgroundColor">
|
||||
<property name="text">
|
||||
<string>buchungEndBackgroundColor</string>
|
||||
<string>bookingEndBackgroundColor</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEditBuchungEndBackgroundColor</cstring>
|
||||
<cstring>lineEditBookingEndBackgroundColor</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="labelbuchungOtherBackgroundColor">
|
||||
<widget class="QLabel" name="labelbookingOtherBackgroundColor">
|
||||
<property name="text">
|
||||
<string>buchungOtherBackgroundColor</string>
|
||||
<string>bookingOtherBackgroundColor</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineEditBuchungOtherBackgroundColor</cstring>
|
||||
<cstring>lineEditBookingOtherBackgroundColor</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -88,13 +88,13 @@
|
||||
<widget class="QComboBox" name="comboBoxLanguage"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEditBuchungStartBackgroundColor"/>
|
||||
<widget class="QLineEdit" name="lineEditBookingStartBackgroundColor"/>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lineEditBuchungEndBackgroundColor"/>
|
||||
<widget class="QLineEdit" name="lineEditBookingEndBackgroundColor"/>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="lineEditBuchungOtherBackgroundColor"/>
|
||||
<widget class="QLineEdit" name="lineEditBookingOtherBackgroundColor"/>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<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!"),
|
||||
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;
|
||||
}
|
||||
|
||||
|
239
mainwindow.cpp
239
mainwindow.cpp
@@ -17,12 +17,12 @@
|
||||
#include "zeiterfassungsettings.h"
|
||||
#include "eventloopwithstatus.h"
|
||||
#include "dialogs/aboutmedialog.h"
|
||||
#include "dialogs/buchungdialog.h"
|
||||
#include "dialogs/bookingdialog.h"
|
||||
#include "dialogs/timeassignmentdialog.h"
|
||||
#include "dialogs/settingsdialog.h"
|
||||
#include "strips/buchungstrip.h"
|
||||
#include "strips/bookingstrip.h"
|
||||
#include "strips/timeassignmentstrip.h"
|
||||
#include "models/buchungenmodel.h"
|
||||
#include "models/bookingsmodel.h"
|
||||
#include "models/timeassignmentsmodel.h"
|
||||
|
||||
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_erfassung(erfassung),
|
||||
m_userInfo(userInfo),
|
||||
m_buchungenModel(new BuchungenModel(erfassung, this)),
|
||||
m_bookingsModel(new BookingsModel(erfassung, this)),
|
||||
m_timeAssignmentsModel(new TimeAssignmentsModel(erfassung, this)),
|
||||
m_flag(false)
|
||||
{
|
||||
@@ -93,11 +93,11 @@ MainWindow::MainWindow(ZeiterfassungSettings &settings, Zeiterfassung &erfassung
|
||||
connect(ui->pushButtonStart, &QAbstractButton::pressed, this, &MainWindow::pushButtonStartPressed);
|
||||
connect(ui->pushButtonEnd, &QAbstractButton::pressed, this, &MainWindow::pushButtonEndPressed);
|
||||
|
||||
ui->treeViewBuchungen->setModel(m_buchungenModel);
|
||||
ui->treeViewBookings->setModel(m_bookingsModel);
|
||||
ui->treeViewTimeAssignments->setModel(m_timeAssignmentsModel);
|
||||
|
||||
connect(ui->treeViewBuchungen, &QWidget::customContextMenuRequested,
|
||||
this, &MainWindow::contextMenuBuchung);
|
||||
connect(ui->treeViewBookings, &QWidget::customContextMenuRequested,
|
||||
this, &MainWindow::contextMenuBooking);
|
||||
connect(ui->treeViewTimeAssignments, &QWidget::customContextMenuRequested,
|
||||
this, &MainWindow::contextMenuTimeAssignment);
|
||||
|
||||
@@ -155,16 +155,16 @@ void MainWindow::refresh(bool forceAuswertung)
|
||||
ui->comboBoxText->setEnabled(false);
|
||||
ui->pushButtonStart->setEnabled(false);
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewBuchungen->setEnabled(false);
|
||||
ui->treeViewBookings->setEnabled(false);
|
||||
ui->treeViewTimeAssignments->setEnabled(false);
|
||||
|
||||
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());
|
||||
if(waitForBuchugen)
|
||||
auto waitForBookings = m_bookingsModel->refresh(m_userInfo.userId, ui->dateEditDate->date(), ui->dateEditDate->date());
|
||||
if(waitForBookings)
|
||||
{
|
||||
connect(m_buchungenModel, &BuchungenModel::refreshFinished,
|
||||
this, &MainWindow::refreshBuchungenFinished);
|
||||
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||
this, &MainWindow::refreshBookingsFinished);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
if(!waitForBuchugen || !waitForTimeAssignments)
|
||||
QMessageBox::warning(this, tr("Unknown error occured."), tr("An unknown error occured."));
|
||||
if(!waitForBookings || !waitForTimeAssignments)
|
||||
QMessageBox::warning(this, tr("Unknown error occured!"), tr("Unknown error occured!"));
|
||||
|
||||
if(waitForBuchugen || waitForTimeAssignments)
|
||||
m_flag = waitForBuchugen == waitForTimeAssignments;
|
||||
if(waitForBookings || waitForTimeAssignments)
|
||||
m_flag = waitForBookings == waitForTimeAssignments;
|
||||
else
|
||||
{
|
||||
ui->actionToday->setEnabled(true);
|
||||
@@ -209,7 +209,7 @@ void MainWindow::refresh(bool forceAuswertung)
|
||||
else
|
||||
{
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -280,13 +280,13 @@ void MainWindow::getAuswertungFinished(bool success, const QString &message, con
|
||||
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,
|
||||
this, &MainWindow::refreshBuchungenFinished);
|
||||
disconnect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||
this, &MainWindow::refreshBookingsFinished);
|
||||
|
||||
if(success)
|
||||
ui->treeViewBuchungen->setEnabled(true);
|
||||
ui->treeViewBookings->setEnabled(true);
|
||||
|
||||
if(m_flag)
|
||||
m_flag = false;
|
||||
@@ -294,7 +294,7 @@ void MainWindow::refreshBuchungenFinished(bool success, const QString &message)
|
||||
validateEntries();
|
||||
|
||||
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)
|
||||
@@ -311,35 +311,35 @@ void MainWindow::refreshTimeAssignmentsFinished(bool success, const QString &mes
|
||||
validateEntries();
|
||||
|
||||
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())
|
||||
{
|
||||
auto buchung = m_buchungenModel->getBuchung(index);
|
||||
auto booking = m_bookingsModel->getBooking(index);
|
||||
|
||||
QMenu menu;
|
||||
auto editAction = menu.addAction(tr("Edit"));
|
||||
auto deleteAction = menu.addAction(tr("Delete"));
|
||||
auto selectedAction = menu.exec(ui->treeViewBuchungen->viewport()->mapToGlobal(pos));
|
||||
auto editAction = menu.addAction(tr("Edit booking"));
|
||||
auto deleteAction = menu.addAction(tr("Delete booking"));
|
||||
auto selectedAction = menu.exec(ui->treeViewBookings->viewport()->mapToGlobal(pos));
|
||||
if(selectedAction == editAction)
|
||||
{
|
||||
BuchungDialog dialog(this);
|
||||
dialog.setTime(buchung.time);
|
||||
dialog.setTimespan(buchung.timespan);
|
||||
dialog.setType(buchung.type);
|
||||
dialog.setText(buchung.text);
|
||||
BookingDialog dialog(this);
|
||||
dialog.setTime(booking.time);
|
||||
dialog.setTimespan(booking.timespan);
|
||||
dialog.setType(booking.type);
|
||||
dialog.setText(booking.text);
|
||||
again1:
|
||||
if(dialog.exec() == QDialog::Accepted)
|
||||
{
|
||||
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.getType(), dialog.getText());
|
||||
eventLoop.exec();
|
||||
@@ -358,14 +358,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
ui->comboBoxText->setEnabled(false);
|
||||
ui->pushButtonStart->setEnabled(false);
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewBuchungen->setEnabled(false);
|
||||
ui->treeViewBookings->setEnabled(false);
|
||||
|
||||
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,
|
||||
this, &MainWindow::refreshBuchungenFinished);
|
||||
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||
this, &MainWindow::refreshBookingsFinished);
|
||||
m_flag = false;
|
||||
}
|
||||
else
|
||||
@@ -379,7 +379,7 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -387,15 +387,15 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
else if(selectedAction == deleteAction)
|
||||
{
|
||||
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.setDefaultButton(QMessageBox::Cancel);
|
||||
if(msgBox.exec() == QMessageBox::Yes)
|
||||
{
|
||||
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();
|
||||
|
||||
if(eventLoop.success())
|
||||
@@ -412,14 +412,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
ui->comboBoxText->setEnabled(false);
|
||||
ui->pushButtonStart->setEnabled(false);
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewBuchungen->setEnabled(false);
|
||||
ui->treeViewBookings->setEnabled(false);
|
||||
|
||||
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,
|
||||
this, &MainWindow::refreshBuchungenFinished);
|
||||
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||
this, &MainWindow::refreshBookingsFinished);
|
||||
m_flag = false;
|
||||
}
|
||||
else
|
||||
@@ -432,26 +432,26 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
QMenu menu;
|
||||
auto createAction = menu.addAction(tr("Create"));
|
||||
auto selectedAction = menu.exec(ui->treeViewBuchungen->viewport()->mapToGlobal(pos));
|
||||
auto createAction = menu.addAction(tr("Create booking"));
|
||||
auto selectedAction = menu.exec(ui->treeViewBookings->viewport()->mapToGlobal(pos));
|
||||
if(selectedAction == createAction)
|
||||
{
|
||||
BuchungDialog dialog(this);
|
||||
BookingDialog dialog(this);
|
||||
dialog.setTime(timeNormalise(QTime::currentTime()));
|
||||
again2:
|
||||
if(dialog.exec() == QDialog::Accepted)
|
||||
{
|
||||
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.getType(), dialog.getText());
|
||||
eventLoop.exec();
|
||||
@@ -470,14 +470,14 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
ui->comboBoxText->setEnabled(false);
|
||||
ui->pushButtonStart->setEnabled(false);
|
||||
ui->pushButtonEnd->setEnabled(false);
|
||||
ui->treeViewBuchungen->setEnabled(false);
|
||||
ui->treeViewBookings->setEnabled(false);
|
||||
|
||||
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,
|
||||
this, &MainWindow::refreshBuchungenFinished);
|
||||
connect(m_bookingsModel, &BookingsModel::refreshFinished,
|
||||
this, &MainWindow::refreshBookingsFinished);
|
||||
m_flag = false;
|
||||
}
|
||||
else
|
||||
@@ -491,7 +491,7 @@ void MainWindow::contextMenuBuchung(const QPoint &pos)
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -508,8 +508,8 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
||||
auto timeAssignment = m_timeAssignmentsModel->getTimeAssignment(index);
|
||||
|
||||
QMenu menu;
|
||||
auto editAction = menu.addAction(tr("Edit"));
|
||||
auto deleteAction = menu.addAction(tr("Delete"));
|
||||
auto editAction = menu.addAction(tr("Edit time assignment"));
|
||||
auto deleteAction = menu.addAction(tr("Delete time assignment"));
|
||||
auto selectedAction = menu.exec(ui->treeViewTimeAssignments->viewport()->mapToGlobal(pos));
|
||||
if(selectedAction == editAction)
|
||||
{
|
||||
@@ -572,7 +572,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -632,7 +632,7 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
||||
else
|
||||
{
|
||||
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));
|
||||
if(selectedAction == createAction)
|
||||
{
|
||||
@@ -699,20 +699,20 @@ void MainWindow::contextMenuTimeAssignment(const QPoint &pos)
|
||||
|
||||
void MainWindow::pushButtonStartPressed()
|
||||
{
|
||||
if(m_buchungenModel->rbegin() == m_buchungenModel->rend() ||
|
||||
m_buchungenModel->rbegin()->type == QStringLiteral("G"))
|
||||
if(m_bookingsModel->rbegin() == m_bookingsModel->rend() ||
|
||||
m_bookingsModel->rbegin()->type == QStringLiteral("G"))
|
||||
{
|
||||
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),
|
||||
QStringLiteral("K"), QStringLiteral(""));
|
||||
eventLoop.exec();
|
||||
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -738,7 +738,7 @@ void MainWindow::pushButtonStartPressed()
|
||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -775,16 +775,16 @@ void MainWindow::pushButtonEndPressed()
|
||||
{
|
||||
{
|
||||
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),
|
||||
QStringLiteral("G"), QStringLiteral(""));
|
||||
eventLoop.exec();
|
||||
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -809,7 +809,7 @@ void MainWindow::pushButtonEndPressed()
|
||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timespan);
|
||||
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);
|
||||
return;
|
||||
}
|
||||
@@ -828,65 +828,65 @@ void MainWindow::validateEntries()
|
||||
ui->pushButtonNext->setEnabled(true);
|
||||
ui->pushButtonStart->setText(tr("Start"));
|
||||
|
||||
if(!ui->treeViewBuchungen->isEnabled())
|
||||
if(!ui->treeViewBookings->isEnabled())
|
||||
return;
|
||||
|
||||
if(!ui->treeViewTimeAssignments->isEnabled())
|
||||
return;
|
||||
|
||||
auto buchungenIter = m_buchungenModel->constBegin();
|
||||
auto bookingsIter = m_bookingsModel->constBegin();
|
||||
auto timeAssignmentsIter = m_timeAssignmentsModel->constBegin();
|
||||
|
||||
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;
|
||||
|
||||
QString errorMessage;
|
||||
|
||||
while(true)
|
||||
{
|
||||
if(buchungenIter == m_buchungenModel->constEnd() &&
|
||||
if(bookingsIter == m_bookingsModel->constEnd() &&
|
||||
timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||
{
|
||||
goto after;
|
||||
}
|
||||
|
||||
if(buchungenIter == m_buchungenModel->constEnd())
|
||||
if(bookingsIter == m_bookingsModel->constEnd())
|
||||
{
|
||||
errorMessage = tr("Missing Buchung.");
|
||||
errorMessage = tr("Missing booking!");
|
||||
goto after;
|
||||
}
|
||||
|
||||
auto startBuchung = *buchungenIter++;
|
||||
if(startBuchung.type != QStringLiteral("K"))
|
||||
auto startBooking = *bookingsIter++;
|
||||
if(startBooking.type != QStringLiteral("K"))
|
||||
{
|
||||
errorMessage = tr("Expected start Buchung, instead got type %0\nBuchung ID: %1")
|
||||
.arg(startBuchung.type)
|
||||
.arg(startBuchung.id);
|
||||
errorMessage = tr("Expected start booking, instead got type %0\nBooking ID: %1")
|
||||
.arg(startBooking.type)
|
||||
.arg(startBooking.id);
|
||||
goto after;
|
||||
}
|
||||
|
||||
if(lastBuchung)
|
||||
if(lastBooking)
|
||||
{
|
||||
auto label = new QLabel(tr("%0: %1")
|
||||
.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->verticalLayout2->addWidget(label);
|
||||
label->setMinimumHeight(20);
|
||||
label->setMaximumHeight(20);
|
||||
}
|
||||
|
||||
lastBuchung = &startBuchung;
|
||||
lastBooking = &startBooking;
|
||||
|
||||
m_lastTimeAssignmentStart = startBuchung.time;
|
||||
ui->verticalLayout2->addWidget(new BuchungStrip(startBuchung.id, startBuchung.time, startBuchung.type, m_settings, ui->scrollAreaWidgetContents));
|
||||
m_lastTimeAssignmentStart = startBooking.time;
|
||||
ui->verticalLayout2->addWidget(new BookingStrip(startBooking.id, startBooking.time, startBooking.type, m_settings, ui->scrollAreaWidgetContents));
|
||||
|
||||
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||
{
|
||||
errorMessage = tr("Missing time assignment.");
|
||||
errorMessage = tr("Missing time assignment!");
|
||||
goto after;
|
||||
}
|
||||
|
||||
@@ -908,10 +908,10 @@ void MainWindow::validateEntries()
|
||||
|
||||
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")
|
||||
.arg(buchungenIter->id)
|
||||
errorMessage = tr("There is another booking after an unfinished time assignment.\nBooking ID: %0\nTime assignment ID: %1")
|
||||
.arg(bookingsIter->id)
|
||||
.arg(timeAssignment.id);
|
||||
goto after;
|
||||
}
|
||||
@@ -934,13 +934,13 @@ void MainWindow::validateEntries()
|
||||
m_timeAssignmentTime = timeAdd(m_timeAssignmentTime, timeAssignment.timespan);
|
||||
m_lastTimeAssignmentStart = timeAdd(m_lastTimeAssignmentStart, timeAssignment.timespan);
|
||||
|
||||
if(buchungenIter == m_buchungenModel->constEnd())
|
||||
if(bookingsIter == m_bookingsModel->constEnd())
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
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);
|
||||
goto after;
|
||||
}
|
||||
@@ -986,26 +986,26 @@ void MainWindow::validateEntries()
|
||||
}
|
||||
else
|
||||
{
|
||||
auto endBuchung = *buchungenIter++;
|
||||
if(endBuchung.type != QStringLiteral("G"))
|
||||
auto endBooking = *bookingsIter++;
|
||||
if(endBooking.type != QStringLiteral("G"))
|
||||
{
|
||||
errorMessage = tr("Expected end Buchung, instead got type %0\nBuchung ID: %1")
|
||||
.arg(endBuchung.type)
|
||||
.arg(endBuchung.id);
|
||||
errorMessage = tr("Expected end booking, instead got type %0\nBooking ID: %1")
|
||||
.arg(endBooking.type)
|
||||
.arg(endBooking.id);
|
||||
goto after;
|
||||
}
|
||||
|
||||
lastBuchung = &endBuchung;
|
||||
lastBooking = &endBooking;
|
||||
|
||||
buchungTimespan = timeAdd(buchungTimespan, timeBetween(startBuchung.time, endBuchung.time));
|
||||
ui->timeEditTime->setMinimumTime(timeAdd(endBuchung.time, QTime(0, 1)));
|
||||
bookingTimespan = timeAdd(bookingTimespan, timeBetween(startBooking.time, endBooking.time));
|
||||
ui->timeEditTime->setMinimumTime(timeAdd(endBooking.time, QTime(0, 1)));
|
||||
|
||||
while(m_timeAssignmentTime < buchungTimespan)
|
||||
while(m_timeAssignmentTime < bookingTimespan)
|
||||
{
|
||||
if(timeAssignmentsIter == m_timeAssignmentsModel->constEnd())
|
||||
{
|
||||
errorMessage = tr("Missing time assignment(s)! Missing: %0h")
|
||||
.arg(timeBetween(m_timeAssignmentTime, buchungTimespan).toString("HH:mm:ss"));
|
||||
errorMessage = tr("Missing time assignment! Missing: %0h")
|
||||
.arg(timeBetween(m_timeAssignmentTime, bookingTimespan).toString("HH:mm:ss"));
|
||||
|
||||
{
|
||||
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
||||
@@ -1014,7 +1014,7 @@ void MainWindow::validateEntries()
|
||||
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;
|
||||
}
|
||||
@@ -1037,11 +1037,11 @@ void MainWindow::validateEntries()
|
||||
|
||||
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"
|
||||
"Buchung ID: %0\nTime assignment ID: %1")
|
||||
.arg(buchungenIter->id)
|
||||
errorMessage = tr("There is another booking after an unfinished time assignment.\n"
|
||||
"Booking ID: %0\nTime assignment ID: %1")
|
||||
.arg(bookingsIter->id)
|
||||
.arg(timeAssignment.id);
|
||||
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(buchungTimespan.toString("HH:mm:ss"));
|
||||
.arg(bookingTimespan.toString("HH:mm:ss"));
|
||||
|
||||
auto label = new QLabel(errorMessage, ui->scrollAreaWidgetContents);
|
||||
ui->verticalLayout2->addWidget(label);
|
||||
@@ -1077,9 +1077,9 @@ void MainWindow::validateEntries()
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1100,8 +1100,7 @@ void MainWindow::validateEntries()
|
||||
|
||||
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")
|
||||
.arg(errorMessage));
|
||||
QMessageBox::warning(this, tr("Illegal state!"), tr("Your bookings and time assignments for this day are in an illegal state!") % "\n\n" % errorMessage);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@ class QLabel;
|
||||
|
||||
namespace Ui { class MainWindow; }
|
||||
class ZeiterfassungSettings;
|
||||
class BuchungenModel;
|
||||
class BookingsModel;
|
||||
class TimeAssignmentsModel;
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
@@ -30,9 +30,9 @@ private Q_SLOTS:
|
||||
void refresh(bool forceAuswertung = false);
|
||||
void getProjekctsFinished(bool success, const QString &message, const QVector<Zeiterfassung::Project> &projects);
|
||||
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 contextMenuBuchung(const QPoint &pos);
|
||||
void contextMenuBooking(const QPoint &pos);
|
||||
void contextMenuTimeAssignment(const QPoint &pos);
|
||||
void pushButtonStartPressed();
|
||||
void pushButtonEndPressed();
|
||||
@@ -55,7 +55,7 @@ private:
|
||||
QLabel *m_balanceLabel;
|
||||
QLabel *m_holidaysLabel;
|
||||
|
||||
BuchungenModel *m_buchungenModel;
|
||||
BookingsModel *m_bookingsModel;
|
||||
TimeAssignmentsModel *m_timeAssignmentsModel;
|
||||
|
||||
bool m_flag;
|
||||
|
@@ -213,13 +213,13 @@
|
||||
<attribute name="title">
|
||||
<string>Advanced view</string>
|
||||
</attribute>
|
||||
<widget class="QGroupBox" name="groupBoxBuchungen">
|
||||
<widget class="QGroupBox" name="groupBoxBookings">
|
||||
<property name="title">
|
||||
<string>Buchungen</string>
|
||||
<string>Bookings</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QTreeView" name="treeViewBuchungen">
|
||||
<widget class="QTreeView" name="treeViewBookings">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</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
|
||||
#define BUCHUNGENMODEL_H
|
||||
#ifndef BOOKINGSMODEL_H
|
||||
#define BOOKINGSMODEL_H
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QVector>
|
||||
|
||||
#include "zeiterfassung.h"
|
||||
|
||||
class BuchungenModel : public QAbstractListModel
|
||||
class BookingsModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BuchungenModel(Zeiterfassung &erfassung, QObject *parent = nullptr);
|
||||
explicit BookingsModel(Zeiterfassung &erfassung, QObject *parent = nullptr);
|
||||
|
||||
// QAbstractItemModel interface
|
||||
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 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);
|
||||
|
||||
typedef QVector<Zeiterfassung::Buchung>::iterator iterator;
|
||||
typedef QVector<Zeiterfassung::Buchung>::const_iterator const_iterator;
|
||||
typedef QVector<Zeiterfassung::Buchung>::reverse_iterator reverse_iterator;
|
||||
typedef QVector<Zeiterfassung::Buchung>::const_reverse_iterator const_reverse_iterator;
|
||||
typedef QVector<Zeiterfassung::Booking>::iterator iterator;
|
||||
typedef QVector<Zeiterfassung::Booking>::const_iterator const_iterator;
|
||||
typedef QVector<Zeiterfassung::Booking>::reverse_iterator reverse_iterator;
|
||||
typedef QVector<Zeiterfassung::Booking>::const_reverse_iterator const_reverse_iterator;
|
||||
|
||||
#if !defined(QT_STRICT_ITERATORS) || defined(Q_QDOC)
|
||||
//inline iterator begin() { return m_buchungen.begin(); }
|
||||
inline const_iterator begin() const Q_DECL_NOTHROW { return m_buchungen.begin(); }
|
||||
inline const_iterator cbegin() const Q_DECL_NOTHROW { return m_buchungen.cbegin(); }
|
||||
inline const_iterator constBegin() const Q_DECL_NOTHROW { return m_buchungen.constBegin(); }
|
||||
//inline iterator end() { return m_buchungen.end(); }
|
||||
inline const_iterator end() const Q_DECL_NOTHROW { return m_buchungen.end(); }
|
||||
inline const_iterator cend() const Q_DECL_NOTHROW { return m_buchungen.cend(); }
|
||||
inline const_iterator constEnd() const Q_DECL_NOTHROW { return m_buchungen.constEnd(); }
|
||||
//inline iterator begin() { return m_bookings.begin(); }
|
||||
inline const_iterator begin() const Q_DECL_NOTHROW { return m_bookings.begin(); }
|
||||
inline const_iterator cbegin() const Q_DECL_NOTHROW { return m_bookings.cbegin(); }
|
||||
inline const_iterator constBegin() const Q_DECL_NOTHROW { return m_bookings.constBegin(); }
|
||||
//inline iterator end() { return m_bookings.end(); }
|
||||
inline const_iterator end() const Q_DECL_NOTHROW { return m_bookings.end(); }
|
||||
inline const_iterator cend() const Q_DECL_NOTHROW { return m_bookings.cend(); }
|
||||
inline const_iterator constEnd() const Q_DECL_NOTHROW { return m_bookings.constEnd(); }
|
||||
#else
|
||||
//inline iterator begin(iterator = iterator()) { return m_buchungen.begin(); }
|
||||
inline const_iterator begin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { 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_bookings.begin(); }
|
||||
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 iterator end(iterator = iterator()) { return m_buchungen.end(); }
|
||||
inline const_iterator end(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.end(); }
|
||||
inline const_iterator cend(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.cend(); }
|
||||
inline const_iterator constEnd(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_buchungen.constEnd(); }
|
||||
inline const_iterator constBegin(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.constBegin(); }
|
||||
//inline iterator end(iterator = iterator()) { return m_bookings.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_bookings.cend(); }
|
||||
inline const_iterator constEnd(const_iterator = const_iterator()) const Q_DECL_NOTHROW { return m_bookings.constEnd(); }
|
||||
#endif
|
||||
//reverse_iterator rbegin() { return m_buchungen.rbegin(); }
|
||||
//reverse_iterator rend() { return m_buchungen.rbegin(); }
|
||||
const_reverse_iterator rbegin() const Q_DECL_NOTHROW { return m_buchungen.rbegin(); }
|
||||
const_reverse_iterator rend() const Q_DECL_NOTHROW { return m_buchungen.rend(); }
|
||||
const_reverse_iterator crbegin() const Q_DECL_NOTHROW { return m_buchungen.crbegin(); }
|
||||
const_reverse_iterator crend() const Q_DECL_NOTHROW { return m_buchungen.crend(); }
|
||||
//reverse_iterator rbegin() { return m_bookings.rbegin(); }
|
||||
//reverse_iterator rend() { return m_bookings.rbegin(); }
|
||||
const_reverse_iterator rbegin() const Q_DECL_NOTHROW { return m_bookings.rbegin(); }
|
||||
const_reverse_iterator rend() const Q_DECL_NOTHROW { return m_bookings.rend(); }
|
||||
const_reverse_iterator crbegin() const Q_DECL_NOTHROW { return m_bookings.crbegin(); }
|
||||
const_reverse_iterator crend() const Q_DECL_NOTHROW { return m_bookings.crend(); }
|
||||
|
||||
Q_SIGNALS:
|
||||
void refreshFinished(bool success, const QString &message);
|
||||
|
||||
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:
|
||||
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 "ui_buchungstrip.h"
|
||||
#include "bookingstrip.h"
|
||||
#include "ui_bookingstrip.h"
|
||||
|
||||
#include <QTime>
|
||||
#include <QStringBuilder>
|
||||
|
||||
#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),
|
||||
ui(new Ui::BuchungStrip)
|
||||
ui(new Ui::BookingStrip)
|
||||
{
|
||||
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")));
|
||||
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"));
|
||||
}
|
||||
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"));
|
||||
}
|
||||
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->labelId->setText(QString::number(id));
|
||||
}
|
||||
|
||||
BuchungStrip::~BuchungStrip()
|
||||
BookingStrip::~BookingStrip()
|
||||
{
|
||||
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"?>
|
||||
<ui version="4.0">
|
||||
<class>BuchungStrip</class>
|
||||
<widget class="QFrame" name="BuchungStrip">
|
||||
<class>BookingStrip</class>
|
||||
<widget class="QFrame" name="BookingStrip">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<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>
|
||||
<name>AboutMeDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="20"/>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="31"/>
|
||||
<source>About me</source>
|
||||
<translation>Über mich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="40"/>
|
||||
<source>User-ID:</source>
|
||||
<translation>Benutzer-ID:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="50"/>
|
||||
<source>E-Mail:</source>
|
||||
<translation>E-Mail:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="60"/>
|
||||
<source>Long username:</source>
|
||||
<translation>Langer Benutzername:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="70"/>
|
||||
<source>Text:</source>
|
||||
<translation>Text:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="80"/>
|
||||
<source>Username:</source>
|
||||
<translation>Benutzername:</translation>
|
||||
</message>
|
||||
@@ -31,75 +38,93 @@
|
||||
<context>
|
||||
<name>AuthenticationDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="55"/>
|
||||
<source>Authentication</source>
|
||||
<translation>Authentifizierung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="66"/>
|
||||
<source>Username:</source>
|
||||
<translation>Benutzername:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="76"/>
|
||||
<source>Password:</source>
|
||||
<translation>Passwort:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungDialog</name>
|
||||
<name>BookingDialog</name>
|
||||
<message>
|
||||
<source>Buchung</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="31"/>
|
||||
<source>Booking</source>
|
||||
<translation>Buchung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="40"/>
|
||||
<source>Time:</source>
|
||||
<translation>Zeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="50"/>
|
||||
<source>Timespan:</source>
|
||||
<translation>Zeitspanne:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="60"/>
|
||||
<source>Type:</source>
|
||||
<translation>Typ:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="70"/>
|
||||
<source>Text:</source>
|
||||
<translation>Text:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungStrip</name>
|
||||
<name>BookingStrip</name>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="22"/>
|
||||
<source>START</source>
|
||||
<translation>KOMMEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="27"/>
|
||||
<source>END</source>
|
||||
<translation>GEHEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="32"/>
|
||||
<source>UNKNOWN</source>
|
||||
<translation>UNBEKANNT</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungenModel</name>
|
||||
<name>BookingsModel</name>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="57"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="58"/>
|
||||
<source>Time</source>
|
||||
<translation>Zeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="59"/>
|
||||
<source>Timespan</source>
|
||||
<translation>Zeitspanne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="60"/>
|
||||
<source>Type</source>
|
||||
<translation>Typ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="61"/>
|
||||
<source>Text</source>
|
||||
<translation>Text</translation>
|
||||
</message>
|
||||
@@ -107,22 +132,28 @@
|
||||
<context>
|
||||
<name>LanguageSelectionDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="20"/>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="31"/>
|
||||
<source>Language selection</source>
|
||||
<translation>Sprachauswahl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="38"/>
|
||||
<source>Please select a language:</source>
|
||||
<translation>Bitte wählen sie eine Sprache:</translation>
|
||||
<translation>Bitte wählen Sie eine Sprache:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="47"/>
|
||||
<source>Language:</source>
|
||||
<translation>Sprache:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.cpp" line="10"/>
|
||||
<source>English</source>
|
||||
<translation>Englisch</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.cpp" line="11"/>
|
||||
<source>German</source>
|
||||
<translation>Deutsch</translation>
|
||||
</message>
|
||||
@@ -130,333 +161,447 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="146"/>
|
||||
<location filename="../mainwindow.cpp" line="829"/>
|
||||
<source>Start</source>
|
||||
<translation>Kommen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="169"/>
|
||||
<source>End</source>
|
||||
<translation>Gehen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="191"/>
|
||||
<source>Optimized view</source>
|
||||
<translation>Optimierte Anzeige</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="214"/>
|
||||
<source>Advanced view</source>
|
||||
<translation>Erweiterte Anzeige</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Buchungen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../mainwindow.ui" line="218"/>
|
||||
<source>Bookings</source>
|
||||
<translation>Buchungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="235"/>
|
||||
<source>Time assignments</source>
|
||||
<translation>Kontierungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="266"/>
|
||||
<source>&File</source>
|
||||
<translation>&Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="272"/>
|
||||
<source>&About</source>
|
||||
<translation>&Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="282"/>
|
||||
<source>&View</source>
|
||||
<translation>&Ansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="289"/>
|
||||
<source>&Tools</source>
|
||||
<translation>&Werkzeuge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="305"/>
|
||||
<source>&Quit</source>
|
||||
<translation>&Beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="310"/>
|
||||
<source>About &Me</source>
|
||||
<translation>Über &mich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="315"/>
|
||||
<source>About &zeiterfassung</source>
|
||||
<translation>Über &zeiterfassung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="320"/>
|
||||
<source>About &Qt</source>
|
||||
<translation>Über &Qt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="332"/>
|
||||
<source>&Today</source>
|
||||
<translation>&Heute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="344"/>
|
||||
<source>&Refresh</source>
|
||||
<translation>&Aktualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="352"/>
|
||||
<source>&Auswertung</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="357"/>
|
||||
<source>&Settings</source>
|
||||
<translation>&Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="40"/>
|
||||
<source>Zeiterfassung - %0 (%1)</source>
|
||||
<translation>Zeiterfassung - %0 (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="54"/>
|
||||
<location filename="../mainwindow.cpp" line="63"/>
|
||||
<source>Could not open auswertung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="63"/>
|
||||
<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>
|
||||
<location filename="../mainwindow.cpp" line="87"/>
|
||||
<source>Subproject</source>
|
||||
<translation>Subprojekt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="88"/>
|
||||
<source>Workpackage</source>
|
||||
<translation>Arbeitspaket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="89"/>
|
||||
<source>Text</source>
|
||||
<translation>Text</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="279"/>
|
||||
<location filename="../mainwindow.cpp" line="280"/>
|
||||
<location filename="../mainwindow.cpp" line="873"/>
|
||||
<location filename="../mainwindow.cpp" line="1090"/>
|
||||
<source>%0: %1</source>
|
||||
<translation>%0: %1</translation>
|
||||
</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>
|
||||
<translation>???</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown error occured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An unknown error occured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="196"/>
|
||||
<location filename="../mainwindow.cpp" line="279"/>
|
||||
<source>Balance</source>
|
||||
<translation>Saldo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="197"/>
|
||||
<location filename="../mainwindow.cpp" line="280"/>
|
||||
<source>Holidays</source>
|
||||
<translation>Urlaubsanspruch</translation>
|
||||
<translation>Urlaubstage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not load Buchungen!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../mainwindow.cpp" line="224"/>
|
||||
<location filename="../mainwindow.cpp" line="297"/>
|
||||
<source>Could not load bookings!</source>
|
||||
<translation>Konnte Buchungen nicht laden!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="244"/>
|
||||
<source>Could not load Auswertung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="273"/>
|
||||
<location filename="../mainwindow.cpp" line="875"/>
|
||||
<location filename="../mainwindow.cpp" line="1090"/>
|
||||
<source>%0h</source>
|
||||
<translation>%0h</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not refresh Buchungen!</source>
|
||||
<location filename="../mainwindow.cpp" line="889"/>
|
||||
<source>Missing time assignment!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not refresh time assignments!</source>
|
||||
<translation>Konnte Kontierungen nicht aktualisieren!</translation>
|
||||
</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>
|
||||
<location filename="../mainwindow.cpp" line="1007"/>
|
||||
<source>Missing time assignment! Missing: %0h</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not delete Buchung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../mainwindow.cpp" line="178"/>
|
||||
<location filename="../mainwindow.cpp" line="212"/>
|
||||
<source>Unknown error occured!</source>
|
||||
<translation>Unbekannter Fehler aufgetreten!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create</source>
|
||||
<translation>Erstellen</translation>
|
||||
<location filename="../mainwindow.cpp" line="314"/>
|
||||
<source>Could not load time assignments!</source>
|
||||
<translation>Konnte Kontierungen nicht laden!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not create Buchung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<location filename="../mainwindow.cpp" line="435"/>
|
||||
<source>Could not delete booking!</source>
|
||||
<translation>Konnte Buchung nicht löschen!</translation>
|
||||
</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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="628"/>
|
||||
<source>Could not delete time assignment!</source>
|
||||
<translation>Konnte Kontierung nicht löschen!</translation>
|
||||
</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>
|
||||
<translation>Konnte Kontierung nicht erstellen!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing Buchung.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expected start Buchung, instead got type %0
|
||||
Buchung ID: %1</source>
|
||||
<location filename="../mainwindow.cpp" line="858"/>
|
||||
<source>Missing booking!</source>
|
||||
<translation>Kontierung fehlend!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="865"/>
|
||||
<source>Expected start booking, instead got type %0
|
||||
Booking ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="874"/>
|
||||
<source>Break</source>
|
||||
<translation>Pause</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing time assignment.</source>
|
||||
<translation>Kontierung fehlend.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="896"/>
|
||||
<location filename="../mainwindow.cpp" line="951"/>
|
||||
<location filename="../mainwindow.cpp" line="1025"/>
|
||||
<source>Expected %0 but received %1 in time assignment.
|
||||
Time assignment ID: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There is another Buchung after an unfinished time assignment.
|
||||
Buchung ID: %0
|
||||
<location filename="../mainwindow.cpp" line="913"/>
|
||||
<location filename="../mainwindow.cpp" line="1042"/>
|
||||
<source>There is another booking after an unfinished time assignment.
|
||||
Booking ID: %0
|
||||
Time assignment ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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.
|
||||
Time assignment ID: %0
|
||||
Time assignment ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="928"/>
|
||||
<location filename="../mainwindow.cpp" line="976"/>
|
||||
<location filename="../mainwindow.cpp" line="1058"/>
|
||||
<source>Switch</source>
|
||||
<translation>Wechseln</translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expected end Buchung, instead got type %0
|
||||
Buchung ID: %1</source>
|
||||
<location filename="../mainwindow.cpp" line="992"/>
|
||||
<source>Expected end booking, instead got type %0
|
||||
Booking ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing time assignment(s)! Missing: %0h</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Time assignment time longer than Buchung time! Time assignment: %0 Buchung: %1</source>
|
||||
<location filename="../mainwindow.cpp" line="1070"/>
|
||||
<source>Time assignment time longer than booking time! Time assignment: %0 Booking: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1093"/>
|
||||
<source>Strip rendering aborted due error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1103"/>
|
||||
<source>Illegal state!</source>
|
||||
<translation>Ungültiger Zustand!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Buchungen and time assignments for this day are in an invalid state:
|
||||
|
||||
%0</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Assigned time</source>
|
||||
<translation>Kontierte Zeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Subproject</source>
|
||||
<translation>Subprojekt</translation>
|
||||
<location filename="../mainwindow.cpp" line="1103"/>
|
||||
<source>Your bookings and time assignments for this day are in an illegal state!</source>
|
||||
<translation>Ihre Buchungen und Kontierungen für diesen Tag sind in einem ungültigen Zustand!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="31"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>buchungStartBackgroundColor</source>
|
||||
<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>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="40"/>
|
||||
<source>language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation>Englisch</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="16"/>
|
||||
<source>German</source>
|
||||
<translation>Deutsch</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||
<source>Restart required!</source>
|
||||
<translation>Neustart erforderlich!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||
<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>
|
||||
</context>
|
||||
<context>
|
||||
<name>TimeAssignmentDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
|
||||
<source>Time assignment</source>
|
||||
<translation>Kontierung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
|
||||
<source>Time:</source>
|
||||
<translation>Zeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
|
||||
<source>Timespan:</source>
|
||||
<translation>Zeitspanne:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Workpackage:</source>
|
||||
<translation>Arbeitspaket:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Text:</source>
|
||||
<translation>Text:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
|
||||
<source>Project:</source>
|
||||
<translation>Projekt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
|
||||
<source>Subproject:</source>
|
||||
<translation>Subprojekt:</translation>
|
||||
</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>
|
||||
<name>TimeAssignmentStrip</name>
|
||||
<message>
|
||||
<location filename="../strips/timeassignmentstrip.cpp" line="22"/>
|
||||
<source>Open</source>
|
||||
<translation>Offen</translation>
|
||||
</message>
|
||||
@@ -464,85 +609,134 @@ Buchung ID: %1</source>
|
||||
<context>
|
||||
<name>TimeAssignmentsModel</name>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="59"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="60"/>
|
||||
<source>Time</source>
|
||||
<translation>Zeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="61"/>
|
||||
<source>Timespan</source>
|
||||
<translation>Zeitspanne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Workpackage</source>
|
||||
<translation>Arbeitspaket</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Text</source>
|
||||
<translation>Text</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="62"/>
|
||||
<source>Project</source>
|
||||
<translation>Projekt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="63"/>
|
||||
<source>Subproject</source>
|
||||
<translation>Subprojekt</translation>
|
||||
</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>
|
||||
<name>Zeiterfassung</name>
|
||||
<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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="385"/>
|
||||
<source>Could not find necessary keywords in login page!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="406"/>
|
||||
<source>Request did not contain a Location header.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="420"/>
|
||||
<source>Authentication failure. Please check username and password.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="425"/>
|
||||
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="462"/>
|
||||
<source>JSON does not contain evoAppsUser!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="470"/>
|
||||
<source>evoAppsUser is not an object!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="509"/>
|
||||
<location filename="../zeiterfassung.cpp" line="655"/>
|
||||
<source>JSON document is not an array!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="813"/>
|
||||
<source>JSON does not contain elements!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="821"/>
|
||||
<source>elements is not an array!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -550,48 +744,63 @@ Buchung ID: %1</source>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="61"/>
|
||||
<source>Loading settings...</source>
|
||||
<translation>Lade Einstellungen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="76"/>
|
||||
<location filename="../main.cpp" line="77"/>
|
||||
<source>Invalid language selection!</source>
|
||||
<translation>Ungültige Sprachauswahl!</translation>
|
||||
</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>
|
||||
<translation>Lade Login-Seite...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Base url</source>
|
||||
<translation>Basis URL</translation>
|
||||
</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>
|
||||
<location filename="../main.cpp" line="111"/>
|
||||
<location filename="../main.cpp" line="112"/>
|
||||
<source>Could not access Zeiterfassung!</source>
|
||||
<translation>Konnte Zeiterfassung nicht erreichen!</translation>
|
||||
</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>
|
||||
<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>
|
||||
</context>
|
||||
</TS>
|
||||
|
@@ -4,26 +4,33 @@
|
||||
<context>
|
||||
<name>AboutMeDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="20"/>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="31"/>
|
||||
<source>About me</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="40"/>
|
||||
<source>User-ID:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="50"/>
|
||||
<source>E-Mail:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="60"/>
|
||||
<source>Long username:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="70"/>
|
||||
<source>Text:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/aboutmedialog.ui" line="80"/>
|
||||
<source>Username:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -31,75 +38,93 @@
|
||||
<context>
|
||||
<name>AuthenticationDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="55"/>
|
||||
<source>Authentication</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="66"/>
|
||||
<source>Username:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/authenticationdialog.ui" line="76"/>
|
||||
<source>Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungDialog</name>
|
||||
<name>BookingDialog</name>
|
||||
<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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="40"/>
|
||||
<source>Time:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="50"/>
|
||||
<source>Timespan:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="60"/>
|
||||
<source>Type:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/bookingdialog.ui" line="70"/>
|
||||
<source>Text:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungStrip</name>
|
||||
<name>BookingStrip</name>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="22"/>
|
||||
<source>START</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="27"/>
|
||||
<source>END</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../strips/bookingstrip.cpp" line="32"/>
|
||||
<source>UNKNOWN</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BuchungenModel</name>
|
||||
<name>BookingsModel</name>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="57"/>
|
||||
<source>ID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="58"/>
|
||||
<source>Time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="59"/>
|
||||
<source>Timespan</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="60"/>
|
||||
<source>Type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/bookingsmodel.cpp" line="61"/>
|
||||
<source>Text</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -107,22 +132,28 @@
|
||||
<context>
|
||||
<name>LanguageSelectionDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="20"/>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="31"/>
|
||||
<source>Language selection</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="38"/>
|
||||
<source>Please select a language:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.ui" line="47"/>
|
||||
<source>Language:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.cpp" line="10"/>
|
||||
<source>English</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/languageselectiondialog.cpp" line="11"/>
|
||||
<source>German</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -130,295 +161,400 @@
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="146"/>
|
||||
<location filename="../mainwindow.cpp" line="829"/>
|
||||
<source>Start</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="169"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="191"/>
|
||||
<source>Optimized view</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="214"/>
|
||||
<source>Advanced view</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Buchungen</source>
|
||||
<location filename="../mainwindow.ui" line="218"/>
|
||||
<source>Bookings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="235"/>
|
||||
<source>Time assignments</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="266"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="272"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="282"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="289"/>
|
||||
<source>&Tools</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="305"/>
|
||||
<source>&Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="310"/>
|
||||
<source>About &Me</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="315"/>
|
||||
<source>About &zeiterfassung</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="320"/>
|
||||
<source>About &Qt</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="332"/>
|
||||
<source>&Today</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="344"/>
|
||||
<source>&Refresh</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="352"/>
|
||||
<source>&Auswertung</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.ui" line="357"/>
|
||||
<source>&Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="40"/>
|
||||
<source>Zeiterfassung - %0 (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="54"/>
|
||||
<location filename="../mainwindow.cpp" line="63"/>
|
||||
<source>Could not open auswertung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="63"/>
|
||||
<source>Could not open default PDF viewer!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="89"/>
|
||||
<source>Text</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="279"/>
|
||||
<location filename="../mainwindow.cpp" line="280"/>
|
||||
<location filename="../mainwindow.cpp" line="873"/>
|
||||
<location filename="../mainwindow.cpp" line="1090"/>
|
||||
<source>%0: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Unknown error occured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>An unknown error occured.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="196"/>
|
||||
<location filename="../mainwindow.cpp" line="279"/>
|
||||
<source>Balance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="197"/>
|
||||
<location filename="../mainwindow.cpp" line="280"/>
|
||||
<source>Holidays</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="244"/>
|
||||
<source>Could not load Auswertung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="273"/>
|
||||
<location filename="../mainwindow.cpp" line="875"/>
|
||||
<location filename="../mainwindow.cpp" line="1090"/>
|
||||
<source>%0h</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not refresh Buchungen!</source>
|
||||
<location filename="../mainwindow.cpp" line="889"/>
|
||||
<source>Missing time assignment!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
</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>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delete</source>
|
||||
<location filename="../mainwindow.cpp" line="314"/>
|
||||
<source>Could not load time assignments!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not update Buchung!</source>
|
||||
<location filename="../mainwindow.cpp" line="435"/>
|
||||
<source>Could not delete booking!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not delete Buchung!</source>
|
||||
<location filename="../mainwindow.cpp" line="326"/>
|
||||
<source>Edit booking</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Create</source>
|
||||
<location filename="../mainwindow.cpp" line="327"/>
|
||||
<source>Delete booking</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not create Buchung!</source>
|
||||
<location filename="../mainwindow.cpp" line="382"/>
|
||||
<source>Could not edit booking!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not update time assignment!</source>
|
||||
<location filename="../mainwindow.cpp" line="442"/>
|
||||
<source>Create booking</source>
|
||||
<translation type="unfinished"></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 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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing Buchung.</source>
|
||||
<location filename="../mainwindow.cpp" line="858"/>
|
||||
<source>Missing booking!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expected start Buchung, instead got type %0
|
||||
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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="874"/>
|
||||
<source>Break</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing time assignment.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="896"/>
|
||||
<location filename="../mainwindow.cpp" line="951"/>
|
||||
<location filename="../mainwindow.cpp" line="1025"/>
|
||||
<source>Expected %0 but received %1 in time assignment.
|
||||
Time assignment ID: %2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>There is another Buchung after an unfinished time assignment.
|
||||
Buchung ID: %0
|
||||
<location filename="../mainwindow.cpp" line="913"/>
|
||||
<location filename="../mainwindow.cpp" line="1042"/>
|
||||
<source>There is another booking after an unfinished time assignment.
|
||||
Booking ID: %0
|
||||
Time assignment ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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.
|
||||
Time assignment ID: %0
|
||||
Time assignment ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="928"/>
|
||||
<location filename="../mainwindow.cpp" line="976"/>
|
||||
<location filename="../mainwindow.cpp" line="1058"/>
|
||||
<source>Switch</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expected end Buchung, instead got type %0
|
||||
Buchung ID: %1</source>
|
||||
<location filename="../mainwindow.cpp" line="992"/>
|
||||
<source>Expected end booking, instead got type %0
|
||||
Booking ID: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing time assignment(s)! Missing: %0h</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Time assignment time longer than Buchung time! Time assignment: %0 Buchung: %1</source>
|
||||
<location filename="../mainwindow.cpp" line="1070"/>
|
||||
<source>Time assignment time longer than booking time! Time assignment: %0 Booking: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1093"/>
|
||||
<source>Strip rendering aborted due error.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="1103"/>
|
||||
<source>Illegal state!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Buchungen and time assignments for this day are in an invalid state:
|
||||
|
||||
%0</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Assigned time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Subproject</source>
|
||||
<location filename="../mainwindow.cpp" line="1103"/>
|
||||
<source>Your bookings and time assignments for this day are in an illegal state!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="31"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>buchungStartBackgroundColor</source>
|
||||
<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>
|
||||
<location filename="../dialogs/settingsdialog.ui" line="40"/>
|
||||
<source>language</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="16"/>
|
||||
<source>German</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||
<source>Restart required!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/settingsdialog.cpp" line="37"/>
|
||||
<source>To apply the new language a restart is required!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -426,37 +562,46 @@ Buchung ID: %1</source>
|
||||
<context>
|
||||
<name>TimeAssignmentDialog</name>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="20"/>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="31"/>
|
||||
<source>Time assignment</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="40"/>
|
||||
<source>Time:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="50"/>
|
||||
<source>Timespan:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Workpackage:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Text:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="60"/>
|
||||
<source>Project:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../dialogs/timeassignmentdialog.ui" line="70"/>
|
||||
<source>Subproject:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<name>TimeAssignmentStrip</name>
|
||||
<message>
|
||||
<location filename="../strips/timeassignmentstrip.cpp" line="22"/>
|
||||
<source>Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -464,85 +609,134 @@ Buchung ID: %1</source>
|
||||
<context>
|
||||
<name>TimeAssignmentsModel</name>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="59"/>
|
||||
<source>ID</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="60"/>
|
||||
<source>Time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="61"/>
|
||||
<source>Timespan</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Workpackage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Text</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="62"/>
|
||||
<source>Project</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../models/timeassignmentsmodel.cpp" line="63"/>
|
||||
<source>Subproject</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<name>Zeiterfassung</name>
|
||||
<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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="385"/>
|
||||
<source>Could not find necessary keywords in login page!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="406"/>
|
||||
<source>Request did not contain a Location header.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="420"/>
|
||||
<source>Authentication failure. Please check username and password.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="425"/>
|
||||
<source>An unknown authentication failure occured. Redirected to: %0</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="462"/>
|
||||
<source>JSON does not contain evoAppsUser!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="470"/>
|
||||
<source>evoAppsUser is not an object!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="509"/>
|
||||
<location filename="../zeiterfassung.cpp" line="655"/>
|
||||
<source>JSON document is not an array!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="813"/>
|
||||
<source>JSON does not contain elements!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../zeiterfassung.cpp" line="821"/>
|
||||
<source>elements is not an array!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@@ -550,48 +744,63 @@ Buchung ID: %1</source>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="61"/>
|
||||
<source>Loading settings...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../main.cpp" line="76"/>
|
||||
<location filename="../main.cpp" line="77"/>
|
||||
<source>Invalid language selection!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Base url</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<location filename="../main.cpp" line="111"/>
|
||||
<location filename="../main.cpp" line="112"/>
|
||||
<source>Could not access Zeiterfassung!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</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>
|
||||
</TS>
|
||||
|
@@ -84,11 +84,13 @@ bool Zeiterfassung::doUserInfo()
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -99,18 +101,18 @@ bool Zeiterfassung::doGetBuchungen(int userId, const QDate &start, const QDate &
|
||||
.arg(userId)));
|
||||
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||
|
||||
m_replies.getBuchungen = m_manager->get(request);
|
||||
connect(m_replies.getBuchungen, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::getBuchungenRequestFinished);
|
||||
m_replies.getBookings = m_manager->get(request);
|
||||
connect(m_replies.getBookings, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::getBookingsRequestFinished);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -129,27 +131,27 @@ bool Zeiterfassung::doCreateBuchung(int userId, const QDate &date, const QTime &
|
||||
obj[QStringLiteral("bewEinh")] = QStringLiteral("");
|
||||
obj[QStringLiteral("text")] = text;
|
||||
|
||||
m_replies.createBuchung = m_manager->post(request, QJsonDocument(obj).toJson());
|
||||
connect(m_replies.createBuchung, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::createBuchungRequestFinished);
|
||||
m_replies.createBooking = m_manager->post(request, QJsonDocument(obj).toJson());
|
||||
connect(m_replies.createBooking, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::createBookingRequestFinished);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||
|
||||
QJsonObject obj;
|
||||
obj[QStringLiteral("bookingNr")] = buchungId;
|
||||
obj[QStringLiteral("bookingNr")] = bookingId;
|
||||
obj[QStringLiteral("persNr")] = userId;
|
||||
obj[QStringLiteral("bookingDate")] = date.toString("yyyyMMdd").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("text")] = text;
|
||||
|
||||
m_replies.updateBuchung = m_manager->put(request, QJsonDocument(obj).toJson());
|
||||
connect(m_replies.updateBuchung, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::updateBuchungRequestFinished);
|
||||
m_replies.updateBooking = m_manager->put(request, QJsonDocument(obj).toJson());
|
||||
connect(m_replies.updateBooking, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::updateBookingRequestFinished);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1?text=")
|
||||
.arg(m_url)
|
||||
.arg(buchungId)));
|
||||
.arg(bookingId)));
|
||||
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||
|
||||
m_replies.deleteBuchung = m_manager->deleteResource(request);
|
||||
connect(m_replies.deleteBuchung, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::deleteBuchungRequestFinished);
|
||||
m_replies.deleteBooking = m_manager->deleteResource(request);
|
||||
connect(m_replies.deleteBooking, &QNetworkReply::finished,
|
||||
this, &Zeiterfassung::deleteBookingRequestFinished);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -485,37 +487,37 @@ void Zeiterfassung::userInfoRequestFinished()
|
||||
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;
|
||||
}
|
||||
|
||||
{
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
auto arr = document.array();
|
||||
QVector<Buchung> buchungen;
|
||||
QVector<Booking> bookings;
|
||||
|
||||
for(const auto &val : arr)
|
||||
{
|
||||
auto obj = val.toObject();
|
||||
|
||||
buchungen.append({
|
||||
bookings.append({
|
||||
obj.value(QStringLiteral("bookingNr")).toInt(),
|
||||
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")),
|
||||
@@ -525,34 +527,34 @@ void Zeiterfassung::getBuchungenRequestFinished()
|
||||
});
|
||||
}
|
||||
|
||||
Q_EMIT getBuchungenFinished(true, QString(), buchungen);
|
||||
Q_EMIT getBookingsFinished(true, QString(), bookings);
|
||||
}
|
||||
|
||||
end:
|
||||
m_replies.getBuchungen->deleteLater();
|
||||
m_replies.getBuchungen = Q_NULLPTR;
|
||||
m_replies.getBookings->deleteLater();
|
||||
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;
|
||||
}
|
||||
|
||||
{
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -560,40 +562,40 @@ void Zeiterfassung::createBuchungRequestFinished()
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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:
|
||||
m_replies.createBuchung->deleteLater();
|
||||
m_replies.createBuchung = Q_NULLPTR;
|
||||
m_replies.createBooking->deleteLater();
|
||||
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;
|
||||
}
|
||||
|
||||
{
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -601,34 +603,34 @@ void Zeiterfassung::updateBuchungRequestFinished()
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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:
|
||||
m_replies.updateBuchung->deleteLater();
|
||||
m_replies.updateBuchung = Q_NULLPTR;
|
||||
m_replies.updateBooking->deleteLater();
|
||||
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;
|
||||
}
|
||||
|
||||
//should be empty, so nothing to check...
|
||||
Q_EMIT deleteBuchungFinished(true, QString());
|
||||
Q_EMIT deleteBookingFinished(true, QString());
|
||||
|
||||
end:
|
||||
m_replies.deleteBuchung->deleteLater();
|
||||
m_replies.deleteBuchung = Q_NULLPTR;
|
||||
m_replies.deleteBooking->deleteLater();
|
||||
m_replies.deleteBooking = Q_NULLPTR;
|
||||
}
|
||||
|
||||
void Zeiterfassung::getTimeAssignmentsRequestFinished()
|
||||
|
@@ -30,7 +30,7 @@ public:
|
||||
QString username;
|
||||
};
|
||||
|
||||
struct Buchung
|
||||
struct Booking
|
||||
{
|
||||
int id;
|
||||
QDate date;
|
||||
@@ -63,12 +63,12 @@ public Q_SLOTS:
|
||||
bool doLogin(const QString &username, const QString &password);
|
||||
bool doUserInfo();
|
||||
|
||||
bool doGetBuchungen(int userId, const QDate &start, const QDate &end);
|
||||
bool doCreateBuchung(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
||||
bool doGetBookings(int userId, const QDate &start, const QDate &end);
|
||||
bool doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime ×pan,
|
||||
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);
|
||||
bool doDeleteBuchung(int buchungId);
|
||||
bool doDeleteBooking(int bookingId);
|
||||
|
||||
bool doGetTimeAssignments(int userId, const QDate &start, const QDate &end);
|
||||
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 userInfoFinished(bool success, const QString &message, const UserInfo &userInfo);
|
||||
|
||||
void getBuchungenFinished(bool success, const QString &message, const QVector<Buchung> &buchungen);
|
||||
void createBuchungFinished(bool success, const QString &message, int buchungId);
|
||||
void updateBuchungFinished(bool success, const QString &message, int buchungId);
|
||||
void deleteBuchungFinished(bool success, const QString &message);
|
||||
void getBookingsFinished(bool success, const QString &message, const QVector<Booking> &bookings);
|
||||
void createBookingFinished(bool success, const QString &message, int bookingId);
|
||||
void updateBookingFinished(bool success, const QString &message, int bookingId);
|
||||
void deleteBookingFinished(bool success, const QString &message);
|
||||
|
||||
void getTimeAssignmentsFinished(bool success, const QString &message, const QVector<TimeAssignment> &timeAssignments);
|
||||
void createTimeAssignmentFinished(bool success, const QString &message, int timeAssignmentId);
|
||||
@@ -107,10 +107,10 @@ private Q_SLOTS:
|
||||
void loginRequestFinished();
|
||||
void userInfoRequestFinished();
|
||||
|
||||
void getBuchungenRequestFinished();
|
||||
void createBuchungRequestFinished();
|
||||
void updateBuchungRequestFinished();
|
||||
void deleteBuchungRequestFinished();
|
||||
void getBookingsRequestFinished();
|
||||
void createBookingRequestFinished();
|
||||
void updateBookingRequestFinished();
|
||||
void deleteBookingRequestFinished();
|
||||
|
||||
void getTimeAssignmentsRequestFinished();
|
||||
void createTimeAssignmentRequestFinished();
|
||||
@@ -130,10 +130,10 @@ private:
|
||||
QNetworkReply *login;
|
||||
QNetworkReply *userInfo;
|
||||
|
||||
QNetworkReply *getBuchungen;
|
||||
QNetworkReply *createBuchung;
|
||||
QNetworkReply *updateBuchung;
|
||||
QNetworkReply *deleteBuchung;
|
||||
QNetworkReply *getBookings;
|
||||
QNetworkReply *createBooking;
|
||||
QNetworkReply *updateBooking;
|
||||
QNetworkReply *deleteBooking;
|
||||
|
||||
QNetworkReply *getTimeAssignments;
|
||||
QNetworkReply *createTimeAssignment;
|
||||
|
@@ -21,43 +21,43 @@ SOURCES += main.cpp \
|
||||
mainwindow.cpp \
|
||||
dialogs/aboutmedialog.cpp \
|
||||
dialogs/authenticationdialog.cpp \
|
||||
dialogs/buchungdialog.cpp \
|
||||
models/buchungenmodel.cpp \
|
||||
eventloopwithstatus.cpp \
|
||||
strips/buchungstrip.cpp \
|
||||
zeiterfassungsettings.cpp \
|
||||
dialogs/settingsdialog.cpp \
|
||||
dialogs/languageselectiondialog.cpp \
|
||||
dialogs/timeassignmentdialog.cpp \
|
||||
models/timeassignmentsmodel.cpp \
|
||||
strips/timeassignmentstrip.cpp
|
||||
strips/timeassignmentstrip.cpp \
|
||||
dialogs/bookingdialog.cpp \
|
||||
models/bookingsmodel.cpp \
|
||||
strips/bookingstrip.cpp
|
||||
|
||||
HEADERS += \
|
||||
zeiterfassung.h \
|
||||
mainwindow.h \
|
||||
dialogs/aboutmedialog.h \
|
||||
dialogs/authenticationdialog.h \
|
||||
dialogs/buchungdialog.h \
|
||||
models/buchungenmodel.h \
|
||||
eventloopwithstatus.h \
|
||||
strips/buchungstrip.h \
|
||||
zeiterfassungsettings.h \
|
||||
dialogs/settingsdialog.h \
|
||||
dialogs/languageselectiondialog.h \
|
||||
dialogs/timeassignmentdialog.h \
|
||||
models/timeassignmentsmodel.h \
|
||||
strips/timeassignmentstrip.h
|
||||
strips/timeassignmentstrip.h \
|
||||
dialogs/bookingdialog.h \
|
||||
models/bookingsmodel.h \
|
||||
strips/bookingstrip.h
|
||||
|
||||
FORMS += \
|
||||
mainwindow.ui \
|
||||
dialogs/aboutmedialog.ui \
|
||||
dialogs/authenticationdialog.ui \
|
||||
dialogs/buchungdialog.ui \
|
||||
strips/buchungstrip.ui \
|
||||
dialogs/settingsdialog.ui \
|
||||
dialogs/languageselectiondialog.ui \
|
||||
dialogs/timeassignmentdialog.ui \
|
||||
strips/timeassignmentstrip.ui
|
||||
strips/timeassignmentstrip.ui \
|
||||
dialogs/bookingdialog.ui \
|
||||
strips/bookingstrip.ui
|
||||
|
||||
RESOURCES += \
|
||||
resources.qrc
|
||||
|
@@ -132,34 +132,34 @@ void ZeiterfassungSettings::prependText(const QString &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
|
||||
|
@@ -46,14 +46,14 @@ public:
|
||||
void setTexte(const QStringList &texte);
|
||||
void prependText(const QString &text);
|
||||
|
||||
QString buchungStartBackgroundColor() const;
|
||||
void setBuchungStartBackgroundColor(const QString &buchungStartBackgroundColor);
|
||||
QString bookingStartBackgroundColor() const;
|
||||
void setBookingStartBackgroundColor(const QString &bookingStartBackgroundColor);
|
||||
|
||||
QString buchungEndBackgroundColor() const;
|
||||
void setBuchungEndBackgroundColor(const QString &buchungEndBackgroundColor);
|
||||
QString bookingEndBackgroundColor() const;
|
||||
void setBookingEndBackgroundColor(const QString &bookingEndBackgroundColor);
|
||||
|
||||
QString buchungOtherBackgroundColor() const;
|
||||
void setBuchungOtherBackgroundColor(const QString &buchungOtherBackgroundColor);
|
||||
QString bookingOtherBackgroundColor() const;
|
||||
void setBookingOtherBackgroundColor(const QString &bookingOtherBackgroundColor);
|
||||
|
||||
QString timeAssignmentBackgroundColor() const;
|
||||
void setTimeAssignmentBackgroundColor(const QString timeAssignmentBackgroundColor);
|
||||
|
Reference in New Issue
Block a user