mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
qt log viewer now works
This commit is contained in:
parent
f8fe124428
commit
ed2818eaa2
12 changed files with 335 additions and 40 deletions
45
qt/i2pd_qt/logviewermanager.cpp
Normal file
45
qt/i2pd_qt/logviewermanager.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include "logviewermanager.h"
|
||||
|
||||
LogViewerManager::LogViewerManager(std::shared_ptr<std::iostream> logStream_,
|
||||
QPlainTextEdit* logTextEdit_,
|
||||
QObject *parent) :
|
||||
QObject(parent),
|
||||
logStream(logStream_),
|
||||
logTextEdit(logTextEdit_),
|
||||
controllerForBgThread(nullptr)
|
||||
{
|
||||
assert(logTextEdit!=nullptr);
|
||||
controllerForBgThread=new i2pd::qt::logviewer::Controller(*this);
|
||||
}
|
||||
|
||||
namespace i2pd {
|
||||
namespace qt {
|
||||
namespace logviewer {
|
||||
|
||||
QString Worker::pollAndShootATimerForInfiniteRetries() {
|
||||
std::shared_ptr<std::iostream> logStream=logViewerManager.getLogStream();
|
||||
assert(logStream!=nullptr);
|
||||
std::streamsize MAX_SZ=64*1024;
|
||||
char*buf=(char*)malloc(MAX_SZ*sizeof(char));
|
||||
if(buf==nullptr)return "";
|
||||
std::streamsize read=logStream->readsome(buf, MAX_SZ);
|
||||
if(read<0)read=0;
|
||||
QString ret=QString::fromUtf8(buf, read);
|
||||
free(buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Controller::Controller(LogViewerManager ¶meter1):logViewerManager(parameter1) {
|
||||
Worker *worker = new Worker(parameter1);
|
||||
worker->moveToThread(&workerThread);
|
||||
connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
|
||||
connect(this, &Controller::operate1, worker, &Worker::doWork1);
|
||||
connect(worker, &Worker::resultReady,
|
||||
¶meter1, &LogViewerManager::appendPlainText_atGuiThread);
|
||||
workerThread.start();
|
||||
timerId=startTimer(100/*millis*/);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue