]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinview.cpp
a bit ugly, but the migration to QList<KFileItem> has to be incremental...
[dolphin.git] / src / dolphinview.cpp
index e450da3395b0096cc08c4e27bfa88ea96229d793..4c2c5f02db17037ea127ab4facd213f79a006a11 100644 (file)
@@ -205,6 +205,14 @@ void DolphinView::setMode(Mode mode)
 
     m_mode = mode;
 
+    if (isColumnViewActive()) {
+        // When changing the mode in the column view, it makes sense
+        // to go back to the root URL of the column view automatically.
+        // Otherwise there it would not be possible to turn off the column view
+        // without focusing the first column.
+        setUrl(m_dirLister->url());
+    }
+
     ViewProperties props(m_urlNavigator->url());
     props.setViewMode(m_mode);
 
@@ -223,12 +231,11 @@ void DolphinView::setShowPreview(bool show)
 {
     ViewProperties props(m_urlNavigator->url());
     props.setShowPreview(show);
-    props.save();
 
     m_controller->setShowPreview(show);
-
     emit showPreviewChanged();
-    reload();
+
+    startDirLister(m_urlNavigator->url(), true);
 }
 
 bool DolphinView::showPreview() const
@@ -244,12 +251,11 @@ void DolphinView::setShowHiddenFiles(bool show)
 
     ViewProperties props(m_urlNavigator->url());
     props.setShowHiddenFiles(show);
-    props.save();
 
     m_dirLister->setShowingDotFiles(show);
     emit showHiddenFilesChanged();
 
-    reload();
+    startDirLister(m_urlNavigator->url(), true);
 }
 
 bool DolphinView::showHiddenFiles() const
@@ -457,7 +463,7 @@ void DolphinView::setAdditionalInfo(KFileItemDelegate::AdditionalInformation inf
     m_fileItemDelegate->setAdditionalInformation(info);
 
     emit additionalInfoChanged(info);
-    reload();
+    startDirLister(m_urlNavigator->url(), true);
 }
 
 KFileItemDelegate::AdditionalInformation DolphinView::additionalInfo() const
@@ -584,7 +590,6 @@ void DolphinView::rename(const KUrl& source, const QString& newName)
 
         default:
             // the renaming operation has been canceled
-            reload();
             return;
         }
     } else {
@@ -602,7 +607,6 @@ void DolphinView::rename(const KUrl& source, const QString& newName)
     } else {
         m_statusBar->setMessage(i18n("Renaming of file '%1' to '%2' failed.", source.fileName(), destFileName),
                                 DolphinStatusBar::Error);
-        reload();
     }
 }
 
@@ -796,25 +800,31 @@ void DolphinView::updateItemCount()
 void DolphinView::generatePreviews(const KFileItemList& items)
 {
     if (m_controller->showPreview()) {
-        KIO::PreviewJob* job = KIO::filePreview(items, 128);
-        connect(job, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
-                this, SLOT(showPreview(const KFileItem*, const QPixmap&)));
+
+        // Must turn QList<KFileItem *> to QList<KFileItem>...
+        QList<KFileItem> itemsToPreview;
+        foreach( KFileItem* it, items )
+            itemsToPreview.append( *it );
+
+        KIO::PreviewJob* job = KIO::filePreview(itemsToPreview, 128);
+        connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
+                this, SLOT(showPreview(const KFileItem&, const QPixmap&)));
     }
 }
 
-void DolphinView::showPreview(const KFileItem* item, const QPixmap& pixmap)
+void DolphinView::showPreview(const KFileItem& item, const QPixmap& pixmap)
 {
-    Q_ASSERT(item != 0);
-    if (item->url().directory() != m_dirLister->url().path()) {
+    Q_ASSERT(!item.isNull());
+    if (item.url().directory() != m_dirLister->url().path()) {
         // the preview job is still working on items of an older URL, hence
         // the item is not part of the directory model anymore
         return;
     }
 
-    const QModelIndex idx = m_dirModel->indexForItem(*item);
+    const QModelIndex idx = m_dirModel->indexForItem(item);
     if (idx.isValid() && (idx.column() == 0)) {
         const QMimeData* mimeData = QApplication::clipboard()->mimeData();
-        if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(*item)) {
+        if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(item)) {
             KIconEffect iconEffect;
             const QPixmap cutPixmap = iconEffect.apply(pixmap, K3Icon::Desktop, K3Icon::DisabledState);
             m_dirModel->setData(idx, QIcon(cutPixmap), Qt::DecorationRole);