#include <kio/previewjob.h>
#include <kjob.h>
#include <kmenu.h>
+#include <kmessagebox.h>
#include <kmimetyperesolver.h>
#include <konq_operations.h>
#include <konqmimedata.h>
void DolphinView::showHoverInformation(const KFileItem& item)
{
- if (hasSelection() || !m_active) {
- return;
- }
-
emit requestItemInfo(item);
}
void DolphinView::clearHoverInformation()
{
- if (m_active) {
- emit requestItemInfo(KFileItem());
- }
+ emit requestItemInfo(KFileItem());
}
void DolphinView::createView()
}
}
}
+ } else if (DolphinSettings::instance().generalSettings()->renameInline()) {
+ Q_ASSERT(items.count() == 1);
+
+ if (isColumnViewActive()) {
+ m_columnView->editItem(items.first());
+ } else {
+ const QModelIndex dirIndex = m_dolphinModel->indexForItem(items.first());
+ const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex);
+ itemView()->edit(proxyIndex);
+ }
} else {
- // Only one item has been selected for renaming. Use the custom
- // renaming mechanism from the views.
Q_ASSERT(items.count() == 1);
- // TODO: Think about using KFileItemDelegate as soon as it supports editing.
- // Currently the RenameDialog is used, but I'm not sure whether inline renaming
- // is a benefit for the user at all -> let's wait for some input first...
RenameDialog dialog(this, items);
if (dialog.exec() == QDialog::Rejected) {
return;
const KUrl::List sourceUrls = KUrl::List::fromMimeData(mimeData);
- // per default the pasting is done into the current Url of the view
- KUrl destUrl(url());
+ // per default the pasting is done into the current URL of the view
+ KUrl destUrl = url();
// check whether the pasting should be done into a selected directory
const KUrl::List selectedUrls = this->selectedUrls();
// only one item is selected which is a directory, hence paste
// into this directory
destUrl = selectedUrls.first();
+ if (sourceUrls.contains(destUrl)) {
+ const QString text = i18nc("@info", "The folder <filename>%1</filename> is pasted into itself. Is this intended?", fileItem.name());
+ int result = KMessageBox::questionYesNo(window(),
+ text,
+ i18nc("@title:window", "Paste into Folder"),
+ KGuiItem(i18nc("@action:button", "Paste"), "dialog-ok"),
+ KGuiItem(i18nc("@action:button", "Cancel"), "dialog-cancel"));
+ if (result == KMessageBox::No) {
+ return;
+ }
+ }
}
}
KUrl::List urls = KUrl::List::fromMimeData(mimeData);
if (!urls.isEmpty()) {
ret.first = true;
- ret.second = i18ncp("@action:inmenu", "Paste One File", "Paste %1 Files", urls.count());
+ if (urls.count() == 1) {
+ const KFileItem item(KFileItem::Unknown, KFileItem::Unknown, urls.first(), true);
+ ret.second = item.isDir() ? i18nc("@action:inmenu", "Paste One Folder") :
+ i18nc("@action:inmenu", "Paste One File");
+
+ } else {
+ ret.second = i18ncp("@action:inmenu", "Paste One Item", "Paste %1 Items", urls.count());
+ }
} else {
ret.first = false;
ret.second = i18nc("@action:inmenu", "Paste");