X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f11c699fa203dd2cde0e85c63a6d186e3fa6a3de..4c3dbbb628b5eac8530d5c49db4bf98da0444986:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 085c791fd..004b158ed 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -61,6 +61,7 @@ DolphinView::DolphinView(QWidget* parent, DolphinSortFilterProxyModel* proxyModel) : QWidget(parent), m_active(true), + m_showPreview(false), m_loadingDirectory(false), m_storedCategorizedSorting(false), m_mode(DolphinView::IconsView), @@ -102,8 +103,8 @@ DolphinView::DolphinView(QWidget* parent, connect(m_controller, SIGNAL(requestContextMenu(const QPoint&)), this, SLOT(openContextMenu(const QPoint&))); - connect(m_controller, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&, const KFileItem&, QWidget*)), - this, SLOT(dropUrls(const KUrl::List&, const KUrl&, const KFileItem&, QWidget*))); + connect(m_controller, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&, const KFileItem&)), + this, SLOT(dropUrls(const KUrl::List&, const KUrl&, const KFileItem&))); connect(m_controller, SIGNAL(sortingChanged(DolphinView::Sorting)), this, SLOT(updateSorting(DolphinView::Sorting))); connect(m_controller, SIGNAL(sortOrderChanged(Qt::SortOrder)), @@ -227,11 +228,16 @@ DolphinView::Mode DolphinView::mode() const void DolphinView::setShowPreview(bool show) { + if (m_showPreview == show) { + return; + } + const KUrl viewPropsUrl = viewPropertiesUrl(); ViewProperties props(viewPropsUrl); props.setShowPreview(show); - m_controller->setShowPreview(show); + m_showPreview = show; + emit showPreviewChanged(); loadDirectory(viewPropsUrl, true); @@ -239,7 +245,7 @@ void DolphinView::setShowPreview(bool show) bool DolphinView::showPreview() const { - return m_controller->showPreview(); + return m_showPreview; } void DolphinView::setShowHiddenFiles(bool show) @@ -253,7 +259,6 @@ void DolphinView::setShowHiddenFiles(bool show) props.setShowHiddenFiles(show); m_dirLister->setShowingDotFiles(show); - m_controller->setShowHiddenFiles(show); emit showHiddenFilesChanged(); loadDirectory(viewPropsUrl, true); @@ -557,7 +562,7 @@ void DolphinView::triggerItem(const KFileItem& item) void DolphinView::generatePreviews(const KFileItemList& items) { - if (m_controller->showPreview()) { + if (m_controller->dolphinView()->showPreview()) { KIO::PreviewJob* job = KIO::filePreview(items, 128); connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)), this, SLOT(showPreview(const KFileItem&, const QPixmap&))); @@ -655,7 +660,6 @@ void DolphinView::applyViewProperties(const KUrl& url) const bool showHiddenFiles = props.showHiddenFiles(); if (showHiddenFiles != m_dirLister->showingDotFiles()) { m_dirLister->setShowingDotFiles(showHiddenFiles); - m_controller->setShowHiddenFiles(showHiddenFiles); emit showHiddenFilesChanged(); } @@ -685,8 +689,8 @@ void DolphinView::applyViewProperties(const KUrl& url) } const bool showPreview = props.showPreview(); - if (showPreview != m_controller->showPreview()) { - m_controller->setShowPreview(showPreview); + if (showPreview != m_showPreview) { + m_showPreview = showPreview; emit showPreviewChanged(); } } @@ -726,24 +730,14 @@ void DolphinView::openContextMenu(const QPoint& pos) void DolphinView::dropUrls(const KUrl::List& urls, const KUrl& destPath, - const KFileItem& destItem, - QWidget* source) -{ - bool dropAboveDir = false; - if (!destItem.isNull()) { - dropAboveDir = destItem.isDir(); - if (!dropAboveDir) { - // the dropping is done above a file - return; - } - } else if (source == itemView()) { - // the dropping is done into the same viewport where the dragging - // has been started - return; + const KFileItem& destItem) +{ + const KUrl& destination = !destItem.isNull() && destItem.isDir() ? + destItem.url() : destPath; + const KUrl sourceDir = KUrl(urls.first().directory()); + if (sourceDir != destination) { + dropUrls(urls, destination); } - - const KUrl& destination = dropAboveDir ? destItem.url() : destPath; - dropUrls(urls, destination); } void DolphinView::dropUrls(const KUrl::List& urls,