Exemple #1
0
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);
}
Exemple #3
0
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();
}
Exemple #5
0
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;
}