#ifndef REMARKUPPARSERTHREAD_H
#define REMARKUPPARSERTHREAD_H
#include "remarkupparser.h"

#include <QObject>
#include <QMutex>
#include <QTimer>
#include <QThread>

namespace Juff {
    class JuffScintilla;
};


class RemarkupParserThread : public QThread
{
    Q_OBJECT
public:
    explicit RemarkupParserThread(QObject *parent = 0);
    ~RemarkupParserThread();
    void processDoc(Juff::JuffScintilla* doc);
    void stop();

signals:
    void updateDoc(const Blocks& blocks, Juff::JuffScintilla* doc);
    void timerRestart();
    void timerStop();

public slots:
    void parseText();

private:
    //RemarkupParserThread* __instance;
    QMutex docLock;
    QTimer timerLagging;
    Juff::JuffScintilla* doc;
    RemarkupParser* parser;

    Juff::JuffScintilla* getDoc();
    void run();
};

#endif // REMARKUPPARSERTHREAD_H
