aboutsummaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
index 6889e8d..091f649 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,8 +1,14 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
+#include <QQmlComponent>
+#include <QQmlProperty>
+#include <QQuickItem>
#include <QTranslator>
#include <QDebug>
+void changePin(QString pin, QQmlApplicationEngine &engine);
+void gen_random(char *s, const int len);
+
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
@@ -25,5 +31,32 @@ int main(int argc, char *argv[])
if (engine.rootObjects().isEmpty())
return -1;
+ #define PIN_LENGTH 5
+ // The char array in which the random pin will be written to
+ char rand_pin[PIN_LENGTH+1];
+ gen_random(rand_pin, PIN_LENGTH);
+ changePin(rand_pin, engine);
+
return app.exec();
}
+
+void changePin(QString pin, QQmlApplicationEngine &engine){
+ QQuickItem *item = engine.rootObjects().at(0)->findChild<QQuickItem*>("pin_text");
+ if (item)
+ item->setProperty("pin", pin);
+}
+
+void gen_random(char *s, const int len) {
+ // Initialize random generator
+ srand( static_cast<unsigned>(time(NULL)));
+
+ static const char alphanum[] =
+ "0123456789"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ for (int i = 0; i < len; ++i) {
+ s[i] = alphanum[rand() % static_cast<int>(sizeof(alphanum) - 1)];
+ }
+
+ s[len] = 0;
+}