]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.cpp
SVN_SILENT made messages (.desktop file)
[dolphin.git] / src / views / dolphinview.cpp
index f2340fa8924c1d4bf809d5c82b9bc426e1a0efeb..681ce74f7fe352f4305ee439069984bb2e2d4106 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2006-2009 by Peter Penz <peter.penz@gmx.at>             *
+ *   Copyright (C) 2006-2009 by Peter Penz <peter.penz19@gmail.com>        *
  *   Copyright (C) 2006 by Gregor Kališnik <gregor@podnapisi.net>          *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
 #include <QTimer>
 #include <QScrollBar>
 
-#include <kactioncollection.h>
-#include <kcolorscheme.h>
-#include <kdirlister.h>
-#include <kiconeffect.h>
-#include <kfileitem.h>
-#include <kfileitemlistproperties.h>
-#include <klocale.h>
-#include <kio/deletejob.h>
-#include <kio/netaccess.h>
-#include <kio/previewjob.h>
-#include <kjob.h>
-#include <kmenu.h>
-#include <kmessagebox.h>
+#include <KActionCollection>
+#include <KColorScheme>
+#include <KDirLister>
+#include <KIconEffect>
+#include <KFileItem>
+#include <KFileItemListProperties>
+#include <KLocale>
+#include <KIO/DeleteJob>
+#include <KIO/NetAccess>
+#include <KIO/PreviewJob>
+#include <KJob>
+#include <KMenu>
+#include <KMessageBox>
 #include <konq_fileitemcapabilities.h>
 #include <konq_operations.h>
 #include <konqmimedata.h>
-#include <ktoggleaction.h>
-#include <kurl.h>
+#include <KToggleAction>
+#include <KUrl>
 
 #include "additionalinfoaccessor.h"
 #include "dolphindirlister.h"
@@ -290,7 +290,7 @@ KFileItemList DolphinView::selectedItems() const
 {
     KFileItemList itemList;
     const QAbstractItemView* view = m_viewAccessor.itemView();
-    if (view == 0) {
+    if (!view) {
         return itemList;
     }
 
@@ -310,7 +310,7 @@ KFileItemList DolphinView::selectedItems() const
 int DolphinView::selectedItemsCount() const
 {
     const QAbstractItemView* view = m_viewAccessor.itemView();
-    if (view == 0) {
+    if (!view) {
         return 0;
     }
 
@@ -609,6 +609,10 @@ void DolphinView::renameSelectedItems()
         dialog->raise();
         dialog->activateWindow();
     }
+
+    // assure that the current index remains visible when KDirLister
+    // will notify the view about changed items
+    m_assureVisibleCurrentIndex = true;
 }
 
 void DolphinView::trashSelectedItems()
@@ -684,6 +688,8 @@ void DolphinView::setShowHiddenFiles(bool show)
         return;
     }
 
+    m_selectedItems = selectedItems();
+
     const KUrl viewPropsUrl = rootUrl();
     ViewProperties props(viewPropsUrl);
     props.setShowHiddenFiles(show);
@@ -768,6 +774,14 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event)
     return QWidget::eventFilter(watched, event);
 }
 
