コード例 #1
0
ファイル: WebContentsWidget.cpp プロジェクト: rejdi/otter
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()));
		}
	}
}
コード例 #2
0
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();
		}
	}
}
コード例 #3
0
ファイル: WebContentsWidget.cpp プロジェクト: rejdi/otter
void WebContentsWidget::resizeEvent(QResizeEvent *event)
{
	if (m_isProgressBarEnabled)
	{
		scheduleGeometryUpdate();
	}

	ContentsWidget::resizeEvent(event);
}
コード例 #4
0
ファイル: WebContentsWidget.cpp プロジェクト: rejdi/otter
void WebContentsWidget::setLoading(bool loading)
{
	if (!m_isProgressBarEnabled)
	{
		return;
	}

	if (loading && !m_progressBarWidget)
	{
		m_progressBarWidget = new ProgressBarWidget(m_webWidget, this);
	}

	scheduleGeometryUpdate();
}
コード例 #5
0
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()));
		}
	}
}