#include <QBoxLayout>
#include <QTimer>
#include <QScrollBar>
-#include <QClipboard>
#include <kcolorscheme.h>
#include <kdirlister.h>
#include <kio/netaccess.h>
#include <kio/previewjob.h>
#include <kjob.h>
+#include <kmenu.h>
#include <kmimetyperesolver.h>
#include <konqmimedata.h>
#include <konq_operations.h>
#include <kurl.h>
+#include "dolphindropcontroller.h"
#include "dolphinmodel.h"
#include "dolphincolumnview.h"
#include "dolphincontroller.h"
void DolphinView::selectAll()
{
- itemView()->selectAll();
+ QAbstractItemView* view = itemView();
+ // TODO: there seems to be a bug in QAbstractItemView::selectAll(); if
+ // the Ctrl-key is pressed (e. g. for Ctrl+A), selectAll() inverts the
+ // selection instead of selecting all items. This is bypassed for KDE 4.0
+ // by invoking clearSelection() first.
+ view->clearSelection();
+ view->selectAll();
}
void DolphinView::invertSelection()
const KUrl& destPath,
const KFileItem& destItem)
{
+ Q_ASSERT(!urls.isEmpty());
const KUrl& destination = !destItem.isNull() && destItem.isDir() ?
destItem.url() : destPath;
const KUrl sourceDir = KUrl(urls.first().directory());
void DolphinView::dropUrls(const KUrl::List& urls,
const KUrl& destination)
{
- emit urlsDropped(urls, destination);
+ DolphinDropController dropController(this);
+ // forward doingOperation signal up to the mainwindow
+ connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)),
+ this, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)));
+ dropController.dropUrls(urls, destination);
}
void DolphinView::updateSorting(DolphinView::Sorting sorting)
KToggleAction* iconsView = actionCollection->add<KToggleAction>("icons");
iconsView->setText(i18nc("@action:inmenu View Mode", "Icons"));
iconsView->setShortcut(Qt::CTRL | Qt::Key_1);
- iconsView->setIcon(KIcon("fileview-icon"));
+ iconsView->setIcon(KIcon("view-list-icons"));
iconsView->setData(QVariant::fromValue(IconsView));
return iconsView;
}
KToggleAction* detailsView = actionCollection->add<KToggleAction>("details");
detailsView->setText(i18nc("@action:inmenu View Mode", "Details"));
detailsView->setShortcut(Qt::CTRL | Qt::Key_2);
- detailsView->setIcon(KIcon("fileview-detailed"));
+ detailsView->setIcon(KIcon("view-list-details"));
detailsView->setData(QVariant::fromValue(DetailsView));
return detailsView;
}
KToggleAction* columnView = actionCollection->add<KToggleAction>("columns");
columnView->setText(i18nc("@action:inmenu View Mode", "Columns"));
columnView->setShortcut(Qt::CTRL | Qt::Key_3);
- columnView->setIcon(KIcon("fileview-column"));
+ columnView->setIcon(KIcon("view-file-columns"));
columnView->setData(QVariant::fromValue(ColumnView));
return columnView;
}
}
if (ret.first) {
- const KUrl::List urls = selectedUrls();
- const uint count = urls.count();
+ const KFileItemList items = selectedItems();
+ const uint count = items.count();
if (count > 1) {
// pasting should not be allowed when more than one file
// is selected
} else if (count == 1) {
// Only one file is selected. Pasting is only allowed if this
// file is a directory.
- // TODO: this doesn't work with remote protocols; instead we need a
- // m_activeViewContainer->selectedFileItems() to get the real KFileItems
- const KFileItem fileItem(S_IFDIR,
- KFileItem::Unknown,
- urls.first(),
- true);
- ret.first = fileItem.isDir();
+ ret.first = items.first().isDir();
}
}
return ret;