# include "optionssimple.h"
# include "config.h"
# include "convertpluginloader.h"
# include "optionsdetailed.h"
# include <tqlayout.h>
# include <tqlabel.h>
# include <tqstring.h>
# include <tqtooltip.h>
# include <tdelocale.h>
# include <kcombobox.h>
# include <kiconloader.h>
# include <tdemessagebox.h>
# include <tdetoolbarbutton.h>
//#include <kdebug.h>
# include <kpushbutton.h>
// FIXME when changing the output directory, check if the profile is a user defined and set it to 'User defined', if it is
// TODO hide lossless/hybrid/etc. when not available
OptionsSimple : : OptionsSimple ( Config * _config , OptionsDetailed * _optionsDetailed , const TQString & text , TQWidget * parent , const char * name )
: TQWidget ( parent , name )
{
config = _config ;
optionsDetailed = _optionsDetailed ;
// create an icon loader object for loading icons
TDEIconLoader * iconLoader = new TDEIconLoader ( ) ;
TQGridLayout * grid = new TQGridLayout ( this , 3 , 1 , 6 , 3 ) ;
TQHBoxLayout * topBox = new TQHBoxLayout ( ) ;
grid - > addLayout ( topBox , 0 , 0 ) ;
TQLabel * lQuality = new TQLabel ( i18n ( " Quality " ) + " : " , this , " lQuality " ) ;
topBox - > addWidget ( lQuality , 0 , TQt : : AlignVCenter ) ;
cProfile = new KComboBox ( this , " cProfile " ) ;
sProfile + = i18n ( " Very low " ) ;
sProfile + = i18n ( " Low " ) ;
sProfile + = i18n ( " Medium " ) ;
sProfile + = i18n ( " High " ) ;
sProfile + = i18n ( " Very high " ) ;
sProfile + = i18n ( " Lossless " ) ;
sProfile + = i18n ( " Hybrid " ) ;
sProfile + = config - > getAllProfiles ( ) ;
sProfile . remove ( i18n ( " Last used " ) ) ;
sProfile . remove ( " Last used " ) ;
sProfile + = i18n ( " User defined " ) ;
cProfile - > insertStringList ( sProfile ) ;
topBox - > addWidget ( cProfile , 0 , TQt : : AlignVCenter ) ;
connect ( cProfile , TQT_SIGNAL ( activated ( int ) ) ,
this , TQT_SLOT ( profileChanged ( ) )
) ;
connect ( cProfile , TQT_SIGNAL ( activated ( int ) ) ,
this , TQT_SLOT ( somethingChanged ( ) )
) ;
topBox - > addSpacing ( 3 ) ;
Bring filenew, fileopen, fileprint, filequickprint, filesave, filesaveas, fileclose, editclear, editcopy, editcut, editdelete, editpaste, folder_new, and gohome icons into XDG compliance
10 years ago
//pProfileRemove = new TDEToolBarButton( "edit-delete", 1002, this, "pProfileRemove" );
pProfileRemove = new KPushButton ( iconLoader - > loadIcon ( " edit-delete " , TDEIcon : : Small ) , i18n ( " Remove " ) , this , " pProfileRemove " ) ;
pProfileRemove - > hide ( ) ;
TQToolTip : : add ( pProfileRemove , i18n ( " Remove the selected profile " ) ) ;
topBox - > addWidget ( pProfileRemove , 0 , TQt : : AlignVCenter ) ;
connect ( pProfileRemove , TQT_SIGNAL ( clicked ( ) ) ,
this , TQT_SLOT ( profileRemove ( ) )
) ;
//pProfileInfo = new TDEToolBarButton( "messagebox_info", 1110, this, "pProfileInfo" );
pProfileInfo = new KPushButton ( iconLoader - > loadIcon ( " messagebox_info " , TDEIcon : : Small ) , i18n ( " Info " ) , this , " pProfileInfo " ) ;
TQToolTip : : add ( pProfileInfo , i18n ( " Information about the selected profile " ) ) ;
topBox - > addWidget ( pProfileInfo , 0 , TQt : : AlignVCenter ) ;
connect ( pProfileInfo , TQT_SIGNAL ( clicked ( ) ) ,
this , TQT_SLOT ( profileInfo ( ) )
) ;
topBox - > addSpacing ( 18 ) ;
TQLabel * lFormat = new TQLabel ( i18n ( " Output format " ) + " : " , this , " lFormat " ) ;
topBox - > addWidget ( lFormat , 0 , TQt : : AlignVCenter ) ;
cFormat = new KComboBox ( this , " cFormat " ) ;
topBox - > addWidget ( cFormat , 0 , TQt : : AlignVCenter ) ;
connect ( cFormat , TQT_SIGNAL ( activated ( int ) ) ,
this , TQT_SLOT ( formatChanged ( ) )
) ;
connect ( cFormat , TQT_SIGNAL ( activated ( int ) ) ,
this , TQT_SLOT ( somethingChanged ( ) )
) ;
topBox - > addSpacing ( 3 ) ;
//pFormatInfo = new TDEToolBarButton( "messagebox_info", 1111, this, "pFormatInfo" );
pFormatInfo = new KPushButton ( iconLoader - > loadIcon ( " messagebox_info " , TDEIcon : : Small ) , i18n ( " Info " ) , this , " pFormatInfo " ) ;
TQToolTip : : add ( pFormatInfo , i18n ( " Information about the selected file format " ) ) ;
topBox - > addWidget ( pFormatInfo , 0 , TQt : : AlignVCenter ) ;
connect ( pFormatInfo , TQT_SIGNAL ( clicked ( ) ) ,
this , TQT_SLOT ( formatInfo ( ) )
) ;
topBox - > addStretch ( ) ;
TQHBoxLayout * middleBox = new TQHBoxLayout ( ) ;
grid - > addLayout ( middleBox , 1 , 0 ) ;
outputDirectory = new OutputDirectory ( config , this , " outputDirectory " ) ;
middleBox - > addWidget ( outputDirectory , 0 , TQt : : AlignVCenter ) ;
connect ( outputDirectory , TQT_SIGNAL ( modeChanged ( OutputDirectory : : Mode ) ) ,
this , TQT_SLOT ( outputDirectoryModeChanged ( OutputDirectory : : Mode ) )
) ;
connect ( outputDirectory , TQT_SIGNAL ( directoryChanged ( const TQString & ) ) ,
this , TQT_SLOT ( outputDirectoryPathChanged ( const TQString & ) )
) ;
connect ( outputDirectory , TQT_SIGNAL ( modeChanged ( OutputDirectory : : Mode ) ) ,
this , TQT_SLOT ( somethingChanged ( ) )
) ;
connect ( outputDirectory , TQT_SIGNAL ( directoryChanged ( const TQString & ) ) ,
this , TQT_SLOT ( somethingChanged ( ) )
) ;
TQHBoxLayout * bottomBox = new TQHBoxLayout ( ) ;
grid - > addLayout ( bottomBox , 2 , 0 ) ;
TQLabel * lInfo = new TQLabel ( text , this , " lInfo " ) ;
lInfo - > setFixedHeight ( cProfile - > height ( ) ) ;
bottomBox - > addWidget ( lInfo , 0 , TQt : : AlignVCenter | TQt : : AlignLeft ) ;
// delete the icon loader object
delete iconLoader ;
}
OptionsSimple : : ~ OptionsSimple ( )
{
}
int OptionsSimple : : profileIndex ( const TQString & string )
{
TQString profile = string ;
if ( profile = = " Very low " ) profile = i18n ( " Very low " ) ;
else if ( profile = = " Low " ) profile = i18n ( " Low " ) ;
else if ( profile = = " Medium " ) profile = i18n ( " Medium " ) ;
else if ( profile = = " High " ) profile = i18n ( " High " ) ;
else if ( profile = = " Very high " ) profile = i18n ( " Very high " ) ;
else if ( profile = = " Lossless " ) profile = i18n ( " Lossless " ) ;
else if ( profile = = " Hybrid " ) profile = i18n ( " Hybrid " ) ;
else if ( profile = = " User defined " ) profile = i18n ( " User defined " ) ;
return sProfile . findIndex ( profile ) ;
}
int OptionsSimple : : formatIndex ( const TQString & string )
{
return sFormat . findIndex ( string ) ;
}
void OptionsSimple : : profileInfo ( )
{
TQString sProfileString = cProfile - > currentText ( ) ;
if ( sProfileString = = i18n ( " Very low " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces sound files of a very low quality. \n That can be useful, if you have a mobile device, where your memory cell is limited. It is not recommended to save your music in this quality without a copy with higher quality. \n It can also be used to save audio files with voices. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " Low " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces sound files of a low quality. \n That can be useful if you habe a mobile device where your memory cell is limited. It is not recommended to save your music in this quality without a copy with higher quality. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " Medium " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces sound files of a medium quality. \n If your disc space is limited, you can use this to save your music. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " High " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces sound files of a high quality. \n If you have enough disc space available, you can use this to save your music. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " Very high " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces sound files of a very high quality. \n You should only use this, if you are a quality freak and have enough disc space available. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " Lossless " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces files, that have exact the same quality as the input files. \n This files are very big and definitely only for quality freaks. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " Hybrid " ) ) {
KMessageBox : : information ( this ,
i18n ( " This produces two files. One lossy compressed playable file and one correction file. \n Both files together result in a file that is equivalent to the input file. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
else if ( sProfileString = = i18n ( " User defined " ) ) {
KMessageBox : : information ( this ,
i18n ( " You can define your own profile in the \" detailed \" tab. " ) ,
i18n ( " Profile " ) + " : " + sProfileString ) ;
}
// else { // the info button is hidden when showing user defined profiles
// KMessageBox::error( this,
// i18n("This is a user defined profile."),
// i18n("Profile")+": "+sProfileString );
// }
}
void OptionsSimple : : profileRemove ( )
{
int ret = KMessageBox : : questionYesNo ( this ,
i18n ( " Do you really want to remove the profile: %1 " ) . arg ( cProfile - > currentText ( ) ) ,
i18n ( " Remove profile? " ) ) ;
if ( ret ! = KMessageBox : : Yes ) return ;
config - > removeProfile ( cProfile - > currentText ( ) ) ;
sProfile . clear ( ) ;
cProfile - > clear ( ) ;
sProfile + = i18n ( " Very low " ) ;
sProfile + = i18n ( " Low " ) ;
sProfile + = i18n ( " Medium " ) ;
sProfile + = i18n ( " High " ) ;
sProfile + = i18n ( " Very high " ) ;
sProfile + = i18n ( " Lossless " ) ;
sProfile + = i18n ( " Hybrid " ) ;
sProfile + = config - > getAllProfiles ( ) ;
sProfile . remove ( i18n ( " Last used " ) ) ;
sProfile . remove ( " Last used " ) ;
sProfile + = i18n ( " User defined " ) ;
cProfile - > insertStringList ( sProfile ) ;
profileChanged ( ) ;
}
void OptionsSimple : : formatInfo ( )
{
TQString format = cFormat - > currentText ( ) ;
if ( format = = " wav " ) {
KMessageBox : : information ( this ,
i18n ( " <p>Wave is a file format, that doesn't compress it's audio data.</p> \n <p>So the quality is very high, but the file size is enormous. It is widely spread and should work with every audio player.</p> \n <a href= \" http://en.wikipedia.org/wiki/Wav \" >http://en.wikipedia.org/wiki/Wav</a> " ) ,
i18n ( " File format " ) + " : " + format ,
TQString ( ) , KMessageBox : : Notify | KMessageBox : : AllowLink ) ;
return ;
}
else {
KMessageBox : : information ( this ,
config - > getFormatDescription ( format ) ,
i18n ( " File format " ) + " : " + format ,
TQString ( ) , KMessageBox : : Notify | KMessageBox : : AllowLink ) ;
}
}
void OptionsSimple : : profileChanged ( )
{
TQString last ;
ConversionOptions options = config - > getProfile ( cProfile - > currentText ( ) ) ;
if ( ! options . encodingOptions . sFormat . isEmpty ( ) ) {
pProfileRemove - > show ( ) ;
pProfileInfo - > hide ( ) ;
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = options . encodingOptions . sFormat ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
outputDirectory - > setMode ( options . outputOptions . mode ) ;
outputDirectory - > setDirectory ( options . outputOptions . directory ) ;
optionsDetailed - > setCurrentOptions ( options ) ;
return ;
}
pProfileRemove - > hide ( ) ;
pProfileInfo - > show ( ) ;
if ( cProfile - > currentText ( ) = = i18n ( " Very low " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin = = 0 ) {
// FIXME error handling
//kdDebug() << "NULL POINTER: `" << "OptionsSimple::profileChanged() / Very low" << "'" << endl;
return ;
}
if ( plugin - > enc . lossy . quality . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Quality " ) ) ;
optionsDetailed - > setQuality ( 20 ) ;
}
else if ( plugin - > enc . lossy . bitrate . abr . enabled | | plugin - > enc . lossy . bitrate . cbr . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Bitrate " ) ) ;
optionsDetailed - > setQuality ( 64 ) ;
}
optionsDetailed - > setBitrateRangeEnabled ( false ) ;
optionsDetailed - > setSamplingrateEnabled ( true ) ;
optionsDetailed - > setSamplingrate ( 22050 ) ;
optionsDetailed - > setChannelsEnabled ( true ) ;
optionsDetailed - > setChannels ( i18n ( " Mono " ) ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Low " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin = = 0 ) {
// FIXME error handling
//kdDebug() << "NULL POINTER: `" << "OptionsSimple::profileChanged() / Low" << "'" << endl;
return ;
}
if ( plugin - > enc . lossy . quality . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Quality " ) ) ;
optionsDetailed - > setQuality ( 30 ) ;
}
else if ( plugin - > enc . lossy . bitrate . abr . enabled | | plugin - > enc . lossy . bitrate . cbr . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Bitrate " ) ) ;
optionsDetailed - > setQuality ( 96 ) ;
}
optionsDetailed - > setBitrateRangeEnabled ( false ) ;
optionsDetailed - > setSamplingrateEnabled ( true ) ;
optionsDetailed - > setSamplingrate ( 22050 ) ;
optionsDetailed - > setChannelsEnabled ( false ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Medium " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin = = 0 ) {
// FIXME error handling
//kdDebug() << "NULL POINTER: `" << "OptionsSimple::profileChanged() / Medium" << "'" << endl;
return ;
}
if ( plugin - > enc . lossy . quality . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Quality " ) ) ;
optionsDetailed - > setQuality ( 40 ) ;
}
else if ( plugin - > enc . lossy . bitrate . abr . enabled | | plugin - > enc . lossy . bitrate . cbr . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Bitrate " ) ) ;
optionsDetailed - > setQuality ( 192 ) ;
}
optionsDetailed - > setBitrateRangeEnabled ( false ) ;
optionsDetailed - > setSamplingrateEnabled ( false ) ;
optionsDetailed - > setChannelsEnabled ( false ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " High " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin = = 0 ) {
// FIXME error handling
//kdDebug() << "NULL POINTER: `" << "OptionsSimple::profileChanged() / High" << "'" << endl;
return ;
}
if ( plugin - > enc . lossy . quality . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Quality " ) ) ;
optionsDetailed - > setQuality ( 50 ) ;
}
else if ( plugin - > enc . lossy . bitrate . abr . enabled | | plugin - > enc . lossy . bitrate . cbr . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Bitrate " ) ) ;
optionsDetailed - > setQuality ( 240 ) ;
}
optionsDetailed - > setBitrateRangeEnabled ( false ) ;
optionsDetailed - > setSamplingrateEnabled ( false ) ;
optionsDetailed - > setChannelsEnabled ( false ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Very high " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin = = 0 ) {
// FIXME error handling
//kdDebug() << "NULL POINTER: `" << "OptionsSimple::profileChanged() / Very high" << "'" << endl;
return ;
}
if ( plugin - > enc . lossy . quality . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Quality " ) ) ;
optionsDetailed - > setQuality ( 60 ) ;
}
else if ( plugin - > enc . lossy . bitrate . abr . enabled | | plugin - > enc . lossy . bitrate . cbr . enabled ) {
optionsDetailed - > setQualityMode ( i18n ( " Bitrate " ) ) ;
optionsDetailed - > setQuality ( 320 ) ;
}
optionsDetailed - > setBitrateRangeEnabled ( false ) ;
optionsDetailed - > setSamplingrateEnabled ( false ) ;
optionsDetailed - > setChannelsEnabled ( false ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Lossless " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allLosslessEncodableFormats ( ) ;
sFormat + = " wav " ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
if ( plugin ! = 0 ) {
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
}
else if ( cProfile - > currentText ( ) = = i18n ( " Hybrid " ) /* || cProfile->currentText() == "Hybrid"*/ ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allHybridEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
optionsDetailed - > setReplayGainEnabled ( true ) ;
ConvertPlugin * plugin = config - > encoderForFormat ( cFormat - > currentText ( ) ) ;
optionsDetailed - > setQualityMode ( i18n ( " Hybrid " ) ) ;
if ( plugin ! = 0 ) {
optionsDetailed - > setUserOptions ( config - > binaries [ plugin - > enc . bin ] + " " + plugin - > enc . in_out_files ) ;
}
}
else if ( cProfile - > currentText ( ) = = i18n ( " User defined " ) ) {
last = cFormat - > currentText ( ) ;
cFormat - > clear ( ) ;
sFormat = config - > allEncodableFormats ( ) ;
sFormat + = " wav " ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( last ) ) ;
formatChanged ( ) ;
}
}
void OptionsSimple : : formatChanged ( )
{
optionsDetailed - > setFormat ( cFormat - > currentText ( ) ) ;
}
void OptionsSimple : : outputDirectoryModeChanged ( OutputDirectory : : Mode mode )
{
optionsDetailed - > setOutputDirectoryMode ( mode ) ;
if ( cProfile - > currentText ( ) ! = i18n ( " User defined " ) & & config - > getAllProfiles ( ) . findIndex ( cProfile - > currentText ( ) ) ! = - 1 ) {
ConversionOptions options = config - > getProfile ( cProfile - > currentText ( ) ) ;
// if( options.encodingOptions.sFormat.isEmpty() ) return;
if ( outputDirectory - > mode ( ) ! = options . outputOptions . mode | | outputDirectory - > directory ( ) ! = options . outputOptions . directory ) {
cProfile - > setCurrentItem ( profileIndex ( i18n ( " User defined " ) ) ) ; // NOTE not refill() ?
profileChanged ( ) ;
}
// refill();
}
}
void OptionsSimple : : outputDirectoryPathChanged ( const TQString & path )
{
optionsDetailed - > setOutputDirectoryPath ( path ) ;
if ( cProfile - > currentText ( ) ! = i18n ( " User defined " ) & & config - > getAllProfiles ( ) . findIndex ( cProfile - > currentText ( ) ) ! = - 1 ) {
ConversionOptions options = config - > getProfile ( cProfile - > currentText ( ) ) ;
// if( options.encodingOptions.sFormat.isEmpty() ) return;
if ( outputDirectory - > mode ( ) ! = options . outputOptions . mode | | outputDirectory - > directory ( ) ! = options . outputOptions . directory ) {
cProfile - > setCurrentItem ( profileIndex ( i18n ( " User defined " ) ) ) ; // NOTE not refill() ?
profileChanged ( ) ;
}
// refill();
}
}
void OptionsSimple : : setCurrentProfile ( const TQString & profile )
{
// TODO check profile (and don't change, if not available)
cProfile - > setCurrentItem ( profileIndex ( profile ) ) ;
profileChanged ( ) ;
}
void OptionsSimple : : setCurrentFormat ( const TQString & format )
{
cFormat - > setCurrentItem ( formatIndex ( format ) ) ;
formatChanged ( ) ;
}
// TODO check for errors
void OptionsSimple : : setCurrentOutputDirectory ( const TQString & directory )
{
outputDirectory - > setMode ( OutputDirectory : : Specify ) ;
outputDirectory - > setDirectory ( directory ) ;
optionsDetailed - > setOutputDirectoryMode ( OutputDirectory : : Specify ) ;
optionsDetailed - > setOutputDirectoryPath ( directory ) ;
}
void OptionsSimple : : somethingChanged ( )
{
emit optionsChanged ( ) ;
}
void OptionsSimple : : refill ( )
{
sProfile . clear ( ) ;
cProfile - > clear ( ) ;
sProfile + = i18n ( " Very low " ) ;
sProfile + = i18n ( " Low " ) ;
sProfile + = i18n ( " Medium " ) ;
sProfile + = i18n ( " High " ) ;
sProfile + = i18n ( " Very high " ) ;
sProfile + = i18n ( " Lossless " ) ;
sProfile + = i18n ( " Hybrid " ) ;
sProfile + = config - > getAllProfiles ( ) ;
sProfile . remove ( i18n ( " Last used " ) ) ;
sProfile . remove ( " Last used " ) ;
sProfile + = i18n ( " User defined " ) ;
cProfile - > insertStringList ( sProfile ) ;
cProfile - > setCurrentItem ( profileIndex ( config - > getProfileName ( optionsDetailed - > getCurrentOptions ( ) ) ) ) ;
if ( cProfile - > currentText ( ) = = i18n ( " Very low " ) | | cProfile - > currentText ( ) = = i18n ( " Low " ) | |
cProfile - > currentText ( ) = = i18n ( " Medium " ) | | cProfile - > currentText ( ) = = i18n ( " High " ) | |
cProfile - > currentText ( ) = = i18n ( " Very high " ) ) {
cFormat - > clear ( ) ;
sFormat = config - > allLossyEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( optionsDetailed - > getFormat ( ) ) ) ;
pProfileInfo - > show ( ) ;
pProfileRemove - > hide ( ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Lossless " ) ) {
cFormat - > clear ( ) ;
sFormat = config - > allLosslessEncodableFormats ( ) ;
sFormat + = " wav " ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( optionsDetailed - > getFormat ( ) ) ) ;
pProfileInfo - > show ( ) ;
pProfileRemove - > hide ( ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " Hybrid " ) ) {
cFormat - > clear ( ) ;
sFormat = config - > allHybridEncodableFormats ( ) ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( optionsDetailed - > getFormat ( ) ) ) ;
pProfileInfo - > show ( ) ;
pProfileRemove - > hide ( ) ;
}
else if ( cProfile - > currentText ( ) = = i18n ( " User defined " ) ) {
cFormat - > clear ( ) ;
sFormat = config - > allEncodableFormats ( ) ;
sFormat + = " wav " ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( optionsDetailed - > getFormat ( ) ) ) ;
pProfileInfo - > show ( ) ;
pProfileRemove - > hide ( ) ;
}
else {
ConversionOptions options = config - > getProfile ( cProfile - > currentText ( ) ) ;
cFormat - > clear ( ) ;
sFormat = options . encodingOptions . sFormat ;
cFormat - > insertStringList ( sFormat ) ;
cFormat - > setCurrentItem ( formatIndex ( optionsDetailed - > getFormat ( ) ) ) ;
pProfileInfo - > hide ( ) ;
pProfileRemove - > show ( ) ;
}
outputDirectory - > setMode ( optionsDetailed - > getOutputDirectoryMode ( ) ) ;
outputDirectory - > setDirectory ( optionsDetailed - > getOutputDirectoryPath ( ) ) ;
}