Collection of tools useful for audio production
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.7KB

  1. /*
  2. * Patchbay Canvas engine using QGraphicsView/Scene
  3. * Copyright (C) 2010-2012 Filipe Coelho <falktx@gmail.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or
  8. * any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. *
  15. * For a full copy of the GNU General Public License see the COPYING file
  16. */
  17. #include "canvasfadeanimation.h"
  18. #include <QGraphicsItem>
  19. START_NAMESPACE_PATCHCANVAS
  20. CanvasFadeAnimation::CanvasFadeAnimation(QGraphicsItem* item, bool show, QObject* parent) :
  21. QAbstractAnimation(parent)
  22. {
  23. m_show = show;
  24. m_duration = 0;
  25. m_item = item;
  26. }
  27. void CanvasFadeAnimation::setDuration(int time)
  28. {
  29. if (m_show == false && m_item->opacity() == 0.0)
  30. m_duration = 0;
  31. else
  32. {
  33. m_item->show();
  34. m_duration = time;
  35. }
  36. }
  37. int CanvasFadeAnimation::duration() const
  38. {
  39. return m_duration;
  40. }
  41. void CanvasFadeAnimation::updateCurrentTime(int time)
  42. {
  43. if (m_duration == 0)
  44. return;
  45. float value;
  46. if (m_show)
  47. value = float(time)/m_duration;
  48. else
  49. value = 1.0-(float(time)/m_duration);
  50. m_item->setOpacity(value);
  51. }
  52. void CanvasFadeAnimation::updateState(QAbstractAnimation::State /*newState*/, QAbstractAnimation::State /*oldState*/)
  53. {
  54. }
  55. void CanvasFadeAnimation::updateDirection(QAbstractAnimation::Direction /*direction*/)
  56. {
  57. }
  58. END_NAMESPACE_PATCHCANVAS