+void DolphinView::showEvent(QShowEvent* event)
+{
+    QWidget::showEvent(event);
+    if (!event->spontaneous()) {
+        loadDirectory(url());
+    }
+}
+
 void DolphinView::activate()
 {
     setActive(true);
@@ -886,7 +900,7 @@ void DolphinView::updateAdditionalInfoActions(KActionCollection* collection)
     foreach (const KFileItemDelegate::Information& info, infoKeys) {
         const QString name = infoAccessor.actionCollectionName(info, AdditionalInfoAccessor::AdditionalInfoType);
         QAction* action = collection->action(name);
-        Q_ASSERT(action != 0);
+        Q_ASSERT(action);
         action->setEnabled(enable);
         action->setChecked(checkedInfo.contains(info));
     }
@@ -929,7 +943,7 @@ void DolphinView::restoreState(QDataStream& stream)
     QSet<KUrl> urlsToExpand;
     stream >> urlsToExpand;
     const DolphinDetailsViewExpander* expander = m_viewAccessor.setExpandedUrls(urlsToExpand);
-    if (expander != 0) {
+    if (expander) {
         m_expanderActive = true;
         connect (expander, SIGNAL(completed()), this, SLOT(slotLoadingCompleted()));
     }
@@ -944,7 +958,7 @@ void DolphinView::saveState(QDataStream& stream)
     KFileItem currentItem;
     const QAbstractItemView* view = m_viewAccessor.itemView();
 
-    if (view != 0) {
+    if (view) {
         const QModelIndex proxyIndex = view->currentIndex();
         const QModelIndex dirModelIndex = m_viewAccessor.proxyModel()->mapToSource(proxyIndex);
         currentItem = m_viewAccessor.dirModel()->itemForIndex(dirModelIndex);
@@ -972,7 +986,7 @@ void DolphinView::saveState(QDataStream& stream)
 bool DolphinView::hasSelection() const
 {
     const QAbstractItemView* view = m_viewAccessor.itemView();
-    return (view != 0) && view->selectionModel()->hasSelection();
+    return view && view->selectionModel()->hasSelection();
 }
 
 void DolphinView::observeCreatedItem(const KUrl& url)
@@ -1011,7 +1025,7 @@ void DolphinView::restoreContentsPosition()
         m_restoredContentsPosition = QPoint();
 
         QAbstractItemView* view = m_viewAccessor.itemView();
-        Q_ASSERT(view != 0);
+        Q_ASSERT(view);
         view->horizontalScrollBar()->setValue(x);
         view->verticalScrollBar()->setValue(y);
     }
@@ -1163,12 +1177,12 @@ void DolphinView::applyViewProperties()
 
         updateZoomLevel(oldZoomLevel);
     }
-    if (m_viewAccessor.itemView() == 0) {
+    if (!m_viewAccessor.itemView()) {
         createView();
     }
 
-    Q_ASSERT(m_viewAccessor.itemView() != 0);
-    Q_ASSERT(m_viewAccessor.itemDelegate() != 0);
+    Q_ASSERT(m_viewAccessor.itemView());
+    Q_ASSERT(m_viewAccessor.itemDelegate());
 
     const bool showHiddenFiles = props.showHiddenFiles();
     if (showHiddenFiles != m_viewAccessor.dirLister()->showingDotFiles()) {
@@ -1224,12 +1238,12 @@ void DolphinView::createView()
 {
     deleteView();
 
-    Q_ASSERT(m_viewAccessor.itemView() == 0);
-    Q_ASSERT(m_dolphinViewController->itemView() == 0);
+    Q_ASSERT(!m_viewAccessor.itemView());
+    Q_ASSERT(!m_dolphinViewController->itemView());
     m_viewAccessor.createView(this, m_dolphinViewController, m_viewModeController, m_mode);
 
     QAbstractItemView* view = m_viewAccessor.itemView();
-    Q_ASSERT(view != 0);
+    Q_ASSERT(view);
     view->installEventFilter(this);
     view->viewport()->installEventFilter(this);
 
@@ -1247,10 +1261,10 @@ void DolphinView::createView()
 void DolphinView::deleteView()
 {
     QAbstractItemView* view = m_viewAccessor.itemView();
-    Q_ASSERT((m_dolphinViewController->itemView() == 0) || (m_dolphinViewController->itemView() == view));
+    Q_ASSERT(!m_dolphinViewController->itemView() || (m_dolphinViewController->itemView() == view));
     m_dolphinViewController->setItemView(0);
 
-    if (view != 0) {
+    if (view) {
         disconnectViewAccessor();
 
         if (hasFocus()) {
@@ -1303,7 +1317,7 @@ KUrl::List DolphinView::simplifiedSelectedUrls() const
 QMimeData* DolphinView::selectionMimeData() const
 {
     const QAbstractItemView* view = m_viewAccessor.itemView();
-    Q_ASSERT((view != 0) && (view->selectionModel() != 0));
+    Q_ASSERT((view) && (view->selectionModel()));
     const QItemSelection selection = m_viewAccessor.proxyModel()->mapSelectionToSource(view->selectionModel()->selection());
     return m_viewAccessor.dirModel()->mimeData(selection.indexes());
 }
@@ -1346,7 +1360,6 @@ void DolphinView::connectViewAccessor()
     connect(dirLister, SIGNAL(redirection(KUrl,KUrl)), this, SLOT(slotRedirection(KUrl,KUrl)));
     connect(dirLister, SIGNAL(started(KUrl)),          this, SLOT(slotDirListerStarted(KUrl)));
     connect(dirLister, SIGNAL(completed()),            this, SLOT(slotDirListerCompleted()));
-    connect(dirLister, SIGNAL(canceled()),             this, SLOT(slotDirListerCompleted()));
     connect(dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
             this, SLOT(slotRefreshItems()));
 
@@ -1369,7 +1382,6 @@ void DolphinView::disconnectViewAccessor()
     disconnect(dirLister, SIGNAL(redirection(KUrl,KUrl)), this, SLOT(slotRedirection(KUrl,KUrl)));
     disconnect(dirLister, SIGNAL(started(KUrl)),          this, SLOT(slotDirListerStarted(KUrl)));
     disconnect(dirLister, SIGNAL(completed()),            this, SLOT(slotDirListerCompleted()));
-    disconnect(dirLister, SIGNAL(canceled()),             this, SLOT(slotDirListerCompleted()));
     disconnect(dirLister, SIGNAL(refreshItems(const QList<QPair<KFileItem,KFileItem>>&)),
                this, SLOT(slotRefreshItems()));
 
@@ -1440,7 +1452,7 @@ void DolphinView::ViewAccessor::createView(QWidget* parent,
                                            const ViewModeController* viewModeController,
                                            Mode mode)
 {
-    Q_ASSERT(itemView() == 0);
+    Q_ASSERT(!itemView());
 
     switch (mode) {
     case IconsView:
@@ -1472,18 +1484,23 @@ void DolphinView::ViewAccessor::createView(QWidget* parent,
     default:
         Q_ASSERT(false);
     }
+
+    KDirLister* lister = dirLister();
+    if (lister) {
+        lister->setMainWindow(parent->window());
+    }
 }
 
 void DolphinView::ViewAccessor::deleteView()
 {
-    if (m_columnsContainer != 0) {
+    if (m_columnsContainer) {
         m_columnsContainer->close();
         m_columnsContainer->disconnect();
         m_columnsContainer->deleteLater();
         m_columnsContainer = 0;
     } else {
         QAbstractItemView* view = itemView();
-        if (view != 0) {
+        if (view) {
             view->close();
             view->disconnect();
 
@@ -1492,7 +1509,7 @@ void DolphinView::ViewAccessor::deleteView()
                 // during drag operations" is used). Deleting the view
                 // during an ongoing drag operation is not allowed, so
                 // this will postponed.
-                if (m_dragSource != 0) {
+                if (m_dragSource) {
                     // the old stored view is obviously not the drag source anymore
                     m_dragSource->deleteLater();
                     m_dragSource = 0;
@@ -1512,22 +1529,22 @@ void DolphinView::ViewAccessor::deleteView()
 
 void DolphinView::ViewAccessor::prepareUrlChange(const KUrl& url)
 {
-    if (m_columnsContainer != 0) {
+    if (m_columnsContainer) {
         m_columnsContainer->showColumn(url);
     }
 }
 
 QAbstractItemView* DolphinView::ViewAccessor::itemView() const
 {
-    if (m_iconsView != 0) {
+    if (m_iconsView) {
         return m_iconsView;
     }
 
-    if (m_detailsView != 0) {
+    if (m_detailsView) {
         return m_detailsView;
     }
 
-    if (m_columnsContainer != 0) {
+    if (m_columnsContainer) {
         return m_columnsContainer->activeColumn();
     }
 
@@ -1541,7 +1558,7 @@ KFileItemDelegate* DolphinView::ViewAccessor::itemDelegate() const
 
 QWidget* DolphinView::ViewAccessor::layoutTarget() const
 {
-    if (m_columnsContainer != 0) {
+    if (m_columnsContainer) {
         return m_columnsContainer;
     }
     return itemView();
@@ -1554,7 +1571,7 @@ void DolphinView::ViewAccessor::setRootUrl(const KUrl& rootUrl)
 
 KUrl DolphinView::ViewAccessor::rootUrl() const
 {
-    return (m_columnsContainer != 0) ? m_columnsContainer->rootUrl() : m_rootUrl;
+    return m_columnsContainer ? m_columnsContainer->rootUrl() : m_rootUrl;
 }
 
 bool DolphinView::ViewAccessor::supportsCategorizedSorting() const
@@ -1564,12 +1581,12 @@ bool DolphinView::ViewAccessor::supportsCategorizedSorting() const
 
 bool DolphinView::ViewAccessor::itemsExpandable() const
 {
-    return (m_detailsView != 0) && m_detailsView->itemsExpandable();
+    return m_detailsView && m_detailsView->itemsExpandable();
 }
 
 QSet<KUrl> DolphinView::ViewAccessor::expandedUrls() const
 {
-    if (m_detailsView != 0) {
+    if (m_detailsView) {
         return m_detailsView->expandedUrls();
     }
 
@@ -1578,7 +1595,7 @@ QSet<KUrl> DolphinView::ViewAccessor::expandedUrls() const
 
 const DolphinDetailsViewExpander* DolphinView::ViewAccessor::setExpandedUrls(const QSet<KUrl>& urlsToExpand)
 {
-    if ((m_detailsView != 0) && m_detailsView->itemsExpandable() && !urlsToExpand.isEmpty()) {
+    if (m_detailsView && m_detailsView->itemsExpandable() && !urlsToExpand.isEmpty()) {
         // Check if another expander is already active and stop it if necessary.
         if(!m_detailsViewExpander.isNull()) {
             m_detailsViewExpander->stop();
@@ -1606,7 +1623,7 @@ DolphinModel* DolphinView::ViewAccessor::dirModel() const
 
 DolphinSortFilterProxyModel* DolphinView::ViewAccessor::proxyModel() const
 {
-    if (m_columnsContainer != 0) {
+    if (m_columnsContainer) {
         return static_cast<DolphinSortFilterProxyModel*>(m_columnsContainer->activeColumn()->model());
     }
     return m_proxyModel;