forked from qt-creator/qt-creator
QmlDesigner: Flash transient scrollbars only when they are enabled
Visibility has a more complex definition in transient scrollbars since they are transient. Also, it's meaningful when it's disabled, it shouldn't be flashed. So here we use this ability to prevent them from being flashed when they are disabled. Also, the enabled property would be changed instead of the visibility for the cases that transient scrollbars are out of the scroll area. (TimelineWidget and TransitionEditorWidget) Task-number: QDS-10644 Change-Id: If74d71571a216153a2d3aa09694760d7a02026ca Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -365,13 +365,23 @@ ScrollBar::~ScrollBar()
|
|||||||
|
|
||||||
void ScrollBar::flash()
|
void ScrollBar::flash()
|
||||||
{
|
{
|
||||||
if (!d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, nullptr, this)) {
|
if (!style()->styleHint(QStyle::SH_ScrollBar_Transient, nullptr, this))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!isEnabled()) {
|
||||||
|
d->flashed = false;
|
||||||
|
hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!d->flashed) {
|
||||||
d->flashed = true;
|
d->flashed = true;
|
||||||
if (!isVisible())
|
if (!isVisible())
|
||||||
show();
|
show();
|
||||||
else
|
else
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!d->flashTimer)
|
if (!d->flashTimer)
|
||||||
d->flashTimer = startTimer(0);
|
d->flashTimer = startTimer(0);
|
||||||
}
|
}
|
||||||
|
@@ -538,12 +538,17 @@ void TimelineWidget::invalidateTimelinePosition(const QmlTimeline &timeline)
|
|||||||
|
|
||||||
void TimelineWidget::setupScrollbar(int min, int max, int current)
|
void TimelineWidget::setupScrollbar(int min, int max, int current)
|
||||||
{
|
{
|
||||||
bool b = m_scrollbar->blockSignals(true);
|
int singleStep = (max - min) / 10;
|
||||||
m_scrollbar->setRange(min, max);
|
|
||||||
m_scrollbar->setValue(current);
|
if (m_scrollbar->minimum() != min || m_scrollbar->maximum() != max
|
||||||
m_scrollbar->setSingleStep((max - min) / 10);
|
|| m_scrollbar->value() != current || m_scrollbar->singleStep() != singleStep) {
|
||||||
m_scrollbar->blockSignals(b);
|
bool b = m_scrollbar->blockSignals(true);
|
||||||
m_scrollbar->flash();
|
m_scrollbar->setRange(min, max);
|
||||||
|
m_scrollbar->setValue(current);
|
||||||
|
m_scrollbar->setSingleStep(singleStep);
|
||||||
|
m_scrollbar->blockSignals(b);
|
||||||
|
m_scrollbar->flash();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TimelineWidget::setTimelineId(const QString &id)
|
void TimelineWidget::setTimelineId(const QString &id)
|
||||||
@@ -575,6 +580,7 @@ void TimelineWidget::setTimelineActive(bool b)
|
|||||||
m_toolbar->setVisible(true);
|
m_toolbar->setVisible(true);
|
||||||
m_graphicsView->setVisible(true);
|
m_graphicsView->setVisible(true);
|
||||||
m_rulerView->setVisible(true);
|
m_rulerView->setVisible(true);
|
||||||
|
m_scrollbar->setEnabled(true); // Set the transient scrollbar enabled to be able to flash it.
|
||||||
m_scrollbar->setVisible(true);
|
m_scrollbar->setVisible(true);
|
||||||
m_addButton->setVisible(false);
|
m_addButton->setVisible(false);
|
||||||
m_onboardingContainer->setVisible(false);
|
m_onboardingContainer->setVisible(false);
|
||||||
@@ -584,6 +590,8 @@ void TimelineWidget::setTimelineActive(bool b)
|
|||||||
m_toolbar->setVisible(false);
|
m_toolbar->setVisible(false);
|
||||||
m_graphicsView->setVisible(false);
|
m_graphicsView->setVisible(false);
|
||||||
m_rulerView->setVisible(false);
|
m_rulerView->setVisible(false);
|
||||||
|
m_scrollbar->setEnabled(
|
||||||
|
false); // Set the transient scrollbar disabled to prevent it from being flashed.
|
||||||
m_scrollbar->setVisible(false);
|
m_scrollbar->setVisible(false);
|
||||||
m_statusBar->clear();
|
m_statusBar->clear();
|
||||||
m_addButton->setVisible(true);
|
m_addButton->setVisible(true);
|
||||||
|
@@ -231,6 +231,7 @@ void TransitionEditorWidget::setTransitionActive(bool b)
|
|||||||
m_toolbar->setVisible(true);
|
m_toolbar->setVisible(true);
|
||||||
m_graphicsView->setVisible(true);
|
m_graphicsView->setVisible(true);
|
||||||
m_rulerView->setVisible(true);
|
m_rulerView->setVisible(true);
|
||||||
|
m_scrollbar->setEnabled(true); // Set the transient scrollbar enabled to be able to flash it.
|
||||||
m_scrollbar->setVisible(true);
|
m_scrollbar->setVisible(true);
|
||||||
m_addButton->setVisible(false);
|
m_addButton->setVisible(false);
|
||||||
m_onboardingContainer->setVisible(false);
|
m_onboardingContainer->setVisible(false);
|
||||||
@@ -240,6 +241,8 @@ void TransitionEditorWidget::setTransitionActive(bool b)
|
|||||||
m_toolbar->setVisible(false);
|
m_toolbar->setVisible(false);
|
||||||
m_graphicsView->setVisible(false);
|
m_graphicsView->setVisible(false);
|
||||||
m_rulerView->setVisible(false);
|
m_rulerView->setVisible(false);
|
||||||
|
m_scrollbar->setEnabled(
|
||||||
|
false); // Set the transient scrollbar disabled to prevent it from being flashed.
|
||||||
m_scrollbar->setVisible(false);
|
m_scrollbar->setVisible(false);
|
||||||
m_addButton->setVisible(true);
|
m_addButton->setVisible(true);
|
||||||
m_onboardingContainer->setVisible(true);
|
m_onboardingContainer->setVisible(true);
|
||||||
@@ -378,12 +381,17 @@ TransitionEditorToolBar *TransitionEditorWidget::toolBar() const
|
|||||||
|
|
||||||
void TransitionEditorWidget::setupScrollbar(int min, int max, int current)
|
void TransitionEditorWidget::setupScrollbar(int min, int max, int current)
|
||||||
{
|
{
|
||||||
bool b = m_scrollbar->blockSignals(true);
|
int singleStep = (max - min) / 10;
|
||||||
m_scrollbar->setMinimum(min);
|
|
||||||
m_scrollbar->setMaximum(max);
|
if (m_scrollbar->minimum() != min || m_scrollbar->maximum() != max
|
||||||
m_scrollbar->setValue(current);
|
|| m_scrollbar->value() != current || m_scrollbar->singleStep() != singleStep) {
|
||||||
m_scrollbar->setSingleStep((max - min) / 10);
|
bool b = m_scrollbar->blockSignals(true);
|
||||||
m_scrollbar->blockSignals(b);
|
m_scrollbar->setRange(min, max);
|
||||||
|
m_scrollbar->setValue(current);
|
||||||
|
m_scrollbar->setSingleStep(singleStep);
|
||||||
|
m_scrollbar->blockSignals(b);
|
||||||
|
m_scrollbar->flash();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransitionEditorWidget::showEvent([[maybe_unused]] QShowEvent *event)
|
void TransitionEditorWidget::showEvent([[maybe_unused]] QShowEvent *event)
|
||||||
|
Reference in New Issue
Block a user