/* ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- */ void CShowString::HandleViewCommandL(TInt aCommand) { switch(aCommand) { case ESSCopyClipBoard: if(iString) { CClipboard* cb = CClipboard::NewForWritingLC(CCoeEnv::Static()->FsSession()); cb->StreamDictionary().At(KClipboardUidTypePlainText); CPlainText* BPlainText = CPlainText::NewL(); CleanupStack::PushL(BPlainText); BPlainText->InsertL(0,iString->Des()); BPlainText->CopyToStoreL(cb->Store(),cb->StreamDictionary(),0,BPlainText->DocumentLength()); CleanupStack::PopAndDestroy(); // CBPlainText cb->CommitL(); CleanupStack::PopAndDestroy(); // cb } break; }; }
const QMimeData* QClipboard::mimeData(Mode mode) const { if (mode != Clipboard) return 0; QClipboardData *d = clipboardData(); bool dataExists(false); if (d) { TRAPD(err,{ RFs fs = qt_s60GetRFs(); CClipboard* cb = CClipboard::NewForReadingLC(fs); Q_ASSERT(cb); //stream for qt RStoreReadStream stream; TStreamId stid = (cb->StreamDictionary()).At(KQtCbDataStream); if (stid != 0) { stream.OpenLC(cb->Store(),stid); QT_TRYCATCH_LEAVING(readFromStreamLX(d->source(),stream)); CleanupStack::PopAndDestroy(&stream); dataExists = true; } else { //symbian clipboard RStoreReadStream symbianStream; TStreamId symbianStId = (cb->StreamDictionary()).At(KClipboardUidTypePlainText); if (symbianStId != 0) { symbianStream.OpenLC(cb->Store(), symbianStId); QT_TRYCATCH_LEAVING(readSymbianStoreLX(d->source(), cb)); CleanupStack::PopAndDestroy(&symbianStream); dataExists = true; } } CleanupStack::PopAndDestroy(cb); }); if (err != KErrNone){ qDebug()<< "clipboard is empty/err: " << err; } if (dataExists) { return d->source(); } }
const QMimeData* QClipboard::mimeData(Mode mode) const { if (mode != Clipboard) return 0; QClipboardData *d = clipboardData(); if (d) { TRAPD(err,{ RFs fs = qt_s60GetRFs(); CClipboard* cb = CClipboard::NewForReadingLC(fs); Q_ASSERT(cb); RStoreReadStream stream; TStreamId stid = (cb->StreamDictionary()).At(KQtCbDataStream); stream.OpenLC(cb->Store(),stid); QT_TRYCATCH_LEAVING(readFromStreamLX(d->source(),stream)); CleanupStack::PopAndDestroy(2,cb); return d->source(); }); if (err != KErrNone){ qDebug()<< "clipboard is empty/err: " << err; } }