/* * * $Id: k3bwriterselectionwidget.h 690635 2007-07-21 16:47:29Z trueg $ * Copyright (C) 2003 Sebastian Trueg * * This file is part of the K3b project. * Copyright (C) 1998-2007 Sebastian Trueg * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * See the file "COPYING" for the exact licensing terms. */ #ifndef K3BWRITERSELECTIONWIDGET_H #define K3BWRITERSELECTIONWIDGET_H #include class KComboBox; class TDEConfigBase; class TQLabel; class K3bMediaSelectionComboBox; namespace K3bDevice { class Device; class DeviceManager; } /** *@author Sebastian Trueg */ class K3bWriterSelectionWidget : public TQWidget { Q_OBJECT public: /** * Creates a writerselectionwidget */ K3bWriterSelectionWidget( TQWidget* parent = 0, const char* name = 0 ); ~K3bWriterSelectionWidget(); int writerSpeed() const; K3bDevice::Device* writerDevice() const; TQValueList allDevices() const; /** * returns K3b::WritingApp */ int writingApp() const; int wantedMediumType() const; int wantedMediumState() const; void loadDefaults(); void loadConfig( TDEConfigBase* ); void saveConfig( TDEConfigBase* ); public slots: void setWriterDevice( K3bDevice::Device* ); void setSpeed( int ); void setWritingApp( int ); /** * K3b::WritingApp or'ed together * * Defaults to cdrecord and cdrdao for CD and growisofs for DVD */ void setSupportedWritingApps( int ); /** * A simple hack to disable the speed selection for DVD formatting */ void setForceAutoSpeed( bool ); /** * Set the wanted medium type. Defaults to writable CD. * * \param type a bitwise combination of the K3bDevice::MediaType enum */ void setWantedMediumType( int type ); /** * Set the wanted medium state. Defaults to empty media. * * \param state a bitwise combination of the K3bDevice::State enum */ void setWantedMediumState( int state ); /** * This is a hack to allow the copy dialogs to use the same device for reading * and writing without having the user to choose the same medium. * * \param overrideString A string which will be shown in place of the medium string. * For example: "Burn to the same device". Set it to 0 in order * to disable the feature. */ void setOverrideDevice( K3bDevice::Device* dev, const TQString& overrideString = TQString(), const TQString& tooltip = TQString() ); /** * Compare K3bMediaSelectionComboBox::setIgnoreDevice */ void setIgnoreDevice( K3bDevice::Device* dev ); signals: void writerChanged(); void writerChanged( K3bDevice::Device* ); void writingAppChanged( int app ); /** * \see K3bMediaSelectionComboBox */ void newMedia(); void newMedium( K3bDevice::Device* dev ); private slots: void slotRefreshWriterSpeeds(); void slotRefreshWritingApps(); void slotWritingAppSelected( int id ); void slotConfigChanged( TDEConfigBase* c ); void slotSpeedChanged( int index ); void slotWriterChanged(); void slotNewBurnMedium( K3bDevice::Device* dev ); void slotManualSpeed(); private: void clearSpeedCombo(); void insertSpeedItem( int ); int selectedWritingApp() const; class MediaSelectionComboBox; KComboBox* m_comboSpeed; MediaSelectionComboBox* m_comboMedium; KComboBox* m_comboWritingApp; TQLabel* m_writingAppLabel; class Private; Private* d; }; #endif