mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Update the controller's url upon redirection, otherwise pasting would paste into the old url. #186947
svn path=/trunk/KDE/kdebase/apps/; revision=1025406
This commit is contained in:
parent
1b160aee92
commit
4bccabca1b
|
@ -52,6 +52,11 @@ void DolphinController::setUrl(const KUrl& url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DolphinController::redirectToUrl(const KUrl& url)
|
||||||
|
{
|
||||||
|
m_url = url;
|
||||||
|
}
|
||||||
|
|
||||||
void DolphinController::setItemView(QAbstractItemView* view)
|
void DolphinController::setItemView(QAbstractItemView* view)
|
||||||
{
|
{
|
||||||
if (m_itemView != 0) {
|
if (m_itemView != 0) {
|
||||||
|
|
|
@ -97,6 +97,12 @@ public:
|
||||||
void setUrl(const KUrl& url);
|
void setUrl(const KUrl& url);
|
||||||
const KUrl& url() const;
|
const KUrl& url() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the URL to \a url and does nothing else. Called when
|
||||||
|
* a redirection happens.
|
||||||
|
*/
|
||||||
|
void redirectToUrl(const KUrl& url);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the current item view where the controller is working. This
|
* Changes the current item view where the controller is working. This
|
||||||
* is only necessary for views like the tree view, where internally
|
* is only necessary for views like the tree view, where internally
|
||||||
|
@ -165,7 +171,7 @@ public:
|
||||||
void indicateSortOrderChange(Qt::SortOrder order);
|
void indicateSortOrderChange(Qt::SortOrder order);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Informs the abstract Dolphin view about a change between separate sorting
|
* Informs the abstract Dolphin view about a change between separate sorting
|
||||||
* (with folders first) and mixed sorting of files and folders done inside
|
* (with folders first) and mixed sorting of files and folders done inside
|
||||||
* the view implementation. This method should be invoked by the view
|
* the view implementation. This method should be invoked by the view
|
||||||
* implementation (e. g. the details view uses this method in combination
|
* implementation (e. g. the details view uses this method in combination
|
||||||
|
|
|
@ -134,8 +134,8 @@ DolphinView::DolphinView(QWidget* parent,
|
||||||
this, SLOT(clearHoverInformation()));
|
this, SLOT(clearHoverInformation()));
|
||||||
|
|
||||||
KDirLister* dirLister = m_viewAccessor.dirLister();
|
KDirLister* dirLister = m_viewAccessor.dirLister();
|
||||||
connect(dirLister, SIGNAL(redirection(KUrl, KUrl)),
|
connect(dirLister, SIGNAL(redirection(KUrl,KUrl)),
|
||||||
this, SIGNAL(redirection(KUrl, KUrl)));
|
this, SLOT(slotRedirection(KUrl,KUrl)));
|
||||||
connect(dirLister, SIGNAL(completed()),
|
connect(dirLister, SIGNAL(completed()),
|
||||||
this, SLOT(slotDirListerCompleted()));
|
this, SLOT(slotDirListerCompleted()));
|
||||||
connect(dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
|
connect(dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
|
||||||
|
@ -246,7 +246,7 @@ void DolphinView::setMode(Mode mode)
|
||||||
emit modeChanged();
|
emit modeChanged();
|
||||||
|
|
||||||
updateZoomLevel(oldZoomLevel);
|
updateZoomLevel(oldZoomLevel);
|
||||||
if (m_showPreview) {
|
if (m_showPreview) {
|
||||||
loadDirectory(viewPropsUrl);
|
loadDirectory(viewPropsUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -625,7 +625,7 @@ void DolphinView::renameSelectedItems()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete dialog;
|
delete dialog;
|
||||||
|
|
||||||
// the selection would be invalid after renaming the items, so just clear
|
// the selection would be invalid after renaming the items, so just clear
|
||||||
// it before
|
// it before
|
||||||
clearSelection();
|
clearSelection();
|
||||||
|
@ -1500,4 +1500,10 @@ KDirLister* DolphinView::ViewAccessor::dirLister() const
|
||||||
return dirModel()->dirLister();
|
return dirModel()->dirLister();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DolphinView::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl)
|
||||||
|
{
|
||||||
|
emit redirection(oldUrl, newUrl);
|
||||||
|
m_controller->redirectToUrl(newUrl); // #186947
|
||||||
|
}
|
||||||
|
|
||||||
#include "dolphinview.moc"
|
#include "dolphinview.moc"
|
||||||
|
|
|
@ -694,6 +694,12 @@ private slots:
|
||||||
*/
|
*/
|
||||||
void restoreSelection();
|
void restoreSelection();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a redirection happens.
|
||||||
|
* Testcase: fish://localhost
|
||||||
|
*/
|
||||||
|
void slotRedirection(const KUrl& oldUrl, const KUrl& newUrl);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadDirectory(const KUrl& url, bool reload = false);
|
void loadDirectory(const KUrl& url, bool reload = false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue