void WatchMoviesView::startPlay() { if(mUi->moviesTable->selectedItems().size() > 0 && mUi->moviesTable->item(mUi->moviesTable->currentRow(), 8)) { QString file = mUi->moviesTable->item(mUi->moviesTable->currentRow(), 8)->text(); bool loadMovie = false; bool startMode = false; bool movieOk = false; bool playOk = false; MovieFile *movieFile = NULL; ModeManager *modeManager = ModeManager::instance(); if(mMovieFile) { if(mMovieFile->getMovieFile() == file) mMovieFile->rewind(); else loadMovie = true; } else { loadMovie = true; startMode = true; } if(loadMovie) { movieFile = new MovieFile(OptionsView::instance()->getMoviesDir() + "/" + file); movieOk = movieFile->loadMovie(true); } if(movieOk && startMode) { if(modeManager->startMode(MODE_PLAY)) { modeManager->setMovieFile(movieFile); playOk = true; } } else if(movieOk && !startMode) { modeManager->setMovieFile(movieFile); playOk = true; } if(playOk) { connect(movieFile, SIGNAL(movieStarted()), this, SLOT(onPlayStart())); connect(movieFile, SIGNAL(movieTime(uint32)), this, SLOT(onPlayTime(uint32))); mUi->stopButton->setEnabled(true); mUi->movieFileLabelValue->setText(mUi->moviesTable->item(mUi->moviesTable->currentRow(), 8)->text()); mUi->speedLabelValue->setText("1.00x"); mUi->speedSlider->setValue(0); mUi->playProgressBar->setValue(0); mUi->statusLabelValue->setText(tr("Waiting tibia connection...")); mUi->statusLabelValue->setStyleSheet("color: #808000; font-weight: bold"); if(mMovieFile) delete mMovieFile; mMovieFile = movieFile; } } else { qCritical() << qPrintable(tr("You must select a movie to play.")); } }