leocad/qt/lc_renderdialog.h

110 lines
1.9 KiB
C
Raw Normal View History

2017-09-22 19:08:02 +02:00
#pragma once
#include <QDialog>
namespace Ui {
class lcRenderDialog;
}
2023-06-19 04:06:44 +02:00
class lcRenderProcess : public QProcess
2023-06-02 00:02:53 +02:00
{
Q_OBJECT
public:
2023-06-19 04:06:44 +02:00
explicit lcRenderProcess(QObject* parent = nullptr)
2023-06-02 00:02:53 +02:00
: QProcess(parent)
{
}
2023-06-19 04:06:44 +02:00
~lcRenderProcess();
2023-06-02 00:02:53 +02:00
};
class lcRenderPreviewWidget : public QWidget
{
Q_OBJECT
public:
lcRenderPreviewWidget(QWidget* Parent)
: QWidget(Parent)
{
}
void SetImage(QImage Image)
{
mImage = Image;
mScaledImage = QImage();
update();
}
protected:
void resizeEvent(QResizeEvent* Event) override;
void paintEvent(QPaintEvent* PaintEvent) override;
QImage mImage;
QImage mScaledImage;
};
2017-09-22 19:08:02 +02:00
class lcRenderDialog : public QDialog
{
Q_OBJECT
public:
2023-06-02 00:02:53 +02:00
explicit lcRenderDialog(QWidget* Parent, int Command);
2017-09-22 19:08:02 +02:00
~lcRenderDialog();
public slots:
void reject() override;
2017-09-22 19:08:02 +02:00
void on_RenderButton_clicked();
2017-12-27 22:55:37 +01:00
void on_OutputBrowseButton_clicked();
2023-06-02 00:02:53 +02:00
void on_RenderSettingsButton_clicked();
void on_RenderOutputButton_clicked();
2017-09-22 19:08:02 +02:00
void Update();
protected slots:
2023-06-02 00:02:53 +02:00
void ReadStdOut();
void WriteStdOut();
void UpdateElapsedTime() const;
2017-09-22 19:08:02 +02:00
protected:
2023-06-19 04:06:44 +02:00
QString GetStdOutFileName() const;
QString GetStdErrFileName() const;
2017-11-05 02:54:12 +01:00
QString GetPOVFileName() const;
2023-06-02 00:02:53 +02:00
QString ReadStdErr(bool& Error) const;
2017-11-05 02:54:12 +01:00
void CloseProcess();
bool PromptCancel();
void ShowResult();
2023-06-02 00:02:53 +02:00
#ifdef Q_OS_WIN
int TerminateChildProcess(const qint64 Pid, const qint64 Ppid);
#endif
2017-12-07 07:08:56 +01:00
#ifndef QT_NO_PROCESS
2023-06-19 04:06:44 +02:00
lcRenderProcess* mProcess;
2017-12-07 07:08:56 +01:00
#endif
2023-06-02 00:02:53 +02:00
enum CommandType
{
POVRAY_RENDER,
BLENDER_RENDER,
OPEN_IN_BLENDER
};
2017-11-05 02:54:12 +01:00
QTimer mUpdateTimer;
2023-06-02 00:02:53 +02:00
QElapsedTimer mRenderTime;
QFile mOutputFile;
void* mOutputBuffer;
QImage mImage;
2019-03-10 01:38:54 +01:00
QStringList mStdErrList;
2023-06-02 00:02:53 +02:00
QStringList mStdOutList;
int mWidth;
int mHeight;
int mPreviewWidth;
int mPreviewHeight;
int mCommand;
int mBlendProgValue;
int mBlendProgMax;
double mScale;
QString mImportModule;
QString mLabelMessage;
2023-06-02 00:02:53 +02:00
QString mDataPath;
2017-09-22 19:08:02 +02:00
2017-11-05 02:54:12 +01:00
Ui::lcRenderDialog* ui;
2017-09-22 19:08:02 +02:00
};