hoffmannrobert added a comment.

  In D12373#253569 <https://phabricator.kde.org/D12373#253569>, @davidedmundson 
wrote:
  
  > mimeData is key value pairs, you can have many pieces of mimeData.
  >
  > So we have text/plain     with the password as before
  >  and x-kde-passwordManagerHint   data   "secret"
  >
  > We still use the text/plain mimeData for context, but klipper ignores 
entries where that other mimeData is present.
  
  
  Thanks, I wasn't aware of this.
  
  It works well for mode QClipboard::Clipboard. In Klipper::applyClipChanges() 
these entries can be sorted out, so they aren't inserted into history.
  
  But it doesn't work for QClipboard::Selection. As soon as there is some other 
mimeData present with unsupported type, the selection stays empty with the 
warning 'QClipboard: Cannot transfer data, no data available'.
  
  This is run in Keepassx:
  
    QClipboard* clipboard = QApplication::clipboard();
    QMimeData* mimeData = new QMimeData();
    const QString secretHint = "secret";
    QByteArray ba = secretHint.toUtf8();
    mimeData->setText(text);
    mimeData->setData("x-kde-passwordManagerHint", ba);
    clipboard->setMimeData(mimeData, QClipboard::Clipboard);   // this works
    
    if (clipboard->supportsSelection()) {
        clipboard->setMimeData(mimeData, QClipboard::Selection);  // this not, 
warning: QClipboard: Cannot transfer data, no data available
    }

REPOSITORY
  R120 Plasma Workspace

REVISION DETAIL
  https://phabricator.kde.org/D12373

To: hoffmannrobert
Cc: graesslin, broulik, davidedmundson, plasma-devel, ragreen, Pitel, ZrenBot, 
lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart

Reply via email to