#include "rm_frame_play.h" #include "../fm_dimensions.h" #include "fm_button.h" #include #include "../core/rm_player.h" #include "../data/rm_video_list.h" #include "../data/rm_video_item_loader.h" #include "../core/rm_play_process.h" #include "rm_widget_video_list.h" #include "../core/fm_strings.h" #include #if (SPEED_IN_PLAY_CONTROL) #include "rm_slider.h" #include "fm_colors.h" #endif // SPEED_IN_PLAY_CONTROL #if (USE_RM_KEYBOARD_EVENT) #include "../core/rm_key_event.h" #endif #if (RM_MODEL == RM_MODEL_TYPE_TB4000) #include "window_main.h" #endif // TB4000 RMFramePlay::RMFramePlay(QWidget *parent) : RMWidgetBase(parent,true) { #if (RM_MODEL != RM_MODEL_TYPE_EMT_KR) setStyleSheet("RMFramePlay{border-image: url(:/image/play_bg.png) 0 0 0 0 repeat stretch;}"); #endif _createLayouts(); // 플레이 중 버튼 상태 업데이트 connect(RMPlayer::instance(),SIGNAL(playEvent(PLAY_EVENT, RMVideoItem*)),SLOT(onPlayEvent(PLAY_EVENT, RMVideoItem*))); // 리스트 로딩 완료 후 버튼 상태 업데이트 connect(RMVideoFileList::instance(),SIGNAL(listUpdateEnd(bool,RMVideoItem*)),this,SLOT(onLoadingListEnd(bool,RMVideoItem*))); //_pressTimer = new QElapsedTimer(); } void RMFramePlay::_createLayouts() { layout = new QHBoxLayout(this); layout->setContentsMargins(0,1,0,0); #if (RM_MODEL == RM_MODEL_TYPE_EMT_KR) QWidget* left = new QWidget(this); left->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); layout->addWidget(left); QHBoxLayout* left_layout = new QHBoxLayout(left); left_layout->setAlignment(Qt::AlignBottom | Qt::AlignLeft); left_layout->setContentsMargins(10,0,0,10); QLabel* vLabel = new QLabel(left); vLabel->setText(QString().sprintf("v%d.%d.%d",RM_MODEL_VERSION_0,RM_MODEL_VERSION_1,RM_MODEL_VERSION_2)); vLabel->setStyleSheet("font-family: Arial;font-size: 14px;color : #AAAAAA;"); left_layout->addWidget(vLabel); layout->setAlignment(Qt::AlignVCenter); layout->setSpacing(10); //LAYOUT_SPACE(layout,17,0);// RMLayout::addSpacer(layout,16,0); QSize buttonSize = QSize(62,62); filePreviousButton = FMButton::btn2(this,layout,"play_previous","play_file_previous",buttonSize); filePreviousButton->setEnabled(false); frameBackwardButton = FMButton::btn2(this,layout,"play_backward","play_backward",buttonSize); frameBackwardButton->setAutoRepeat(false); RMKeyEvent* k = RMKeyEvent::instance(); connect(frameBackwardButton,SIGNAL(pressed()),k,SLOT(onPressedB1())); connect(frameBackwardButton,SIGNAL(released()),k,SLOT(onReleasedB1())); frameBackwardButton->setEnabled(false); //_paused = false; // 正方向再生 MKU8("\xe6\xad\xa3\xe6\x96\xb9\xe5\x90\x91\xe5\x86\x8d\xe7\x94\x9f") playButton = FMButton::btnCheck2(this,layout,"play_play","play_play",buttonSize); connect(playButton, SIGNAL(released()),this,SLOT(onPlayOrPause())); playButton->setEnabled(false); playShortcut = new QShortcut(QKeySequence(Qt::Key_Space), this); playShortcut->setContext(Qt::ApplicationShortcut); connect(playShortcut, SIGNAL(activated()),this,SLOT(onPlayOrPause())); playShortcut->setEnabled(false); restartShortcut = new QShortcut(QKeySequence(Qt::Key_Backspace), this); restartShortcut->setContext(Qt::ApplicationShortcut); connect(restartShortcut, SIGNAL(activated()),RMPlayer::instance(),SLOT(onPlayRestart())); restartShortcut->setEnabled(false); stopButton = FMButton::btn2(this,layout,"play_stop","play_stop",buttonSize); connect(stopButton,SIGNAL(clicked()),RMPlayer::instance(),SLOT(onUserStop())); // 정지 stopButton->setEnabled(false); stopButton->setHidden(true); // 10秒進む MKU8("\x31\x30\xe7\xa7\x92\xe9\x80\xb2\xe3\x82\x80") frameForwardButton = FMButton::btn2(this,layout,"play_forward","play_forward",buttonSize); frameForwardButton->setAutoRepeat(false); connect(frameForwardButton,SIGNAL(pressed()),k,SLOT(onPressedF1())); connect(frameForwardButton,SIGNAL(released()),k,SLOT(onReleasedF1())); frameForwardButton->setEnabled(false); fileNextButton = FMButton::btn2(this,layout,"play_next","play_file_next",buttonSize); fileNextButton->setEnabled(false); connect(k,SIGNAL(pressedF1()),RMPlayer::instance(),SLOT(onSeekForwardStart())); connect(k,SIGNAL(releasedF1()),RMPlayer::instance(),SLOT(onSeekStepEnd())); connect(k,SIGNAL(pressedB1()),RMPlayer::instance(),SLOT(onSeekBackwardStart())); connect(k,SIGNAL(releasedB1()),RMPlayer::instance(),SLOT(onSeekStepEnd())); connect(k,SIGNAL(pressedFF()),RMPlayer::instance(),SLOT(onSeekFrameForwardStart())); connect(k,SIGNAL(releasedFF()),RMPlayer::instance(),SLOT(onSeekStepEnd())); QWidget* right = new QWidget(this); right->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); layout->addWidget(right); QHBoxLayout* right_layout = new QHBoxLayout(right); right_layout->setAlignment(Qt::AlignVCenter | Qt::AlignRight); ZERO_LAYOUT(right_layout); #else // RM_MODEL_TYPE_EMT_KR layout->setAlignment(Qt::AlignVCenter); #if !(SPEED_IN_PLAY_CONTROL) const int space = 10; #else // SPEED_IN_PLAY_CONTROL const int space = 7; #endif // SPEED_IN_PLAY_CONTROL layout->setSpacing(space); LAYOUT_SPACE(layout,17,0);// RMLayout::addSpacer(layout,16,0); QSize buttonSize = QSize(62,62); #if !(REMOVE_SEEK_BUTTON) // 10秒前へ 이전으로 이동한다 MKU8("\x31\x30\xe7\xa7\x92\xe5\x89\x8d\xe3\x81\xb8") #if (LIVE_LANGUAGE2) frameBackwardButton = FMButton::btn2(this,layout,"play_backward","play_backward",buttonSize); #else // #if (LIVE_LANGUAGE2) frameBackwardButton = FMButton::btn(this,layout,"play_backward",FMS::txt("play_backward"),buttonSize); #endif // #if (LIVE_LANGUAGE2) frameBackwardButton->setAutoRepeat(false); #if (USE_RM_KEYBOARD_EVENT) RMKeyEvent* k = RMKeyEvent::instance(); connect(frameBackwardButton,SIGNAL(pressed()),k,SLOT(onPressedB1())); connect(frameBackwardButton,SIGNAL(released()),k,SLOT(onReleasedB1())); #endif frameBackwardButton->setEnabled(false); #endif // #if !(REMOVE_SEEK_BUTTON) #if (RM_MODEL == RM_MODEL_TYPE_KEIYO1 || RM_MODEL == RM_MODEL_TYPE_MBJ5010 || RM_MODEL == RM_MODEL_TYPE_FC_DR232W) // 버튼아이콘 다름 filePreviousButton = FMButton::btn(this,layout,"play_backward",FMS::txt("play_file_previous"),buttonSize); filePreviousButton->setEnabled(false); #endif //_paused = false; // 正方向再生 MKU8("\xe6\xad\xa3\xe6\x96\xb9\xe5\x90\x91\xe5\x86\x8d\xe7\x94\x9f") #if (LIVE_LANGUAGE2) playButton = FMButton::btnCheck2(this,layout,"play_play","play_play",buttonSize); #else // LIVE_LANGUAGE2 playButton = FMButton::btnCheck(this,layout,"play_play",FMS::txt("play_play"),buttonSize); #endif // LIVE_LANGUAGE2 //playButton->setCheckable(false); //connect(playButton, SIGNAL(released()),RMPlayer::instance(),SLOT(onPlayOrPause())); connect(playButton, SIGNAL(released()),this,SLOT(onPlayOrPause())); playButton->setEnabled(false); #if !(REMOVE_ALL_SHORT_CUTS) playShortcut = new QShortcut(QKeySequence(Qt::Key_Space), this); playShortcut->setContext(Qt::ApplicationShortcut); connect(playShortcut, SIGNAL(activated()),this,SLOT(onPlayOrPause())); playShortcut->setEnabled(false); restartShortcut = new QShortcut(QKeySequence(Qt::Key_Backspace), this); restartShortcut->setContext(Qt::ApplicationShortcut); connect(restartShortcut, SIGNAL(activated()),RMPlayer::instance(),SLOT(onPlayRestart())); restartShortcut->setEnabled(false); #endif // 停止 MKU8("\xe5\x81\x9c\xe6\xad\xa2") #if (LIVE_LANGUAGE2) stopButton = FMButton::btn2(this,layout,"play_stop","play_stop",buttonSize); #else // LIVE_LANGUAGE2 stopButton = FMButton::btn(this,layout,"play_stop",FMS::txt("play_stop"),buttonSize); #endif // LIVE_LANGUAGE2 connect(stopButton,SIGNAL(clicked()),RMPlayer::instance(),SLOT(onUserStop())); // 정지 stopButton->setEnabled(false); #if !(REMOVE_SEEK_BUTTON) // 10秒進む MKU8("\x31\x30\xe7\xa7\x92\xe9\x80\xb2\xe3\x82\x80") #if (LIVE_LANGUAGE2) frameForwardButton = FMButton::btn2(this,layout,"play_forward","play_forward",buttonSize); #else // LIVE_LANGUAGE2 frameForwardButton = FMButton::btn(this,layout,"play_forward",FMS::txt("play_forward"),buttonSize); #endif // LIVE_LANGUAGE2 frameForwardButton->setAutoRepeat(false); #if (USE_RM_KEYBOARD_EVENT) connect(frameForwardButton,SIGNAL(pressed()),k,SLOT(onPressedF1())); connect(frameForwardButton,SIGNAL(released()),k,SLOT(onReleasedF1())); //#else // connect(frameForwardButton,SIGNAL(clicked()),RMPlayer::instance(),SLOT(onSeekForward())); #endif frameForwardButton->setEnabled(false); #endif // #if !(REMOVE_SEEK_BUTTON) // 以前ファイル #if !(RM_MODEL == RM_MODEL_TYPE_KEIYO1 || RM_MODEL == RM_MODEL_TYPE_MBJ5010 || RM_MODEL == RM_MODEL_TYPE_FC_DR232W) #if (LIVE_LANGUAGE2) filePreviousButton = FMButton::btn2(this,layout,"play_previous","play_file_previous",buttonSize); #else // LIVE_LANGUAGE2 filePreviousButton = FMButton::btn(this,layout,"play_previous",FMS::txt("play_file_previous"),buttonSize); #endif // LIVE_LANGUAGE2 filePreviousButton->setEnabled(false); #endif #if (RM_MODEL == RM_MODEL_TYPE_TB4000) layout->removeWidget(filePreviousButton); layout->insertWidget(1,filePreviousButton); #endif // 次のファイル #if (RM_MODEL == RM_MODEL_TYPE_KEIYO1 || RM_MODEL == RM_MODEL_TYPE_MBJ5010 || RM_MODEL == RM_MODEL_TYPE_FC_DR232W) fileNextButton = FMButton::btn(this,layout,"play_forward",FMS::txt("play_file_next"),buttonSize); #else #if (LIVE_LANGUAGE2) fileNextButton = FMButton::btn2(this,layout,"play_next","play_file_next",buttonSize); #else // LIVE_LANGUAGE2 fileNextButton = FMButton::btn(this,layout,"play_next",FMS::txt("play_file_next"),buttonSize); #endif // LIVE_LANGUAGE2 #endif fileNextButton->setEnabled(false); //connect(fileNextButton,SIGNAL(clicked()),fileList,SLOT(onPlayNextVideo())); #if !(REMOVE_SEEK_BUTTON) #if (USE_RM_KEYBOARD_EVENT) connect(k,SIGNAL(pressedF1()),RMPlayer::instance(),SLOT(onSeekForwardStart())); connect(k,SIGNAL(releasedF1()),RMPlayer::instance(),SLOT(onSeekStepEnd())); connect(k,SIGNAL(pressedB1()),RMPlayer::instance(),SLOT(onSeekBackwardStart())); connect(k,SIGNAL(releasedB1()),RMPlayer::instance(),SLOT(onSeekStepEnd())); connect(k,SIGNAL(pressedFF()),RMPlayer::instance(),SLOT(onSeekFrameForwardStart())); connect(k,SIGNAL(releasedFF()),RMPlayer::instance(),SLOT(onSeekStepEnd())); #if (PLAY_SYNC_FIX2) connect(k,SIGNAL(pressedBF()),RMPlayer::instance(),SLOT(onSeekFrameBackwardStart())); connect(k,SIGNAL(releasedBF()),RMPlayer::instance(),SLOT(onSeekStepEnd())); #endif // PLAY_SYNC_FIX2 #endif // USE_RM_KEYBOARD_EVENT #endif // REMOVE_SEEK_BUTTON #endif // #else // RM_MODEL_TYPE_EMT_KR #if !(LIVE_LANGUAGE2) #if (LIVE_LANGUAGE_CHANGE) RMLanguage* lng = RMLanguage::instance(); lng->appendENGToolTip(filePreviousButton,QString("Move to previous file")); #if !(REMOVE_SEEK_BUTTON) lng->appendENGToolTip(frameBackwardButton,QString("Move 1 sec backward")); #endif lng->appendENGToolTip(playButton,QString("Play")); lng->appendENGToolTip(stopButton,QString("Stop")); #if !(REMOVE_SEEK_BUTTON) lng->appendENGToolTip(frameForwardButton,QString("Move 1 sec forward")); #endif lng->appendENGToolTip(fileNextButton,QString("Move to next file")); #endif #endif // #if (LIVE_LANGUAGE2) #if (USE_MAXIMIZE) maxSpace = new QSpacerItem(1,0,QSizePolicy::Expanding,QSizePolicy::Fixed); #endif #if (SPEED_IN_PLAY_CONTROL) QWidget* speedControl = new QWidget(this); speedControl->setFixedWidth(130); layout->addWidget(speedControl); QHBoxLayout* speedLayout = new QHBoxLayout(speedControl); ZERO_LAYOUT(speedLayout); speedLayout->setAlignment(Qt::AlignVCenter); speedBtn = FMButton::btn(speedControl,speedLayout,"v_speed",FMS::txt("play_speed"), QSize(30,30)); connect(speedBtn,SIGNAL(clicked()),SLOT(onDefaultSpeed())); speedSlider = new RMReleasedSlider(speedControl); speedSlider->setTickInterval(1); speedSlider->setValue(DEFAULT_SPEED_INDEX); // 1.0 = 2 speedSlider->setRange(0,3); FMSlider(speedSlider,"small_slider",FM_SILDER_COLOR,0x666666,true); speedLayout->addWidget(speedSlider); LAYOUT_SPACE(speedLayout,5,0); speedLabel = new QLabel(speedControl); speedLabel->setAlignment(Qt::AlignCenter); FMLabelBackground(speedLabel,"speed_label","Arial",0xf5f5f5,11,false,0x262626); speedLabel->setText("1 x"); speedLabel->setFixedSize(25,16); speedLayout->addWidget(speedLabel); //qInfo() << speedControl->width() << __FUNCTION__; RMPlayer::instance()->setSpeedSlider(speedSlider,speedLabel); #endif // #if (SPEED_IN_PLAY_CONTROL) #if (RM_MODEL == RM_MODEL_TYPE_TB4000) layout->addItem(maxSpace); tool = new QWidget(this); layout->addWidget(tool); QHBoxLayout* toolLayout = new QHBoxLayout(tool); ZERO_LAYOUT(toolLayout); reportButton = FMButton::btn(tool,toolLayout,"report_t",FMS::txt("register"),QSize(77,70)); openButton = FMButton::btn(tool,toolLayout,"open",FMS::txt("open"),QSize(77,70)); saveButton = FMButton::btn(tool,toolLayout,"save_t",FMS::txt("save_video"),QSize(77,70)); fSaveButton = FMButton::btn(tool,toolLayout,"ffilesave",FM_WSTR(L"파일저장"),QSize(125,70)); fPrintButton = FMButton::btn(tool,toolLayout,"fprint",FM_WSTR(L"프린트"),QSize(125,70)); fReportButtonCH1 = FMButton::btn(tool,toolLayout,"freport_ch1",FM_WSTR(L"1번채널 보고서작성"),QSize(125,70)); fReportButtonCH2 = FMButton::btn(tool,toolLayout,"freport_ch2",FM_WSTR(L"2번채널 보고서작성"),QSize(125,70)); fSaveButton->setHidden(true); fPrintButton->setHidden(true); fReportButtonCH1->setHidden(true); fReportButtonCH2->setHidden(true); //endItem = new QSpacerItem(10,0); //toolLayout->addSpacerItem(endItem); #elif (RM_MODEL_EMT_KR) QLabel* seperator = new QLabel(this); seperator->setPixmap(QPixmap(":/image/play_seperator.png")); right_layout->addWidget(seperator); openButton = FMButton::btn2(this,right_layout,"open","open",QSize(121,70)); #else // RM_MODEL_TYPE_TB4000 // MKU8("\xe3\x83\x95\xe3\x82\xa1\xe3\x82\xa4\xe3\x83\xab\xe3\x82\x92\xe9\x96\x8b\xe3\x81\x8f") #if (LIVE_LANGUAGE2) openButton = FMButton::btn2(this,layout,"open","open",QSize(121,70)); #else // LIVE_LANGUAGE2 openButton = FMButton::btn(this,layout,"open",FMS::txt("open"),QSize(121,70)); #endif // LIVE_LANGUAGE2 #endif // RM_MODEL_TYPE_TB4000 layout->setAlignment(openButton,Qt::AlignRight); #if (LIVE_LANGUAGE2) connect(RMLanguage::instance(),SIGNAL(languageChange(RMLanguage::LANGUAGE_TYPE)),SLOT(onLanguageChange(RMLanguage::LANGUAGE_TYPE))); onLanguageChange(RMLanguage::instance()->language()); #endif // LIVE_LANGUAGE2 } #if (LIVE_LANGUAGE2) void RMFramePlay::onLanguageChange(RMLanguage::LANGUAGE_TYPE language) { Q_UNUSED(language) //qInfo() << "LANGUAGE:" << RMLanguage::instance()->language() << RMLanguage::instance()->languageTag() << __FUNCTION__; openButton->setIcon("open" + RMLanguage::instance()->languageTag()); } #endif // LIVE_LANGUAGE2 #if (SPEED_IN_PLAY_CONTROL) void RMFramePlay::onDefaultSpeed() { speedSlider->setValue(DEFAULT_SPEED_INDEX); RMPlayer::instance()->updateSpeedForce(1.0); speedLabel->setText("1 x"); } #endif // #if (SPEED_IN_PLAY_CONTROL) void RMFramePlay::onPlayOrPause() { playButton->blockFor(150); RMPlayer::instance()->onPlayOrPause(); } RMFramePlay::~RMFramePlay() { // delete _pressTimer; } void RMFramePlay::onLoadingListEnd(bool bLoading,RMVideoItem* selected) { Q_UNUSED(selected) Q_UNUSED(bLoading) bool bExist = RMVideoFileList::instance()->filteredItems().count() > 0; playButton->setEnabled(bExist); filePreviousButton->setEnabled(bExist); fileNextButton->setEnabled(bExist); #if !(REMOVE_ALL_SHORT_CUTS) playShortcut->setEnabled(bExist); restartShortcut->setEnabled(bExist); #endif } void RMFramePlay::onAppEvent(RMApp::Event event,int param) { if(event == RMApp::WillFullScreen || event == RMApp::WillNormalScreen) { #if (RM_MODEL == RM_MODEL_TYPE_TB4000) WindowMain* pw = (WindowMain*)RMApp::instance()->pMainWindow; // 일반화면에서는 무조건 제거 if(event == RMApp::WillNormalScreen) { fSaveButton->setHidden(true); fPrintButton->setHidden(true); fReportButtonCH1->setHidden(true); fReportButtonCH2->setHidden(true); //endItem->changeSize(0,0); } //qInfo() << "pw->mMAXIMIZE:" << pw->mMAXIMIZE << "EVENT:" << event << __FUNCTION__; // 최대화 모드가 아닌 전체화면일 경우 채널버튼 켜기 if(RMApp::mMAXIMIZE) { } else { if(event == RMApp::WillFullScreen) { fSaveButton->setHidden(false); fPrintButton->setHidden(false); #if (SINGLE_CH_VIEWER) fReportButtonCH1->setHidden(false); #else // SINGLE_CH_VIEWER #if (FORCE_2CH) fReportButtonCH1->setHidden(pw->bSubFullScreen); fReportButtonCH2->setHidden(!pw->bSubFullScreen); #else // FORCE_2CH fReportButtonCH1->setHidden(pw->bSubFullScreen); #endif // FORCE_2CH #endif // #if (!SINGLE_CH_VIEWER) //fReportButton->setText(pw->bSubFullScreen ? FM_WSTR(L"2번채널\n보고서작성") : FM_WSTR(L"1번채널\n보고서작성") ); //endItem->changeSize(10,0); } // 최대화 모드에서는 건드리지 않는다 openButton->setHidden((event == RMApp::WillFullScreen)); saveButton->setHidden((event == RMApp::WillFullScreen)); reportButton->setHidden((event == RMApp::WillFullScreen)); } #else // TB4000 #if (USE_MAXIMIZE) if(event == RMApp::WillNormalScreen) { layout->removeItem(maxSpace); } else { layout->insertItem(layout->indexOf(openButton),maxSpace); } #endif // USE_MAXIMIZE if(param == 1) { #if (USE_MAXIMIZE) #endif // #if (USE_MAXIMIZE) } else { openButton->setHidden((event == RMApp::WillFullScreen)); } #endif // #else // TB4000 } } void RMFramePlay::onPlayEvent(PLAY_EVENT event, RMVideoItem* item) { Q_UNUSED(item) //#if (PLAY_CONTINUE_EVENT) // 다음파일 플레이시 변화 없도록 처리 // if(RMPlayProcess::instance()->isLoadingNextFile()) { // if(frameForwardButton->isDown()) // { //// QCoreApplication::processEvents(); //// emit frameForwardButton->released(); // } // return; // } //#endif if(event == PLAY_DID_PAUSED || event == PLAY_DID_PLAYED || event == PLAY_DID_CLEARED) { bool bShowPaused = (event == PLAY_DID_PLAYED); //qInfo() << "bShowPaused:" << bShowPaused << __FUNCTION__; playButton->setChecked(bShowPaused); //playButton->setStyleStatus("paused",bShowPaused); // 一時停止, 正方向再生 // MKU8("\xe6\xad\xa3\xe6\x96\xb9\xe5\x90\x91\xe5\x86\x8d\xe7\x94\x9f") #if(REMOVE_OLD_C) playButton->setToolTip(bShowPaused ? FMS::txt("play_pause") :FMS::txt("play_play")); #else // REMOVE_OLD_C #if (LIVE_LANGUAGE_CHANGE) if(RMLanguage::isJP()) { #endif //LIVE_LANGUAGE_CHANGE playButton->setToolTip(bShowPaused ? FMS::txt("play_pause") :FMS::txt("play_play")); #if (LIVE_LANGUAGE_CHANGE) } else { playButton->setToolTip(bShowPaused ? "Pause" : "Play"); } #endif // LIVE_LANGUAGE_CHANGE #endif // REMOVE_OLD_C } if(event == PLAY_DID_CLEARED && (item != NULL || RMPlayProcess::instance()->isLoadingNextFile())) { return; } if(event == PLAY_DID_CLEARED || event == PLAY_DID_LOADED || event == PLAY_DID_USER_STOP) { // 다음파일로 넘어갈때 5(PLAY_DID_CLEARED),5,2(PLAY_DID_LOADED) 발생 // TODO 초기 리스트 로딩시 여러번 발생하는데 특별히 문제는 없음 // 변경사항이 아니면 처리하지 않는다. // ??? pressed 된 상태에서 enabled 처리되면 release 안됨!! #if !(REMOVE_SEEK_BUTTON) bool bEnabled = (event == PLAY_DID_LOADED); if(bEnabled != frameBackwardButton->isEnabled()) #endif { #if !(REMOVE_SEEK_BUTTON) frameBackwardButton->setEnabled(event == PLAY_DID_LOADED); frameForwardButton->setEnabled(event == PLAY_DID_LOADED); #endif stopButton->setEnabled(event == PLAY_DID_LOADED); } #if (PROFILE_VIDEO_FILE_LOADING && PROFILE_VIDEO_FILE_LOADING_AUTOPLAY) if(event == PLAY_DID_LOADED && item->durationInMSecs() > 1000) { QTimer::singleShot(1000,Qt::PreciseTimer,this,SLOT(onTestNext())); } #endif } } #if (PROFILE_VIDEO_FILE_LOADING && PROFILE_VIDEO_FILE_LOADING_AUTOPLAY) void RMFramePlay::onTestNext() { emit fileNextButton->clicked(); } #endif