void PoiLearnSettings::setInput(quint8 value)
{
   mutex->lock();
   bool changed = data.Input != value;
   data.Input = value;
   mutex->unlock();
   if (changed) emit InputChanged(value);
}
Ejemplo n.º 2
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    mNetworkMgr(this),
    mParser(0),
    mCurrentSel(0),
    mMoreItems(0),
    mPlayer(0)
{
    ui->setupUi(this);

    mParser = new Parser3( this );

    mParser->NetworkMgr = &mNetworkMgr;
    mParser->ProgressBar = ui->Info_Progress;

    Thumnails.NetworkMgr = &mNetworkMgr;

    mDownload = new DownloadDialog(this);

    {/// Connect all the signals to the slots...
        connect( ui->Search_Button, SIGNAL(clicked()),              SLOT(SearchButton_Clicked()) );
        connect( ui->Search_Input,  SIGNAL(textChanged(QString)),   SLOT(InputChanged(QString)) );
        connect( ui->Search_Input,  SIGNAL(returnPressed()),        SLOT(SearchButton_Clicked()) );

        connect( mParser,   SIGNAL(VideoParsed(VideoPtr)),          SLOT(VideoParsed(VideoPtr)) );
        connect( mParser,   SIGNAL(PlaylistParsed(VideoFeedPtr)),   SLOT(PlaylistParsed(VideoFeedPtr)) );
        connect( mParser,   SIGNAL(UserParsed(UserPtr)),            SLOT(UserParsed(UserPtr)) );

        connect( mParser,   SIGNAL(VideoSearchParsed(VideoFeedPtr)),        SLOT(VideoSearchParsed(VideoFeedPtr)) );
        connect( mParser,   SIGNAL(PlaylistSearchParsed(PlaylistFeedPtr)),  SLOT(PlaylistSearchParsed(PlaylistFeedPtr)) );
        connect( mParser,   SIGNAL(ChannelSearchParsed(ChannelFeedPtr)),    SLOT(ChannelSearchParsed(ChannelFeedPtr)) );

        connect( mParser,   SIGNAL(VideosAdded(VideoFeedPtr)), SLOT(VideosAddded(VideoFeedPtr)) );

        connect( ui->ItemView,      SIGNAL(itemPressed(QListWidgetItem*)), SLOT(selectionChanged_ItemView(QListWidgetItem*)) );
        connect( ui->ItemContent,   SIGNAL(itemPressed(QListWidgetItem*)), SLOT(selectionChanged_ItemContent(QListWidgetItem*)) );
        connect( ui->ItemView,      SIGNAL(itemDoubleClicked(QListWidgetItem*)), SLOT(ItemDoubleClicked(QListWidgetItem*)) );
        connect( ui->ItemContent,   SIGNAL(itemDoubleClicked(QListWidgetItem*)), SLOT(ItemDoubleClicked(QListWidgetItem*)) );

        connect( ui->Play_Button,   	SIGNAL(clicked()), SLOT(Play_Clicked()) );
        connect( ui->Download_Button,	SIGNAL(clicked()),  SLOT(Download_Clicked()) );
    }

    mPlayer = new PhononYoutubePlayer(0);
    mPlayer->NetworkMgr = &mNetworkMgr;
    mPlayer->hide();
}
Ejemplo n.º 3
0
INT_PTR CALLBACK InputDialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_SIZE:
        {
            RECT rc;
            GetClientRect(hWnd, &rc);
            MoveWindow(GetDlgItem(hWnd, rtfInput), 0, 0, rc.right, rc.bottom, TRUE);
        }
        break;

    case WM_COMMAND:
        if (HIWORD(wParam) == EN_CHANGE)
            InputChanged((HWND) lParam);
        break;

    case WM_NOTIFY:
        return InputNotify(hWnd, (LPNMHDR) lParam);
        break;
    }
    return FALSE;
}
void PoiLearnSettings::emitNotifications()
{
            //if (data.Input != oldData.Input)
            emit InputChanged(data.Input);

}
Ejemplo n.º 5
0
void StateMachineMgr::buildStateMachine(QLayout* layout,bool bIsEntryLane)
{
    if(bIsEntryLane)
    {
        buildEntryWindows(layout);
    }
    else
    {
        buildExitWindows(layout);
    }
    //设备查看状态
    QState * devShowState = new MtcLaneState(&m_machine, m_devTable);
    //初始化状态
    QState * initState = new MtcLaneState(&m_machine, m_pFormLoadParam);
    //参数加载成功状态
    QState * loadSuccess = new MtcLaneState(&m_machine,m_pFormMsg);
    //加载参数成功时页面显示设置
    loadSuccess->assignProperty(m_pFormMsg, "message", tr("请放置身份卡\n按『上/下班』键登录"));
    loadSuccess->assignProperty(m_pFormMsg, "title", tr(""));
    //选择程序操作:退出程序、重启程序、关闭计算机、重启计算机
    QState *exitState = new MtcLaneState(&m_machine,m_pTableWidget);
    //工班选择状态
    QState * shiftState = new MtcLaneState(&m_machine, m_pTableWidget);
    //选择票号修改状态
    QState *IdTKstate=new MtcLaneState(&m_machine,m_pTableWidget);
    //修改票号页面状态
    QState *IdInform=new MtcLaneState(&m_machine,getInformWidget());
    //确认票号状态
    QState *confirmInvState = new MtcLaneState(&m_machine, m_pFormMsg);
    //正常上班状态
    QState* ordState = new MtcLaneState(&m_machine, m_pOrdWidget);
    //提示切换雨棚灯状态
    QState * turnOnLightState = new MtcLaneState(&m_machine, m_pFormMsg);

    turnOnLightState->assignProperty(m_pFormMsg, "message", tr("请按【雨棚开关】键\n将雨棚灯切换至绿灯"));
    //设备状态确认->初始化状态
    devShowState->addTransition(new TranConfirmDev(initState));
    //初始化状态->参数加载成功状态
    LoadParamTransition *tLoadParam = new LoadParamTransition(initState,SIGNAL(entered()));
    tLoadParam->setTargetState(loadSuccess);
    initState->addTransition(tLoadParam);
    //加载成功状态->选择程序退出状态
    TranExitApp *exitTrans = new TranExitApp(exitState);
    loadSuccess->addTransition(exitTrans);
    //加载成功状态->闯关tran->加载成功状态
    addRushTranLogOut(loadSuccess);
    //选择程序退出状态->执行退出操作
    TranSelectExitApp *exitAppTrans = new TranSelectExitApp(loadSuccess);
    exitState->addTransition(exitAppTrans);
    //退出程序操作,返回初始化界面
    TranQuitSelect *quitselTrans = new TranQuitSelect(loadSuccess);
    exitState->addTransition(quitselTrans);
    //选择工班时出现闯关
    addRushTranLogOut(shiftState);


    //上班后出现闯关
    QHistoryState* rushState = new QHistoryState(ordState);
    TranRushLogin* tranLogin = new TranRushLogin(getDeviceFactory()->getIOBoard(), SIGNAL(InputChanged(quint32,quint8)));
    tranLogin->setTargetState(rushState);
    ordState->addTransition(tranLogin);
    //上班后收费员按F12键,切换菜单
    QHistoryState* showLogState = new QHistoryState(ordState);
    TranChangeVpr* tranVpr = new TranChangeVpr(showLogState);
    ordState->addTransition(tranVpr);

    //建立上班后子状态机
    m_pOrdWidget->initStateMachine(ordState, loadSuccess);
    //加载参数成功->用户验证身份
    TranShift *tShowPassword = new TranShift(shiftState);
    loadSuccess->addTransition(tShowPassword);

    //打开雨棚灯状态闯关
    addRushTranLogOut(turnOnLightState);
    //打开雨棚灯状态->正常上班状态
    TranTurnOnCanLight* tOrd = new TranTurnOnCanLight(ordState);
    turnOnLightState->addTransition(tOrd);

    //确认卡盒卡ID操作,模拟实现
    TranCardBox *tGotoLight = new TranCardBox(turnOnLightState);

    //入口没有票号处理
    if(getLaneInfo()->isEntryLane())
    {
        shiftState->addTransition(new TranEntryConfirmShift(turnOnLightState));
    }
    else
    {
        //下班时票号操作
        QState *logOutIdState=new MtcLaneState(&m_machine,m_pTableWidget);
        QState *logOutInform=new MtcLaneState(&m_machine,getInformWidget());
        loadSuccess->addTransition(new TranShowInvoiceMenu(logOutIdState));
        logOutIdState->addTransition(new TranModifyInvoice(logOutInform));
        logOutIdState->addTransition(new TranChangeUpInvoice(logOutInform));
        logOutInform->addTransition(new TranFinInvoice(loadSuccess));
        logOutIdState->addTransition(new TranRtInvConfirm(loadSuccess));
        logOutInform->addTransition(new TranRtInvConfirm(loadSuccess));

        //确认班次,用户从班次中选择一个班次上班,班次记录到LaneInfo
        TranConfirmShift *tConfirm = new TranConfirmShift(confirmInvState);
        shiftState->addTransition(tConfirm);
        //修改票号时出现闯关
        addRushTranLogOut(IdTKstate);
        //修改票号时出现闯关
        addRushTranLogOut(IdInform);
        //确认票号状态闯关
        addRushTranLogOut(confirmInvState);
        //选择票号处理菜单,包括票据换上、修改票号
        TranShowInvoiceMenu * tMessIDTick = new TranShowInvoiceMenu(IdTKstate);
        confirmInvState->addTransition(tMessIDTick);
        //显示插入票号页面
        TranChangeUpInvoice *tInsertTK=new TranChangeUpInvoice(IdInform);//跳转到票号输入页面
        IdTKstate->addTransition(tInsertTK);
        //显示修改票号页面
        TranModifyInvoice *tInformTK=new TranModifyInvoice(IdInform);
        IdTKstate->addTransition(tInformTK);
        //完成票号操作,跳转票号确认状态
        TranFinInvoice *tShowInform=new TranFinInvoice(confirmInvState); //从页面输入和修改跳转到票号页面
        IdInform->addTransition(tShowInform);
        //输入修改票号跳转
        TranRtInvConfirm *treturntable=new TranRtInvConfirm(confirmInvState);
        IdInform->addTransition(treturntable);
        IdTKstate->addTransition(new TranRtInvConfirm(confirmInvState));
        //显示确认卡盒卡界面
        confirmInvState->addTransition(tGotoLight);
    }
    //返回等待上班状态
    shiftState->addTransition(new SpecialKeySignalTransition(loadSuccess, KeyEsc, KC_Func));
    confirmInvState->addTransition(new SpecialKeySignalTransition(loadSuccess, KeyEsc, KC_Func));
    //跳转到功能页面
    m_machine.setInitialState(devShowState);
    m_machine.start();
    //上班前功能界面
    loadSuccess->addTransition(new TranLogOutFunc(loadSuccess));
    QTimer::singleShot(1000, this, SLOT(beginInitState()));
}
Ejemplo n.º 6
0
void StateMachineMgr::addRushTranLogOut(QState *state)
{
    TranRushLogout* tRush = new TranRushLogout(getDeviceFactory()->getIOBoard(), SIGNAL(InputChanged(quint32,quint8)));
    tRush->setTargetState(state);
    state->addTransition(tRush);
}