#include "FractoriumPch.h" #include "Fractorium.h" /// /// Update the histogram bounds display labels. /// This shows the user the actual bounds of what's /// being rendered. Mostly of engineering interest. /// void Fractorium::UpdateHistogramBounds() { if (RendererBase* r = m_Controller->Renderer()) { sprintf_s(m_ULString, 32, "UL: %3.3f, %3.3f", r->LowerLeftX(), r->UpperRightY());//These bounds include gutter padding. sprintf_s(m_URString, 32, "UR: %3.3f, %3.3f", -r->LowerLeftX(), r->UpperRightY()); sprintf_s(m_LRString, 32, "LR: %3.3f, %3.3f", -r->LowerLeftX(), r->LowerLeftY()); sprintf_s(m_LLString, 32, "LL: %3.3f, %3.3f", r->LowerLeftX(), r->LowerLeftY()); sprintf_s(m_WHString, 32, "W x H: %4lu x %4lu", r->SuperRasW(), r->SuperRasH()); ui.InfoBoundsLabelUL->setText(QString(m_ULString)); ui.InfoBoundsLabelUR->setText(QString(m_URString)); ui.InfoBoundsLabelLR->setText(QString(m_LRString)); ui.InfoBoundsLabelLL->setText(QString(m_LLString)); ui.InfoBoundsLabelWH->setText(QString(m_WHString)); ui.InfoBoundsTable->item(0, 1)->setText(ToString(r->GutterWidth())); if (r->GetDensityFilter()) { uint deWidth = (r->GetDensityFilter()->FilterWidth() * 2) + 1; sprintf_s(m_DEString, 16, "%d x %d", deWidth, deWidth); ui.InfoBoundsTable->item(1, 1)->setText(QString(m_DEString)); } else ui.InfoBoundsTable->item(1, 1)->setText("N/A"); } } /// /// Fill the passed in QTextEdit with the vector of strings. /// Optionally clear first. /// Serves as a convenience function because the error reports coming /// from Ember and EmberCL use vector. /// Use invokeMethod() in case this is called from a thread. /// /// The vector of error strings /// The QTextEdit to fill /// Clear if true, else don't. void Fractorium::ErrorReportToQTextEdit(const vector& errors, QTextEdit* textEdit, bool clear) { if (clear) QMetaObject::invokeMethod(textEdit, "clear", Qt::QueuedConnection); for (auto& error : errors) QMetaObject::invokeMethod(textEdit, "append", Qt::QueuedConnection, Q_ARG(const QString&, QString::fromStdString(error) + "\n")); }