void WebContentsWidget::optionChanged(const QString &option, const QVariant &value) { if (option == QLatin1String("Browser/ShowDetailedProgressBar")) { m_isProgressBarEnabled = value.toBool(); if (!m_isProgressBarEnabled && m_progressBarWidget) { m_progressBarWidget->deleteLater(); m_progressBarWidget = NULL; } if (m_isProgressBarEnabled) { connect(m_webWidget, SIGNAL(progressBarGeometryChanged()), this, SLOT(scheduleGeometryUpdate())); } else { disconnect(m_webWidget, SIGNAL(progressBarGeometryChanged()), this, SLOT(updateProgressBarWidget())); } } else if (option == QLatin1String("Search/EnableFindInPageAsYouType")) { if (value.toBool()) { connect(m_ui->findLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateFind())); } else { disconnect(m_ui->findLineEdit, SIGNAL(textChanged(QString)), this, SLOT(updateFind())); } } }
void ProgressBarWidget::timerEvent(QTimerEvent *event) { if (event->timerId() == m_geometryUpdateTimer) { killTimer(m_geometryUpdateTimer); m_geometryUpdateTimer = 0; if (!m_window) { return; } WebContentsWidget *contentsWidget(qobject_cast<WebContentsWidget*>(m_window->getContentsWidget())); if (!contentsWidget || !contentsWidget->getWebWidget()) { return; } WebWidget *webWidget(contentsWidget->getWebWidget()); QRect geometry(webWidget->getProgressBarGeometry()); const ToolBarsManager::ToolBarVisibility visibility(ToolBarsManager::getToolBarDefinition(ToolBarsManager::ProgressBar).normalVisibility); if (visibility == ToolBarsManager::AlwaysVisibleToolBar || (visibility == ToolBarsManager::AutoVisibilityToolBar && webWidget->getLoadingState() == WindowsManager::OngoingLoadingState)) { if (!isVisible()) { connect(webWidget, SIGNAL(progressBarGeometryChanged()), this, SLOT(scheduleGeometryUpdate())); } geometry.translate(0, webWidget->pos().y()); setGeometry(geometry); show(); raise(); } else { disconnect(webWidget, SIGNAL(progressBarGeometryChanged()), this, SLOT(scheduleGeometryUpdate())); hide(); } } }
void WebContentsWidget::resizeEvent(QResizeEvent *event) { if (m_isProgressBarEnabled) { scheduleGeometryUpdate(); } ContentsWidget::resizeEvent(event); }
void WebContentsWidget::setLoading(bool loading) { if (!m_isProgressBarEnabled) { return; } if (loading && !m_progressBarWidget) { m_progressBarWidget = new ProgressBarWidget(m_webWidget, this); } scheduleGeometryUpdate(); }
void ProgressBarWidget::updateLoadingState(WindowsManager::LoadingState state) { const ToolBarsManager::ToolBarVisibility visibility(ToolBarsManager::getToolBarDefinition(ToolBarsManager::ProgressBar).normalVisibility); if (visibility == ToolBarsManager::AlwaysVisibleToolBar || (visibility == ToolBarsManager::AutoVisibilityToolBar && state == WindowsManager::OngoingLoadingState)) { scheduleGeometryUpdate(); } else { hide(); WebContentsWidget *contentsWidget(qobject_cast<WebContentsWidget*>(m_window->getContentsWidget())); if (contentsWidget && contentsWidget->getWebWidget()) { disconnect(contentsWidget->getWebWidget(), SIGNAL(progressBarGeometryChanged()), this, SLOT(scheduleGeometryUpdate())); } } }