File indexing completed on 2024-05-05 04:51:42
0001 /* 0002 SPDX-FileCopyrightText: 2009-2010 Michal Malek <michalm@jabster.pl> 0003 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef K3B_AUDIO_VIEW_IMPL_H 0009 #define K3B_AUDIO_VIEW_IMPL_H 0010 0011 #include <QAbstractItemModel> 0012 #include <QObject> 0013 #include <QList> 0014 #include <QUrl> 0015 0016 class QAction; 0017 class KActionCollection; 0018 class QTreeView; 0019 0020 namespace K3b { 0021 class AudioDataSource; 0022 class AudioDoc; 0023 class AudioProjectDelegate; 0024 class AudioProjectModel; 0025 class AudioTrack; 0026 class AudioTrackPlayer; 0027 class View; 0028 class ViewColumnAdjuster; 0029 0030 /** 0031 * This class was created to share code and behaviour between \ref K3b::AudioView and \ref K3b::MixedView. 0032 */ 0033 class AudioViewImpl : public QObject 0034 { 0035 Q_OBJECT 0036 0037 public: 0038 AudioViewImpl( View* view, AudioDoc* doc, KActionCollection* actionCollection ); 0039 0040 void addUrls( const QList<QUrl>& urls ); 0041 0042 AudioProjectModel* model() const { return m_model; } 0043 QTreeView* view() const { return m_trackView; } 0044 0045 AudioTrackPlayer* player() const { return m_player; } 0046 0047 private Q_SLOTS: 0048 void slotRemove(); 0049 void slotAddSilence(); 0050 void slotMergeTracks(); 0051 void slotSplitSource(); 0052 void slotSplitTrack(); 0053 void slotEditSource(); 0054 void slotTrackProperties(); 0055 void slotPlayTrack(); 0056 void slotQueryMusicBrainz(); 0057 void slotQueryMusicBrainzTrack(); 0058 void slotSelectionChanged(); 0059 void slotAudioConversion(); 0060 void slotAdjustColumns(); 0061 void slotPlayingTrack( const K3b::AudioTrack& track ); 0062 void slotPlayerStateChanged(); 0063 0064 private: 0065 void tracksForIndexes( QList<AudioTrack*>& tracks, 0066 const QModelIndexList& indexes ) const; 0067 void sourcesForIndexes( QList<AudioDataSource*>& sources, 0068 const QModelIndexList& indexes ) const; 0069 0070 private: 0071 View* m_view; 0072 AudioDoc* m_doc; 0073 AudioProjectModel* m_model; 0074 QTreeView* m_trackView; 0075 AudioProjectDelegate* m_delegate; 0076 AudioTrackPlayer* m_player; 0077 ViewColumnAdjuster* m_columnAdjuster; 0078 bool m_updatingColumnWidths; 0079 0080 QAction* m_actionAddSilence; 0081 QAction* m_actionMergeTracks; 0082 QAction* m_actionSplitSource; 0083 QAction* m_actionSplitTrack; 0084 QAction* m_actionEditSource; 0085 QAction* m_actionPlayTrack; 0086 QAction* m_actionQueryMusicBrainz; 0087 QAction* m_actionQueryMusicBrainzTrack; 0088 QAction* m_actionProperties; 0089 QAction* m_actionRemove; 0090 QAction* m_conversionAction; 0091 }; 0092 0093 } // namespace K3b 0094 0095 #endif