aboutsummaryrefslogtreecommitdiff
path: root/qt/adapter.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt/adapter.h')
-rw-r--r--qt/adapter.h52
1 files changed, 52 insertions, 0 deletions
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 @@
1#ifndef ADAPTER_H
2#define ADAPTER_H
3
4#include "../cpp/nissy.h"
5
6#include <map>
7#include <string>
8#include <QObject>
9#include <QtQmlIntegration>
10
11struct SolveOptions {
12 nissy::cube cube;
13 nissy::solver *solver;
14 unsigned minmoves;
15 unsigned maxmoves;
16 unsigned maxsolutions;
17 int optimal;
18};
19
20class NissyAdapter : public QObject {
21 Q_OBJECT
22 QML_SINGLETON
23 QML_ELEMENT
24
25public:
26 NissyAdapter();
27
28 Q_INVOKABLE bool isValidScramble(QString);
29 Q_INVOKABLE void requestSolve(
30 QString scramble,
31 QString solver,
32 int minmoves,
33 int maxmoves,
34 int maxsolutions,
35 int optimal
36 );
37
38signals:
39 void solutionsReady(QString, QString);
40 void solverError(QString);
41 void appendLog(QString);
42
43private:
44 std::vector<nissy::solver> solvers;
45 std::function<void(const char*)> writeLog;
46
47 void initSolver(const std::string&);
48 void startSolve(SolveOptions);
49 bool loadSolverData(nissy::solver&);
50};
51
52#endif

Generated with cgit - Back to sebastiano.tronto.net