File indexing completed on 2024-04-21 05:50:00
0001 //************************************************************************** 0002 // Copyright 2006 - 2017 Martin Koller, kollix@aon.at 0003 // 0004 // This program is free software; you can redistribute it and/or modify 0005 // it under the terms of the GNU General Public License as published by 0006 // the Free Software Foundation, version 2 of the License 0007 // 0008 //************************************************************************** 0009 0010 #include <SettingsDialog.hxx> 0011 0012 //-------------------------------------------------------------------------------- 0013 0014 SettingsDialog::SettingsDialog(QWidget *parent) 0015 : QDialog(parent) 0016 { 0017 ui.setupUi(this); 0018 0019 QStringList sizes; 0020 0021 sizes << i18n("unlimited") 0022 << i18n("650 MB CD") 0023 << i18n("700 MB CD") 0024 << i18n("4.7 GB DVD") 0025 << i18n("8.5 GB DVD") 0026 << i18n("9.4 GB DVD") 0027 << i18n("17.1 GB DVD") 0028 << i18n("custom"); 0029 0030 ui.predefSizes->addItems(sizes); 0031 0032 // unlimited as default 0033 ui.predefSizes->setCurrentIndex(0); 0034 ui.maxSliceSize->setValue(0); 0035 ui.maxSliceSize->setDisabled(true); 0036 connect(ui.predefSizes, &QComboBox::activated, this, &SettingsDialog::slotSizeSelected); 0037 } 0038 0039 //-------------------------------------------------------------------------------- 0040 0041 void SettingsDialog::slotSizeSelected(int idx) 0042 { 0043 if ( idx == (ui.predefSizes->count() - 1) ) 0044 ui.maxSliceSize->setEnabled(true); 0045 else 0046 ui.maxSliceSize->setDisabled(true); 0047 0048 // https://en.wikipedia.org/wiki/Binary_prefix#Binary_prefixes_using_SI_symbols 0049 // CD capacities are always given in binary units 0050 // But DVD capacities are given in decimal units 0051 0052 switch ( idx ) 0053 { 0054 // unlimited 0055 case 0: ui.maxSliceSize->setValue( 0); break; 0056 0057 // CDs 0058 case 1: ui.maxSliceSize->setValue( 650); break; 0059 case 2: ui.maxSliceSize->setValue( 700); break; 0060 0061 // DVDs 0062 case 3: ui.maxSliceSize->setValue( 4482); break; 0063 case 4: ui.maxSliceSize->setValue( 8106); break; 0064 case 5: ui.maxSliceSize->setValue( 8964); break; 0065 case 6: ui.maxSliceSize->setValue(16307); break; 0066 0067 // custom 0068 case 7: ui.maxSliceSize->setValue( 0); break; 0069 } 0070 } 0071 0072 //-------------------------------------------------------------------------------- 0073 0074 void SettingsDialog::setMaxMB(int mb) 0075 { 0076 ui.maxSliceSize->setValue(mb); 0077 ui.maxSliceSize->setDisabled(true); 0078 0079 switch ( mb ) 0080 { 0081 case 0: ui.predefSizes->setCurrentIndex(0); break; 0082 case 650: ui.predefSizes->setCurrentIndex(1); break; 0083 case 700: ui.predefSizes->setCurrentIndex(2); break; 0084 case 4482: ui.predefSizes->setCurrentIndex(3); break; 0085 case 8106: ui.predefSizes->setCurrentIndex(4); break; 0086 case 8964: ui.predefSizes->setCurrentIndex(5); break; 0087 case 16307: ui.predefSizes->setCurrentIndex(6); break; 0088 0089 default : ui.predefSizes->setCurrentIndex(7); 0090 ui.maxSliceSize->setEnabled(true); 0091 break; 0092 } 0093 } 0094 0095 //-------------------------------------------------------------------------------- 0096 0097 #include "moc_SettingsDialog.cpp"