void ReticleItem::startAt(const QPoint& pos) { if (m_animation) m_animation->stop(); setPos(pos.x(), pos.y()); setVisible(true); setOpacity(1); setScale(1); QPropertyAnimation* opacityAnimation = new QPropertyAnimation(this, "opacity"); opacityAnimation->setDuration(AS(reticleDuration)); opacityAnimation->setStartValue(1.0); opacityAnimation->setEndValue(0.0); opacityAnimation->setEasingCurve(AS_CURVE(reticleCurve)); QPropertyAnimation* scaleAnimation = new QPropertyAnimation(this, "scale"); scaleAnimation->setDuration(AS(reticleDuration)); scaleAnimation->setStartValue(1.0); scaleAnimation->setEndValue(1.5); scaleAnimation->setEasingCurve(AS_CURVE(reticleCurve)); QParallelAnimationGroup* reticleAnimation = new QParallelAnimationGroup; reticleAnimation->addAnimation(opacityAnimation); reticleAnimation->addAnimation(scaleAnimation); QPropertyAnimation* visibility = new QPropertyAnimation(this, "visible"); visibility->setEndValue(false); visibility->setDuration(0); m_animation = new QSequentialAnimationGroup; m_animation->addAnimation(reticleAnimation); m_animation->addAnimation(visibility); m_animation->start(QAbstractAnimation::DeleteWhenStopped); }
void DockModeWindow::setPrepareAddedToWindowManager() { m_prepareAddedToWm = true; if (G_LIKELY(s_dockGlow == 0)) { QString path(Settings::LunaSettings()->lunaSystemResourcesPath.c_str()); path.append("/dockmode/dock-loading-glow.png"); s_dockGlow = new QPixmap(path); if(s_dockGlow) s_dockGlowRefCount++; if (!s_dockGlow || s_dockGlow->isNull()) { g_critical("%s: Failed to load image '%s'", __PRETTY_FUNCTION__, qPrintable(path)); } } else { s_dockGlowRefCount++; } ApplicationDescription* appDesc = static_cast<Window*>(this)->appDescription(); int size = Settings::LunaSettings()->splashIconSize; m_icon.load(appDesc->splashIconName().c_str()); if (!m_icon.isNull()) { // scale splash icon to fit the devices screen dimensions m_icon = m_icon.scaled(size, size, Qt::KeepAspectRatio, Qt::SmoothTransformation); } else { // just use the launcher icon m_icon = appDesc->getDefaultLaunchPoint()->icon(); int newWidth = qMin((int)(m_icon.width()*1.5), size); int newHeight = qMin((int)(m_icon.height()*1.5), size); m_icon = m_icon.scaled(newWidth, newHeight, Qt::KeepAspectRatio, Qt::SmoothTransformation); } // set up the pulsing animation QPropertyAnimation* pulseIn = new QPropertyAnimation(this, "pulseOpacity"); pulseIn->setDuration(AS(cardLoadingPulseDuration)); pulseIn->setEasingCurve(AS_CURVE(cardLoadingPulseCurve)); pulseIn->setEndValue(1.0); QPropertyAnimation* pulseOut = new QPropertyAnimation(this, "pulseOpacity"); pulseOut->setDuration(AS(cardLoadingPulseDuration)); pulseOut->setEasingCurve(AS_CURVE(cardLoadingPulseCurve)); pulseOut->setEndValue(0.0); QSequentialAnimationGroup* pulseGroup = new QSequentialAnimationGroup; pulseGroup->addAnimation(pulseIn); pulseGroup->addAnimation(pulseOut); pulseGroup->setLoopCount(-1); m_pulseAnimation.addPause(AS(cardLoadingTimeBeforeShowingPulsing)); m_pulseAnimation.addAnimation(pulseGroup); m_loadingOverlayEnabled = true; m_pulseAnimation.start(); update(); }
void InputWindowManager::init() { QRectF r = boundingRect(); m_imeView = new IMEView(this); m_imeView->setBoundingRect(QRectF(0, 0, r.width(), r.height())); m_imeView->setPos(r.topLeft()); int dpi = (QApplication::desktop()->physicalDpiX() + QApplication::desktop()->physicalDpiY()) / 2; m_activeIME = m_imeMgr.createPreferredIME( SystemUiController::instance()->currentUiWidth(), SystemUiController::instance()->currentUiHeight(), dpi, LocalePreferences::instance()->locale()); Q_ASSERT(m_activeIME); connect(&(m_activeIME->m_keyboardHeight), SIGNAL(valueChanged(const qint32&)), SLOT(slotKeyboardHeightChanged(const qint32&))); m_imeView->attach(m_activeIME); m_fadeAnim.setTargetObject(m_imeView); m_fadeAnim.setPropertyName("opacity"); m_fadeAnim.setDuration(AS(brickDuration)); m_fadeAnim.setEasingCurve(AS_CURVE(brickCurve)); }
void StatusBarItemGroup::deactivate() { m_active = false; if(!m_overlayAnimPtr.isNull()) { m_overlayAnimPtr->stop(); delete m_overlayAnimPtr; } m_overlayAnimPtr = new QPropertyAnimation(); m_overlayAnimPtr->setPropertyName("overlayOpacity"); m_overlayAnimPtr->setEasingCurve(AS_CURVE(statusBarMenuFadeCurve)); m_overlayAnimPtr->setTargetObject(this); m_overlayAnimPtr->setDuration(AS(statusBarMenuFadeDuration)); m_overlayAnimPtr->setEndValue(0.0); connect(m_overlayAnimPtr, SIGNAL(valueChanged(const QVariant&)), this, SLOT(slotOverlayAnimValueChanged(const QVariant&))); connect(m_overlayAnimPtr, SIGNAL(finished()), SLOT(slotOverlayAnimationFinished())); m_overlayAnimPtr->start(QAbstractAnimation::DeleteWhenStopped); update(); }
void StatusBarItemGroup::activate() { m_active = true; if(!m_overlayAnimPtr.isNull()) { m_overlayAnimPtr->stop(); delete m_overlayAnimPtr; } m_overlayAnimPtr = new QPropertyAnimation(); m_overlayAnimPtr->setPropertyName("overlayOpacity"); m_overlayAnimPtr->setEasingCurve(AS_CURVE(statusBarMenuFadeCurve)); m_overlayAnimPtr->setTargetObject(this); m_overlayAnimPtr->setDuration(AS(statusBarMenuFadeDuration)); m_overlayAnimPtr->setEndValue(MENU_OVERLAY_OPACITY); connect(m_overlayAnimPtr, SIGNAL(valueChanged(const QVariant&)), this, SLOT(slotOverlayAnimValueChanged(const QVariant&))); if(m_menuObj) m_menuObj->setVisible(true); if(m_menuObj) m_menuObj->setOpacity(0.0); m_overlayAnimPtr->start(QAbstractAnimation::DeleteWhenStopped); update(); Q_EMIT signalActivated(this); }
void StatusBarItemGroup::setActionable(bool actionable) { if(m_actionable == actionable) return; m_actionable = actionable; if(Settings::LunaSettings()->tabletUi) { if(m_actionable && !m_activeBkgPix) { Settings* settings = Settings::LunaSettings(); std::string statusBarImagesPath = settings->lunaSystemResourcesPath + "/statusBar/"; std::string filePath = statusBarImagesPath + "status-bar-menu-dropdown-tab.png"; m_activeBkgPix = new QPixmap(filePath.c_str()); } // if(m_actionable && !m_pressedBkgPix) { // Settings* settings = Settings::LunaSettings(); // std::string statusBarImagesPath = settings->lunaSystemResourcesPath + "/statusBar/"; // // std::string filePath = statusBarImagesPath + "status-bar-menu-dropdown-tab-pressed.png"; // m_pressedBkgPix = new QPixmap(filePath.c_str()); // } } // make sure the arrow is visible, but only when the item is accepting actions if(m_hasArrow) { if(!m_arrowFadeAnimPtr.isNull()) { m_arrowFadeAnimPtr->stop(); delete m_arrowFadeAnimPtr; } if((m_actionable && (m_arrowAnimProg < 1.0)) || (!m_actionable && (m_arrowAnimProg > 0.0))) { m_arrowFadeAnimPtr = new QPropertyAnimation(); m_arrowFadeAnimPtr->setPropertyName("arrowAnimProgress"); m_arrowFadeAnimPtr->setEasingCurve(AS_CURVE(statusBarArrowSlideCurve)); m_arrowFadeAnimPtr->setTargetObject(this); m_arrowFadeAnimPtr->setDuration(AS(statusBarArrowSlideDuration)); if(m_actionable && (m_arrowAnimProg < 1.0)) { // animate arrow in m_arrowFadeAnimPtr->setEndValue(1.0); } else { // animate arrow out m_arrowFadeAnimPtr->setEndValue(0.0); } m_arrowFadeAnimPtr->start(QAbstractAnimation::DeleteWhenStopped); } } }
void TopLevelWindowManager::init() { m_lockedWindow = new LockWindow(boundingRect().width(), boundingRect().height()); if (m_lockedWindow) { m_lockedWindow->init(); m_lockedWindow->setPos(0,0); connect(m_lockedWindow, SIGNAL(signalScreenLocked(int)), this, SLOT(slotScreenLocked(int))); m_lockedWindow->setParentItem(this); } m_brickSurfAnimation.setPropertyName("opacity"); m_brickSurfAnimation.setDuration(AS(brickDuration)); m_brickSurfAnimation.setEasingCurve(AS_CURVE(brickCurve)); connect(&m_brickSurfAnimation, SIGNAL(finished()), SLOT(slotBrickSurfAnimationFinished())); }
void StatusBarItemGroup::hide() { if(!m_opacityAnimPtr.isNull()) { m_opacityAnimPtr->stop(); delete m_opacityAnimPtr; } if(!isVisible()) { setVisible(false); return; } m_opacityAnimPtr = new QPropertyAnimation(); m_opacityAnimPtr->setPropertyName("opacity"); m_opacityAnimPtr->setEasingCurve(AS_CURVE(statusBarTabFadeCurve)); m_opacityAnimPtr->setTargetObject(this); m_opacityAnimPtr->setDuration(AS(statusBarTabFadeDuration)); m_opacityAnimPtr->setEndValue(0.0); connect(m_opacityAnimPtr, SIGNAL(finished()), SLOT(slotFadeAnimationFinished())); m_opacityAnimPtr->start(QAbstractAnimation::DeleteWhenStopped); }
DashboardWindowContainer::DashboardWindowContainer(DashboardWindowManager* wm, int width, int height) : GraphicsItemContainer(width, height, GraphicsItemContainer::SolidRectBackground) , m_wm(wm) , m_trackingMouseDirection(false) , m_vertLockedMovement(true) , m_isViewPortAnimationInProgress(false) , m_isWindowBeingDeleted(false) , m_animateVisibleViewportHeight(false) , m_IndexOfDeletedItem(-1) , m_FlickDirection(Ignore) , m_contentsHeight(0) , m_viewportHeight(0) , m_scrollBottom(0) , m_itemsDeleted(0) , m_verticalMouseMoveInProgress(0) , m_menuSeparatorHeight(0) , m_maskDisplayStatus(ShowNoMasks) , m_tabletTopMask(NULL) , m_tabletbottomMask(NULL) , m_tabletBackground(NULL) , m_tabletArrowUp(NULL) , m_tabletArrowDown(NULL) , m_menuSwipeBkg(NULL) , m_menuSwipeHighlight(NULL) , m_itemSeparator(NULL) , m_heightAnimation(this, &DashboardWindowContainer::heightAnimationValueChanged) , m_dashboardManualDrag(false) { setObjectName("DashboardWindowContainer"); m_isMenu = m_wm->isOverlay(); grabGesture(Qt::TapGesture); grabGesture((Qt::GestureType) SysMgrGestureFlick); connect(&m_anim, SIGNAL(finished()), SLOT(slotProcessAnimationComplete())); connect(&m_deleteAnim, SIGNAL(finished()), SLOT(slotDeleteAnimationFinished())); // Initialize the pixmaps for use. initPixmaps(); // Determine where to apply the padding depending on where we are running. if(m_isMenu) { m_FlickDirection = Ignore; m_maskDisplayStatus = ShowNoMasks; m_DashboardTopPadding = 0; m_operation = Invalid; m_BottomMaskHeightCorrection = 7; setAcceptTouchEvents(true); } else { m_BottomMaskHeightCorrection = 10; m_DashboardTopPadding = 10; SystemUiController* suc = SystemUiController::instance(); connect(suc, SIGNAL(signalNegativeSpaceAboutToChange(const QRect&, bool, bool)), SLOT(slotNegativeSpaceAboutToChange(const QRect&, bool, bool))); connect(suc, SIGNAL(signalNegativeSpaceChanged(const QRect&)), SLOT(slotNegativeSpaceChanged(const QRect&))); connect(suc, SIGNAL(signalNegativeSpaceChangeFinished(const QRect&)), SLOT(slotNegativeSpaceChangeFinished(const QRect&))); } if(m_isMenu) { m_heightAnimation.setEasingCurve(AS_CURVE(dashboardSnapCurve)); m_heightAnimation.setDuration(AS(dashboardSnapDuration)); connect(&m_heightAnimation, SIGNAL(finished()), SIGNAL(signalContainerSizeChanged())); } }