void PoiLearnSettings::setInput(quint8 value) { mutex->lock(); bool changed = data.Input != value; data.Input = value; mutex->unlock(); if (changed) emit InputChanged(value); }
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(); }
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); }
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())); }
void StateMachineMgr::addRushTranLogOut(QState *state) { TranRushLogout* tRush = new TranRushLogout(getDeviceFactory()->getIOBoard(), SIGNAL(InputChanged(quint32,quint8))); tRush->setTargetState(state); state->addTransition(tRush); }