+void DolphinView::openContextMenu(const QPoint& pos)
+{
+ KFileItem* item = 0;
+
+ const QModelIndex index = itemView()->indexAt(pos);
+ if (isValidNameIndex(index)) {
+ item = fileItem(index);
+ }
+
+ DolphinContextMenu contextMenu(m_mainWindow, item, url());
+ contextMenu.open();
+}
+
+void DolphinView::dropUrls(const KUrl::List& urls,
+ const QModelIndex& index,
+ QWidget* source)
+{
+ KFileItem* directory = 0;
+ if (isValidNameIndex(index)) {
+ KFileItem* item = fileItem(index);
+ Q_ASSERT(item != 0);
+ if (item->isDir()) {
+ // the URLs are dropped above a directory
+ directory = item;
+ }
+ }
+
+ if ((directory == 0) && (source == itemView())) {
+ // The dropping is done into the same viewport where
+ // the dragging has been started. Just ignore this...
+ return;
+ }
+
+ const KUrl& destination = (directory == 0) ? url() :
+ directory->url();
+ dropUrls(urls, destination);
+}
+
+void DolphinView::dropUrls(const KUrl::List& urls,
+ const KUrl& destination)
+{
+ m_mainWindow->dropUrls(urls, destination);
+}
+
+void DolphinView::updateSorting(DolphinView::Sorting sorting)
+{
+ ViewProperties props(url());
+ props.setSorting(sorting);
+
+ m_proxyModel->setSorting(sorting);
+
+ emit sortingChanged(sorting);
+}
+
+void DolphinView::updateSortOrder(Qt::SortOrder order)
+{
+ ViewProperties props(url());
+ props.setSortOrder(order);
+
+ m_proxyModel->setSortOrder(order);
+
+ emit sortOrderChanged(order);
+}
+
+void DolphinView::emitContentsMoved()
+{
+ if (!m_blockContentsMovedSignal) {
+ emit contentsMoved(contentsX(), contentsY());
+ }
+}
+
+void DolphinView::updateActivationState()
+{
+ m_urlNavigator->setActive(isActive());
+ if(isActive()) {
+ emit urlChanged(url());
+ emit selectionChanged(selectedItems());
+ }
+}
+
+void DolphinView::updateCutItems()
+{
+ // restore the icons of all previously selected items to the
+ // original state...
+ QList<CutItem>::const_iterator it = m_cutItemsCache.begin();
+ QList<CutItem>::const_iterator end = m_cutItemsCache.end();
+ while (it != end) {
+ const QModelIndex index = m_dirModel->indexForUrl((*it).url);
+ if (index.isValid()) {
+ m_dirModel->setData(index, QIcon((*it).pixmap), Qt::DecorationRole);
+ }
+ ++it;
+ }
+ m_cutItemsCache.clear();
+
+ // ... and apply an item effect to all currently cut items
+ applyCutItemEffect();
+}
+