MCPcopy Index your code
hub / github.com/Audio4Linux/JDSP4Linux / slideIn

Method slideIn

3rdparty/WAF/Animation/SideSlide/SideSlideAnimator.cpp:79–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78#include <QDebug>
79void SideSlideAnimator::slideIn()
80{
81 //
82 // Прерываем выполнение, если клиент хочет повторить его
83 //
84 if (isAnimated() && isAnimatedForward()) return;
85 setAnimatedForward();
86
87 //
88 // Прячем виджет для анимирования
89 //
90 widgetForSlide()->lower();
91 widgetForSlide()->move(-widgetForSlide()->width(), -widgetForSlide()->height());
92 widgetForSlide()->show();
93 widgetForSlide()->resize(widgetForSlide()->sizeHint());
94
95 //
96 // Определим самый верхний виджет
97 //
98 QWidget* topWidget = widgetForSlide()->parentWidget();
99 while (topWidget->parentWidget() != 0 && !topWidget->inherits("QDialog")) {
100 topWidget = topWidget->parentWidget();
101 }
102
103 //
104 // Определим финальный размер и положение выезжающего виджета
105 //
106 // TODO: скорректировать размер, если конфликтует с размером приложения
107 //
108 QSize finalSize = widgetForSlide()->size();
109 QPoint startPosition, finalPosition;
110 switch (m_side) {
111 case WAF::LeftSide: {
112 finalSize.setHeight(topWidget->height());
113 startPosition = QPoint(-finalSize.width(), 0);
114 finalPosition = QPoint(0, 0);
115 break;
116 }
117
118 case WAF::TopSide: {
119 finalSize.setWidth(topWidget->width());
120 startPosition = QPoint(0, -finalSize.height());
121 finalPosition = QPoint(0, 0);
122 break;
123 }
124
125 case WAF::RightSide: {
126 finalSize.setHeight(topWidget->height());
127 startPosition = QPoint(topWidget->width(), 0);
128 finalPosition = QPoint(topWidget->width() - finalSize.width(), 0);
129 break;
130 }
131
132 case WAF::BottomSide: {
133 finalSize.setWidth(topWidget->width());
134 startPosition = QPoint(0, topWidget->height());
135 finalPosition = QPoint(0, topWidget->height() - finalSize.height());
136 break;

Callers

nothing calls this directly

Calls 12

QPointClass · 0.85
moveMethod · 0.80
resizeMethod · 0.80
setWidthMethod · 0.80
grabSlideWidgetMethod · 0.80
setEasingCurveMethod · 0.80
startMethod · 0.80
decorateMethod · 0.80
sizeHintMethod · 0.45
sizeMethod · 0.45
grabParentMethod · 0.45
raiseMethod · 0.45

Tested by

no test coverage detected