diff --git a/keyloader.cpp b/keyloader.cpp index 0b23f0e..fc04e58 100644 --- a/keyloader.cpp +++ b/keyloader.cpp @@ -35,7 +35,7 @@ KeyLoader::~KeyLoader() { } -bool KeyLoader::loadLayout(QString layout) +bool KeyLoader::loadLayout(const QString &layout) { bool ret = false; if(layout.isEmpty() || !iUtil) @@ -155,6 +155,8 @@ bool KeyLoader::loadLayoutInternal(QIODevice &from) if (!ret) iKeyData.clear(); + else + emit vkbChanged(); return ret; } diff --git a/keyloader.h b/keyloader.h index 10d6d05..a2faed9 100644 --- a/keyloader.h +++ b/keyloader.h @@ -36,20 +36,23 @@ struct KeyData { class KeyLoader : public QObject { Q_OBJECT + Q_PROPERTY(int vkbRows READ vkbRows NOTIFY vkbChanged) + Q_PROPERTY(int vkbColumns READ vkbColumns NOTIFY vkbChanged) public: explicit KeyLoader(QObject *parent = 0); virtual ~KeyLoader(); void setUtil(Util* util) { iUtil = util; } - Q_INVOKABLE bool loadLayout(QString layout); + Q_INVOKABLE bool loadLayout(const QString &layout); - Q_INVOKABLE int vkbRows() { return iVkbRows; } - Q_INVOKABLE int vkbColumns() { return iVkbColumns; } + int vkbRows() const { return iVkbRows; } + int vkbColumns() const { return iVkbColumns; } Q_INVOKABLE QVariantList keyAt(int row, int col); Q_INVOKABLE const QStringList availableLayouts(); signals: + void vkbChanged(); public slots: diff --git a/qml/Keyboard.qml b/qml/Keyboard.qml index c72246b..c9744a3 100644 --- a/qml/Keyboard.qml +++ b/qml/Keyboard.qml @@ -38,7 +38,7 @@ Item { property int outmargins: util.keyboardMargins property int keyspacing: 6 - property int keysPerRow: keyLoader.vkbColumns() + property int keysPerRow: keyLoader.vkbColumns property real keywidth: (keyboard.width - keyspacing*keysPerRow - outmargins*2)/keysPerRow; width: parent.width @@ -56,14 +56,14 @@ Item { Repeater { id: rowRepeater - model: keyLoader.vkbRows() + model: keyLoader.vkbRows delegate: Row { spacing: keyboard.keyspacing Repeater { id: colRepeater property int rowIndex: index - model: keyLoader.vkbColumns() + model: keyLoader.vkbColumns delegate: Key { property var keydata: keyLoader.keyAt(colRepeater.rowIndex, index) label: keydata[0]