// apps. The "application/x-kde-cutselection" mimetype should be used instead, see KonqMimeData
// in libkonq
m_clipboardContainsCutData = true;
- /* KDE4-TODO: Q3DragObject* data = new KUrlDrag(m_activeView->selectedUrls(),
- widget());
- QApplication::clipboard()->setData(data);*/
+
+ QMimeData* mimeData = new QMimeData();
+ const KUrl::List selectedUrls = m_activeView->selectedUrls();
+ selectedUrls.populateMimeData(mimeData);
+
+ QApplication::clipboard()->setMimeData(mimeData);
}
void DolphinMainWindow::copy()
{
m_clipboardContainsCutData = false;
- /* KDE4-TODO:
- Q3DragObject* data = new KUrlDrag(m_activeView->selectedUrls(),
- widget());
- QApplication::clipboard()->setData(data);*/
+
+ QMimeData* mimeData = new QMimeData();
+ const KUrl::List selectedUrls = m_activeView->selectedUrls();
+ selectedUrls.populateMimeData(mimeData);
+
+ QApplication::clipboard()->setMimeData(mimeData);
}
void DolphinMainWindow::paste()
{
- /* KDE4-TODO: - see KonqOperations::doPaste
QClipboard* clipboard = QApplication::clipboard();
- QMimeSource* data = clipboard->data();
- if (!KUrlDrag::canDecode(data)) {
- return;
- }
+ const QMimeData* mimeData = clipboard->mimeData();
clearStatusBar();
- KUrl::List sourceUrls;
- KUrlDrag::decode(data, sourceUrls);
+ const KUrl::List sourceUrls = KUrl::List::fromMimeData(mimeData);
// per default the pasting is done into the current Url of the view
KUrl destUrl(m_activeView->url());
}
}
-
- updateViewProperties(sourceUrls);
+ // TODO #1: use libkonq commands (see doPaste() implementation
+ // KIO::Job* job = KIO::pasteClipboard(destUrl, this, false);
+ // ...
+ // TODO #2: this boolean doesn't work between instances of dolphin or with konqueror or with other
+ // apps. The "application/x-kde-cutselection" mimetype should be used instead, see KonqMimeData
+ // in libkonq
if (m_clipboardContainsCutData) {
moveUrls(sourceUrls, destUrl);
m_clipboardContainsCutData = false;
}
else {
copyUrls(sourceUrls, destUrl);
- }*/
+ }
}
void DolphinMainWindow::updatePasteAction()
QString text(i18n("Paste"));
QClipboard* clipboard = QApplication::clipboard();
- const QMimeData* data = clipboard->mimeData();
- /* KDE4-TODO:
- if (KUrlDrag::canDecode(data)) {
+ const QMimeData* mimeData = clipboard->mimeData();
+
+ KUrl::List urls = KUrl::List::fromMimeData(mimeData);
+ if (!urls.isEmpty()) {
pasteAction->setEnabled(true);
- KUrl::List urls;
- KUrlDrag::decode(data, urls);
const int count = urls.count();
if (count == 1) {
pasteAction->setText(i18n("Paste 1 File"));
pasteAction->setText(i18n("Paste %1 Files").arg(count));
}
}
- else {*/
+ else {
pasteAction->setEnabled(false);
pasteAction->setText(i18n("Paste"));
- //}
+ }
if (pasteAction->isEnabled()) {
KUrl::List urls = m_activeView->selectedUrls();
}
void DolphinMainWindow::addPendingUndoJob(KIO::Job* job,
- DolphinCommand::Type commandType,
- const KUrl::List& source,
- const KUrl& dest)
+ DolphinCommand::Type commandType,
+ const KUrl::List& source,
+ const KUrl& dest)
{
connect(job, SIGNAL(result(KJob*)),
this, SLOT(addUndoOperation(KJob*)));
{
++m_historyIndex;
+ QList<DolphinCommand>::iterator it = m_history.begin();
+ it += m_historyIndex;
if (m_recordMacro) {
DolphinCommand macroCommand = command;
macroCommand.m_macroIndex = m_macroCounter;
- m_history.insert(m_history.at(m_historyIndex), macroCommand);
+ m_history.insert(it, macroCommand);
}
else {
- m_history.insert(m_history.at(m_historyIndex), command);
+ m_history.insert(it, command);
}
emit undoAvailable(true);
calcStepsCount(macroCount, progressCount);
/*
- * KDE4, ### TODO Only here to avoid possible crash
+ * KDE4, ### TODO Only here to avoid possible crash
*/
ProgressIndicator progressIndicator(mainWindow, i18n("Executing undo operation..."),
i18n("Executed undo operation."),