BrowserWidget* Core::NewURL (const QUrl& url, bool raise) { if (!Initialized_) return 0; BrowserWidget *widget = new BrowserWidget (); widget->InitShortcuts (); widget->SetUnclosers (Unclosers_); Widgets_.push_back (widget); QString tabTitle = "Poshuku"; if (url.host ().size ()) tabTitle = url.host (); emit addNewTab (tabTitle, widget); ConnectSignals (widget); if (!url.isEmpty ()) widget->SetURL (url); if (raise) emit raiseTab (widget); emit hookTabAdded (Util::DefaultHookProxy_ptr (new Util::DefaultHookProxy), widget, widget->getWebView (), url); return widget; }
BrowserWidget* Core::NewURL (const QUrl& url, bool raise, const QList<QPair<QByteArray, QVariant>>& props) { if (!Initialized_) return 0; BrowserWidget *widget = new BrowserWidget (); widget->InitShortcuts (); Widgets_.push_back (widget); Q_FOREACH (const auto& pair, props) widget->setProperty (pair.first, pair.second); QString tabTitle = "Poshuku"; if (url.host ().size ()) tabTitle = url.host (); emit addNewTab (tabTitle, widget); ConnectSignals (widget); if (!url.isEmpty ()) widget->SetURL (url); if (raise) emit raiseTab (widget); emit hookTabAdded (Util::DefaultHookProxy_ptr (new Util::DefaultHookProxy), widget, widget->getWebView (), url); return widget; }
IWebWidget* Core::GetWidget () { if (!Initialized_) return 0; BrowserWidget *widget = new BrowserWidget (); widget->Deown (); widget->InitShortcuts (); SetupConnections (widget); return widget; }
QWebPage* CustomWebPage::createWindow (QWebPage::WebWindowType type) { Util::DefaultHookProxy_ptr proxy (new Util::DefaultHookProxy); emit hookCreateWindow (proxy, this, type); if (proxy->IsCancelled ()) return qobject_cast<QWebPage*> (proxy->GetReturnValue ().value<QObject*> ()); switch (type) { case QWebPage::WebBrowserWindow: return Core::Instance ().NewURL (QUrl ())->GetView ()->page (); case QWebPage::WebModalDialog: { BrowserWidget *widget = new BrowserWidget (view ()); widget->InitShortcuts (); widget->setWindowFlags (Qt::Dialog); widget->setAttribute (Qt::WA_DeleteOnClose); widget->setWindowModality (Qt::ApplicationModal); connect (widget, SIGNAL (gotEntity (const LeechCraft::Entity&)), &Core::Instance (), SIGNAL (gotEntity (const LeechCraft::Entity&))); connect (widget, SIGNAL (titleChanged (const QString&)), widget, SLOT (setWindowTitle (const QString&))); widget->show (); return widget->GetView ()->page (); } default: qWarning () << Q_FUNC_INFO << "unknown type" << type; return 0; } }