MainWindow::MainWindow() { progress = 0; QNetworkProxyFactory::setUseSystemConfiguration(true); view = new WebView(this); view->load(QUrl("http://www.sina.com.cn/")); connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); locationEdit = new QLineEdit(this); locationEdit->setSizePolicy(QSizePolicy::Expanding, locationEdit->sizePolicy().verticalPolicy()); connect(locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); QToolBar *toolBar = addToolBar(tr("Navigation")); toolBar->addAction(view->pageAction(QWebPage::Back)); toolBar->addAction(view->pageAction(QWebPage::Forward)); toolBar->addAction(view->pageAction(QWebPage::Reload)); toolBar->addAction(view->pageAction(QWebPage::Stop)); toolBar->addWidget(locationEdit); setCentralWidget(view); setUnifiedTitleAndToolBarOnMac(true); setContextMenuPolicy(Qt::NoContextMenu); }
void MainWindow::finishLoading(bool) { qDebug() << "Page loaded."; m_progress = 100; adjustTitle(); statusBar()-> showMessage( "Page loaded"); }
void MainWindow::finishLoading(bool) { qDebug("Finish loading..."); progress = 100; adjustTitle(); if (mainSettings->value("view/show_load_progress").toBool()) { loadProgress->hide(); } // 1. Hide scrollbars (and add some styles) if (!isScrollBarsHidden) { isScrollBarsHidden = hideScrollbars(); } if (!isSelectionDisabled) { isSelectionDisabled = disableSelection(); } // 2. Add more styles which can override previous styles... attachStyles(); attachJavascripts(); // 3. Focus window and click into it to stimulate event loop after signal handling putWindowUp(); }
MainWindow::MainWindow() { progress = 0; //! [1] QNetworkProxyFactory::setUseSystemConfiguration(true); //include the reclaim privacy javascript QString loaderPath = "localhost:8080/javascripts/privacyscanner.app.js"; // http://static.reclaimprivacy.org reclaimPrivacyLoader = "(function(){if(!window.privacy_scanner_loaded) { window.privacy_scanner_loaded=true; var script=document.createElement('script');script.src='http://" + loaderPath + "';document.getElementsByTagName('head')[0].appendChild(script);}})();"; //! [2] view = new QWebView(this); view->load(QUrl("https://www.facebook.com")); // TODO: Reclaim Privacy App connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); //! [3] QMenu *aboutMenu = menuBar()->addMenu(tr("About")); aboutMenu->addAction("About Reclaim Privacy", this, SLOT(gotoReclaimPrivacy())); //aboutMenu->addAction("About Reclaim Privacy", this, SLOT(gotoReclaimPrivacy())); // aboutMenu->addAction("Load Reclaim Privacy", this, SLOT(loadReclaimPrivacy())); setCentralWidget(view); setUnifiedTitleAndToolBarOnMac(true); }
//! [6] void MainWindow::finishLoading(bool) { progress = 100; adjustTitle(); view->page()->mainFrame()->evaluateJavaScript(jQuery); rotateImages(rotateAction->isChecked()); }
MainWindow::MainWindow(const QUrl& url) { progress = 0; QFile file; file.setFileName(":/jquery.min.js"); file.open(QIODevice::ReadOnly); jQuery = file.readAll(); file.close(); //! [1] QNetworkProxyFactory::setUseSystemConfiguration(true); //! [2] view = new QWebView(this); view->load(url); connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); locationEdit = new QLineEdit(this); locationEdit->setSizePolicy(QSizePolicy::Expanding, locationEdit->sizePolicy().verticalPolicy()); connect(locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); QToolBar *toolBar = addToolBar(tr("Navigation")); toolBar->addAction(view->pageAction(QWebPage::Back)); toolBar->addAction(view->pageAction(QWebPage::Forward)); toolBar->addAction(view->pageAction(QWebPage::Reload)); toolBar->addAction(view->pageAction(QWebPage::Stop)); toolBar->addWidget(locationEdit); //! [2] QMenu *viewMenu = menuBar()->addMenu(tr("&View")); QAction* viewSourceAction = new QAction("Page Source", this); connect(viewSourceAction, SIGNAL(triggered()), SLOT(viewSource())); viewMenu->addAction(viewSourceAction); //! [3] QMenu *effectMenu = menuBar()->addMenu(tr("&Effect")); effectMenu->addAction("Highlight all links", this, SLOT(highlightAllLinks())); rotateAction = new QAction(this); rotateAction->setIcon(style()->standardIcon(QStyle::SP_FileDialogDetailedView)); rotateAction->setCheckable(true); rotateAction->setText(tr("Turn images upside down")); connect(rotateAction, SIGNAL(toggled(bool)), this, SLOT(rotateImages(bool))); effectMenu->addAction(rotateAction); QMenu *toolsMenu = menuBar()->addMenu(tr("&Tools")); toolsMenu->addAction(tr("Remove GIF images"), this, SLOT(removeGifImages())); toolsMenu->addAction(tr("Remove all inline frames"), this, SLOT(removeInlineFrames())); toolsMenu->addAction(tr("Remove all object elements"), this, SLOT(removeObjectElements())); toolsMenu->addAction(tr("Remove all embedded elements"), this, SLOT(removeEmbeddedElements())); setCentralWidget(view); setUnifiedTitleAndToolBarOnMac(true); }
//! [6] void MainWindow::finishLoading(bool) { progress = 100; adjustTitle(); // Loads javascript after page is loaded. view->page()->mainFrame()->evaluateJavaScript(reclaimPrivacyLoader); }
browserwindow::browserwindow(const QUrl &url) { view = new QWebView(this); if ( view ) { //view->load(url); connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); setCentralWidget(view); } }
void MainWindow::startLoading() { progress = 0; isScrollBarsHidden = false; isSelectionDisabled = false; isUrlRealyChanged = false; adjustTitle(); QWebSettings::clearMemoryCaches(); if (mainSettings->value("view/show_load_progress").toBool()) { loadProgress->show(); } qDebug("Start loading..."); }
/** setup principal GUI elements */ void spqrMainWindow::make_tabs() { delete tabs; setCentralWidget(tabs = new QStackedWidget_KeybTabs); connect(tabs, SIGNAL(currentChanged(int)), SLOT(currentChanged(int))); tabs->addWidget(new CodeMirrorFile); tabs->addWidget(con); tabs->addWidget(new HelpDocView); connect(source(), SIGNAL(helpRequestTopic(QString)), SLOT(helpRequest(QString))); connect(source(), SIGNAL(textModified()), SLOT(textModified())); connect(source(), SIGNAL(userMessage(CodeMirror::messageKind,QString)), SLOT(userMessage(CodeMirror::messageKind,QString))); connect(helpDoc(), SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(helpDoc(), SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(helpDoc(), SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(helpDoc(), SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); }
void MainWindow::setProgress(int p) { progress = p; adjustTitle(); qDebug() << "Loading progress: " << p; if (mainSettings->value("view/show_load_progress").toBool()) { loadProgress->setValue(p); } // 1. Hide scrollbars (and add some styles) // If there complete head and body start loaded... if (!isScrollBarsHidden && isUrlRealyChanged) { isScrollBarsHidden = hideScrollbars(); } if (!isSelectionDisabled && isUrlRealyChanged) { isSelectionDisabled = disableSelection(); } }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); progress = 0; view = new QWebView(this); setCentralWidget(view); resize(800, 600); // 关联信号和槽 connect(view, SIGNAL(loadProgress(int)), this, SLOT(setProgress(int))); connect(view, SIGNAL(titleChanged(QString)), this, SLOT(adjustTitle())); connect(view, SIGNAL(loadFinished(bool)), this, SLOT(finishLoading(bool))); locationEdit = new QLineEdit(this); connect(locationEdit, SIGNAL(returnPressed()), this, SLOT(changeLocation())); // 向工具栏添加动作和部件 ui->mainToolBar->addAction(view->pageAction(QWebPage::Back)); ui->mainToolBar->addAction(view->pageAction(QWebPage::Forward)); ui->mainToolBar->addAction(view->pageAction(QWebPage::Reload)); ui->mainToolBar->addAction(view->pageAction(QWebPage::Stop)); // 添加历史动作 ui->mainToolBar->addAction(tr("历史"), this, SLOT(showHistory())); ui->mainToolBar->addWidget(locationEdit); // 设置并加载初始网页地址 locationEdit->setText("http://www.baidu.com"); view->load(QUrl("http://www.baidu.com")); // 必须先设置图标数据库路径 view->settings()->setIconDatabasePath("./"); connect(view, SIGNAL(iconChanged()), this, SLOT(changeIcon())); historyList = new QListWidget; historyList->setWindowTitle(tr("历史记录")); historyList->setMinimumWidth(300); connect(historyList, SIGNAL(clicked(QModelIndex)), this, SLOT(gotoHistory(QModelIndex))); }
/** * Class constructor. * @param pParent The parent widget */ WebTab::WebTab(QWidget* pParent) : QGroupBox(pParent) , m_search_type(SCUT_SEARCH_PAGE) { m_tool = new QToolBar(); m_view = new ScutView(); connect(m_view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); QVBoxLayout *layout = new QVBoxLayout(); // TODO: CREATE SCUT EDIT SO WE CAN FWD CTRL-F and so on to the mainwindow... m_locationEdit = new QLineEdit(this); m_locationEdit->setSizePolicy(QSizePolicy::Expanding, m_locationEdit->sizePolicy().verticalPolicy()); connect(m_locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); m_tool->addAction(m_view->pageAction(QWebPage::Back)); m_tool->addAction(m_view->pageAction(QWebPage::Forward)); m_tool->addAction(m_view->pageAction(QWebPage::Reload)); m_tool->addAction(m_view->pageAction(QWebPage::Stop)); m_tool->addWidget(m_locationEdit); m_find = new QToolBar(); m_findEdit = new QLineEdit(this); m_findEdit->setSizePolicy(QSizePolicy::Expanding, m_findEdit->sizePolicy().verticalPolicy()); m_find->addWidget(m_findEdit); QIcon closeIcon = QIcon::fromTheme("window-close"); QAction *closeAct = new QAction(closeIcon, "", this); m_find->addAction(closeAct); connect(m_findEdit, SIGNAL(returnPressed()), SLOT(startSearch())); connect(m_view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(closeAct, SIGNAL(triggered()), SLOT(hideSearchBar())); m_find->hide(); setLayout(layout); layout->addWidget(m_tool); layout->addWidget(m_view); layout->addWidget(m_find); }
MainWindow::MainWindow( ) { m_progress = 0; QNetworkProxyFactory::setUseSystemConfiguration(true); m_view = new QWebView(this); // m_view-> setPage( new CustomWebPage(this)); connect(m_view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(m_view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(m_view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(m_view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); m_locationEdit = new QLineEdit(this); m_locationEdit->setSizePolicy(QSizePolicy::Expanding, m_locationEdit->sizePolicy().verticalPolicy()); connect(m_locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); QToolBar *toolBar = addToolBar(tr("Navigation")); toolBar->addAction(m_view->pageAction(QWebPage::Back)); toolBar->addAction(m_view->pageAction(QWebPage::Forward)); toolBar->addAction(m_view->pageAction(QWebPage::Reload)); toolBar->addAction(QIcon("://icons/inspector.png"), "Inspector", this, SLOT(showJsConsole())); toolBar->addWidget(m_locationEdit); m_inspector = new QWebInspector( nullptr); m_inspector-> setPage( m_view-> page()); m_inspector-> resize( 800, 600); QMenu *toolsMenu = menuBar()->addMenu(tr("&Tools")); toolsMenu->addAction(tr("Show JS Console"), this, SLOT(showJsConsole())); setCentralWidget(m_view); setUnifiedTitleAndToolBarOnMac(true); connect( m_view->page()->mainFrame(), & QWebFrame::javaScriptWindowObjectCleared, this, & MainWindow::addToJavaScript ); }
void MainWindow::init(AnyOption *opts) { cmdopts = opts; if (cmdopts->getValue("config") || cmdopts->getValue('c')) { qDebug(">> Config option in command prompt..."); QString cfgPath = cmdopts->getValue('c'); if (cfgPath.isEmpty()) { cfgPath = cmdopts->getValue("config"); } loadSettings(cfgPath); } else { loadSettings(QString("")); } if (mainSettings->value("signals/enable").toBool()) { connect(handler, SIGNAL(sigUSR1()), SLOT(unixSignalUsr1())); connect(handler, SIGNAL(sigUSR2()), SLOT(unixSignalUsr2())); } handler->start(); setMinimumWidth(320); setMinimumHeight(200); quint16 minimalWidth = mainSettings->value("view/minimal-width").toUInt(); quint16 minimalHeight = mainSettings->value("view/minimal-height").toUInt(); if (minimalWidth) { setMinimumWidth(minimalWidth); } if (minimalHeight) { setMinimumHeight(minimalHeight); } hiddenCurdor = new QCursor(Qt::BlankCursor); qDebug() << "Application icon: " << mainSettings->value("application/icon").toString(); setWindowIcon(QIcon( mainSettings->value("application/icon").toString() )); if (cmdopts->getValue("uri") || cmdopts->getValue('u')) { qDebug(">> Uri option in command prompt..."); QString uri = cmdopts->getValue('u'); if (uri.isEmpty()) { uri = cmdopts->getValue("uri"); } mainSettings->setValue("browser/homepage", uri); } QCoreApplication::setOrganizationName( mainSettings->value("application/organization").toString() ); QCoreApplication::setOrganizationDomain( mainSettings->value("application/organization-domain").toString() ); QCoreApplication::setApplicationName( mainSettings->value("application/name").toString() ); QCoreApplication::setApplicationVersion( mainSettings->value("application/version").toString() ); // --- Network --- // if (mainSettings->value("proxy/enable").toBool()) { bool system = mainSettings->value("proxy/system").toBool(); if (system) { QNetworkProxyFactory::setUseSystemConfiguration(system); } else { QNetworkProxy proxy; proxy.setType(QNetworkProxy::HttpProxy); proxy.setHostName( mainSettings->value("proxy/host").toString() ); proxy.setPort(mainSettings->value("proxy/port").toUInt()); if (mainSettings->value("proxy/auth").toBool()) { proxy.setUser(mainSettings->value("proxy/username").toString()); proxy.setPassword(mainSettings->value("proxy/password").toString()); } QNetworkProxy::setApplicationProxy(proxy); } } // --- Web View --- // view = new WebView(this); if (mainSettings->value("view/show_load_progress").toBool()) { // --- Progress Bar --- // loadProgress = new QProgressBar(view); loadProgress->setContentsMargins(2, 2, 2, 2); loadProgress->setMinimumWidth(100); loadProgress->setMinimumHeight(16); loadProgress->setFixedHeight(16); loadProgress->setAutoFillBackground(true); QPalette palette = this->palette(); palette.setColor(QPalette::Window, QColor(255,255,255,63)); loadProgress->setPalette(palette); // Do not work... Need Layout... loadProgress->setAlignment(Qt::AlignTop); loadProgress->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); loadProgress->hide(); } setCentralWidget(view); view->setSettings(mainSettings); view->setPage(new QWebPage(view)); // --- Disk cache --- // if (mainSettings->value("cache/enable").toBool()) { diskCache = new QNetworkDiskCache(this); QString location = mainSettings->value("cache/location").toString(); if (!location.length()) { #ifdef QT5 location = QStandardPaths::writableLocation(QStandardPaths::CacheLocation); #else location = QDesktopServices::storageLocation(QDesktopServices::CacheLocation); #endif } diskCache->setCacheDirectory(location); diskCache->setMaximumCacheSize(mainSettings->value("cache/size").toUInt()); if (mainSettings->value("cache/clear-on-start").toBool()) { diskCache->clear(); } else if (cmdopts->getFlag('C') || cmdopts->getFlag("clear-cache")) { diskCache->clear(); } CachingNetworkManager *nm = new CachingNetworkManager(); nm->setCache(diskCache); view->page()->setNetworkAccessManager(nm); } if (mainSettings->value("browser/cookiejar").toBool()) { view->page()->networkAccessManager()->setCookieJar(new PersistentCookieJar()); } view->settings()->setAttribute(QWebSettings::JavascriptEnabled, mainSettings->value("browser/javascript").toBool() ); view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, mainSettings->value("browser/javascript_can_open_windows").toBool() ); view->settings()->setAttribute(QWebSettings::JavascriptCanCloseWindows, mainSettings->value("browser/javascript_can_close_windows").toBool() ); view->settings()->setAttribute(QWebSettings::WebGLEnabled, mainSettings->value("browser/webgl").toBool() ); view->settings()->setAttribute(QWebSettings::JavaEnabled, mainSettings->value("browser/java").toBool() ); view->settings()->setAttribute(QWebSettings::PluginsEnabled, mainSettings->value("browser/plugins").toBool() ); if (mainSettings->value("inspector/enable").toBool()) { view->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); inspector = new QWebInspector(); inspector->setVisible(mainSettings->value("inspector/visible").toBool()); inspector->setMinimumSize(800, 600); inspector->setWindowTitle(mainSettings->value("application/name").toString() + " - WebInspector"); inspector->setWindowIcon(this->windowIcon()); inspector->setPage(view->page()); } connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadStarted()), SLOT(startLoading())); connect(view, SIGNAL(urlChanged(const QUrl &)), SLOT(urlChanged(const QUrl &))); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); connect(view, SIGNAL(iconChanged()), SLOT(pageIconLoaded())); QDesktopWidget *desktop = QApplication::desktop(); connect(desktop, SIGNAL(resized(int)), SLOT(desktopResized(int))); // Window show, start events loop show(); view->page()->view()->setFocusPolicy(Qt::StrongFocus); view->setFocusPolicy(Qt::StrongFocus); if (mainSettings->value("view/hide_mouse_cursor").toBool()) { QApplication::setOverrideCursor(Qt::BlankCursor); view->setCursor(*hiddenCurdor); } int delay_resize = 0; if (mainSettings->value("view/startup_resize_delayed").toBool()) { delay_resize = mainSettings->value("view/startup_resize_delay").toInt(); } delayedResize->singleShot(delay_resize, this, SLOT(delayedWindowResize())); int delay_load = 0; if (mainSettings->value("browser/startup_load_delayed").toBool()) { delay_load = mainSettings->value("browser/startup_load_delay").toInt(); } delayedLoad->singleShot(delay_load, this, SLOT(delayedPageLoad())); }
void MainWindow::setProgress(int p) { qDebug() << "Loading page progress: " << p << "/100"; m_progress = p; adjustTitle(); }
RWebBrowser::RWebBrowser(ICore *api, QWidget *parent) : QWidget(parent), m_core(api), m_webView(new QWebView), m_locationEdit(new QLineEdit), m_buttonLayout(new QVBoxLayout), m_progress(0) { //make sure we use application wide NetworkAccessManager: m_webView->page()->setNetworkAccessManager(m_core->networkAccessManager()); //TODO: make this configurable via settings m_webView->settings()->setAttribute(QWebSettings::PluginsEnabled, true); m_locationEdit->setSizePolicy(QSizePolicy::Expanding, m_locationEdit->sizePolicy().verticalPolicy()); QToolBar *toolBar = new QToolBar; toolBar->addAction(m_webView->pageAction(QWebPage::Back)); toolBar->addAction(m_webView->pageAction(QWebPage::Forward)); toolBar->addAction(m_webView->pageAction(QWebPage::Reload)); toolBar->addAction(m_webView->pageAction(QWebPage::Stop)); toolBar->addWidget(m_locationEdit); QObject::connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); QObject::connect(m_webView, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); QObject::connect(m_webView, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); QObject::connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); QObject::connect(m_locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); //TODO: load webpage given in user settings m_webView->load(QUrl("http://www.radiofrei.de/")); ///test zoom QSpinBox *sbox = new QSpinBox; sbox->setValue(100); sbox->setRange(30,200); sbox->setSingleStep(1); QObject::connect(sbox, SIGNAL(valueChanged(int)), SLOT(setZoom(int))); toolBar->addWidget(sbox); /// //create webView layout: QVBoxLayout *webLayout = new QVBoxLayout; webLayout->setSpacing(3); webLayout->setContentsMargins(0,0,0,0); webLayout->addWidget(toolBar); webLayout->addWidget(m_webView); //create main layout: QHBoxLayout *layout = new QHBoxLayout; layout->setSpacing(3); layout->setContentsMargins(0,0,0,0); layout->addLayout(webLayout); layout->addLayout(m_buttonLayout); setLayout(layout); }
void browserwindow::setProgress(int p) { progress = p; adjustTitle(); }
void MainWindow::finishLoading(bool) { progress = 100; adjustTitle(); }
void MainWindow::setProgress(int p) { progress = p; adjustTitle(); }
void BrowserWindow::setProgress(int p) { progress_ = p; adjustTitle(); }
MainWindow::MainWindow(const QUrl& url) { progress = 0; QFile file; file.setFileName(":/jquery.min.js"); file.open(QIODevice::ReadOnly); jQuery = file.readAll(); jQuery.append("\nvar qt = { 'jQuery': jQuery.noConflict(true) };"); file.close(); //! [1] QNetworkProxyFactory::setUseSystemConfiguration(true); //! [2] view = new QWebView(this); view->load(url); connect(view, SIGNAL(loadFinished(bool)), SLOT(adjustLocation())); connect(view, SIGNAL(titleChanged(QString)), SLOT(adjustTitle())); connect(view, SIGNAL(loadProgress(int)), SLOT(setProgress(int))); connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool))); locationEdit = new QLineEdit(this); locationEdit->setSizePolicy(QSizePolicy::Expanding, locationEdit->sizePolicy().verticalPolicy()); connect(locationEdit, SIGNAL(returnPressed()), SLOT(changeLocation())); QToolBar *toolBar = addToolBar(tr("导航")); toolBar->addAction(view->pageAction(QWebPage::Back)); toolBar->addAction(view->pageAction(QWebPage::Forward)); toolBar->addAction(view->pageAction(QWebPage::Reload)); toolBar->addAction(view->pageAction(QWebPage::Stop)); toolBar->addWidget(locationEdit); //! [2] QMenu *fileMenu = menuBar()->addMenu(tr("文件(&F)")); QAction *newWindowAction = new QAction(tr("新建窗口"),this); connect(newWindowAction, SIGNAL(triggered()),SLOT(newWindow())); fileMenu->addAction(newWindowAction); QAction *closeWindowAction = new QAction(tr("关闭窗口"),this); connect(closeWindowAction, SIGNAL(triggered()),SLOT(closeWindow())); fileMenu->addAction(closeWindowAction); QMenu *viewMenu = menuBar()->addMenu(tr("查看(&V)")); QAction* viewSourceAction = new QAction(tr("页面源代码"), this); connect(viewSourceAction, SIGNAL(triggered()), SLOT(viewSource())); viewMenu->addAction(view->pageAction(QWebPage::Stop)); viewMenu->addAction(view->pageAction(QWebPage::Reload)); viewMenu->addSeparator(); viewMenu->addAction(viewSourceAction); //! [3] QMenu *historyMenu = menuBar()->addMenu(tr("历史(&H)")); historyMenu->addAction(view->pageAction(QWebPage::Back)); historyMenu->addAction(view->pageAction(QWebPage::Forward)); QMenu *effectMenu = menuBar()->addMenu(tr("效果(&E)")); effectMenu->addAction(tr("高亮所有链接"), this, SLOT(highlightAllLinks())); rotateAction = new QAction(this); rotateAction->setIcon(style()->standardIcon(QStyle::SP_FileDialogDetailedView)); rotateAction->setCheckable(true); rotateAction->setText(tr("倒转图像")); connect(rotateAction, SIGNAL(toggled(bool)), this, SLOT(rotateImages(bool))); effectMenu->addAction(rotateAction); QMenu *toolsMenu = menuBar()->addMenu(tr("工具(&T)")); toolsMenu->addAction(tr("移除 GIF 动画"), this, SLOT(removeGifImages())); toolsMenu->addAction(tr("移除所有内联框架"), this, SLOT(removeInlineFrames())); toolsMenu->addAction(tr("移除所有对象元素"), this, SLOT(removeObjectElements())); toolsMenu->addAction(tr("移除所有嵌入元素"), this, SLOT(removeEmbeddedElements())); QMenu *helpMenu = menuBar()->addMenu(tr("帮助(&H)")); helpMenu->addAction(tr("关于 Looplorer"), this, SLOT(aboutLooplorer())); setCentralWidget(view); setUnifiedTitleAndToolBarOnMac(true); view->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); clickLink(); windowNum++; }
void BrowserWindow::finishLoading(bool) { progress_ = 100; adjustTitle(); }