this, SLOT(clearHoverInformation()));
KDirLister* dirLister = m_viewAccessor.dirLister();
- connect(dirLister, SIGNAL(redirection(KUrl, KUrl)),
- this, SIGNAL(redirection(KUrl, KUrl)));
+ connect(dirLister, SIGNAL(redirection(KUrl,KUrl)),
+ this, SLOT(slotRedirection(KUrl,KUrl)));
connect(dirLister, SIGNAL(completed()),
this, SLOT(slotDirListerCompleted()));
connect(dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
emit modeChanged();
updateZoomLevel(oldZoomLevel);
- if (m_showPreview) {
+ if (m_showPreview) {
loadDirectory(viewPropsUrl);
}
}
bool DolphinView::hasSelection() const
{
- return m_viewAccessor.itemView()->selectionModel()->hasSelection();
+ const QAbstractItemView* view = m_viewAccessor.itemView();
+ return view && view->selectionModel()->hasSelection();
}
void DolphinView::clearSelection()
void DolphinView::setContentsPosition(int x, int y)
{
QAbstractItemView* view = m_viewAccessor.itemView();
+ Q_ASSERT(view != 0);
view->horizontalScrollBar()->setValue(x);
view->verticalScrollBar()->setValue(y);
QPoint DolphinView::contentsPosition() const
{
- const int x = m_viewAccessor.itemView()->horizontalScrollBar()->value();
- const int y = m_viewAccessor.itemView()->verticalScrollBar()->value();
+ QAbstractItemView* view = m_viewAccessor.itemView();
+ Q_ASSERT(view != 0);
+ const int x = view->horizontalScrollBar()->value();
+ const int y = view->verticalScrollBar()->value();
return QPoint(x, y);
}
return;
}
delete dialog;
-
+
// the selection would be invalid after renaming the items, so just clear
// it before
clearSelection();
void DolphinView::createView()
{
deleteView();
+
Q_ASSERT(m_viewAccessor.itemView() == 0);
m_viewAccessor.createView(this, m_controller, m_mode);
m_topLayout->removeWidget(view);
view->close();
+ // disconnect all signal/slots
disconnect(view);
m_controller->disconnect(view);
view->disconnect();
+ disconnect(view->verticalScrollBar(), SIGNAL(valueChanged(int)),
+ this, SLOT(emitContentsMoved()));
+ disconnect(view->horizontalScrollBar(), SIGNAL(valueChanged(int)),
+ this, SLOT(emitContentsMoved()));
m_viewAccessor.deleteView();
}
m_iconsView = 0;
m_detailsView = 0;
- if (m_columnsContainer)
+ if (m_columnsContainer != 0) {
m_columnsContainer->deleteLater();
+ }
m_columnsContainer = 0;
}
return dirModel()->dirLister();
}
+void DolphinView::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
+{
+ emit redirection(oldUrl, newUrl);
+ m_controller->redirectToUrl(newUrl); // #186947
+}
+
#include "dolphinview.moc"