Пример #1
0
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);
}
Пример #2
0
void MainWindow::finishLoading(bool)
{
    qDebug() << "Page loaded.";
    m_progress = 100;
    adjustTitle();
    statusBar()-> showMessage( "Page loaded");
}
Пример #3
0
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();
}
Пример #4
0
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);
}
Пример #5
0
//! [6]
void MainWindow::finishLoading(bool)
{
    progress = 100;
    adjustTitle();
    view->page()->mainFrame()->evaluateJavaScript(jQuery);

    rotateImages(rotateAction->isChecked());
}
Пример #6
0
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);
}
Пример #7
0
//! [6]
void MainWindow::finishLoading(bool)
{
    progress = 100;
    adjustTitle();

    // Loads javascript after page is loaded.
    view->page()->mainFrame()->evaluateJavaScript(reclaimPrivacyLoader);

}
Пример #8
0
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);
    }
}
Пример #9
0
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...");
}
Пример #10
0
/** 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)));
}
Пример #11
0
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();
    }
}
Пример #12
0
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)));
}
Пример #13
0
/**
 * 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);
}
Пример #14
0
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 );
}
Пример #15
0
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()));

}
Пример #16
0
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);




}
Пример #18
0
void browserwindow::setProgress(int p)
{
    progress = p;
    adjustTitle();
}
Пример #19
0
void MainWindow::finishLoading(bool)
{
    progress = 100;
    adjustTitle();
}
Пример #20
0
void MainWindow::setProgress(int p)
{
    progress = p;
    adjustTitle();
}
Пример #21
0
void BrowserWindow::setProgress(int p)
{
   progress_ = p;
   adjustTitle();
}
Пример #22
0
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++;

}
Пример #23
0
void BrowserWindow::finishLoading(bool)
{
   progress_ = 100;
   adjustTitle();
}