From 9589072687726dd51776b0e952625ae1996f4721 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 16 Apr 2025 09:56:55 +0200 Subject: Added rudimentary QT UI --- qt/adapter.h | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 qt/adapter.h (limited to 'qt/adapter.h') diff --git a/qt/adapter.h b/qt/adapter.h new file mode 100644 index 0000000..856cdad --- /dev/null +++ b/qt/adapter.h @@ -0,0 +1,52 @@ +#ifndef ADAPTER_H +#define ADAPTER_H + +#include "../cpp/nissy.h" + +#include +#include +#include +#include + +struct SolveOptions { + nissy::cube cube; + nissy::solver *solver; + unsigned minmoves; + unsigned maxmoves; + unsigned maxsolutions; + int optimal; +}; + +class NissyAdapter : public QObject { + Q_OBJECT + QML_SINGLETON + QML_ELEMENT + +public: + NissyAdapter(); + + Q_INVOKABLE bool isValidScramble(QString); + Q_INVOKABLE void requestSolve( + QString scramble, + QString solver, + int minmoves, + int maxmoves, + int maxsolutions, + int optimal + ); + +signals: + void solutionsReady(QString, QString); + void solverError(QString); + void appendLog(QString); + +private: + std::vector solvers; + std::function writeLog; + + void initSolver(const std::string&); + void startSolve(SolveOptions); + bool loadSolverData(nissy::solver&); +}; + +#endif -- cgit v1.3