m_active = true;
createView();
- reload();
-
- // For performance reasons applying the view properties should be done after updating
- // the directory-lister URL with reload(). Otherwise in combination with enabled
- // previews the creation of already obsolete directory items gets triggered.
applyViewProperties();
+ reload();
setActive(oldActivationState);
updateZoomLevel(oldZoomLevel);
m_viewModeController->setUrl(url); // emits urlChanged, which we forward
m_viewAccessor.prepareUrlChange(url);
+ applyViewProperties();
// When changing the URL there is no need to keep the version
// data of the previous URL.
connectViewAccessor();
loadDirectory(url);
- // For performance reasons applying the view properties should be done after updating
- // the directory-lister URL with loadDirectory(). Otherwise in combination with enabled
- // previews the creation of already obsolete directory items gets triggered.
- applyViewProperties();
-
if (hadSelection || hasSelection()) {
emitSelectionChangedSignal();
}
this, SLOT(slotZoomLevelChanged()));
connect(viewModeController, SIGNAL(cancelPreviews()),
this, SLOT(cancelPreviews()));
+
+ // slotPreviewChanged() is connected as Qt::QueuedConnection to prevent performance
+ // issues when the directory lister changes its URL after the preview-changes have
+ // been applied. Usecase: Switch from directory A having no previews to
+ // directory B with previews (see sequence in DolphinView::setUrl()).
connect(dolphinViewController->view(), SIGNAL(showPreviewChanged()),
- this, SLOT(slotShowPreviewChanged()));
+ this, SLOT(slotShowPreviewChanged()),
+ Qt::QueuedConnection);
// initialize selection manager
m_selectionManager = new SelectionManager(view);