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>&amp;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"