File indexing completed on 2024-05-05 04:51:42
0001 /* 0002 SPDX-FileCopyrightText: 2003-2008 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-FileCopyrightText: 2009 Arthur Mello <arthur@mandriva.com> 0004 SPDX-FileCopyrightText: 2009 Gustavo Pichorim Boiko <gustavo.boiko@kdemail.net> 0005 SPDX-FileCopyrightText: 2009-2010 Michal Malek <michalm@jabster.pl> 0006 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #include "k3baudioview.h" 0012 #include "k3baudioviewimpl.h" 0013 0014 #include "k3bapplication.h" 0015 #include "k3baudioburndialog.h" 0016 #include "k3baudiodoc.h" 0017 #include "k3baudioprojectmodel.h" 0018 #include "k3bfillstatusdisplay.h" 0019 #include "k3bpluginmanager.h" 0020 0021 #include "config-k3b.h" 0022 #ifdef ENABLE_AUDIO_PLAYER 0023 #include "k3baudiotrackplayer.h" 0024 #endif // ENABLE_AUDIO_PLAYER 0025 0026 #include <KLocalizedString> 0027 #include <KMessageBox> 0028 #include <KToolBar> 0029 #include <KActionCollection> 0030 0031 #include <QString> 0032 #include <QDebug> 0033 #include <QAction> 0034 #include <QLayout> 0035 #include <QScrollBar> 0036 #include <QTreeView> 0037 #include <fcntl.h> 0038 0039 0040 K3b::AudioView::AudioView( K3b::AudioDoc* doc, QWidget* parent ) 0041 : K3b::View( doc, parent ) 0042 { 0043 m_doc = doc; 0044 m_audioViewImpl = new AudioViewImpl( this, m_doc, actionCollection() ); 0045 0046 setMainWidget( m_audioViewImpl->view() ); 0047 0048 fillStatusDisplay()->showTime(); 0049 0050 toolBox()->addAction( actionCollection()->action( "project_audio_convert" ) ); 0051 toolBox()->addAction( actionCollection()->action( "project_audio_musicbrainz" ) ); 0052 toolBox()->addSeparator(); 0053 0054 toolBox()->addActions( createPluginsActions( m_doc->type() ) ); 0055 toolBox()->addSeparator(); 0056 0057 #ifdef ENABLE_AUDIO_PLAYER 0058 toolBox()->addAction( actionCollection()->action( "player_previous" ) ); 0059 toolBox()->addAction( actionCollection()->action( "player_play" ) ); 0060 toolBox()->addAction( actionCollection()->action( "player_pause" ) ); 0061 toolBox()->addAction( actionCollection()->action( "player_stop" ) ); 0062 toolBox()->addAction( actionCollection()->action( "player_next" ) ); 0063 toolBox()->addAction( actionCollection()->action( "player_seek" ) ); 0064 toolBox()->addSeparator(); 0065 0066 connect( m_audioViewImpl->player(), SIGNAL(stateChanged()), 0067 this, SLOT(slotPlayerStateChanged()) ); 0068 #endif // ENABLE_AUDIO_PLAYER 0069 0070 // this is just for testing (or not?) 0071 // most likely every project type will have it's rc file in the future 0072 // we only add the additional actions since View already added the default actions 0073 setXML( "<!DOCTYPE gui SYSTEM \"kpartgui.dtd\">" 0074 "<gui name=\"k3bproject\" version=\"1\">" 0075 "<MenuBar>" 0076 " <Menu name=\"project\"><text>&Project</text>" 0077 " <Action name=\"project_audio_convert\"/>" 0078 #ifdef ENABLE_MUSICBRAINZ 0079 " <Action name=\"project_audio_musicbrainz\"/>" 0080 #endif 0081 " </Menu>" 0082 "</MenuBar>" 0083 "</gui>", true ); 0084 } 0085 0086 K3b::AudioView::~AudioView() 0087 { 0088 } 0089 0090 0091 void K3b::AudioView::addUrls( const QList<QUrl>& urls ) 0092 { 0093 m_audioViewImpl->addUrls( urls ); 0094 } 0095 0096 0097 K3b::ProjectBurnDialog* K3b::AudioView::newBurnDialog( QWidget* parent ) 0098 { 0099 return new AudioBurnDialog( m_doc, parent ); 0100 } 0101 0102 0103 void K3b::AudioView::slotPlayerStateChanged() 0104 { 0105 #ifdef ENABLE_AUDIO_PLAYER 0106 if( m_audioViewImpl->player()->state() == AudioTrackPlayer::Playing ) { 0107 actionCollection()->action( "player_play" )->setVisible( false ); 0108 actionCollection()->action( "player_pause" )->setVisible( true ); 0109 } 0110 else { 0111 actionCollection()->action( "player_play" )->setVisible( true ); 0112 actionCollection()->action( "player_pause" )->setVisible( false ); 0113 } 0114 #endif // ENABLE_AUDIO_PLAYER 0115 } 0116 0117 #include "moc_k3baudioview.cpp"