#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;
* @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();
* 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
* 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
QList<QByteArray> visibleRoles() const;
void reload();
- void stopLoading();
/**
* Refreshes the view to get synchronized with the settings (e.g. icons size,
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
*/
void pasteIntoFolder();
+ void stopLoading();
+
/** Activates the view if the item list container gets focus. */
virtual bool eventFilter(QObject* watched, QEvent* event);
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);
/*
* 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
* 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
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
void slotVisibleRolesChangedByHeader(const QList<QByteArray>& current,
const QList<QByteArray>& previous);
+ void slotRoleEditingCanceled();
void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value);
/**
* 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()
/**
* 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.
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;