blocknote fonctionnel
This commit is contained in:
+154
-97
@@ -6,6 +6,8 @@
|
||||
#include <QMessageBox>
|
||||
#include <QFileDialog>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
#include <QJsonValue>
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -14,6 +16,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
notePad = new NotePad();
|
||||
connect(notePad, &NotePad::demandeSauvegarde, this, &MainWindow::recevoirSauvegarde);
|
||||
Character* c = new Character();
|
||||
currentCharacter = c;
|
||||
characters.append(c);
|
||||
@@ -55,39 +59,10 @@ void MainWindow::loadNewCharacter(){
|
||||
}
|
||||
|
||||
void MainWindow::createNewCharacter(Character* p) {
|
||||
notePad->setTexte(p->getTexteBlocNote());
|
||||
currentCharacter = p;
|
||||
characters.append(p);
|
||||
|
||||
ui->nomLineEdit->setText(p->getNom());
|
||||
ui->ageLineEdit->setText(QString::number(p->getAge()));
|
||||
ui->raceLineEdit->setText(p->getRace());
|
||||
ui->classeLineEdit->setText(p->getClasse());
|
||||
ui->niveauLineEdit->setText(QString::number(p->getNiveau()));
|
||||
ui->sexeLineEdit->setText(p->getSexe());
|
||||
ui->tailleLineEdit->setText(QString::number(p->getTaille()));
|
||||
|
||||
ui->charismeSpinBox->setValue(p->getSkills()[0]);
|
||||
ui->dexteriteSpinBox->setValue(p->getSkills()[1]);
|
||||
ui->enduranceSpinBox->setValue(p->getSkills()[2]);
|
||||
ui->forceSpinBox->setValue(p->getSkills()[3]);
|
||||
ui->intelligenceSpinBox->setValue(p->getSkills()[4]);
|
||||
ui->sagesseSpinBox->setValue(p->getSkills()[5]);
|
||||
|
||||
ui->modCharismeSpinBox->setValue(p->getSkillsMod()[0]);
|
||||
ui->modDexteriteSpinBox->setValue(p->getSkillsMod()[1]);
|
||||
ui->modEnduranceSpinBox->setValue(p->getSkillsMod()[2]);
|
||||
ui->modForceSpinBox->setValue(p->getSkillsMod()[3]);
|
||||
ui->modIntelligenceSpinBox->setValue(p->getSkillsMod()[4]);
|
||||
ui->modSagesseSpinBox->setValue(p->getSkillsMod()[5]);
|
||||
|
||||
for (int i = 0; i < p->getStats().size(); ++i) {
|
||||
QString spinBoxName = QString("spinBox%1").arg(i+1);
|
||||
QSpinBox* spinBox = this->findChild<QSpinBox*>(spinBoxName);
|
||||
if (spinBox) {
|
||||
spinBox->setValue(p->getStats()[i]);
|
||||
}
|
||||
}
|
||||
loadImage(p->getImage());
|
||||
setUi(p);
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +89,7 @@ void MainWindow::loadImage(QString fileName) {
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::exportJson(){
|
||||
void MainWindow::saveJson(){
|
||||
QString fileName;
|
||||
if (currentFile.isEmpty()) {
|
||||
fileName = QFileDialog::getSaveFileName(this, "Save");
|
||||
@@ -127,49 +102,47 @@ void MainWindow::exportJson(){
|
||||
QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString());
|
||||
return;
|
||||
}
|
||||
setWindowTitle(fileName);
|
||||
|
||||
if(edition){
|
||||
//appelle a funct qui prend val ui pour mettre dans c
|
||||
getUi();
|
||||
}
|
||||
//Prend de c pour mettre dans json
|
||||
notePad->getUi();
|
||||
currentCharacter->setTexteBlocNote(notePad->getTexte());
|
||||
QJsonObject json;
|
||||
/*
|
||||
json["name"] = ui->titleEdit->text();
|
||||
json["city"] =ui->locEdit->text();
|
||||
json["departement"] = ui->depSpin->text();
|
||||
json["difficulty"] = ui->diffSpin->value();
|
||||
json["duration"] = ui->durationSpin->value();
|
||||
json["length"] = ui->lengthSpin->value();
|
||||
json["image"] = ui->imagePath->text();
|
||||
json["name"] = currentCharacter->getNom();
|
||||
json["age"] = currentCharacter->getAge();
|
||||
json["race"] = currentCharacter->getRace();
|
||||
json["classe"] = currentCharacter->getClasse();
|
||||
json["niveau"] = currentCharacter->getNiveau();
|
||||
json["sexe"] = currentCharacter->getSexe();
|
||||
json["taille"] = currentCharacter->getTaille();
|
||||
json["vie"] = currentCharacter->getVie();
|
||||
json["image"] = currentCharacter->getImage();
|
||||
json["blocNote"] = currentCharacter->getTexteBlocNote();
|
||||
json["backPack"] = currentCharacter->getTexteBackPack();
|
||||
|
||||
QJsonArray steps;
|
||||
int cpt=0;
|
||||
for(Step step: currentPath->getStep()){
|
||||
cpt++;
|
||||
QJsonObject stepObject;
|
||||
stepObject["numero"] = cpt;
|
||||
stepObject["title"] = step.getTitle();
|
||||
stepObject["GPS"] = step.toGPSFormat();
|
||||
stepObject["reponse"] = step.getResponse();
|
||||
QJsonArray dialogues;
|
||||
for(int i=0; i<step.getTexte().size(); i++){
|
||||
QJsonObject dialogueObject;
|
||||
dialogueObject["personnage"] = step.getPersonnage()[i];
|
||||
dialogueObject["texte"] = step.getTexte()[i];
|
||||
dialogues.append(dialogueObject);
|
||||
}
|
||||
stepObject["dialogue"] = dialogues;
|
||||
steps.append(stepObject);
|
||||
QJsonArray skillsArray;
|
||||
for(int i=0; i<currentCharacter->getSkills().size(); i++){
|
||||
skillsArray.append(QJsonValue(currentCharacter->getSkills()[i]));
|
||||
}
|
||||
json["steps"] = steps;
|
||||
json["skills"] = skillsArray;
|
||||
QJsonArray skillsModArray;
|
||||
for(int i=0; i<currentCharacter->getSkillsMod().size(); i++){
|
||||
skillsModArray.append(QJsonValue(currentCharacter->getSkillsMod()[i]));
|
||||
}
|
||||
json["skillsMod"] = skillsModArray;
|
||||
QJsonArray statsArray;
|
||||
for(int i=0; i<currentCharacter->getStats().size(); i++){
|
||||
statsArray.append(QJsonValue(currentCharacter->getStats()[i]));
|
||||
}
|
||||
json["stats"] = statsArray;
|
||||
|
||||
QJsonDocument doc(json);
|
||||
file.write(doc.toJson());
|
||||
*/
|
||||
file.close();
|
||||
}
|
||||
|
||||
void MainWindow::exportJsonAs(){
|
||||
void MainWindow::saveAsJson(){
|
||||
QString fileName = QFileDialog::getSaveFileName(this, "Save as");
|
||||
QFile file(fileName);
|
||||
|
||||
@@ -181,45 +154,123 @@ void MainWindow::exportJsonAs(){
|
||||
currentFile = fileName;
|
||||
|
||||
if(edition){
|
||||
//appelle a funct qui prend val ui pour mettre dans c
|
||||
getUi();
|
||||
}
|
||||
//Prend de c pour mettre dans json
|
||||
notePad->getUi();
|
||||
currentCharacter->setTexteBlocNote(notePad->getTexte());
|
||||
QJsonObject json;
|
||||
/*
|
||||
json["name"] = ui->titleEdit->text();
|
||||
json["city"] =ui->locEdit->text();
|
||||
json["departement"] = ui->depSpin->text();
|
||||
json["difficulty"] = ui->diffSpin->value();
|
||||
json["duration"] = ui->durationSpin->value();
|
||||
json["length"] = ui->lengthSpin->value();
|
||||
json["image"] = ui->imagePath->text();
|
||||
json["name"] = currentCharacter->getNom();
|
||||
json["age"] = currentCharacter->getAge();
|
||||
json["race"] = currentCharacter->getRace();
|
||||
json["classe"] = currentCharacter->getClasse();
|
||||
json["niveau"] = currentCharacter->getNiveau();
|
||||
json["sexe"] = currentCharacter->getSexe();
|
||||
json["taille"] = currentCharacter->getTaille();
|
||||
json["vie"] = currentCharacter->getVie();
|
||||
json["image"] = currentCharacter->getImage();
|
||||
json["blocNote"] = currentCharacter->getTexteBlocNote();
|
||||
json["backPack"] = currentCharacter->getTexteBackPack();
|
||||
|
||||
QJsonArray steps;
|
||||
int cpt=0;
|
||||
for(Step step: currentPath->getStep()){
|
||||
cpt++;
|
||||
QJsonObject stepObject;
|
||||
stepObject["numero"] = cpt;
|
||||
stepObject["title"] = step.getTitle();
|
||||
stepObject["GPS"] = step.toGPSFormat();
|
||||
stepObject["reponse"] = step.getResponse();
|
||||
QJsonArray dialogues;
|
||||
for(int i=0; i<step.getTexte().size(); i++){
|
||||
QJsonObject dialogueObject;
|
||||
dialogueObject["personnage"] = step.getPersonnage()[i];
|
||||
dialogueObject["texte"] = step.getTexte()[i];
|
||||
dialogues.append(dialogueObject);
|
||||
}
|
||||
stepObject["dialogue"] = dialogues;
|
||||
steps.append(stepObject);
|
||||
QJsonArray skillsArray;
|
||||
for(int i=0; i<currentCharacter->getSkills().size(); i++){
|
||||
skillsArray.append(QJsonValue(currentCharacter->getSkills()[i]));
|
||||
}
|
||||
json["steps"] = steps;
|
||||
json["skills"] = skillsArray;
|
||||
QJsonArray skillsModArray;
|
||||
for(int i=0; i<currentCharacter->getSkillsMod().size(); i++){
|
||||
skillsModArray.append(QJsonValue(currentCharacter->getSkillsMod()[i]));
|
||||
}
|
||||
json["skillsMod"] = skillsModArray;
|
||||
QJsonArray statsArray;
|
||||
for(int i=0; i<currentCharacter->getStats().size(); i++){
|
||||
statsArray.append(QJsonValue(currentCharacter->getStats()[i]));
|
||||
}
|
||||
json["stats"] = statsArray;
|
||||
|
||||
QJsonDocument doc(json);
|
||||
file.write(doc.toJson());
|
||||
*/
|
||||
file.close();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::getUi(){
|
||||
currentCharacter->setNom(ui->nomLineEdit->text());
|
||||
currentCharacter->setAge(ui->ageLineEdit->text().toInt());
|
||||
currentCharacter->setRace(ui->raceLineEdit->text());
|
||||
currentCharacter->setClasse(ui->classeLineEdit->text());
|
||||
currentCharacter->setNiveau(ui->niveauLineEdit->text().toInt());
|
||||
currentCharacter->setSexe(ui->sexeLineEdit->text());
|
||||
currentCharacter->setTaille(ui->tailleLineEdit->text().toFloat());
|
||||
|
||||
QList<int> skills;
|
||||
skills.append(ui->charismeSpinBox->value());
|
||||
skills.append(ui->dexteriteSpinBox->value());
|
||||
skills.append(ui->enduranceSpinBox->value());
|
||||
skills.append(ui->forceSpinBox->value());
|
||||
skills.append(ui->intelligenceSpinBox->value());
|
||||
skills.append(ui->sagesseSpinBox->value());
|
||||
skills.append(ui->pvSpinBox->value());
|
||||
currentCharacter->setSkills(skills);
|
||||
QList<int> skillsMod;
|
||||
skillsMod.append(ui->modCharismeSpinBox->value());
|
||||
skillsMod.append(ui->modDexteriteSpinBox->value());
|
||||
skillsMod.append(ui->modEnduranceSpinBox->value());
|
||||
skillsMod.append(ui->modForceSpinBox->value());
|
||||
skillsMod.append(ui->modIntelligenceSpinBox->value());
|
||||
skillsMod.append(ui->modSagesseSpinBox->value());
|
||||
currentCharacter->setSkills(skillsMod);
|
||||
QList<int> stats;
|
||||
for (int i = 0; i < currentCharacter->getStats().size(); ++i) {
|
||||
QString spinBoxName = QString("spinBox%1").arg(i+1);
|
||||
QSpinBox* spinBox = this->findChild<QSpinBox*>(spinBoxName);
|
||||
if (spinBox) {
|
||||
stats.append(spinBox->value());
|
||||
}
|
||||
}
|
||||
currentCharacter->setStats(stats);
|
||||
//currentCharacter->setImage();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void MainWindow::setUi(Character* p){
|
||||
ui->nomLineEdit->setText(p->getNom());
|
||||
ui->ageLineEdit->setText(QString::number(p->getAge()));
|
||||
ui->raceLineEdit->setText(p->getRace());
|
||||
ui->classeLineEdit->setText(p->getClasse());
|
||||
ui->niveauLineEdit->setText(QString::number(p->getNiveau()));
|
||||
ui->sexeLineEdit->setText(p->getSexe());
|
||||
ui->tailleLineEdit->setText(QString::number(p->getTaille()));
|
||||
|
||||
ui->charismeSpinBox->setValue(p->getSkills()[0]);
|
||||
ui->dexteriteSpinBox->setValue(p->getSkills()[1]);
|
||||
ui->enduranceSpinBox->setValue(p->getSkills()[2]);
|
||||
ui->forceSpinBox->setValue(p->getSkills()[3]);
|
||||
ui->intelligenceSpinBox->setValue(p->getSkills()[4]);
|
||||
ui->sagesseSpinBox->setValue(p->getSkills()[5]);
|
||||
ui->pvSpinBox->setValue(p->getVie());
|
||||
|
||||
ui->modCharismeSpinBox->setValue(p->getSkillsMod()[0]);
|
||||
ui->modDexteriteSpinBox->setValue(p->getSkillsMod()[1]);
|
||||
ui->modEnduranceSpinBox->setValue(p->getSkillsMod()[2]);
|
||||
ui->modForceSpinBox->setValue(p->getSkillsMod()[3]);
|
||||
ui->modIntelligenceSpinBox->setValue(p->getSkillsMod()[4]);
|
||||
ui->modSagesseSpinBox->setValue(p->getSkillsMod()[5]);
|
||||
|
||||
for (int i = 0; i < p->getStats().size(); ++i) {
|
||||
QString spinBoxName = QString("spinBox%1").arg(i+1);
|
||||
QSpinBox* spinBox = this->findChild<QSpinBox*>(spinBoxName);
|
||||
if (spinBox) {
|
||||
spinBox->setValue(p->getStats()[i]);
|
||||
}
|
||||
}
|
||||
loadImage(p->getImage());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void MainWindow::on_actionEditer_triggered(){
|
||||
if(edition){
|
||||
//Mode edition
|
||||
@@ -231,14 +282,20 @@ void MainWindow::on_actionEditer_triggered(){
|
||||
|
||||
|
||||
void MainWindow::on_actionBlocNote_triggered(){
|
||||
notePad = new NotePad();
|
||||
this->notePad->show();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::recevoirSauvegarde(QString contenu){
|
||||
currentCharacter->setTexteBlocNote(contenu);
|
||||
saveJson();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void MainWindow::on_actionOuvrir_une_fiche_triggered(){this->loadNewCharacter();}
|
||||
void MainWindow::on_actionNouvelle_fiche_triggered(){this->createNewCharacter(new Character());}
|
||||
void MainWindow::on_actionSauvegarder_triggered(){this->exportJson();}
|
||||
void MainWindow::on_actionEnregistrer_sous_triggered(){this->exportJsonAs();}
|
||||
void MainWindow::on_actionSauvegarder_triggered(){this->saveJson();}
|
||||
void MainWindow::on_actionEnregistrer_sous_triggered(){this->saveAsJson();}
|
||||
void MainWindow::on_actionFermer_triggered(){QApplication::quit();}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user