1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/* smplayer, GUI front-end for mplayer.
Copyright (C) 2006-2008 Ricardo Villalba <rvm@escomposlinux.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "test.h"
#include "smplayercorelib.h"
#include "helper.h"
#include "global.h"
#include <QAction>
#include <QMenuBar>
#include <QToolBar>
#include "timeslider.h"
#include <QFileDialog>
#include <QApplication>
Gui::Gui( QWidget * parent, Qt::WindowFlags flags )
: QMainWindow(parent, flags)
{
smplayerlib = new SmplayerCoreLib(this);
core = smplayerlib->core();
setCentralWidget(smplayerlib->mplayerWindow());
QAction * openAct = new QAction( tr("&Open..."), this);
connect( openAct, SIGNAL(triggered()), this, SLOT(open()) );
QAction * closeAct = new QAction( tr("&Close"), this);
connect( closeAct, SIGNAL(triggered()), this, SLOT(close()) );
QMenu * open_menu = menuBar()->addMenu( tr("&Open") );
open_menu->addAction(openAct);
open_menu->addAction(closeAct);
QAction * playAct = new QAction( tr("&Play/Pause"), this);
playAct->setShortcut( Qt::Key_Space );
connect( playAct, SIGNAL(triggered()),
core, SLOT(play_or_pause()) );
QAction * stopAct = new QAction( tr("&Stop"), this);
connect( stopAct, SIGNAL(triggered()),
core, SLOT(stop()) );
QMenu * play_menu = menuBar()->addMenu( tr("&Play") );
play_menu->addAction(playAct);
play_menu->addAction(stopAct);
TimeSlider * time_slider = new TimeSlider(this);
connect( time_slider, SIGNAL(posChanged(int)),
core, SLOT(goToPos(int)) );
connect( core, SIGNAL(posChanged(int)),
time_slider, SLOT(setPos(int)) );
QToolBar * control = new QToolBar( tr("Control"), this);
control->addAction(playAct);
control->addAction(stopAct);
control->addSeparator();
control->addWidget(time_slider);
addToolBar(Qt::BottomToolBarArea, control);
}
Gui::~Gui() {
}
void Gui::closeEvent( QCloseEvent * event ) {
core->stop();
event->accept();
}
void Gui::open() {
QString f = QFileDialog::getOpenFileName( this, tr("Open file") );
if (!f.isEmpty()) {
core->open(f);
}
}
int main( int argc, char ** argv ) {
QApplication a( argc, argv );
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
Helper::setAppPath( qApp->applicationDirPath() );
Global::global_init();
Gui * w = new Gui();
w->show();
int r = a.exec();
Global::global_end();
return r;
}
#include "moc_test.cpp"
|