--User changes

-Add a progress bar for sequence previews.

--Bug fixes
 -Attempt to prevent crash when dragging in a new file while the previews from the current file are still rendering.
This commit is contained in:
Person
2023-11-23 14:52:34 -07:00
parent 745f06d29d
commit b3ad38020e
20 changed files with 78 additions and 50 deletions

View File

@ -646,8 +646,9 @@ template <typename T>
class PreviewRenderer
{
public:
PreviewRenderer()
PreviewRenderer(QProgressBar* p)
{
m_Pb = p;
}
virtual ~PreviewRenderer()
@ -669,8 +670,10 @@ public:
void Stop()
{
m_PreviewRun = false;
m_PreviewRenderer.Abort();
m_PreviewResult.waitForFinished();
m_PreviewRenderer.Reset();
while (m_PreviewResult.isRunning())
QApplication::processEvents();
}
bool EarlyClip()
@ -696,6 +699,7 @@ protected:
vector<unsigned char> m_PreviewVec;
vv4F m_PreviewFinalImage;
EmberNs::Renderer<T, float> m_PreviewRenderer;
QProgressBar* m_Pb = nullptr;
private:
QFuture<void> m_PreviewResult;
@ -714,6 +718,7 @@ public:
using PreviewRenderer<T>::m_PreviewVec;
using PreviewRenderer<T>::m_PreviewRenderer;
using PreviewRenderer<T>::m_PreviewFinalImage;
using PreviewRenderer<T>::m_Pb;
/// <summary>
/// Initializes a new instance of the <see cref="TreePreviewRenderer{T}"/> class.
@ -721,10 +726,11 @@ public:
/// <param name="controller">A pointer to the controller this instance is a member of</param>
/// <param name="tree">A pointer to the tree to render to</param>
/// <param name="emberFile">A reference to the ember file to render</param>
TreePreviewRenderer(FractoriumEmberController<T>* controller, QTreeWidget* tree, EmberFile<T>& emberFile) :
TreePreviewRenderer(FractoriumEmberController<T>* controller, QTreeWidget* tree, EmberFile<T>& emberFile, QProgressBar* p) :
m_Controller(controller),
m_Tree(tree),
m_EmberFile(emberFile)
m_EmberFile(emberFile),
PreviewRenderer<T>(p)
{
const auto f = m_Controller->m_Fractorium;
m_PreviewRenderer.Callback(nullptr);