]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
remove the asynchronous update of the zooming again, it decreases the "feeled" perfor...
[dolphin.git] / src / dolphinviewcontainer.cpp
index cccce3fadbfb1ea0a4934ded79c129905733aca8..342aa08c72cfc28e0dc2b81f9d4a8428620bdb28 100644 (file)
@@ -46,6 +46,7 @@
 #include "dolphinmodel.h"
 #include "dolphincolumnview.h"
 #include "dolphincontroller.h"
+#include "dolphindropcontroller.h"
 #include "dolphinstatusbar.h"
 #include "dolphinmainwindow.h"
 #include "dolphindirlister.h"
@@ -80,8 +81,8 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
     m_topLayout->setMargin(0);
 
     m_urlNavigator = new KUrlNavigator(DolphinSettings::instance().placesModel(), url, this);
-    connect(m_urlNavigator, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)),
-            m_mainWindow, SLOT(dropUrls(const KUrl::List&, const KUrl&)));
+    connect(m_urlNavigator, SIGNAL(urlsDropped(const KUrl&, QDropEvent*)),
+            this, SLOT(dropUrls(const KUrl&, QDropEvent*)));
     connect(m_urlNavigator, SIGNAL(activated()),
             this, SLOT(activate()));
 
@@ -143,9 +144,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
     connect(m_urlNavigator, SIGNAL(urlChanged(const KUrl&)),
             this, SLOT(restoreView(const KUrl&)));
 
-    m_statusBar = new DolphinStatusBar(this, url);
-    connect(m_view, SIGNAL(urlChanged(const KUrl&)),
-            m_statusBar, SLOT(updateSpaceInfoContent(const KUrl&)));
+    m_statusBar = new DolphinStatusBar(this, m_view);
 
     m_filterBar = new FilterBar(this);
     m_filterBar->setVisible(settings->filterBar());
@@ -283,58 +282,6 @@ void DolphinViewContainer::closeFilterBar()
     emit showFilterBarChanged(false);
 }
 
-QString DolphinViewContainer::defaultStatusBarText() const
-{
-    int folderCount = 0;
-    int fileCount = 0;
-    m_view->calculateItemCount(fileCount, folderCount);
-    return KIO::itemsSummaryString(fileCount + folderCount,
-                                   fileCount,
-                                   folderCount,
-                                   0, false);
-}
-
-QString DolphinViewContainer::selectionStatusBarText() const
-{
-    QString text;
-    const KFileItemList list = m_view->selectedItems();
-    if (list.isEmpty()) {
-        // when an item is triggered, it is temporary selected but selectedItems()
-        // will return an empty list
-        return QString();
-    }
-
-    int fileCount = 0;
-    int folderCount = 0;
-    KIO::filesize_t byteSize = 0;
-    KFileItemList::const_iterator it = list.begin();
-    const KFileItemList::const_iterator end = list.end();
-    while (it != end) {
-        const KFileItem& item = *it;
-        if (item.isDir()) {
-            ++folderCount;
-        } else {
-            ++fileCount;
-            byteSize += item.size();
-        }
-        ++it;
-    }
-
-    if (folderCount > 0) {
-        text = i18ncp("@info:status", "1 Folder selected", "%1 Folders selected", folderCount);
-        if (fileCount > 0) {
-            text += ", ";
-        }
-    }
-
-    if (fileCount > 0) {
-        const QString sizeText(KIO::convertSize(byteSize));
-        text += i18ncp("@info:status", "1 File selected (%2)", "%1 Files selected (%2)", fileCount, sizeText);
-    }
-
-    return text;
-}
-
 void DolphinViewContainer::showFilterBar(bool show)
 {
     Q_ASSERT(m_filterBar != 0);
@@ -356,7 +303,7 @@ void DolphinViewContainer::updateStatusBar()
                                      (m_statusBar->type() == DolphinStatusBar::Information)) &&
                                     (m_statusBar->progress() == 100);
 
-    const QString text(m_view->hasSelection() ? selectionStatusBarText() : defaultStatusBarText());
+    const QString text(m_view->statusBarText());
     m_statusBar->setDefaultText(text);
 
     if (updateStatusBarMsg) {
@@ -406,6 +353,11 @@ void DolphinViewContainer::saveRootUrl(const KUrl& url)
     m_urlNavigator->saveRootUrl(m_view->rootUrl());
 }
 
+void DolphinViewContainer::dropUrls(const KUrl& destination, QDropEvent* event)
+{
+    DolphinDropController::dropUrls(KFileItem(), destination, event, this);
+}
+
 void DolphinViewContainer::slotItemTriggered(const KFileItem& item)
 {
     KUrl url = item.targetUrl();