MCPcopy Create free account
hub / github.com/KangLin/RabbitRemoteControl / retrieveData

Method retrieveData

Plugins/FreeRDP/Client/ClipboardMimeData.cpp:257–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255
256#else
257QVariant CClipboardMimeData::retrieveData(const QString &mimeType,
258 QVariant::Type preferredType) const
259#endif
260{
261 //*
262 qDebug(log) << "CClipboardMimeData::retrieveData:" << GetId() << mimeType
263 << "Variant:" << m_Variant; //*/
264 if(MIME_TYPE_RABBITREMOTECONTROL_PLUGINS_FREERDP == mimeType)
265 return GetId();
266
267 QString mt = mimeType;
268 if(isImage(mt)) mt = "image/bmp";
269 if(m_indexString.find(mt) == m_indexString.end())
270 return QVariant();
271
272 _FORMAT value;
273 auto lstValue = m_indexString.values(mt);
274 if(lstValue.isEmpty())
275 return QVariant();
276 value = *lstValue.crbegin();
277 //*
278 qDebug(log) << "CClipboardMimeData::retrieveData: format id:" << value.id
279 << "name:" << value.name << "mimeData:" << mimeType; //*/
280
281 if(m_Variant.isValid() && !m_Variant.isNull()) {
282 if(isUrls(mimeType))
283 {
284 QByteArray data = m_Variant.toByteArray();
285 emit sigRequestFileFromServer(mimeType, value.name, data.data(), data.size());
286 }
287 return m_Variant;
288 }
289 if(!m_pContext) return QVariant();
290
291 emit sigSendDataRequest(m_pContext, value.id);
292
293 // add wait response event
294 QEventLoop loop;
295 connect(this, SIGNAL(sigContinue()), &loop, SLOT(quit()), Qt::DirectConnection);
296 loop.exec();
297 qDebug(log) << "CClipboardMimeData::retrieveData end";
298 // Objecte destruct
299 if(m_bExit)
300 return QVariant();
301
302 if(isUrls(mimeType) && !m_Variant.isNull())
303 {
304 QByteArray data = m_Variant.toByteArray();
305 emit sigRequestFileFromServer(mimeType, value.name, data.data(), data.size());
306 }
307 return m_Variant;
308}
309
310//! if(pData == nullptr && nLen == 0) is Notify clipboard program has exited
311void CClipboardMimeData::slotServerFormatData(const BYTE* pData, UINT32 nLen,

Callers

nothing calls this directly

Calls 3

isValidMethod · 0.80
isEmptyMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected