]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.h
Fix the reproducible problem after the fix:
[dolphin.git] / src / dolphinviewcontainer.h
index 6f849d57540e63c4bc744a5f90dc36c2cb6f3cbd..3cfa907c7e64a1a74034f25386f181964cedc9dd 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "dolphinview.h"
 
-#include <kparts/part.h>
 #include <kfileitem.h>
 #include <kfileitemdelegate.h>
 #include <kio/job.h>
@@ -38,7 +37,7 @@
 
 class FilterBar;
 class KUrl;
-class KDirModel;
+class DolphinModel;
 class KUrlNavigator;
 class DolphinDirLister;
 class DolphinMainWindow;
@@ -65,9 +64,7 @@ class DolphinViewContainer : public QWidget
 public:
     DolphinViewContainer(DolphinMainWindow* mainwindow,
                          QWidget *parent,
-                         const KUrl& url,
-                         DolphinView::Mode mode = DolphinView::IconsView,
-                         bool showHiddenFiles = false);
+                         const KUrl& url);
 
     virtual ~DolphinViewContainer();
 
@@ -99,9 +96,10 @@ public:
      */
     void renameSelectedItems();
 
-    KFileItem* fileItem(const QModelIndex index) const;
+    KFileItem fileItem(const QModelIndex& index) const;
 
-    DolphinStatusBar* statusBar() const;
+    inline const DolphinStatusBar* statusBar() const;
+    inline DolphinStatusBar* statusBar();
 
     /**
      * Returns true, if the URL shown by the navigation bar is editable.
@@ -109,9 +107,11 @@ public:
      */
     bool isUrlEditable() const;
 
-    inline KUrlNavigator* urlNavigator() const;
+    inline const KUrlNavigator* urlNavigator() const;
+    inline KUrlNavigator* urlNavigator();
 
-    inline DolphinView* view() const;
+    inline const DolphinView* view() const;
+    inline DolphinView* view();
 
     /** Returns true, if the filter bar is visible. */
     bool isFilterBarVisible() const;
@@ -120,7 +120,7 @@ public:
      * Return the DolphinMainWindow this View belongs to. It is guaranteed
      * that we have one.
      */
-    DolphinMainWindow* mainWindow() const ;
+    inline const DolphinMainWindow* mainWindow() const;
 
 public slots:
     /**
@@ -151,10 +151,15 @@ private slots:
     void updateItemCount();
 
     /**
-     * Shows the item information for the URL \a url inside the statusbar. If the
-     * URL is empty, the default statusbar information is shown.
+     * Handles clicking on an item
      */
-    void showItemInfo(const KUrl& url);
+    void slotItemTriggered(const KFileItem& item);
+
+    /**
+     * Shows the information for the item \a item inside the statusbar. If the
+     * item is null, the default statusbar information is shown.
+     */
+    void showItemInfo(const KFileItem& item);
 
     /** Shows the information \a msg inside the statusbar. */
     void showInfoMessage(const QString& msg);
@@ -171,12 +176,12 @@ private slots:
     void changeNameFilter(const QString& nameFilter);
 
     /**
-     * Opens the context menu on the current mouse postition.
+     * Opens the context menu on the current mouse position.
      * @item  File item context. If item is 0, the context menu
      *        should be applied to \a url.
      * @url   URL which contains \a item.
      */
-    void openContextMenu(KFileItem* item, const KUrl& url);
+    void openContextMenu(const KFileItem& item, const KUrl& url);
 
     /**
      * Saves the position of the contents to the
@@ -196,6 +201,18 @@ private slots:
      */
     void activate();
 
+    /**
+     * Restores the current view to show \a url and assures
+     * that the root URL of the view is respected.
+     */
+    void restoreView(const KUrl& url);
+
+    /**
+     * Saves the root URL of the current URL \a url
+     * into the URL navigator.
+     */
+    void saveRootUrl(const KUrl& url);
+
 private:
     /**
      * Returns the default text of the status bar, if no item is
@@ -225,19 +242,43 @@ private:
     FilterBar* m_filterBar;
     DolphinStatusBar* m_statusBar;
 
-    KDirModel* m_dirModel;
+    DolphinModel* m_dolphinModel;
     DolphinDirLister* m_dirLister;
     DolphinSortFilterProxyModel* m_proxyModel;
 };
 
-KUrlNavigator* DolphinViewContainer::urlNavigator() const
+const DolphinStatusBar* DolphinViewContainer::statusBar() const
+{
+    return m_statusBar;
+}
+
+DolphinStatusBar* DolphinViewContainer::statusBar()
+{
+    return m_statusBar;
+}
+
+const KUrlNavigator* DolphinViewContainer::urlNavigator() const
+{
+    return m_urlNavigator;
+}
+
+KUrlNavigator* DolphinViewContainer::urlNavigator()
 {
     return m_urlNavigator;
 }
 
-DolphinView* DolphinViewContainer::view() const
+const DolphinView* DolphinViewContainer::view() const
 {
     return m_view;
 }
 
+DolphinView* DolphinViewContainer::view()
+{
+    return m_view;
+}
+
+const DolphinMainWindow* DolphinViewContainer::mainWindow() const
+{
+    return m_mainWindow;
+}
 #endif // DOLPHINVIEWCONTAINER_H