gui: Begin simple IPC error reporting

这个提交包含在:
Albert S. 2022-05-28 22:19:26 +02:00
父节点 4aa6d43674
当前提交 472661bff6
共有 3 个文件被更改,包括 14 次插入4 次删除

查看文件

@ -61,7 +61,8 @@ void IPCPreviewClient::start(RenderConfig config, const QVector<RenderTarget> &t
if(!connect() || !socket->isOpen())
{
// TODO: ERROR
emit error("Could not connect to IPC worker");
return;
}
if(socket->isOpen() && socket->isWritable())
@ -88,7 +89,8 @@ void IPCPreviewClient::start(RenderConfig config, const QVector<RenderTarget> &t
}
else
{
// TODO: ERROR
emit error("Error while trying to process previews: " + socket->errorString());
return;
}
int processed = 0;
@ -107,7 +109,7 @@ void IPCPreviewClient::start(RenderConfig config, const QVector<RenderTarget> &t
}
if(processed != targets.count())
{
// TODO: ERROR
emit error("IPC worker didn't send enough previews. This is a bug, please report");
}
}
socket->disconnectFromServer();
@ -118,7 +120,8 @@ void IPCPreviewClient::stopGeneration()
{
if(!connect() || !socket->isOpen())
{
// TODO: ERROR
emit error("Could not connect to IPC worker");
return;
}
QDataStream stream(socket);
stream << StopGeneratePreviews;

查看文件

@ -31,6 +31,7 @@ class IPCPreviewClient : public QObject
signals:
void previewReceived(QSharedPointer<PreviewResult> previewResult, unsigned int currentPreviewGeneration);
void finished();
void error(QString);
};
#endif // IPCPREVIEWCLIENT_H

查看文件

@ -34,6 +34,12 @@ MainWindow::MainWindow(QWidget *parent, QString socketPath) : QMainWindow(parent
Qt::QueuedConnection);
connect(&ipcPreviewClient, &IPCPreviewClient::finished, this,
[&] { this->ui->previewProcessBar->setValue(this->ui->previewProcessBar->maximum()); });
connect(&ipcPreviewClient, &IPCPreviewClient::error, this,
[this](QString msg)
{
qCritical() << msg << Qt::endl;
QMessageBox::critical(this, "IPC error", msg);
});
connect(this, &MainWindow::startIpcPreviews, &ipcPreviewClient, &IPCPreviewClient::startGeneration,
Qt::QueuedConnection);