Drag and drop for QtWebEngine.


前の記事で、ドラッグ&ドロップできないとかいいましたが、そんなことはありませんでした。


https://github.com/rallentando/vanilla/commit/f08c18036b6eb6fe287890ef63f308d8d48d6098


Element.getClientRectsとかRange.getClientRectsとかからQRegionを生成して、
その情報からQWidget::render経由でQPixmap作って、自前で作ったQDragにそのデータつけてやれば完成。
実は一部experimentalな機能としてコードだけはあったというか、
QtWebKitのほうではそれらは動いていたのですが、
初回のドラッグのみですがとても遅くて、実用に耐えないと思っていました。
(DLLのロードかテンポラリディレクトリのクリアか、原因はいくつか考えられます。)
だったら起動時に一度それらをやってしまえばいいか、ということで実装してみたら
一応使えるレベルにはなったかな、と。


実装をjavascriptに任せているのでページ自体がビジーだったりするともたつくのはご愛嬌。