]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
port Konqueror from KUrl to QUrl
[dolphin.git] / src / views / dolphinview.h
index 13cc66545533b3a34fc419889a699f26e3ad254e..9435206d90a477c26c794972ad236fec3c2192fa 100644 (file)
 #ifndef DOLPHINVIEW_H
 #define DOLPHINVIEW_H
 
-#include <config-nepomuk.h>
+#include <config-baloo.h>
 
 #include "libdolphin_export.h"
 
 #include <kparts/part.h>
 #include <KFileItem>
-#include <KFileItemDelegate>
 #include <kio/fileundomanager.h>
 #include <KIO/Job>
+#include <KUrl>
 
-#include <QBoxLayout>
-#include <QKeyEvent>
-#include <QLinkedList>
-#include <QSet>
 #include <QWidget>
 
 typedef KIO::FileUndoManager::CommandType CommandType;
-
+class QVBoxLayout;
 class DolphinItemListView;
-class KAction;
-class KActionCollection;
 class KFileItemModel;
 class KItemListContainer;
 class KItemModelBase;
+class KItemSet;
 class KUrl;
 class ToolTipManager;
 class VersionControlObserver;
@@ -97,7 +92,7 @@ public:
      * @param url              Specifies the content which should be shown.
      * @param parent           Parent widget of the view.
      */
-    DolphinView(const KUrl& url, QWidget* parent);
+    DolphinView(const QUrl& url, QWidget* parent);
 
     virtual ~DolphinView();
 
@@ -105,7 +100,7 @@ public:
      * Returns the current active URL, where all actions are applied.
      * The URL navigator is synchronized with this URL.
      */
-    KUrl url() const;
+    QUrl url() const;
 
     /**
      * If \a active is true, the view will marked as active. The active
@@ -178,13 +173,13 @@ public:
      * gets selected if no loading of a directory has been triggered
      * by DolphinView::setUrl() or DolphinView::reload().
      */
-    void markUrlsAsSelected(const QList<KUrl>& urls);
+    void markUrlsAsSelected(const QList<QUrl> &urls);
 
     /**
      * Marks the item indicated by \p url to be scrolled to and as the
      * current item after directory DolphinView::url() has been loaded.
      */
-    void markUrlAsCurrent(const KUrl& url);
+    void markUrlAsCurrent(const QUrl& url);
 
     /**
      * All items that match to the pattern \a pattern will get selected
@@ -217,7 +212,6 @@ public:
     QList<QByteArray> visibleRoles() const;
 
     void reload();
-    void stopLoading();
 
     /**
      * Refreshes the view to get synchronized with the settings (e.g. icons size,
@@ -304,6 +298,14 @@ public:
     void setViewPropertiesContext(const QString& context);
     QString viewPropertiesContext() const;
 
+    /**
+     * Checks if the given \a item can be opened as folder (e.g. archives).
+     * This function will also adjust the \a url (e.g. change the protocol).
+     * @return a valid and adjusted url if the item can be opened as folder,
+     * otherwise return an empty url.
+     */
+    static KUrl openItemAsFolderUrl(const KFileItem& item, const bool browseThroughArchives = true);
+
 public slots:
     /**
      * Changes the directory to \a url. If the current directory is equal to
@@ -361,6 +363,8 @@ public slots:
      */
     void pasteIntoFolder();
 
+    void stopLoading();
+
     /** Activates the view if the item list container gets focus. */
     virtual bool eventFilter(QObject* watched, QEvent* event);
 
@@ -554,7 +558,7 @@ private slots:
     void activate();
 
     void slotItemActivated(int index);
-    void slotItemsActivated(const QSet<int>& indexes);
+    void slotItemsActivated(const KItemSet& indexes);
     void slotItemMiddleClicked(int index);
     void slotItemContextMenuRequested(int index, const QPointF& pos);
     void slotViewContextMenuRequested(const QPointF& pos);
