File indexing completed on 2024-10-13 04:22:09
0001 /* 0002 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 0008 #include "k3bdatamodewidget.h" 0009 #include "k3bglobals.h" 0010 0011 #include <KConfig> 0012 #include <KLocalizedString> 0013 #include <QToolTip> 0014 0015 static const int s_autoIndex = 0; 0016 static const int s_mode1Index = 1; 0017 static const int s_mode2Index = 2; 0018 0019 0020 K3b::DataModeWidget::DataModeWidget( QWidget* parent ) 0021 : QComboBox( parent ) 0022 { 0023 insertItem( s_autoIndex, i18n("Auto") ); 0024 insertItem( s_mode1Index, i18n("Mode1") ); 0025 insertItem( s_mode2Index, i18n("Mode2") ); 0026 0027 this->setToolTip(i18n("Select the mode for the data-track") ); 0028 this->setWhatsThis( i18n("<p><b>Data Mode</b>" 0029 "<p>Data tracks may be written in two different modes:</p>" 0030 "<p><b>Auto</b><br>" 0031 "Let K3b select the best suited data mode.</p>" 0032 "<p><b>Mode 1</b><br>" 0033 "This is the <em>original</em> writing mode as introduced in the " 0034 "<em>Yellow Book</em> standard. It is the preferred mode when writing " 0035 "pure data CDs.</p>" 0036 "<p><b>Mode 2</b><br>" 0037 "To be exact <em>XA Mode 2 Form 1</em>, but since the " 0038 "other modes are rarely used it is common to refer to it as <em>Mode 2</em>.</p>" 0039 "<p><b>Be aware:</b> Do not mix different modes on one CD. " 0040 "Some older drives may have problems reading mode 1 multisession CDs.") ); 0041 } 0042 0043 0044 K3b::DataModeWidget::~DataModeWidget() 0045 { 0046 } 0047 0048 0049 int K3b::DataModeWidget::dataMode() const 0050 { 0051 if( currentIndex() == s_autoIndex ) 0052 return K3b::DataModeAuto; 0053 else if( currentIndex() == s_mode1Index ) 0054 return K3b::DataMode1; 0055 else 0056 return K3b::DataMode2; 0057 } 0058 0059 0060 void K3b::DataModeWidget::setDataMode( int mode ) 0061 { 0062 if( mode == K3b::DataMode1 ) 0063 setCurrentIndex( s_mode1Index ); 0064 else if( mode == K3b::DataMode2 ) 0065 setCurrentIndex( s_mode2Index ); 0066 else 0067 setCurrentIndex( s_autoIndex ); 0068 } 0069 0070 0071 void K3b::DataModeWidget::saveConfig( KConfigGroup c ) 0072 { 0073 QString datamode; 0074 if( dataMode() == K3b::DataMode1 ) 0075 datamode = "mode1"; 0076 else if( dataMode() == K3b::DataMode2 ) 0077 datamode = "mode2"; 0078 else 0079 datamode = "auto"; 0080 c.writeEntry( "data_track_mode", datamode ); 0081 } 0082 0083 0084 void K3b::DataModeWidget::loadConfig( const KConfigGroup& c ) 0085 { 0086 QString datamode = c.readEntry( "data_track_mode" ); 0087 if( datamode == "mode1" ) 0088 setDataMode( K3b::DataMode1 ); 0089 else if( datamode == "mode2" ) 0090 setDataMode( K3b::DataMode2 ); 0091 else 0092 setDataMode( K3b::DataModeAuto ); 0093 } 0094 0095 #include "moc_k3bdatamodewidget.cpp"