summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer3/mwindow.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer3/mwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer3/mwindow.cpp180
1 files changed, 146 insertions, 34 deletions
diff --git a/noncore/multimedia/opieplayer3/mwindow.cpp b/noncore/multimedia/opieplayer3/mwindow.cpp
index dab910a..57418f0 100644
--- a/noncore/multimedia/opieplayer3/mwindow.cpp
+++ b/noncore/multimedia/opieplayer3/mwindow.cpp
@@ -47,31 +47,38 @@
47#include <qfileinfo.h> 47#include <qfileinfo.h>
48#include <qfile.h> 48#include <qfile.h>
49#include <qtoolbar.h> 49#include <qtoolbar.h>
50#include <qpopupmenu.h> 50#include <qpopupmenu.h>
51#include <qmenubar.h> 51#include <qmenubar.h>
52#include <qtimer.h> 52#include <qtimer.h>
53#include <qslider.h>
54#include <qlayout.h>
53 55
54OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow>) 56OPIE_EXPORT_APP( Opie::Core::OApplicationFactory<PMainWindow>)
55 57
56using namespace Opie::Ui; 58using namespace Opie::Ui;
57 59
58PMainWindow::PMainWindow(QWidget*w, const char*name, WFlags f) 60PMainWindow::PMainWindow(QWidget*w, const char*name, WFlags f)
59 : QMainWindow(w,name,f) 61 : QMainWindow(w,name,f)
60{ 62{
61 setCaption( QObject::tr("Opie Mediaplayer 3" ) ); 63 setCaption( QObject::tr("Opie Mediaplayer 3" ) );
62 setupActions();
63 setupToolBar();
64 setupMenu();
65 64
66 m_stack = new OWidgetStack(this); 65 m_MainBox = new QWidget(this);
66
67 QVBoxLayout*m_l = new QVBoxLayout(m_MainBox);
68
69 m_stack = new OWidgetStack(m_MainBox);
67 m_stack->forceMode(Opie::Ui::OWidgetStack::SmallScreen); 70 m_stack->forceMode(Opie::Ui::OWidgetStack::SmallScreen);
68 setCentralWidget(m_stack ); 71 m_l->addWidget(m_stack);
72 m_scrollBar = new QSlider(QSlider::Horizontal,m_MainBox);
73 m_l->addWidget(m_scrollBar);
74 m_scrollBar->setEnabled(false);
75
69 m_playList = new PlaylistView(m_stack,"playlist"); 76 m_playList = new PlaylistView(m_stack,"playlist");
70 m_stack->addWidget(m_playList,stack_list); 77 m_stack->addWidget(m_playList,stack_list);
71 78 connect(m_playList,SIGNAL(contentChanged(int)),this,SLOT(slotListChanged(int)));
72 m_sfl = new OFileSelector("video/*;audio/*",m_stack); 79 m_sfl = new OFileSelector("video/*;audio/*",m_stack);
73 m_stack->addWidget(m_sfl,stack_file); 80 m_stack->addWidget(m_sfl,stack_file);
74 connect(m_sfl, SIGNAL(fileSelected(const DocLnk &)), m_playList, SLOT(slotAddFile(const DocLnk &))); 81 connect(m_sfl, SIGNAL(fileSelected(const DocLnk &)), m_playList, SLOT(slotAddFile(const DocLnk &)));
75 m_AudioPlayer = new AudioWidget(m_stack); 82 m_AudioPlayer = new AudioWidget(m_stack);
76 m_stack->addWidget(m_AudioPlayer,stack_audio); 83 m_stack->addWidget(m_AudioPlayer,stack_audio);
77 connect(this,SIGNAL(sigPos(int)),m_AudioPlayer,SLOT(updatePos(int))); 84 connect(this,SIGNAL(sigPos(int)),m_AudioPlayer,SLOT(updatePos(int)));
@@ -80,12 +87,34 @@ PMainWindow::PMainWindow(QWidget*w, const char*name, WFlags f)
80 connect(this,SIGNAL(sigPos(int)),m_VideoPlayer,SLOT(updatePos(int))); 87 connect(this,SIGNAL(sigPos(int)),m_VideoPlayer,SLOT(updatePos(int)));
81 connect(m_VideoPlayer,SIGNAL(videoclicked()),this,SLOT(slotVideoclicked())); 88 connect(m_VideoPlayer,SIGNAL(videoclicked()),this,SLOT(slotVideoclicked()));
82 89
83 m_stack->raiseWidget(stack_list); 90 m_stack->raiseWidget(stack_list);
84 m_PlayLib = 0; 91 m_PlayLib = 0;
85 m_LastItem = 0; 92 m_LastItem = 0;
93 setupActions();
94 setupToolBar();
95 setupMenu();
96
97 setCentralWidget(m_MainBox );
98}
99
100void PMainWindow::slotListChanged(int count)
101{
102 if (!m_playList->isVisible()) {
103 return;
104 }
105 a_removeFiles->setEnabled(count>0);
106}
107
108void PMainWindow::mediaWindowraised()
109{
110 playlistOnly->setEnabled(false);
111 a_appendFiles->setEnabled(true);
112 a_loadPlaylist->setEnabled(true);
113 a_showPlaylist->setEnabled(true);
114 a_ShowMedia->setEnabled(false);
86} 115}
87 116
88void PMainWindow::checkLib() 117void PMainWindow::checkLib()
89{ 118{
90 if (m_PlayLib == 0) { 119 if (m_PlayLib == 0) {
91 m_PlayLib = new XINE::Lib(XINE::Lib::InitializeImmediately); 120 m_PlayLib = new XINE::Lib(XINE::Lib::InitializeImmediately);
@@ -106,71 +135,136 @@ void PMainWindow::fileSelected(const DocLnk&)
106{ 135{
107} 136}
108 137
109void PMainWindow::slotAppendFiles() 138void PMainWindow::slotAppendFiles()
110{ 139{
111 m_stack->raiseWidget(m_sfl); 140 m_stack->raiseWidget(m_sfl);
141 playlistOnly->setEnabled(false);
142
143 a_showPlaylist->setEnabled(true);
144 if (m_PlayLib && m_playing) {
145 a_ShowMedia->setEnabled(true);
146 } else {
147 a_ShowMedia->setEnabled(false);
148 }
112} 149}
113 150
114void PMainWindow::slotShowList() 151void PMainWindow::slotShowList()
115{ 152{
116 m_stack->raiseWidget(m_playList); 153 m_stack->raiseWidget(m_playList);
154 playlistOnly->setEnabled(true);
155 a_showPlaylist->setEnabled(false);
156 if (m_playList->childCount()) {
157 a_removeFiles->setEnabled(true);
158 } else {
159 a_removeFiles->setEnabled(false);
160 }
161 if (m_PlayLib && m_playing) {
162 a_ShowMedia->setEnabled(true);
163 } else {
164 a_ShowMedia->setEnabled(false);
165 }
117} 166}
118 167
119void PMainWindow::slotPlayList() 168void PMainWindow::slotShowMediaWindow()
120{ 169{
121 if (m_playing && m_LastItem && m_PlayLib) { 170 if (m_playing && m_LastItem && m_PlayLib) {
122 if (!m_LastItem->isVideo()) { 171 if (!m_LastItem->isVideo()) {
123 m_stack->raiseWidget(stack_audio); 172 m_stack->raiseWidget(stack_audio);
124 } else { 173 } else {
125 m_stack->raiseWidget(stack_video); 174 m_stack->raiseWidget(stack_video);
126 } 175 }
176 mediaWindowraised();
177 return;
178 }
179}
180
181void PMainWindow::slotPlayList()
182{
183 if (m_playing && m_LastItem && m_PlayLib) {
184 slotShowMediaWindow();
127 return; 185 return;
128 } 186 }
129 187
130 m_LastItem = m_playList->currentItem(); 188 m_LastItem = m_playList->currentItem();
131 if (!m_LastItem) { 189 if (!m_LastItem) {
132 slotPlayNext(); 190 slotPlayNext();
133 return; 191 return;
134 } 192 }
135 //m_VideoPlayer->setFullScreen(a_ShowFull->isOn()); 193 //m_VideoPlayer->setFullScreen(a_ShowFull->isOn());
136 slotPlayCurrent(); 194 slotPlayCurrent();
137} 195}
138 196
197void PMainWindow::slotUserStop()
198{
199 if (!m_playing || !m_PlayLib) return;
200 m_playing = false;
201 m_PlayLib->stop();
202 m_scrollBar->setEnabled(false);
203 hideVideo();
204 slotShowList();
205}
206
207void PMainWindow::slotTogglePlay(bool how)
208{
209 if (how == m_playing) {
210 if (how) {
211 slotShowMediaWindow();
212 }
213 return;
214 }
215 if (how) {
216 slotPlayList();
217 } else {
218 slotUserStop();
219 }
220}
221
139void PMainWindow::hideVideo() 222void PMainWindow::hideVideo()
140{ 223{
141 if (m_VideoPlayer->isVisible() && a_ShowFull->isOn()) { 224 if (m_VideoPlayer->isVisible() && a_ShowFull->isOn()) {
142 m_VideoPlayer->showNormal(); 225 //m_VideoPlayer->showNormal();
143 m_VideoPlayer->hide(); 226 m_VideoPlayer->hide();
144 } 227 }
145} 228}
146 229
147void PMainWindow::slotPlayCurrent() 230void PMainWindow::slotPlayCurrent()
148{ 231{
149 if (!m_LastItem) { 232 if (!m_LastItem) {
150 if (m_PlayLib) m_PlayLib->stop(); 233 if (m_PlayLib) m_PlayLib->stop();
234 m_scrollBar->setEnabled(false);
235 a_playAction->setOn(false);
151 hideVideo(); 236 hideVideo();
152 m_stack->raiseWidget(stack_list); 237 slotShowList();
153 return; 238 return;
154 } 239 }
155 checkLib(); 240 checkLib();
156 m_CurrentPos = 0; 241 m_CurrentPos = 0;
157 m_playList->setCurrentItem(m_LastItem); 242 m_playList->setCurrentItem(m_LastItem);
158 odebug << "Pos: " << m_PlayLib->currentTime() << oendl; 243 odebug << "Pos: " << m_PlayLib->currentTime() << oendl;
244 int result = 0;
159 if (!m_LastItem->isVideo()) { 245 if (!m_LastItem->isVideo()) {
160 hideVideo(); 246 hideVideo();
161 m_playing = true; 247 m_playing = true;
162 QTimer::singleShot( 500, this, SLOT( slotCheckPos() ) );
163 m_stack->raiseWidget(stack_audio); 248 m_stack->raiseWidget(stack_audio);
164 m_AudioPlayer->playFile(m_LastItem->Lnk(),m_PlayLib); 249 result = m_AudioPlayer->playFile(m_LastItem->Lnk(),m_PlayLib);
165 } else { 250 } else {
166 m_playing = true; 251 m_playing = true;
167 QTimer::singleShot( 500, this, SLOT( slotCheckPos() ) );
168 setupVideo(a_ShowFull->isOn()); 252 setupVideo(a_ShowFull->isOn());
169 m_VideoPlayer->playFile(m_LastItem->Lnk(),m_PlayLib); 253 result = m_VideoPlayer->playFile(m_LastItem->Lnk(),m_PlayLib);
170 } 254 }
255 if (result<0) {
256 // fehler
257 return;
258 }
259 mediaWindowraised();
260 odebug << "Range: " << result << oendl;
261 m_scrollBar->setRange(0,result);
262 m_scrollBar->setValue(0);
263 m_scrollBar->setEnabled(true);
264 QTimer::singleShot( 500, this, SLOT( slotCheckPos() ) );
171} 265}
172 266
173void PMainWindow::slotPlayNext() 267void PMainWindow::slotPlayNext()
174{ 268{
175 PlaylistItem*item = m_playList->nextItem(m_LastItem); 269 PlaylistItem*item = m_playList->nextItem(m_LastItem);
176 if (!item) return; 270 if (!item) return;
@@ -189,70 +283,81 @@ void PMainWindow::slotPlayPrevious()
189 PlaylistItem*item = m_playList->prevItem(m_LastItem); 283 PlaylistItem*item = m_playList->prevItem(m_LastItem);
190 if (!item) return; 284 if (!item) return;
191 m_LastItem = item; 285 m_LastItem = item;
192 slotPlayCurrent(); 286 slotPlayCurrent();
193} 287}
194 288
195void PMainWindow::slotUserStop()
196{
197 if (!m_playing || !m_PlayLib) return;
198 m_playing = false;
199 m_PlayLib->stop();
200 hideVideo();
201 m_stack->raiseWidget(stack_list);
202}
203
204void PMainWindow::slotStopped() 289void PMainWindow::slotStopped()
205{ 290{
206 if (!m_playing) return; 291 if (!m_playing) return;
207 m_playing = false; 292 m_playing = false;
208 slotGoNext(); 293 slotGoNext();
209} 294}
210 295
211void PMainWindow::slotCheckPos() 296void PMainWindow::slotCheckPos()
212{ 297{
213 if (!m_playing) return; 298 if (!m_playing) return;
214 emit sigPos(m_PlayLib->currentTime()); 299 //emit sigPos(m_PlayLib->currentTime());
300 m_scrollBar->setValue(m_PlayLib->currentTime());
215 QTimer::singleShot( 1000, this, SLOT( slotCheckPos() ) ); 301 QTimer::singleShot( 1000, this, SLOT( slotCheckPos() ) );
216} 302}
217 303
218void PMainWindow::slotRemoveFiles() 304void PMainWindow::slotRemoveFiles()
219{ 305{
220 slotUserStop(); 306 if (m_playing||!m_playList->isVisible()) return;
221 PlaylistItem* Item = m_playList->currentItem(); 307 PlaylistItem* Item = m_playList->currentItem();
222 m_stack->raiseWidget(stack_list); 308 slotShowList();
223 m_playList->removeFromList(Item); 309 m_playList->removeFromList(Item);
224} 310}
225 311
226void PMainWindow::setupActions() 312void PMainWindow::setupActions()
227{ 313{
228 a_appendFiles = new QAction(tr("Open file(s)"),Resource::loadIconSet( "opieplayer2/add_to_playlist" ), 0, 0, this, 0, false ); 314 a_appendFiles = new QAction(tr("Append file(s)"),Resource::loadIconSet( "opieplayer2/add_to_playlist" ), 0, 0, this, 0, false );
229 connect(a_appendFiles,SIGNAL(activated()),this,SLOT(slotAppendFiles())); 315 connect(a_appendFiles,SIGNAL(activated()),this,SLOT(slotAppendFiles()));
316 a_addDir = new QAction(tr("Add directory"),Resource::loadIconSet("folder_open"),0,0,this,0,false);
317 connect(a_addDir,SIGNAL(activated()),m_playList,SLOT(slotAppendDir()));
318 a_loadPlaylist = new QAction(tr("Append .m3u playlist"),Resource::loadIconSet("opieplayer2/add_to_playlist"),0,0,this,0,false);
319 connect(a_loadPlaylist,SIGNAL(activated()),m_playList,SLOT(slotOpenM3u()));
320 a_savePlaylist = new QAction(tr("Save .m3u playlist"),Resource::loadIconSet("save"),0,0,this,0,false);
321 connect(a_savePlaylist,SIGNAL(activated()),m_playList,SLOT(slotSaveAsM3u()));
322
323 playlistOnly = new QActionGroup(this,"playlistgroup",false);
324 playlistOnly->insert(a_appendFiles);
325 playlistOnly->insert(a_addDir);
326 playlistOnly->insert(a_loadPlaylist);
327 playlistOnly->insert(a_savePlaylist);
328
230 a_showPlaylist = new QAction(tr("Show playlist"),Resource::loadIconSet( "txt" ), 0, 0, this, 0, false ); 329 a_showPlaylist = new QAction(tr("Show playlist"),Resource::loadIconSet( "txt" ), 0, 0, this, 0, false );
231 connect(a_showPlaylist,SIGNAL(activated()),this,SLOT(slotShowList())); 330 connect(a_showPlaylist,SIGNAL(activated()),this,SLOT(slotShowList()));
331 a_ShowMedia = new QAction(tr("Show media window"),Resource::loadIconSet("opieplayer2/musicfile"), 0, 0, this, 0, false );
332 connect(a_ShowMedia,SIGNAL(activated()),this,SLOT(slotShowMediaWindow()));
333
232 a_removeFiles = new QAction(tr("Remove file"),Resource::loadIconSet( "opieplayer2/remove_from_playlist" ), 0, 0, this, 0, false ); 334 a_removeFiles = new QAction(tr("Remove file"),Resource::loadIconSet( "opieplayer2/remove_from_playlist" ), 0, 0, this, 0, false );
233 connect(a_removeFiles,SIGNAL(activated()),this,SLOT(slotRemoveFiles())); 335 connect(a_removeFiles,SIGNAL(activated()),this,SLOT(slotRemoveFiles()));
234 336
235 playersGroup = new QActionGroup(this,"playgroup",false); 337 playersGroup = new QActionGroup(this,"playgroup",false);
236 338
237 a_playAction = new QAction(tr("Play list"),Resource::loadIconSet( "opieplayer2/play" ), 0, 0, this, 0, false ); 339 a_playAction = new QAction(tr("Play list"),Resource::loadIconSet( "opieplayer2/play" ), 0, 0, this, 0, true);
238 connect(a_playAction,SIGNAL(activated()),this,SLOT(slotPlayList())); 340 a_playAction->setOn(false);
341 connect(a_playAction,SIGNAL(toggled(bool)),this,SLOT(slotTogglePlay(bool)));
342
239 a_playNext = new QAction(tr("Play next in list"),Resource::loadIconSet( "fastforward" ), 0, 0, this, 0, false ); 343 a_playNext = new QAction(tr("Play next in list"),Resource::loadIconSet( "fastforward" ), 0, 0, this, 0, false );
240 connect(a_playNext,SIGNAL(activated()),this,SLOT(slotPlayNext())); 344 connect(a_playNext,SIGNAL(activated()),this,SLOT(slotPlayNext()));
241 a_playPrevious = new QAction(tr("Play previous in list"),Resource::loadIconSet( "fastback" ), 0, 0, this, 0, false ); 345 a_playPrevious = new QAction(tr("Play previous in list"),Resource::loadIconSet( "fastback" ), 0, 0, this, 0, false );
242 connect(a_playPrevious,SIGNAL(activated()),this,SLOT(slotPlayPrevious())); 346 connect(a_playPrevious,SIGNAL(activated()),this,SLOT(slotPlayPrevious()));
243 a_ShowFull = new QAction(tr("Show videos fullscreen"),Resource::loadIconSet( "fullscreen" ), 0, 0, this, 0, true ); 347 a_ShowFull = new QAction(tr("Show videos fullscreen"),Resource::loadIconSet( "fullscreen" ), 0, 0, this, 0, true );
244 connect(a_ShowFull,SIGNAL(toggled(bool)),this,SLOT(slotToggleFull(bool))); 348 connect(a_ShowFull,SIGNAL(toggled(bool)),this,SLOT(slotToggleFull(bool)));
245 a_stopPlay = new QAction(tr("Show videos fullscreen"),Resource::loadIconSet( "stop" ), 0, 0, this, 0, false );
246 connect(a_stopPlay,SIGNAL(activated()),this,SLOT(slotUserStop()));
247 349
248 playersGroup->insert(a_playPrevious); 350 playersGroup->insert(a_playPrevious);
249 playersGroup->insert(a_playAction); 351 playersGroup->insert(a_playAction);
250 playersGroup->insert(a_stopPlay);
251 playersGroup->insert(a_playNext); 352 playersGroup->insert(a_playNext);
252 //playersGroup->insert(a_ShowFull); 353
354 /* initial states of actions */
355 a_showPlaylist->setEnabled(false);
356 a_removeFiles->setEnabled(false);
357 a_ShowMedia->setEnabled(false);
253} 358}
254 359
255void PMainWindow::setupToolBar() 360void PMainWindow::setupToolBar()
256{ 361{
257 setToolBarsMovable( false ); 362 setToolBarsMovable( false );
258 m_toolBar = new QToolBar( this ); 363 m_toolBar = new QToolBar( this );
@@ -260,31 +365,33 @@ void PMainWindow::setupToolBar()
260 m_menuBar=menuBar(); 365 m_menuBar=menuBar();
261 addToolBar(m_toolBar); 366 addToolBar(m_toolBar);
262 m_toolBar->setHorizontalStretchable( true ); 367 m_toolBar->setHorizontalStretchable( true );
263 a_appendFiles->addTo(m_toolBar); 368 a_appendFiles->addTo(m_toolBar);
264 a_removeFiles->addTo(m_toolBar); 369 a_removeFiles->addTo(m_toolBar);
265 a_showPlaylist->addTo(m_toolBar); 370 a_showPlaylist->addTo(m_toolBar);
371 a_ShowMedia->addTo(m_toolBar);
266 a_ShowFull->addTo(m_toolBar); 372 a_ShowFull->addTo(m_toolBar);
267 playersGroup->addTo(m_toolBar); 373 playersGroup->addTo(m_toolBar);
268} 374}
269 375
270void PMainWindow::setupVideo(bool full) 376void PMainWindow::setupVideo(bool full)
271{ 377{
272 if (full) { 378 if (full) {
273 m_VideoPlayer->setBackgroundColor(black); 379 m_VideoPlayer->setBackgroundColor(black);
274 m_VideoPlayer->reparent(0, WStyle_Customize | WStyle_NoBorderEx, QPoint(0,0)); 380 m_VideoPlayer->reparent(0, WStyle_Customize | WStyle_NoBorderEx, QPoint(0,0));
275 m_VideoPlayer->setGeometry(0,0,qApp->desktop()->size().width(),qApp->desktop()->size().height()); 381 m_VideoPlayer->setGeometry(0,0,qApp->desktop()->size().width(),qApp->desktop()->size().height());
276 m_VideoPlayer->showFullScreen(); 382 m_VideoPlayer->showFullScreen();
383 connect(m_VideoPlayer,SIGNAL(videoclicked()),this,SLOT(slotVideoclicked()));
277 } else { 384 } else {
278 m_VideoPlayer->hide(); 385 m_VideoPlayer->hide();
386 m_VideoPlayer->disconnect(this);
279 m_stack->addWidget(m_VideoPlayer,stack_video); 387 m_stack->addWidget(m_VideoPlayer,stack_video);
280 m_stack->raiseWidget(stack_video); 388 m_stack->raiseWidget(stack_video);
281 } 389 }
390 mediaWindowraised();
282 m_VideoPlayer->fullScreen(full); 391 m_VideoPlayer->fullScreen(full);
283 m_VideoPlayer->disconnect(this);
284 connect(m_VideoPlayer,SIGNAL(videoclicked()),this,SLOT(slotVideoclicked()));
285} 392}
286 393
287void PMainWindow::slotVideoclicked() 394void PMainWindow::slotVideoclicked()
288{ 395{
289 odebug << "PMainWindow::slotVideoclicked()" << oendl; 396 odebug << "PMainWindow::slotVideoclicked()" << oendl;
290 if (a_ShowFull->isOn()) { 397 if (a_ShowFull->isOn()) {
@@ -305,16 +412,21 @@ void PMainWindow::slotToggleFull(bool how)
305void PMainWindow::setupMenu() 412void PMainWindow::setupMenu()
306{ 413{
307 fileMenu = new QPopupMenu( m_menuBar ); 414 fileMenu = new QPopupMenu( m_menuBar );
308 m_menuBar->insertItem( tr( "Playlist" ), fileMenu ); 415 m_menuBar->insertItem( tr( "Playlist" ), fileMenu );
309 a_appendFiles->addTo(fileMenu); 416 a_appendFiles->addTo(fileMenu);
310 a_removeFiles->addTo(fileMenu); 417 a_removeFiles->addTo(fileMenu);
418 a_addDir->addTo(fileMenu);
419 fileMenu->insertSeparator();
420 a_loadPlaylist->addTo(fileMenu);
421 a_savePlaylist->addTo(fileMenu);
311 422
312 dispMenu = new QPopupMenu( m_menuBar ); 423 dispMenu = new QPopupMenu( m_menuBar );
313 m_menuBar->insertItem( tr( "Show" ), dispMenu ); 424 m_menuBar->insertItem( tr( "Show" ), dispMenu );
314 a_showPlaylist->addTo(dispMenu); 425 a_showPlaylist->addTo(dispMenu);
426 a_ShowMedia->addTo(dispMenu);
315 a_ShowFull->addTo(dispMenu); 427 a_ShowFull->addTo(dispMenu);
316 playMenu = new QPopupMenu(m_menuBar); 428 playMenu = new QPopupMenu(m_menuBar);
317 m_menuBar->insertItem(tr("Playing"),playMenu); 429 m_menuBar->insertItem(tr("Playing"),playMenu);
318 430
319 playersGroup->addTo(playMenu); 431 playersGroup->addTo(playMenu);
320} 432}