@@ -569,7 +573,7 @@ private slots:
     /*
      * Is called when new items get pasted or dropped.
      */
-    void slotAboutToCreate(const KUrl::List& urls);
+    void slotAboutToCreate(const QList<QUrl> &urls);
 
     /**
      * Emits the signal \a selectionChanged() with a small delay. This is
@@ -578,7 +582,7 @@ private slots:
      * the signal is emitted only after no selection change has been done
      * within a small delay.
      */
-    void slotSelectionChanged(const QSet<int>& current, const QSet<int>& previous);
+    void slotSelectionChanged(const KItemSet& current, const KItemSet& previous);
 
     /**
      * Is called by emitDelayedSelectionChangedSignal() and emits the
@@ -605,24 +609,21 @@ private slots:
     void updateSortFoldersFirst(bool foldersFirst);
 
     /**
-     * Updates the status bar to show hover information for the
-     * item \a item. If currently other items are selected,
-     * no hover information is shown.
-     * @see DolphinView::clearHoverInformation()
+     * Indicates in the status bar that the delete operation
+     * of the job \a job has been finished.
      */
-    void showHoverInformation(const KFileItem& item);
+    void slotDeleteFileFinished(KJob* job);
 
     /**
-     * Clears the hover information shown in the status bar.
-     * @see DolphinView::showHoverInformation().
+     * Indicates in the status bar that the trash operation
+     * of the job \a job has been finished.
      */
-    void clearHoverInformation();
+    void slotTrashFileFinished(KJob* job);
 
     /**
-     * Indicates in the status bar that the delete operation
-     * of the job \a job has been finished.
+     * Invoked when the rename job is done, for error handling.
      */
-    void slotDeleteFileFinished(KJob* job);
+    void slotRenamingResult(KJob* job);
 
     /**
      * Invoked when the file item model has started the loading
@@ -660,6 +661,7 @@ private slots:
     void slotVisibleRolesChangedByHeader(const QList<QByteArray>& current,
                                          const QList<QByteArray>& previous);
 
+    void slotRoleEditingCanceled();
     void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value);
 
     /**
@@ -667,13 +669,13 @@ private slots:
      * model indicates that the item is available, the item will
      * get selected and it is assured that the item stays visible.
      */
-    void observeCreatedItem(const KUrl& url);
+    void observeCreatedItem(const QUrl &url);
 
     /**
      * Called when a redirection happens.
      * Testcase: fish://localhost
      */
-    void slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl);
+    void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl);
 
     /**
      * Applies the state that has been restored by restoreViewState()
@@ -698,10 +700,17 @@ private:
 
     /**
      * Applies the view properties which are defined by the current URL
-     * to the DolphinView properties.
+     * to the DolphinView properties. The view properties are read from a
+     * .directory file either in the current directory, or in the
+     * share/apps/dolphin/view_properties/ subfolder of the user's .kde folder.
      */
     void applyViewProperties();
 
+    /**
+     * Applies the given view properties to the DolphinView.
+     */
+    void applyViewProperties(const ViewProperties& props);
+
     /**
      * Applies the m_mode property to the corresponding
      * itemlayout-property of the KItemListView.
@@ -763,12 +772,13 @@ private:
 
     QTimer* m_selectionChangedTimer;
 
-    KUrl m_currentItemUrl; // Used for making the view to remember the current URL after F5
+    QUrl m_currentItemUrl; // Used for making the view to remember the current URL after F5
     bool m_scrollToCurrentItem; // Used for marking we need to scroll to current item or not
     QPoint m_restoredContentsPosition;
 
-    QList<KUrl> m_selectedUrls; // Used for making the view to remember selections after F5
+    QList<QUrl> m_selectedUrls; // Used for making the view to remember selections after F5
     bool m_clearSelectionBeforeSelectingNewItems;
+    bool m_markFirstNewlySelectedItemAsCurrent;
 
     VersionControlObserver* m_versionControlObserver;