File indexing completed on 2024-05-05 04:49:16

0001 /****************************************************************************************
0002  * Copyright (c) 2008 Nikolaj Hald Nielsen <nhn@kde.org>                                *
0003  *                                                                                      *
0004  * This program is free software; you can redistribute it and/or modify it under        *
0005  * the terms of the GNU General Public License as published by the Free Software        *
0006  * Foundation; either version 2 of the License, or (at your option) any later           *
0007  * version.                                                                             *
0008  *                                                                                      *
0009  * This program is distributed in the hope that it will be useful, but WITHOUT ANY      *
0010  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A      *
0011  * PARTICULAR PURPOSE. See the GNU General Public License for more details.             *
0012  *                                                                                      *
0013  * You should have received a copy of the GNU General Public License along with         *
0014  * this program.  If not, see <http://www.gnu.org/licenses/>.                           *
0015  ****************************************************************************************/
0016 
0017 #ifndef SERVICECOLLECTIONTREEVIEW_H
0018 #define SERVICECOLLECTIONTREEVIEW_H
0019 
0020 #include "browsers/CollectionTreeView.h"
0021 
0022 /**
0023     A simple extension of the CollectionTreeView class that allows optional 
0024     support for specifying that tracks are not playable and thus should not 
0025     be added to the playlist on activation and does not have the add and 
0026     load options in the context menu.
0027 
0028     @author Nikolaj Hald Nielsen <nhn@kde.org>
0029 */
0030 
0031 class ServiceCollectionTreeView : public CollectionTreeView
0032 {
0033 public:
0034     explicit ServiceCollectionTreeView( QWidget *parent = nullptr );
0035     ~ServiceCollectionTreeView() override;
0036 
0037     void setPlayableTracks( bool playable );
0038     bool playableTracks() const;
0039 
0040 protected:
0041     void mouseDoubleClickEvent(QMouseEvent* event) override;
0042     void contextMenuEvent(QContextMenuEvent* event) override;
0043 
0044 private:
0045     bool m_playableTracks;
0046 };
0047 
0048 #endif