Changeset View
Changeset View
Standalone View
Standalone View
lib/thumbnailview/previewitemdelegate.cpp
Context not available. | |||||
457 | geometry.moveRight(mView->viewport()->width()); | 457 | geometry.moveRight(mView->viewport()->width()); | ||
---|---|---|---|---|---|
458 | } | 458 | } | ||
459 | 459 | | |||
460 | const int animDuration = qApp->style()->styleHint(QStyle::SH_Widget_Animation_Duration, nullptr, nullptr); | ||||
461 | | ||||
462 | bool hasAnimation = false; | ||||
460 | // Show tip | 463 | // Show tip | ||
464 | | ||||
461 | QParallelAnimationGroup* anim = new QParallelAnimationGroup(); | 465 | QParallelAnimationGroup* anim = new QParallelAnimationGroup(); | ||
462 | QPropertyAnimation* fadeIn = new QPropertyAnimation(mToolTip, "opacity"); | 466 | if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip) && animDuration > 0) { | ||
463 | fadeIn->setStartValue(mToolTip->opacity()); | 467 | QPropertyAnimation* fadeIn = new QPropertyAnimation(mToolTip, "opacity"); | ||
464 | fadeIn->setEndValue(1.); | 468 | fadeIn->setDuration(animDuration); | ||
465 | anim->addAnimation(fadeIn); | 469 | fadeIn->setStartValue(mToolTip->opacity()); | ||
470 | fadeIn->setEndValue(1.); | ||||
471 | anim->addAnimation(fadeIn); | ||||
472 | hasAnimation = true; | ||||
473 | } else { | ||||
474 | mToolTip->setOpacity(1); | ||||
475 | } | ||||
466 | 476 | | |||
467 | if (newTipLabel) { | 477 | if (newTipLabel || !QApplication::isEffectEnabled(Qt::UI_AnimateTooltip) || animDuration <= 0) { | ||
468 | mToolTip->setGeometry(geometry); | 478 | mToolTip->setGeometry(geometry); | ||
469 | } else { | 479 | } else { | ||
470 | QPropertyAnimation* move = new QPropertyAnimation(mToolTip, "geometry"); | 480 | QPropertyAnimation* move = new QPropertyAnimation(mToolTip, "geometry"); | ||
481 | move->setDuration(animDuration); | ||||
471 | move->setStartValue(mToolTip->geometry()); | 482 | move->setStartValue(mToolTip->geometry()); | ||
472 | move->setEndValue(geometry); | 483 | move->setEndValue(geometry); | ||
473 | anim->addAnimation(move); | 484 | anim->addAnimation(move); | ||
485 | hasAnimation = true; | ||||
474 | } | 486 | } | ||
475 | 487 | | |||
476 | mToolTipAnimation.reset(anim); | 488 | | ||
477 | mToolTipAnimation->start(); | 489 | if (hasAnimation) { | ||
490 | mToolTipAnimation.reset(anim); | ||||
491 | mToolTipAnimation->start(); | ||||
492 | } else { | ||||
493 | mToolTipAnimation.reset(nullptr); | ||||
494 | delete anim; | ||||
495 | } | ||||
478 | } | 496 | } | ||
479 | 497 | | |||
480 | void hideToolTip() | 498 | void hideToolTip() | ||
Context not available. | |||||
482 | if (!mToolTip) { | 500 | if (!mToolTip) { | ||
483 | return; | 501 | return; | ||
484 | } | 502 | } | ||
503 | | ||||
504 | const int animDuration = qApp->style()->styleHint(QStyle::SH_Widget_Animation_Duration, nullptr, nullptr); | ||||
505 | if (!QApplication::isEffectEnabled(Qt::UI_FadeTooltip) || animDuration <= 0) { | ||||
506 | mToolTip->setOpacity(0); | ||||
507 | return; | ||||
508 | } | ||||
509 | | ||||
485 | QSequentialAnimationGroup* anim = new QSequentialAnimationGroup(); | 510 | QSequentialAnimationGroup* anim = new QSequentialAnimationGroup(); | ||
486 | if (mToolTipAnimation->state() == QPropertyAnimation::Stopped) { | 511 | if (mToolTipAnimation->state() == QPropertyAnimation::Stopped) { | ||
487 | anim->addPause(500); | 512 | anim->addPause(500); | ||
488 | } | 513 | } | ||
489 | QPropertyAnimation* fadeOut = new QPropertyAnimation(mToolTip, "opacity"); | 514 | QPropertyAnimation* fadeOut = new QPropertyAnimation(mToolTip, "opacity"); | ||
515 | fadeOut->setDuration(animDuration); | ||||
490 | fadeOut->setStartValue(mToolTip->opacity()); | 516 | fadeOut->setStartValue(mToolTip->opacity()); | ||
491 | fadeOut->setEndValue(0.); | 517 | fadeOut->setEndValue(0.); | ||
492 | anim->addAnimation(fadeOut); | 518 | anim->addAnimation(fadeOut); | ||
Context not available. |