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

0001 /*
0002     SPDX-FileCopyrightText: 2003-2009 Sebastian Trueg <trueg@k3b.org>
0003     SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl>
0004     SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "k3bdataadvancedimagesettingsdialog.h"
0010 #include "k3bisooptions.h"
0011 
0012 #include <KLocalizedString>
0013 
0014 #include <QDebug>
0015 #include <QCheckBox>
0016 #include <QDialogButtonBox>
0017 #include <QRadioButton>
0018 
0019 
0020 K3b::DataAdvancedImageSettingsDialog::DataAdvancedImageSettingsDialog( QWidget* parent )
0021     : QDialog( parent )
0022 {
0023     setupUi( this );
0024 
0025     setWindowTitle(i18n("Custom Data Project Filesystems"));
0026     setModal(true);
0027 
0028     connect( m_checkRockRidge, SIGNAL(toggled(bool)), m_groupRockRidgeSettings, SLOT(setEnabled(bool)) );
0029     connect( m_checkJoliet, SIGNAL(toggled(bool)), m_groupJolietSettings, SLOT(setEnabled(bool)) );
0030 }
0031 
0032 
0033 K3b::DataAdvancedImageSettingsDialog::~DataAdvancedImageSettingsDialog()
0034 {
0035 }
0036 
0037 
0038 void K3b::DataAdvancedImageSettingsDialog::load( const K3b::IsoOptions& options )
0039 {
0040     m_checkRockRidge->setChecked( options.createRockRidge() );
0041     m_checkJoliet->setChecked( options.createJoliet() );
0042     m_checkUdf->setChecked( options.createUdf() );
0043 
0044     switch( options.ISOLevel() ) {
0045     case 1:
0046         m_radioIsoLevel1->setChecked(true);
0047         break;
0048     case 2:
0049         m_radioIsoLevel2->setChecked(true);
0050         break;
0051     case 3:
0052         m_radioIsoLevel3->setChecked(true);
0053         break;
0054     }
0055 
0056     m_checkPreservePermissions->setChecked( options.preserveFilePermissions() );
0057 
0058     // RR settings
0059     m_checkCreateTransTbl->setChecked( options.createTRANS_TBL() );
0060     m_checkHideTransTbl->setChecked( options.hideTRANS_TBL() );
0061 
0062     // iso9660 settings
0063     m_checkAllowUntranslatedFilenames->setChecked( options.ISOuntranslatedFilenames() );
0064     m_checkAllow31CharFilenames->setChecked( options.ISOallow31charFilenames() );
0065     m_checkAllowMaxLengthFilenames->setChecked( options.ISOmaxFilenameLength() );
0066     m_checkAllowBeginningPeriod->setChecked( options.ISOallowPeriodAtBegin() );
0067     m_checkAllowFullAscii->setChecked( options.ISOrelaxedFilenames() );
0068     m_checkOmitVersionNumbers->setChecked( options.ISOomitVersionNumbers() );
0069     m_checkOmitTrailingPeriod->setChecked( options.ISOomitTrailingPeriod() );
0070     m_checkAllowOther->setChecked( options.ISOnoIsoTranslate() );
0071     m_checkAllowMultiDot->setChecked( options.ISOallowMultiDot() );
0072     m_checkAllowLowercaseCharacters->setChecked( options.ISOallowLowercase() );
0073 
0074     // joliet settings
0075     m_checkJolietLong->setChecked( options.jolietLong() );
0076 
0077     // misc (FIXME: should not be here)
0078     m_checkDoNotCacheInodes->setChecked( options.doNotCacheInodes() );
0079     m_checkDoNotImportSession->setChecked( options.doNotImportSession() );
0080 }
0081 
0082 
0083 void K3b::DataAdvancedImageSettingsDialog::save( K3b::IsoOptions& options )
0084 {
0085     options.setCreateRockRidge( m_checkRockRidge->isChecked() );
0086     options.setCreateJoliet( m_checkJoliet->isChecked() );
0087     options.setCreateUdf( m_checkUdf->isChecked() );
0088 
0089     // save iso-level
0090     if( m_radioIsoLevel3->isChecked() )
0091         options.setISOLevel( 3 );
0092     else if( m_radioIsoLevel2->isChecked() )
0093         options.setISOLevel( 2 );
0094     else
0095         options.setISOLevel( 1 );
0096 
0097     options.setPreserveFilePermissions( m_checkPreservePermissions->isChecked() );
0098 
0099     options.setCreateTRANS_TBL( m_checkCreateTransTbl->isChecked() );
0100     options.setHideTRANS_TBL( m_checkHideTransTbl->isChecked() );
0101     options.setISOuntranslatedFilenames( m_checkAllowUntranslatedFilenames->isChecked() );
0102     options.setISOallow31charFilenames( m_checkAllow31CharFilenames->isChecked() );
0103     options.setISOmaxFilenameLength( m_checkAllowMaxLengthFilenames->isChecked() );
0104     options.setISOallowPeriodAtBegin( m_checkAllowBeginningPeriod->isChecked() );
0105     options.setISOrelaxedFilenames( m_checkAllowFullAscii->isChecked() );
0106     options.setISOomitVersionNumbers( m_checkOmitVersionNumbers->isChecked() );
0107     options.setISOomitTrailingPeriod( m_checkOmitTrailingPeriod->isChecked() );
0108     options.setISOnoIsoTranslate( m_checkAllowOther->isChecked() );
0109     options.setISOallowMultiDot( m_checkAllowMultiDot->isChecked() );
0110     options.setISOallowLowercase( m_checkAllowLowercaseCharacters->isChecked() );
0111     //  o.setFollowSymbolicLinks( m_checkFollowSymbolicLinks->isChecked() );
0112     options.setJolietLong( m_checkJolietLong->isChecked() );
0113     options.setDoNotCacheInodes( m_checkDoNotCacheInodes->isChecked() );
0114     options.setDoNotImportSession( m_checkDoNotImportSession->isChecked() );
0115 }
0116 
0117 #include "moc_k3bdataadvancedimagesettingsdialog.cpp"