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

0001 /*
0002     SPDX-FileCopyrightText: 2003-2007 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-FileCopyrightText: 2009 Gustavo Pichorim Boiko <gustavo.boiko@kdemail.net>
0004     SPDX-FileCopyrightText: 2009-2010 Michal Malek <michalm@jabster.pl>
0005     SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef K3B_MIXED_VIEW_H
0011 #define K3B_MIXED_VIEW_H
0012 
0013 #include "k3bview.h"
0014 
0015 #include <QList>
0016 
0017 class QAbstractItemModel;
0018 class QAction;
0019 class QModelIndex;
0020 class QStackedWidget;
0021 class QTreeView;
0022 
0023 namespace K3b {
0024     class AudioTrack;
0025     class AudioDataSource;
0026     class AudioViewImpl;
0027     class DataViewImpl;
0028     class DirProxyModel;
0029     class MixedDoc;
0030     class MetaItemModel;
0031 
0032     class MixedView : public View
0033     {
0034         Q_OBJECT
0035 
0036     public:
0037         explicit MixedView( MixedDoc* doc, QWidget* parent = 0 );
0038         ~MixedView() override;
0039 
0040     public Q_SLOTS:
0041         void slotBurn() override;
0042         void addUrls( const QList<QUrl>& urls ) override;
0043 
0044     private Q_SLOTS:
0045         void slotParentDir();
0046         void slotCurrentDirChanged();
0047         void slotUpdateActions();
0048         void slotSetCurrentRoot( const QModelIndex& index );
0049 
0050     protected:
0051         /**
0052          * reimplemented from @ref View
0053          */
0054         ProjectBurnDialog* newBurnDialog( QWidget* parent = 0 ) override;
0055 
0056     private:
0057         MixedDoc* m_doc;
0058         AudioViewImpl* m_audioViewImpl;
0059         DataViewImpl* m_dataViewImpl;
0060         MetaItemModel* m_model;
0061         DirProxyModel* m_dirProxy;
0062         QTreeView* m_dirView;
0063         QStackedWidget* m_fileViewWidget;
0064         QList<QAction*> m_audioActions;
0065         QList<QAction*> m_dataActions;
0066     };
0067 }
0068 
0069 #endif