externCefRefPtr g_handler;externCefRefPtr g_appHandler;const QString QCefWebView::kUrlBlank = "about:blank";
QCefWebView::QCefWebView(QWidget*parent)
: QWidget(parent),
browser_state_(kNone),
need_resize_(false),
need_load_(false)
{
setAttribute(Qt::WA_NativeWindow);
setAttribute(Qt::WA_DontCreateNativeAncestors);
}
QCefWebView::~QCefWebView()
{
}void QCefWebView::load(const QUrl&url)
{
url_=url;switch(browser_state_)
{casekNone:
CreateBrowser(size());break;casekCreating://If resizeEvent()/showEvent() before you load a url, it will//CreateBrowser() as soon as possible with "about:blank".
need_load_ = true; break;default: //The browser should have been created.
BrowserLoadUrl(url);
}
}void QCefWebView::setHtml(const QString& html, const QUrl&baseUrl)
{if (GetBrowser().get())
{
QUrl url= baseUrl.isEmpty() ? this->url() : baseUrl;if (!url.isEmpty())
{
CefRefPtr frame= GetBrowser()->GetMainFrame();
frame->LoadString(CefString(html.toStdWString()),
CefString(url.toString().toStdWString()));
}
}
}
QUrl QCefWebView::url()const{if (GetBrowser().get())
{
CefString url= GetBrowser()->GetMainFrame()-