bool TimelineDock::event(QEvent *event) { bool result = QDockWidget::event(event); if (event->type() == QEvent::PaletteChange || event->type() == QEvent::StyleChange) onVisibilityChanged(true); return result; }
TimelineDock::TimelineDock(QWidget *parent) : QDockWidget(parent), ui(new Ui::TimelineDock), m_quickView(this), m_position(-1) { qDebug() << "begin"; ui->setupUi(this); toggleViewAction()->setIcon(windowIcon()); qmlRegisterType<MultitrackModel>("Shotcut.Models", 1, 0, "MultitrackModel"); QDir importPath = QmlUtilities::qmlDir(); importPath.cd("modules"); m_quickView.engine()->addImportPath(importPath.path()); m_quickView.engine()->addImageProvider(QString("thumbnail"), new ThumbnailProvider); QmlUtilities::setCommonProperties(&m_quickView); m_quickView.rootContext()->setContextProperty("timeline", this); m_quickView.rootContext()->setContextProperty("multitrack", &m_model); m_quickView.setResizeMode(QQuickView::SizeRootObjectToView); m_quickView.setColor(palette().window().color()); connect(&m_model, &MultitrackModel::modified, this, &TimelineDock::clearSelectionIfInvalid); QWidget* container = QWidget::createWindowContainer(&m_quickView, this); container->setFocusPolicy(Qt::TabFocus); delete ui->scrollAreaWidgetContents; ui->scrollArea->setWidget(container); connect(MLT.videoWidget(), SIGNAL(frameDisplayed(const SharedFrame&)), this, SLOT(onShowFrame(const SharedFrame&))); #ifdef Q_OS_WIN onVisibilityChanged(true); #else connect(this, &QDockWidget::visibilityChanged, this, &TimelineDock::onVisibilityChanged); #endif qDebug() << "end"; }
bool ClientEntity::update (uint32_t deltaTime, bool lerpPos) { static const float interval = Constant::FPS_SERVER / (float) Constant::FPS_CLIENT; _time += deltaTime; if (lerpPos) { const vec2 before = _pos - _nextPos; if (!before.isZero(0.01f)) { const vec2 inc = interval * (_nextPos - _prevPos); _pos += inc; } else { _pos = _nextPos; } } if (_currSprite) { _currSprite->update(deltaTime); } if (_visChanged) { _visible ^= true; onVisibilityChanged(); } if (_fadeOutTime > 0) { float lastFade = _time - _fadeOutTime; _fadeOutTime += deltaTime; const float fadeStepsPerSecond = 333.0f; const float fsps = 1.0f / fadeStepsPerSecond; while (lastFade * fsps >= 1.0f) { lastFade -= 1.0f / fsps; } FadeOut(_alpha, lastFade * fsps); if (_alpha <= 0.01f) return false; } return true; }