LAMPCAE/src/PluginWBFZExchangePlugin/QConsoleIODevice.h

41 lines
871 B
C++

#ifndef QCONSOLEIODEVICE_H
#define QCONSOLEIODEVICE_H
#include "WBFZExchangePluginAPI.h"
#include <QIODevice>
#include <QByteArray>
class QConsoleWidget;
class QConsoleIODevice : public QIODevice
{
Q_OBJECT
public:
explicit QConsoleIODevice(QConsoleWidget* w, QObject *parent = nullptr);
~QConsoleIODevice();
qint64 bytesAvailable() const override;
bool waitForReadyRead(int msecs) override;
QConsoleWidget* widget() const { return widget_; }
protected:
qint64 readData(char *data, qint64 maxlen) override;
qint64 writeData(const char *data, qint64 len) override;
private:
friend class QConsoleWidget;
QConsoleWidget* widget_;
QByteArray readbuff_;
int readpos_;
qint64 writtenSinceLastEmit_, readSinceLastEmit_;
bool readyReadEmmited_;
void consoleWidgetInput(const QString& in);
};
#endif