File indexing completed on 2024-06-16 07:42:24

0001 /*
0002     SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef _K3B_DEVICE_COMBO_BOX_H_
0007 #define _K3B_DEVICE_COMBO_BOX_H_
0008 
0009 #include "k3b_export.h"
0010 #include <KComboBox>
0011 #include <QList>
0012 
0013 namespace K3b {
0014     namespace Device {
0015         class Device;
0016     }
0017 
0018 
0019     /**
0020      * A combobox to select a K3b device.
0021      *
0022      * It automatically removes devices that are removed from the system.
0023      */
0024     class LIBK3B_EXPORT DeviceComboBox : public KComboBox
0025     {
0026         Q_OBJECT
0027 
0028     public:
0029         explicit DeviceComboBox( QWidget* parent = 0 );
0030         ~DeviceComboBox() override;
0031 
0032         Device::Device* selectedDevice() const;
0033 
0034     Q_SIGNALS:
0035         void selectionChanged( K3b::Device::Device* );
0036 
0037     public Q_SLOTS:
0038         void addDevice( K3b::Device::Device* );
0039         void addDevices( const QList<K3b::Device::Device*>& );
0040         /**
0041          * Clears the device combo and tries to keep the current selection
0042          */
0043         void refreshDevices( const QList<K3b::Device::Device*>& );
0044         void removeDevice( K3b::Device::Device* );
0045         void setSelectedDevice( K3b::Device::Device* );
0046 
0047     private Q_SLOTS:
0048         void slotActivated( int );
0049 
0050     private:
0051         class Private;
0052         Private* d;
0053     };
0054 }
0055 
0056 #endif