diff --git a/src/ui/dialogs/placeinformationdialog.cpp b/src/ui/dialogs/placeinformationdialog.cpp new file mode 100644 index 0000000..1f10aae --- /dev/null +++ b/src/ui/dialogs/placeinformationdialog.cpp @@ -0,0 +1,69 @@ +#include "placeinformationdialog.h" +#include "ui_placeinformationdialog.h" + +#include +#include + +PlaceInformationDialog::PlaceInformationDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::PlaceInformationDialog) +{ + ui->setupUi(this); + + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); + + connect(ui->lineEditNumber, SIGNAL(editingFinished()), this, SLOT(checkData())); + connect(ui->lineEditPLZ, SIGNAL(editingFinished()), this, SLOT(checkData())); + connect(ui->lineEditStreet, SIGNAL(editingFinished()), this, SLOT(checkData())); + connect(ui->lineEditTown, SIGNAL(editingFinished()), this, SLOT(checkData())); +} + +PlaceInformationDialog::~PlaceInformationDialog() +{ + delete ui; +} + +void PlaceInformationDialog::setPlace(QSharedPointer place) +{ + m_place = place; +} + +void PlaceInformationDialog::checkData() +{ + if(ui->lineEditNumber->text() == "" || ui->lineEditPLZ->text() == "" || ui->lineEditStreet->text() == "" || ui->lineEditTown->text() == "") { + return; + } + + bool ok = false; + ui->lineEditPLZ->text().toInt(&ok); + if(!ok) + return; + + ok = false; + ui->lineEditNumber->text().toInt(&ok); + if(!ok) + return; + + ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true); +} + +void PlaceInformationDialog::accept() +{ + bool create = false; + + if(!m_place) { + m_place = Qp::create(); + create = true; + } + + m_place->setCity(ui->lineEditTown->text()); + m_place->setPostalCode(ui->lineEditPLZ->text().toInt()); + m_place->setStreet(ui->lineEditStreet->text()); + m_place->setHouseNumber(ui->lineEditNumber->text().toInt()); + + + if(create) + emit placeAdded(m_place); + + QDialog::accept(); +} diff --git a/src/ui/dialogs/placeinformationdialog.h b/src/ui/dialogs/placeinformationdialog.h new file mode 100644 index 0000000..5641326 --- /dev/null +++ b/src/ui/dialogs/placeinformationdialog.h @@ -0,0 +1,35 @@ +#ifndef PLACEINFORMATIONDIALOG_H +#define PLACEINFORMATIONDIALOG_H + +#include + +class Place; + +namespace Ui { +class PlaceInformationDialog; +} + +class PlaceInformationDialog : public QDialog +{ + Q_OBJECT + +public: + explicit PlaceInformationDialog(QWidget *parent = 0); + ~PlaceInformationDialog(); + + void setPlace(QSharedPointer place); + +public slots: + void accept() Q_DECL_OVERRIDE; + void checkData(); + +signals: + void placeAdded(QSharedPointer place); + +private: + Ui::PlaceInformationDialog *ui; + + QSharedPointer m_place; +}; + +#endif // PLACEINFORMATIONDIALOG_H diff --git a/src/ui/dialogs/placeinformationdialog.ui b/src/ui/dialogs/placeinformationdialog.ui new file mode 100644 index 0000000..e764c50 --- /dev/null +++ b/src/ui/dialogs/placeinformationdialog.ui @@ -0,0 +1,106 @@ + + + PlaceInformationDialog + + + + 0 + 0 + 452 + 133 + + + + Dialog + + + + + + Street: + + + + + + + Street + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + Number + + + + + + + Town: + + + + + + + PLZ + + + + + + + Town + + + + + + + + + buttonBox + accepted() + PlaceInformationDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + PlaceInformationDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/ui/dialogs/playerinformationdialog.cpp b/src/ui/dialogs/playerinformationdialog.cpp index f479f3d..a0e172e 100644 --- a/src/ui/dialogs/playerinformationdialog.cpp +++ b/src/ui/dialogs/playerinformationdialog.cpp @@ -122,5 +122,13 @@ void PlayerInformationDialog::saveCurrentPlayer() void PlayerInformationDialog::on_actionClose_triggered() { + if(!m_model) { // new player was created + Qp::remove(m_player); + } close(); } + +void PlayerInformationDialog::on_buttonBox_rejected() +{ + on_actionClose_triggered(); +} diff --git a/src/ui/dialogs/playerinformationdialog.h b/src/ui/dialogs/playerinformationdialog.h index dac7ed9..3f39f07 100644 --- a/src/ui/dialogs/playerinformationdialog.h +++ b/src/ui/dialogs/playerinformationdialog.h @@ -21,6 +21,7 @@ class PlayerInformationDialog : public QDialog QSharedPointer player() const; void setPlayerFromModel(QpSortFilterProxyObjectModel *model, int index); + void setPlayer(const QSharedPointer &player); public slots: void accept(); @@ -33,9 +34,9 @@ public slots: private slots: void on_actionClose_triggered(); -private: - void setPlayer(const QSharedPointer &player); + void on_buttonBox_rejected(); +private: Ui::PlayerInformationDialog *ui; int m_currentIndex; diff --git a/src/ui/game/gamewindow.cpp b/src/ui/game/gamewindow.cpp index 1965665..a7939b7 100644 --- a/src/ui/game/gamewindow.cpp +++ b/src/ui/game/gamewindow.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -589,3 +590,9 @@ void GameWindow::on_actionZoom_out_triggered() m_informationModel->setFontSize(m_informationModel->fontSize() - 1); updateSizes(); } + +void GameWindow::on_actionNew_Drink_triggered() +{ + DrinkInformationDialog dlg; + dlg.exec(); +} diff --git a/src/ui/game/gamewindow.h b/src/ui/game/gamewindow.h index 3734601..b45cad5 100644 --- a/src/ui/game/gamewindow.h +++ b/src/ui/game/gamewindow.h @@ -69,6 +69,8 @@ private slots: void on_actionZoom_out_triggered(); + void on_actionNew_Drink_triggered(); + private: Ui::GameWindow *ui; diff --git a/src/ui/game/gamewindow.ui b/src/ui/game/gamewindow.ui index 651102c..a3f5a85 100644 --- a/src/ui/game/gamewindow.ui +++ b/src/ui/game/gamewindow.ui @@ -454,6 +454,7 @@ QWidget#widgetCreateGame { File + @@ -635,6 +636,11 @@ QWidget#widgetCreateGame { Ctrl+- + + + New Drink + + diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 2b9a86d..d46ccab 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -3,6 +3,7 @@ #include "dialogs/playerinformationdialog.h" #include "dialogs/drinkinformationdialog.h" +#include "dialogs/placeinformationdialog.h" #include "game/gamewindow.h" #include "chooselibrarywidget.h" #include "ui/league/addleaguedialog.h" @@ -335,3 +336,25 @@ void MainWindow::on_actionCheck_for_updates_triggered() { Updater::instanceForPlatform()->checkForUpdatesInBackground(); } + +void MainWindow::on_actionNew_Player_triggered() +{ + QSharedPointer newPlayer = Qp::create(); + newPlayer->setName("NewPlayer"); + + PlayerInformationDialog dialog; + dialog.setPlayer(newPlayer); + dialog.exec(); +} + +void MainWindow::on_actionNew_Place_triggered() +{ + PlaceInformationDialog dialog; + dialog.exec(); +} + +void MainWindow::on_actionNew_Drink_triggered() +{ + DrinkInformationDialog dialog; + dialog.exec(); +} diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index c1a51d4..c2bd871 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -46,7 +46,13 @@ private slots: void on_actionCheck_for_updates_triggered(); - signals: + void on_actionNew_Player_triggered(); + + void on_actionNew_Place_triggered(); + + void on_actionNew_Drink_triggered(); + +signals: void photosAdded(); private: diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index ad3744f..9f5f37d 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -533,6 +533,9 @@ border-bottom: 1px solid rgb(77,77,77); + + + @@ -695,6 +698,21 @@ border-bottom: 1px solid rgb(77,77,77); Check for updates... + + + New Player + + + + + New Place + + + + + New Drink + +