#include "clipboardcopy.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void clipboardcopy::copyClipboard() { const QClipboard *clipboard = QApplication::clipboard(); const QMimeData *mimeData = clipboard->mimeData(); if(mimeData->hasImage()) { QPixmap map = qvariant_cast(mimeData->imageData()); } else if(mimeData->hasText()) { #ifdef Q_OS_WIN QUrl fileUrl(mimeData->text()); QFileInfo fileInfo(fileUrl.toLocalFile()); #else QFileInfo fileInfo(mimeData->text()); #endif if(fileInfo.exists() && fileInfo.isReadable() && fileInfo.isFile()) { QMimeDatabase db; QMimeType mimeType = db.mimeTypeForFile(fileInfo); QString type = mimeType.name(); QFile file(fileInfo.absoluteFilePath()); UploaderSingleton::inst().upload(file); } else if (fileInfo.exists() && fileInfo.isReadable() && fileInfo.isDir()) { notifications::notify("KShare - Directory is not uploadable", fileInfo.absolutePath(), QSystemTrayIcon::Warning); notifications::playSound(notifications::Sound::ERROR); } else { QTemporaryFile tmpFile; tmpFile.setAutoRemove(true); if(tmpFile.open()) { QTextStream stream(&tmpFile); stream.setCodec("UTF-8"); stream << mimeData->text(); stream.flush(); tmpFile.seek(0); UploaderSingleton::inst().upload(tmpFile); } else { logger::warn("Can not open tmp file"); notifications::playSound(notifications::Sound::ERROR); } } } else { notifications::notify("Unsupported File Format", "Can not upload clipboard", QSystemTrayIcon::Warning); notifications::playSound(notifications::Sound::ERROR); } }