MCPcopy Create free account
hub / github.com/Audio4Linux/JDSP4Linux / slideOut

Method slideOut

3rdparty/WAF/Animation/Slide/SlideAnimator.cpp:179–241  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179void SlideAnimator::slideOut()
180{
181 if (!m_startMinSize.isValid()) {
182 m_startMinSize = widgetForSlide()->minimumSize();
183 }
184 if (!m_startMaxSize.isValid()) {
185 m_startMaxSize = widgetForSlide()->maximumSize();
186 }
187 if (!m_startSize.isValid() || !m_isFixStartSize) {
188 m_startSize = widgetForSlide()->size();
189 }
190
191 //
192 // Прерываем выполнение, если клиент хочет повторить его
193 //
194 if (isAnimated() && isAnimatedBackward()) return;
195 setAnimatedBackward();
196
197 //
198 // Определяем результирующий размер
199 //
200 QSize finalSize = widgetForSlide()->size();
201 if (isWidth()) {
202 finalSize.setWidth(0);
203 } else {
204 finalSize.setHeight(0);
205 }
206
207 //
208 // Сформируем изображение выкатываемого виджета
209 //
210 m_decorator->grabParent(widgetForSlide()->size());
211
212 if (m_isFixBackground) {
213 //
214 // Позиционируем декоратор
215 //
216 m_decorator->move(0, 0);
217 m_decorator->show();
218 m_decorator->raise();
219 }
220
221 //
222 // Закатываем виджет
223 //
224 if (m_animation->state() == QPropertyAnimation::Running) {
225 //
226 // ... если ещё не закончилась предыдущая анимация реверсируем её
227 //
228 m_animation->pause();
229 m_animation->setDirection(QPropertyAnimation::Backward);
230 m_animation->resume();
231 } else {
232 //
233 // ... если предыдущая анимация закончилась, запускаем новую анимацию
234 //
235 m_animation->setEasingCurve(QEasingCurve::InQuart);
236 m_animation->setDirection(QPropertyAnimation::Forward);

Callers

nothing calls this directly

Calls 7

setWidthMethod · 0.80
moveMethod · 0.80
setEasingCurveMethod · 0.80
startMethod · 0.80
sizeMethod · 0.45
grabParentMethod · 0.45
raiseMethod · 0.45

Tested by

no test coverage detected