diff --git a/io/loadthread.cpp b/io/loadthread.cpp index 0a7fd561a..b8dbf9534 100644 --- a/io/loadthread.cpp +++ b/io/loadthread.cpp @@ -140,22 +140,27 @@ void LoadThread::load_effect(QXmlStreamReader& stream, Clip* c) { EffectPtr ve(new VoidEffect(c, effect_name)); ve->SetEnabled(effect_enabled); ve->load(stream); + ve->moveToThread(QApplication::instance()->thread()); + c->effects.append(ve); } else { EffectPtr e(Effect::Create(c, meta)); e->SetEnabled(effect_enabled); e->load(stream); + e->moveToThread(QApplication::instance()->thread()); + c->effects.append(e); } } else { TransitionPtr t = Transition::Create(c, nullptr, meta); if (effect_length > -1) t->set_length(effect_length); t->SetEnabled(effect_enabled); - t->moveToThread(QApplication::instance()->thread()); t->load(stream); + t->moveToThread(QApplication::instance()->thread()); + if (type == kTransitionOpening) { c->opening_transition = t; } else { diff --git a/ui/mediaiconservice.cpp b/ui/mediaiconservice.cpp index 90d67e024..9563c54e1 100644 --- a/ui/mediaiconservice.cpp +++ b/ui/mediaiconservice.cpp @@ -40,11 +40,11 @@ MediaIconService::MediaIconService() { void MediaIconService::SetMediaIcon(Media *media, int icon_type) { // if this icon is already part of the throbber animation loop, remove it if (throbber_items_.contains(media)) { - // throbber_lock_.lock(); + throbber_lock_.lock(); throbber_items_.removeAll(media); - // throbber_lock_.unlock(); + throbber_lock_.unlock(); // if we aren't animating anything, no need to run the timer for now if (throbber_items_.empty()) { @@ -90,13 +90,13 @@ void MediaIconService::AnimationUpdate() { QIcon throbber_ico = QIcon(throbber_pixmap_.copy(kThrobberSize*throbber_animation_frame_, 0, kThrobberSize, kThrobberSize)); - // throbber_lock_.lock(); + throbber_lock_.lock(); for (int i=0;i