- // Prefer the local path over the URL. This assures that the
- // volume space information is correct. Assuming that the URL is media:/sda1,
- // and the local path is /windows/C: For the URL the space info is related
- // to the root partition (and hence wrong) and for the local path the space
- // info is related to the windows partition (-> correct).
- const QString localPath(item->localPath());
- KUrl url;
- if (localPath.isEmpty()) {
- url = item->url();
- }
- else {
- url = localPath;
- }
-
- if (item->isDir()) {
- setUrl(url);
- }
- else if (item->isFile()) {
- // allow to browse through ZIP and tar files
- KMimeType::Ptr mime = item->mimeTypePtr();
- if (mime->is("application/zip")) {
- url.setProtocol("zip");
- setUrl(url);
- }
- else if (mime->is("application/x-tar") ||
- mime->is("application/x-tarz") ||
- mime->is("application/x-bzip-compressed-tar") ||
- mime->is("application/x-compressed-tar") ||
- mime->is("application/x-tzo")) {
- url.setProtocol("tar");
- setUrl(url);
- }
- else {
- item->run();
- }
- }
- else {
- item->run();
- }
-}
-
-void DolphinView::updateProgress(int percent)
-{
- if (m_showProgress) {
- m_statusBar->setProgress(percent);
- }
-}
-
-void DolphinView::updateItemCount()
-{
- if (m_showProgress) {
- m_statusBar->setProgressText(QString());
- m_statusBar->setProgress(100);
- m_showProgress = false;
- }
-
- KFileItemList items(m_dirLister->items());
- KFileItemList::const_iterator it = items.begin();
- const KFileItemList::const_iterator end = items.end();
-
- m_fileCount = 0;
- m_folderCount = 0;
-
- while (it != end) {
- KFileItem* item = *it;
- if (item->isDir()) {
- ++m_folderCount;
- }
- else {
- ++m_fileCount;
- }
- ++it;
- }
-
- updateStatusBar();
-
- m_blockContentsMovedSignal = false;
- QTimer::singleShot(0, this, SLOT(restoreContentsPos()));
-}
-
-void DolphinView::generatePreviews(const KFileItemList& items)
-{
- if (m_controller->showPreview()) {
- KIO::PreviewJob* job = KIO::filePreview(items, 128);
- connect(job, SIGNAL(gotPreview(const KFileItem*, const QPixmap&)),
- this, SLOT(showPreview(const KFileItem*, const QPixmap&)));
- }
-}
-
-void DolphinView::showPreview(const KFileItem* item, const QPixmap& pixmap)
-{
- Q_ASSERT(item != 0);
- const QModelIndex idx = m_dirModel->indexForItem(*item);
- if (idx.isValid() && (idx.column() == 0)) {
- const QMimeData* mimeData = QApplication::clipboard()->mimeData();
- if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(*item)) {
- KIconEffect iconEffect;
- const QPixmap cutPixmap = iconEffect.apply(pixmap, K3Icon::Desktop, K3Icon::DisabledState);
- m_dirModel->setData(idx, QIcon(cutPixmap), Qt::DecorationRole);
- }
- else {
- m_dirModel->setData(idx, QIcon(pixmap), Qt::DecorationRole);
- }
- }
-}
-
-void DolphinView::restoreContentsPos()
-{
- KUrl currentUrl = m_urlNavigator->url();
- if (!currentUrl.isEmpty()) {
- QAbstractItemView* view = itemView();
- // TODO: view->setCurrentItem(m_urlNavigator->currentFileName());
- QPoint pos = m_urlNavigator->savedPosition();
- view->horizontalScrollBar()->setValue(pos.x());
- view->verticalScrollBar()->setValue(pos.y());
- }
-}
-
-void DolphinView::showInfoMessage(const QString& msg)
-{
- m_statusBar->setMessage(msg, DolphinStatusBar::Information);
-}
-
-void DolphinView::showErrorMessage(const QString& msg)
-{
- m_statusBar->setMessage(msg, DolphinStatusBar::Error);