25#include <QApplication>
34 return QApplication::type() != QApplication::Tty;
39 CopyJob* copyJob = qobject_cast<CopyJob*>(job);
40 FileCopyJob* fileCopyJob = qobject_cast<FileCopyJob*>(job);
42 if (!copyJob && !fileCopyJob) {
54 }
else if (fileCopyJob) {
55 newUrls << fileCopyJob->
destUrl();
58 QMimeData* mime =
new QMimeData();
60 QApplication::clipboard()->setMimeData(mime);
65 CopyJob* copyJob = qobject_cast<CopyJob*>(job);
66 FileCopyJob* fileCopyJob = qobject_cast<FileCopyJob*>(job);
68 if (!copyJob && !fileCopyJob) {
72 QClipboard* clipboard = QApplication::clipboard();
78 const int index = clipboardUrls.indexOf(url);
82 clipboardUrls.replace(index, dUrl);
86 }
else if (fileCopyJob) {
87 const int index = clipboardUrls.indexOf(fileCopyJob->
srcUrl());
89 clipboardUrls.replace(index, fileCopyJob->
destUrl());
95 QMimeData* mime =
new QMimeData();
97 clipboard->setMimeData(mime);
103 SimpleJob* simpleJob = qobject_cast<SimpleJob*>(job);
104 DeleteJob* deleteJob = qobject_cast<DeleteJob*>(job);
106 if (!simpleJob && !deleteJob) {
112 deletedUrls << simpleJob->
url();
113 }
else if (deleteJob) {
114 deletedUrls << deleteJob->
urls();
117 if (deletedUrls.isEmpty()) {
121 QClipboard* clipboard = QApplication::clipboard();
123 quint32 removedCount = 0;
125 Q_FOREACH(
const KUrl& url, deletedUrls) {
126 removedCount += clipboardUrls.removeAll(url);
129 if (removedCount > 0) {
130 QMimeData* mime =
new QMimeData();
131 if (!clipboardUrls.isEmpty()) {
134 clipboard->setMimeData(mime);
138void ClipboardUpdater::slotResult(
KJob* job)
165 return new ClipboardUpdater(job, mode);
177 QClipboard* clipboard = QApplication::clipboard();
178 if (clipboard->mimeData()->hasUrls()) {
180 const int index = clipboardUrls.indexOf(srcUrl);
182 clipboardUrls.replace(index, destUrl);
183 QMimeData* mime =
new QMimeData();
185 clipboard->setMimeData(mime);
190ClipboardUpdater::ClipboardUpdater(
Job* job, Mode mode)
195 connect(job, SIGNAL(result(
KJob*)),
this, SLOT(slotResult(
KJob*)));
static ClipboardUpdater * create(Job *job, Mode mode)
Returns an instance of clipboard updater if QApplication::type() does not return a tty.
void setMode(Mode m)
Sets the mode.
static void update(const KUrl &srcUrl, const KUrl &destUrl)
Convenience function that allows renaming of a single url in the clipboard.
CopyJob is used to move, copy or symlink files and directories.
KUrl::List srcUrls() const
Returns the list of source URLs.
KUrl destUrl() const
Returns the destination URL.
A more complex Job to delete files and directories.
KUrl::List urls() const
Returns the list of URLs.
The FileCopyJob copies data from one place to another.
KUrl destUrl() const
Returns the destination URL.
KUrl srcUrl() const
Returns the source URL.
The base class for all jobs.
A simple job (one url and one command).
const KUrl & url() const
Returns the SimpleJob's URL.
void populateMimeData(const KUrl::List &mostLocalUrls, QMimeData *mimeData, const KUrl::MetaDataMap &metaData=MetaDataMap(), MimeDataFlags flags=DefaultMimeDataFlags) const
static KUrl::List fromMimeData(const QMimeData *mimeData, DecodeOptions decodeOptions, KUrl::MetaDataMap *metaData=0)
QString fileName(const DirectoryOptions &options=IgnoreTrailingSlash) const
void addPath(const QString &txt)
static bool canUseClipboard()
static void updateUrlsInClipboard(KJob *job)
static void overwriteUrlsInClipboard(KJob *job)
static void removeUrlsFromClipboard(KJob *job)
A namespace for KIO globals.