Skip to content
  • caio.oliveira@openbossa.org's avatar
    [Qt] [WK2] Implement popup menus in QDesktopWebView using QComboBox · d836f3b9
    caio.oliveira@openbossa.org authored
    https://bugs.webkit.org/show_bug.cgi?id=67938
    
    Reviewed by Andreas Kling.
    
    Implement a WebPopupMenuProxy that uses QtWebComboBox (a QComboBox subclass we
    have for WK1). Then use this WebPopupMenuProxy in QDesktopWebView. The implementation
    explicitly avoids running a nested mainloop.
    
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::showPopupMenu):
    Since we don't run a nested mainloop, we need to keep the client pointer to call
    valueChangedForPopupMenu().
    
    * UIProcess/qt/WebPopupMenuProxyQtDesktop.cpp: Added.
    (WebKit::WebPopupMenuProxyQtDesktop::WebPopupMenuProxyQtDesktop):
    (WebKit::WebPopupMenuProxyQtDesktop::~WebPopupMenuProxyQtDesktop):
    (WebKit::WebPopupMenuProxyQtDesktop::showPopupMenu):
    (WebKit::WebPopupMenuProxyQtDesktop::hidePopupMenu):
    (WebKit::WebPopupMenuProxyQtDesktop::setSelectedIndex):
    (WebKit::WebPopupMenuProxyQtDesktop::onPopupMenuHidden):
    (WebKit::WebPopupMenuProxyQtDesktop::populate):
    * UIProcess/qt/WebPopupMenuProxyQtDesktop.h: Added.
    (WebKit::WebPopupMenuProxyQtDesktop::create):
    * UIProcess/qt/qdesktopwebpageproxy.cpp:
    (QDesktopWebPageProxy::createPopupMenuProxy):
    * UIProcess/qt/qdesktopwebpageproxy.h:
    * WebKit2.pro:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@95436 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    d836f3b9