File indexing completed on 2024-05-05 04:51:41

0001 /*
0002     SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef _K3B_AUDIO_TRACK_ADDING_DIALOG_H_
0007 #define _K3B_AUDIO_TRACK_ADDING_DIALOG_H_
0008 
0009 #include "k3bjobhandler.h"
0010 #include <QUrl>
0011 #include <QStringList>
0012 #include <QDialog>
0013 
0014 
0015 class QLabel;
0016 
0017 namespace K3b {
0018     class BusyWidget;
0019     class AudioTrack;
0020     class AudioDataSource;
0021     class AudioDoc;
0022     class AudioFileAnalyzerJob;
0023 
0024     class AudioTrackAddingDialog : public QDialog, public JobHandler
0025     {
0026         Q_OBJECT
0027 
0028     public:
0029         AudioTrackAddingDialog( const QList<QUrl>& urls,
0030                                 AudioDoc* doc,
0031                                 AudioTrack* afterTrack = 0,
0032                                 AudioTrack* parentTrack = 0,
0033                                 AudioDataSource* afterSource = 0,
0034                                 QWidget* parent = 0 );
0035         ~AudioTrackAddingDialog() override;
0036 
0037         /**
0038          * shows AudioTrackAddingDialog in non-blocking fashion
0039          * (doesn't wait till dialog is closed)
0040          */
0041         static void addUrls( const QList<QUrl>& urls,
0042                             AudioDoc* doc,
0043                             AudioTrack* afterTrack = 0,
0044                             AudioTrack* parentTrack = 0,
0045                             AudioDataSource* afterSource = 0,
0046                             QWidget* parent = 0 );
0047 
0048     private Q_SLOTS:
0049         void slotAddUrls();
0050         void slotAnalysingFinished( bool );
0051         void slotCancelClicked();
0052 
0053     private:
0054         /**
0055          * @reimplemented from JobHandler
0056          */
0057         Device::MediaType waitForMedium( Device::Device*,
0058                                          Device::MediaStates = Device::STATE_EMPTY,
0059                                          Device::MediaTypes = Device::MEDIA_WRITABLE_CD,
0060                                          const K3b::Msf& = K3b::Msf(),
0061                                          const QString& = QString() ) override { return Device::MEDIA_UNKNOWN; }
0062 
0063         /**
0064          * @reimplemented from JobHandler
0065          */
0066         bool questionYesNo( const QString&,
0067                             const QString& = QString(),
0068                             const KGuiItem& = KStandardGuiItem::ok(),
0069                             const KGuiItem& = KStandardGuiItem::cancel() ) override { return false; }
0070 
0071         /**
0072          * @reimplemented from JobHandler
0073          */
0074         void blockingInformation( const QString&,
0075                                   const QString& = QString() ) override {}
0076 
0077         BusyWidget* m_busyWidget;
0078         QLabel* m_infoLabel;
0079 
0080         QStringList m_unreadableFiles;
0081         QStringList m_notFoundFiles;
0082         QStringList m_nonLocalFiles;
0083         QStringList m_unsupportedFiles;
0084 
0085         QList<QUrl> m_urls;
0086 
0087         AudioDoc* m_doc;
0088         AudioTrack* m_trackAfter;
0089         AudioTrack* m_parentTrack;
0090         AudioDataSource* m_sourceAfter;
0091 
0092         QUrl m_cueUrl;
0093 
0094         bool m_bCanceled;
0095 
0096         AudioFileAnalyzerJob* m_analyserJob;
0097     };
0098 }
0099 
0100 #endif