void Weather::cursorLeft() { WeatherScreen *ws = prevScreen(); if (ws && ws->canShowScreen()) { hideScreen(); showScreen(ws); if (!m_paused) m_nextpage_Timer->start((int)(1000 * m_nextpageInterval)); } }
void ScreenManager::hideScreen() { CatanScreen *screen = qobject_cast<CatanScreen*>(sender()); if( !screen ) return; screen->setVisible(false); disconnect( screen, SIGNAL(SlideFinished()), this, SLOT(hideScreen())); activeScreen->setEnabled(true); }
void Weather::nextpage_timeout() { WeatherScreen *nxt = nextScreen(); if (nxt && nxt->canShowScreen()) { hideScreen(); showScreen(nxt); } else LOG(VB_GENERAL, LOG_ERR, "Next screen not ready"); m_nextpage_Timer->start((int)(1000 * m_nextpageInterval)); }
void ScreenManager::SetScreen(SCREEN_NAME::ENUM screen) { //if( !screenMap.contains(screen) ) //{ // LOG_ERROR( "Tried to set active screen to non-existant screen"); // return; //} CatanScreen *newScreen = screenMap[screen]; Q_ASSERT( newScreen ); if( activeScreen == newScreen ) return; if( activeScreen ) { QPoint deltaPos = newScreen->GetPos() - activeScreen->GetPos(); activeScreen->SlideTo(QPoint(mainWindow->width()*-deltaPos.x(), mainWindow->height()*-deltaPos.y()), ScreenTransitionSpeed //speed ); activeScreen->setEnabled(false); activeScreen->SetActive(false); activeScreen->setFocusPolicy(Qt::NoFocus); newScreen->move(QPoint(mainWindow->width()*deltaPos.x(), mainWindow->height()*deltaPos.y())); newScreen->SlideTo(QPoint(0,0), ScreenTransitionSpeed); connect( activeScreen, SIGNAL(SlideFinished()), this, SLOT(hideScreen()) ); } else { newScreen->move(QPoint(0,0)); newScreen->setEnabled(true); } activeScreen = newScreen; newScreen->SetActive(true); newScreen->setVisible(true); newScreen->setFocusPolicy(Qt::StrongFocus); //newScreen->setFocus(); currentScreen = screen; moveLogo(); newScreen->setFocus(); }
bool Weather::keyPressEvent(QKeyEvent *event) { if (GetFocusWidget() && GetFocusWidget()->keyPressEvent(event)) return true; bool handled = false; QStringList actions; handled = GetMythMainWindow()->TranslateKeyPress("Weather", event, actions); for (int i = 0; i < actions.size() && !handled; i++) { QString action = actions[i]; handled = true; if (action == "LEFT") cursorLeft(); else if (action == "RIGHT") cursorRight(); else if (action == "PAUSE") holdPage(); else if (action == "MENU") setupPage(); else if (action == "UPDATE") { m_srcMan->doUpdate(); } else if (action == "ESCAPE") { m_nextpage_Timer->stop(); hideScreen(); Close(); } else handled = false; } if (!handled && MythScreenType::keyPressEvent(event)) handled = true; return handled; }