From 9778eb24c145ce24c80ca753ea3526e104e9aa91 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Mon, 27 Jan 2014 14:06:59 +0100 Subject: Restructure and rename. This restructures the repo to match other Qt modules, like the Enterprise Controls. It also renames the plugin and usages of its name in the documentation so that the abbreviated "VKB" is not used anywhere. Change-Id: I5de3fc67846a50438e52f4be057abfa0d9be0d91 Reviewed-by: Frederik Gladhorn --- src/virtualkeyboard/hunspellworker.h | 100 +++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 src/virtualkeyboard/hunspellworker.h (limited to 'src/virtualkeyboard/hunspellworker.h') diff --git a/src/virtualkeyboard/hunspellworker.h b/src/virtualkeyboard/hunspellworker.h new file mode 100644 index 00000000..276269e6 --- /dev/null +++ b/src/virtualkeyboard/hunspellworker.h @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the Qt Quick Enterprise Controls add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef HUNSPELLWORKER_H +#define HUNSPELLWORKER_H + +#include +#include +#include +#include +#include +#include + +class HunspellTask : public QObject +{ + Q_OBJECT +public: + explicit HunspellTask(QObject *parent = 0) : + QObject(parent), + hunspell(0) + {} + + virtual void run() = 0; + + Hunhandle *hunspell; +}; + +class HunspellWordList +{ +public: + HunspellWordList() : + list(), + index(-1) + {} + + QStringList list; + int index; +}; + +class HunspellBuildSuggestionsTask : public HunspellTask +{ + Q_OBJECT +public: + QString word; + QSharedPointer wordList; + + void run(); + bool spellCheck(const QString &word); + int levenshteinDistance(const QString &s, const QString &t); +}; + +class HunspellUpdateSuggestionsTask : public HunspellTask +{ + Q_OBJECT +public: + QSharedPointer wordList; + + void run(); + +signals: + void updateSuggestions(const QStringList &wordList, int activeWordIndex); +}; + +class HunspellWorker : public QThread +{ + Q_OBJECT +public: + explicit HunspellWorker(Hunhandle *hunspell, QObject *parent = 0); + ~HunspellWorker(); + + void addTask(QSharedPointer task); + void removeAllTasks(); + +protected: + void run(); + +private: + QList > taskList; + QSemaphore taskSema; + QMutex taskLock; + Hunhandle *hunspell; + bool abort; +}; + +#endif // HUNSPELLWORKER_H -- cgit v1.2.3