Add null checks for timebase in TimeScaledObject and fix background color assignment in ViewerDisplayWidget
This commit is contained in:
@@ -107,6 +107,7 @@ list(APPEND OLIVE_INCLUDE_DIRS ${OPENEXR_INCLUDES})
|
|||||||
list(APPEND OLIVE_LIBRARIES olivecore)
|
list(APPEND OLIVE_LIBRARIES olivecore)
|
||||||
list(APPEND OLIVE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/core/include)
|
list(APPEND OLIVE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/core/include)
|
||||||
|
|
||||||
|
|
||||||
# Link Qt
|
# Link Qt
|
||||||
set(QT_LIBRARIES
|
set(QT_LIBRARIES
|
||||||
Core
|
Core
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ const double &TimeScaledObject::timebase_dbl() const
|
|||||||
rational TimeScaledObject::SceneToTime(const double &x, const double &x_scale,
|
rational TimeScaledObject::SceneToTime(const double &x, const double &x_scale,
|
||||||
const rational &timebase, bool round)
|
const rational &timebase, bool round)
|
||||||
{
|
{
|
||||||
|
if (timebase.isNull()) {
|
||||||
|
return rational();
|
||||||
|
}
|
||||||
double unscaled_time = x / x_scale / timebase.toDouble();
|
double unscaled_time = x / x_scale / timebase.toDouble();
|
||||||
|
|
||||||
// Adjust screen point by scale and timebase
|
// Adjust screen point by scale and timebase
|
||||||
@@ -87,16 +90,25 @@ rational TimeScaledObject::SceneToTimeNoGrid(const double &x,
|
|||||||
|
|
||||||
double TimeScaledObject::TimeToScene(const rational &time) const
|
double TimeScaledObject::TimeToScene(const rational &time) const
|
||||||
{
|
{
|
||||||
|
if (timebase_.isNull()) {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
return time.toDouble() * scale_;
|
return time.toDouble() * scale_;
|
||||||
}
|
}
|
||||||
|
|
||||||
rational TimeScaledObject::SceneToTime(const double &x, bool round) const
|
rational TimeScaledObject::SceneToTime(const double &x, bool round) const
|
||||||
{
|
{
|
||||||
|
if (timebase_.isNull()) {
|
||||||
|
return rational();
|
||||||
|
}
|
||||||
return SceneToTime(x, scale_, timebase_, round);
|
return SceneToTime(x, scale_, timebase_, round);
|
||||||
}
|
}
|
||||||
|
|
||||||
rational TimeScaledObject::SceneToTimeNoGrid(const double &x) const
|
rational TimeScaledObject::SceneToTimeNoGrid(const double &x) const
|
||||||
{
|
{
|
||||||
|
if (timebase_.isNull()) {
|
||||||
|
return rational::fromDouble(x / scale_);
|
||||||
|
}
|
||||||
return SceneToTimeNoGrid(x, scale_);
|
return SceneToTimeNoGrid(x, scale_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -374,7 +374,7 @@ bool ViewerDisplayWidget::eventFilter(QObject *o, QEvent *e)
|
|||||||
void ViewerDisplayWidget::OnPaint()
|
void ViewerDisplayWidget::OnPaint()
|
||||||
{
|
{
|
||||||
// Clear background to empty
|
// Clear background to empty
|
||||||
QColor bg_color = show_widget_background_ ? palette().window().color() :
|
QColor bg_color = show_widget_background_ ? palette().window().color() :
|
||||||
Qt::black;
|
Qt::black;
|
||||||
renderer()->ClearDestination(nullptr, bg_color.redF(), bg_color.greenF(),
|
renderer()->ClearDestination(nullptr, bg_color.redF(), bg_color.greenF(),
|
||||||
bg_color.blueF());
|
bg_color.blueF());
|
||||||
|
|||||||
Reference in New Issue
Block a user