+bool DolphinView::hasSelection() const
+{
+ return itemView()->selectionModel()->hasSelection();
+}
+
+void DolphinView::clearSelection()
+{
+ itemView()->selectionModel()->clear();
+}
+
+KFileItemList DolphinView::selectedItems() const
+{
+ const QAbstractItemView* view = itemView();
+
+ // Our view has a selection, we will map them back to the DirModel
+ // and then fill the KFileItemList.
+ Q_ASSERT((view != 0) && (view->selectionModel() != 0));
+
+ const QItemSelection selection = m_proxyModel->mapSelectionToSource(view->selectionModel()->selection());
+ KFileItemList itemList;
+
+ const QModelIndexList indexList = selection.indexes();
+ QModelIndexList::const_iterator end = indexList.end();
+ for (QModelIndexList::const_iterator it = indexList.begin(); it != end; ++it) {
+ Q_ASSERT((*it).isValid());
+
+ KFileItem* item = m_dirModel->itemForIndex(*it);
+ if (item != 0) {
+ itemList.append(item);
+ }
+ }
+
+ return itemList;
+}
+
+KUrl::List DolphinView::selectedUrls() const
+{
+ KUrl::List urls;
+
+ const KFileItemList list = selectedItems();
+ KFileItemList::const_iterator it = list.begin();
+ const KFileItemList::const_iterator end = list.end();
+ while (it != end) {
+ KFileItem* item = *it;
+ urls.append(item->url());
+ ++it;
+ }
+
+ return urls;
+}
+
+KFileItem* DolphinView::fileItem(const QModelIndex index) const
+{
+ const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index);
+ return m_dirModel->itemForIndex(dirModelIndex);
+}
+
+void DolphinView::setContentsPosition(int x, int y)