diff --git a/Motus/CMakeLists.txt b/Motus/CMakeLists.txt index f27c3111c882474822073ffb9d1ff7069a8a504c..12c3cd004d244da06afd9de34d4f9075dca9ab61 100644 --- a/Motus/CMakeLists.txt +++ b/Motus/CMakeLists.txt @@ -23,6 +23,7 @@ qt_add_qml_module(appMotus QML_FILES Key.qml QML_FILES BackKey.qml QML_FILES Bouton.qml + SOURCES wordchooser.h wordchooser.cpp ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. diff --git a/Motus/Main.qml b/Motus/Main.qml index 25eb496ebe016baa8719a3735a816f2454f6de64..563a7fad9affe75164e07b7f3a6d881dcd7bcff5 100644 --- a/Motus/Main.qml +++ b/Motus/Main.qml @@ -42,7 +42,13 @@ Window { y: 0 width: 400 height: 200 - onClicked: case3._textColor="#51c3e1" + onClicked: { + let mot = wordChooser.getRandomWord(); + console.log("Mot choisi :", mot); + case3._textText = mot; + onClicked: case3._textColor="#51c3e1"; + } + Case { id: case3 diff --git a/Motus/main.cpp b/Motus/main.cpp index c1e254b391c9abb224d3571241c206e2d273020e..a365692372389857885c870309a57096ac2467c4 100644 --- a/Motus/main.cpp +++ b/Motus/main.cpp @@ -1,19 +1,25 @@ #include <QGuiApplication> #include <QQmlApplicationEngine> +#include <QQmlContext> +#include "WordChooser.h" int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQmlApplicationEngine engine; + + WordChooser wordChooser; + engine.rootContext()->setContextProperty("wordChooser", &wordChooser); + QObject::connect( &engine, &QQmlApplicationEngine::objectCreationFailed, &app, []() { QCoreApplication::exit(-1); }, Qt::QueuedConnection); + engine.loadFromModule("Motus", "Main"); return app.exec(); } - diff --git a/Motus/wordchooser.cpp b/Motus/wordchooser.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0f487670e4f734d2fd71b2337d80d54f47d85d27 --- /dev/null +++ b/Motus/wordchooser.cpp @@ -0,0 +1,30 @@ +#include "WordChooser.h" +#include <QFile> +#include <QTextStream> +#include <QRandomGenerator> +QFile file("words_alpha.txt"); + +WordChooser::WordChooser(QObject *parent) : QObject(parent) { + loadWords(); +} + +void WordChooser::loadWords() { + QFile file(":/words_alpha.txt"); // adapte le chemin si besoin + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream in(&file); + while (!in.atEnd()) { + QString line = in.readLine().trimmed(); + if (!line.isEmpty()) + words.append(line); + } + file.close(); + } +} + +QString WordChooser::getRandomWord() { + if (words.isEmpty()) + return ""; + int index = QRandomGenerator::global()->bounded(words.size()); + return words[index]; +} + diff --git a/Motus/wordchooser.h b/Motus/wordchooser.h new file mode 100644 index 0000000000000000000000000000000000000000..f04fb5fc352993dac7da336ce5dcd33348f03b38 --- /dev/null +++ b/Motus/wordchooser.h @@ -0,0 +1,19 @@ +#ifndef WORDCHOOSER_H +#define WORDCHOOSER_H + +#include <QObject> +#include <QString> +#include <QStringList> + +class WordChooser : public QObject { + Q_OBJECT +public: + explicit WordChooser(QObject *parent = nullptr); + Q_INVOKABLE QString getRandomWord(); + +private: + QStringList words; + void loadWords(); +}; + +#endif // WORDCHOOSER_H