16 #include "../QtPlayer.h" 
   18 #include <QMessageBox> 
   19 #include <QFileDialog> 
   25 #include <QCloseEvent> 
   26 #include <QApplication> 
   30     , vbox(new QVBoxLayout(this))
 
   31     , menu(new QMenuBar(this))
 
   33     , player(new 
openshot::QtPlayer(video->GetRenderer()))
 
   35     setWindowTitle(
"OpenShot Player");
 
   37     menu->setNativeMenuBar(
false);
 
   39     QAction *action = NULL;
 
   40     action = menu->addAction(
"Choose File");
 
   41     connect(action, SIGNAL(triggered(
bool)), 
this, SLOT(open(
bool)));
 
   43     vbox->addWidget(menu, 0);
 
   44     vbox->addWidget(video, 1);
 
   51     setFocusPolicy(Qt::StrongFocus);
 
   62     QWidget *pWin = QApplication::activeWindow();
 
   70     if (event->key() == Qt::Key_Space || event->key() == Qt::Key_K) {
 
   81             if (player->
Speed() == 0)
 
   91     else if (event->key() == Qt::Key_J) {
 
   92         if (player->
Speed() - 1 != 0)
 
  100     else if (event->key() == Qt::Key_L) {
 
  101         if (player->
Speed() + 1 != 0)
 
  110     else if (event->key() == Qt::Key_Left) {
 
  111         if (player->
Speed() != 0)
 
  115     else if (event->key() == Qt::Key_Right) {
 
  116         if (player->
Speed() != 0)
 
  120     else if (event->key() == Qt::Key_Escape) {
 
  121         QWidget *pWin = QApplication::activeWindow();
 
  126         QApplication::quit();
 
  130     QWidget::keyPressEvent(event);
 
  133 void PlayerDemo::open(
bool checked)
 
  136     const QString filename = QFileDialog::getOpenFileName(
this, 
"Open Video File");
 
  137     if (filename.isEmpty()) 
return;
 
  140     QString project_json = 
"";
 
  141     if (filename.endsWith(
".osp")) {
 
  142         QFile file(filename);
 
  143         if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
 
  145         while (!file.atEnd()) {
 
  146             QByteArray line = file.readLine();
 
  147             project_json += line;
 
  154         player->
SetSource(filename.toStdString());