diff options
Diffstat (limited to 'src/k9mencodercmdgen.cpp')
-rw-r--r-- | src/k9mencodercmdgen.cpp | 670 |
1 files changed, 670 insertions, 0 deletions
diff --git a/src/k9mencodercmdgen.cpp b/src/k9mencodercmdgen.cpp new file mode 100644 index 0000000..2681b82 --- /dev/null +++ b/src/k9mencodercmdgen.cpp @@ -0,0 +1,670 @@ +// +// C++ Implementation: +// +// Description: +// +// +// Author: Jean-Michel PETIT <[email protected]>, (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// + + +#include "k9mencodercmdgen.h" +#include <qscrollview.h> +#include <qtabwidget.h> +#include <qfile.h> +#include <qdom.h> +#include <qlabel.h> +#include <knuminput.h> +#include <qcheckbox.h> +#include <qcombobox.h> +#include <qframe.h> +#include <qwidgetstack.h> +#include <klocale.h> +#include <qheader.h> +#include <qlayout.h> +#include <qvbox.h> +#include <qtooltip.h> +#include <qwhatsthis.h> +#include <kstandarddirs.h> +#include <kapplication.h> +class _k9CheckListItem: public QCheckListItem { +public: + _k9CheckListItem(QListViewItem *_item):QCheckListItem(_item,"",QCheckListItem::CheckBox) {}; + QString root; + QDomDocument doc; + int page; + QFrame *frame; + int rtti () const {return 1001;} +protected: + void stateChange(bool _state); +}; + +void _k9CheckListItem::stateChange(bool _state) { + QDomElement eRoot=doc.documentElement().elementsByTagName(root).item(0).toElement(); + QDomElement eCodec=eRoot.elementsByTagName(text()).item(0).toElement(); + eCodec.setAttribute("selected",_state?"true":"false"); +} + + +k9MencoderCmdGen::k9MencoderCmdGen(QWidget* parent, const QString &_cmd, bool modal, WFlags fl) +: MyDialog1(parent,"", modal,fl) +{ + setCaption(kapp->makeStdCaption(i18n("MEncoder options"))); + m_row=0; m_page=1; + loadXml(); + parseCmd(_cmd); + + fillListView(); +} + +void k9MencoderCmdGen::fillListView() { + listView->clear(); + listView->header()->hide(); + QListViewItem *item=new QListViewItem(listView); + item->setOpen(true); + item->setText(0,i18n("Audio Codec")); + QDomElement root=m_doc.documentElement().elementsByTagName("AUDIO").item(0).toElement(); + for (int i=0; i< root.childNodes().count();i++) { + QDomElement eChild=root.childNodes().item(i).toElement(); + _k9CheckListItem *child=new _k9CheckListItem(item); + child->setText(0,eChild.nodeName()); + child->root="AUDIO"; + child->doc=m_doc; + QDomAttr attr=eChild.attributeNode("selected"); + if (!attr.isNull()) + child->setOn(attr.value()=="true"); + + addWidgets(child, "AUDIO",eChild.nodeName()); + + } + item=new QListViewItem(listView); + item->setText(0,i18n("Video Codec")); + item->setOpen(true); + root=m_doc.documentElement().elementsByTagName("VIDEO").item(0).toElement(); + for (int i=0; i< root.childNodes().count();i++) { + QDomElement eChild=root.childNodes().item(i).toElement(); + _k9CheckListItem *child=new _k9CheckListItem(item); + child->setText(0,eChild.nodeName()); + child->root="VIDEO"; + child->doc=m_doc; + QDomAttr attr=eChild.attributeNode("selected"); + if (!attr.isNull()) + child->setOn(attr.value()=="true"); + + addWidgets(child, "VIDEO",eChild.nodeName()); + + + } + + item=new QListViewItem(listView); + item->setText(0,i18n("Filters")); + item->setOpen(true); + root=m_doc.documentElement().elementsByTagName("FILTERS").item(0).toElement(); + for (int i=0; i< root.childNodes().count();i++) { + QDomElement eChild=root.childNodes().item(i).toElement(); + _k9CheckListItem *child=new _k9CheckListItem(item); + child->setText(0,eChild.nodeName()); + child->root="FILTERS"; + child->doc=m_doc; + QDomAttr attr=eChild.attributeNode("selected"); + if (!attr.isNull()) + child->setOn(attr.value()=="true"); + + addWidgets(child, "FILTERS",eChild.nodeName()); + } + +} + +k9MencoderCmdGen::~k9MencoderCmdGen() +{ +} + +/*$SPECIALIZATION$*/ + +void k9MencoderCmdGen::listViewCurrentChanged(QListViewItem *_item) { + if (_item->parent() == NULL) + wsOptions->raiseWidget(0); + else if (_item->rtti()==1001) { + _k9CheckListItem *item=(_k9CheckListItem*) _item; + wsOptions->raiseWidget(item->page); + + + } +} + +void k9MencoderCmdGen::loadXml() { + QFile file(KGlobal::dirs()->findResource( "data", "k9copy/mencoder.xml")); + if ( !file.open( IO_ReadOnly ) ) + return; + if ( !m_doc.setContent( &file ) ) { + file.close(); + return; + } + file.close(); + + + } + +void k9MencoderCmdGen::addWidgets(_k9CheckListItem *_listItem,QString _root,QString _cat) { + m_cpt=0; + QVBox *vbox=new QVBox(wsOptions); + wsOptions->addWidget(vbox,m_page); + _listItem->page=m_page; + m_page++; + + QFrame *fr=new QFrame(vbox); + _listItem->frame=fr; + + + QGridLayout *m_grid1=new QGridLayout(fr,1,1,0,0); + m_scrollView=new QScrollView(fr,0); + m_scrollView->viewport()->setPaletteBackgroundColor(this->paletteBackgroundColor()); + m_scrollView->setVScrollBarMode(QScrollView::AlwaysOn); + m_grid1->addWidget(m_scrollView,0,0); + + m_grid=new QGrid(2,m_scrollView->viewport()); + m_grid->setSpacing(2); + m_scrollView->addChild(m_grid); + + + //finds the VIDEO node + QDomElement eVideo=m_doc.documentElement().elementsByTagName(_root).item(0).toElement(); + //gets the codec list + QDomNodeList lCodecs=eVideo.elementsByTagName(_cat); + for (int i=0; i<lCodecs.count();i++) { + QDomElement eCodec=lCodecs.item(i).toElement(); + //gets codec options + QDomNodeList lOptions=eCodec.elementsByTagName("opt"); + for (int j=0;j<lOptions.count();j++) { + QDomElement eOpt=lOptions.item(j).toElement(); + QDomAttr aType=eOpt.attributeNode("type"); + if (aType.value() == "int") + addInt(eOpt); + else if(aType.value()=="float") + addFloat(eOpt); + else if (aType.value()=="bool") + addBool(eOpt); + else if (aType.value()=="string") + addString(eOpt); + else if (aType.value()=="") + addList(eOpt); + } + } +} + +void k9MencoderCmdGen::addList(QDomElement _eOpt) { + QString sName=_eOpt.attributeNode("name").value(); + bool bSel=false; + QDomAttr aSel=_eOpt.attributeNode("selected"); + if (!aSel.isNull()) + bSel=aSel.value()=="true"; + + + QCheckBox *ckLabel=new QCheckBox(sName,m_grid,QString("ck%1").arg(m_row++) ); + ckLabel->setChecked(bSel); + m_hbox=new QGrid(2,m_grid); + m_hbox->setFrameShape(QFrame::StyledPanel); + m_hbox->setFrameShadow(QFrame::Raised); + + if ( !_eOpt.attributeNode("description").isNull()) { + QToolTip::add(ckLabel,_eOpt.attributeNode("description").value()); + QWhatsThis::add(ckLabel,_eOpt.attributeNode("description").value()); + } + + + QDomNodeList lOption=_eOpt.elementsByTagName("subopt"); + for (int i=0; i<lOption.count();i++) { + QDomElement eSubOpt=lOption.item(i).toElement(); + QDomAttr aType=eSubOpt.attributeNode("type"); + if (aType.value() == "int") + addInt(eSubOpt); + else if(aType.value()=="float") + addFloat(eSubOpt); + else if (aType.value()=="bool") + addBool(eSubOpt); + else if (aType.value()=="string") + addString(eSubOpt); + } + + _eOpt.setAttribute("checkbox",ckLabel->name()); + +} + + +void k9MencoderCmdGen::addInt(QDomElement _eOpt) { + QString sName=_eOpt.attributeNode("name").value(); + bool blist=false; + if (_eOpt.nodeName()=="subopt") + blist=true; + + int iMin=_eOpt.attributeNode("min").value().toInt(); + int iMax=_eOpt.attributeNode("max").value().toInt(); + int iDefault=_eOpt.attributeNode("default").value().toInt(); + + QWidget *parent; + if (!blist) { + parent=m_grid; + } else + parent=m_hbox; + + bool bSel=false; + QDomAttr aSel=_eOpt.attributeNode("selected"); + if (!aSel.isNull()) + bSel=aSel.value()=="true"; + + QCheckBox *ckLabel=new QCheckBox(sName,parent,QString("ck%1").arg(m_row++) ); + ckLabel->setChecked(bSel); + ckLabel->setBackgroundColor(parent->backgroundColor()); + + if ( !_eOpt.attributeNode("description").isNull()) { + QToolTip::add(ckLabel,_eOpt.attributeNode("description").value()); + QWhatsThis::add(ckLabel,_eOpt.attributeNode("description").value()); + } + _eOpt.setAttribute("checkbox",ckLabel->name()); + + + KIntSpinBox *sb= new KIntSpinBox(iMin,iMax,1,iDefault,10,parent,QString("int%1").arg(m_row++)); + if (iMax <1000) + sb->setFixedWidth(50); + else + sb->setFixedWidth(100); + if( !_eOpt.attributeNode("special").isNull()){ + sb->setSpecialValueText(_eOpt.attributeNode("special").value()); + if (_eOpt.attributeNode("special").value()== _eOpt.attributeNode("default").value()) + sb->setValue(iMin-1); + + } + + _eOpt.setAttribute("widget",sb->name()); + + //m_grid->addWidget(label,m_row++,0); +} +void k9MencoderCmdGen::addFloat(QDomElement _eOpt) { + QString sName=_eOpt.attributeNode("name").value(); + double dMin=_eOpt.attributeNode("min").value().toDouble(); + double dMax=_eOpt.attributeNode("max").value().toDouble(); + double dDefault=_eOpt.attributeNode("default").value().toDouble(); + bool bSel=false; + bool blist=false; + if (_eOpt.nodeName()=="subopt") + blist=true; + + QWidget *parent; + if (!blist) { + parent=m_grid; + } else + parent=m_hbox; + QDomAttr aSel=_eOpt.attributeNode("selected"); + if (!aSel.isNull()) + bSel=aSel.value()=="true"; + + QCheckBox *ckLabel=new QCheckBox(sName,parent,QString("ck%1").arg(m_row++)); + ckLabel->setChecked(bSel); + if ( !_eOpt.attributeNode("description").isNull()) { + QToolTip::add(ckLabel,_eOpt.attributeNode("description").value()); + QWhatsThis::add(ckLabel,_eOpt.attributeNode("description").value()); + } + _eOpt.setAttribute("checkbox",ckLabel->name()); + + double dStep=0.01; + int iPrecision=2; + if (!_eOpt.attributeNode("step").isNull()) { + dStep=_eOpt.attributeNode("step").value().toDouble(); + } + if (!_eOpt.attributeNode("precision").isNull()) { + iPrecision=_eOpt.attributeNode("precision").value().toInt(); + } + KDoubleSpinBox *sb= new KDoubleSpinBox(dMin,dMax,dStep,dDefault,iPrecision,parent,QString("float%1").arg(m_row++)); + if (dMax <1000) + sb->setFixedWidth(80); + else + sb->setFixedWidth(120); + if( !_eOpt.attributeNode("special").isNull()){ + sb->setSpecialValueText(_eOpt.attributeNode("special").value()); + } + + _eOpt.setAttribute("widget",sb->name()); +} + +void k9MencoderCmdGen::addBool(QDomElement _eOpt) { + QString sName=_eOpt.attributeNode("name").value(); + bool blist=false; + if (_eOpt.nodeName()=="subopt") + blist=true; + + bool bSel=false; + QWidget *parent; + if (!blist) { + parent = m_grid; + } else + parent = m_hbox; + + QDomAttr aSel=_eOpt.attributeNode("selected"); + if (!aSel.isNull()) + bSel=aSel.value()=="true"; + + QCheckBox *ckLabel=new QCheckBox(sName,parent,QString("ck%1").arg(m_row++)); + + if ( !_eOpt.attributeNode("description").isNull()) { + QToolTip::add(ckLabel,_eOpt.attributeNode("description").value()); + QWhatsThis::add(ckLabel,_eOpt.attributeNode("description").value()); + } + QWidget *w=new QWidget(parent); + + if ((_eOpt.attributeNode("default").value()=="true") && bSel) + ckLabel->setChecked(true); + + _eOpt.setAttribute("checkbox",ckLabel->name()); + +} + +void k9MencoderCmdGen::addString(QDomElement _eOpt) { + QString sName=_eOpt.attributeNode("name").value(); + bool blist=false; + if (_eOpt.nodeName()=="subopt") + blist=true; + + QString sDefault=_eOpt.attributeNode("default").value(); + QWidget *parent; + if( !blist) { + parent=m_grid; + } else + parent=m_hbox; + + bool bSel=false; + QDomAttr aSel=_eOpt.attributeNode("selected"); + if (!aSel.isNull()) + bSel=aSel.value()=="true"; + + QCheckBox *ckLabel=new QCheckBox(sName,parent,QString("ck%1").arg(m_row++)); + ckLabel->setChecked(bSel); + if ( !_eOpt.attributeNode("description").isNull()) { + QToolTip::add(ckLabel,_eOpt.attributeNode("description").value()); + QWhatsThis::add(ckLabel,_eOpt.attributeNode("description").value()); + } + _eOpt.setAttribute("checkbox",ckLabel->name()); + + QComboBox *cb=new QComboBox(parent,QString("string%1").arg(m_row++)); + + QDomNodeList values=_eOpt.elementsByTagName("value"); + int def=0; + if (values.count()==0) { + cb->setEditable(true); + cb->setCurrentText(sDefault); + } else { + for (int i=0;i<values.count();i++) { + QDomElement e=values.item(i).toElement(); + cb->insertItem(e.attributeNode("name").value()); + if (e.attributeNode("name").value() ==sDefault) + def=cb->count()-1; + } + cb->setCurrentItem(def); + } + _eOpt.setAttribute("widget",cb->name()); + +} + +const QString & k9MencoderCmdGen::getCmd(const QString &_root) { + /* QString str; + QTextStream ts(&str,IO_WriteOnly); + m_doc.save(ts,4); + QFile f ("/home/jmp/doc.xml"); + f.open(IO_WriteOnly); + f.writeBlock(str.latin1(),str.length()); + f.close(); +*/ + m_cmd=""; + QString m_sepOpt=":"; + QString m_sepValues=","; + //finds the VIDEO node + QDomElement eRoot=m_doc.documentElement().elementsByTagName(_root).item(0).toElement(); + + //gets the codec list + QDomNodeList lCodecs=eRoot.childNodes(); + for (int i=0; i<lCodecs.count();i++) { + QString sCmd="",sCmd1=""; + QDomElement eCodec=lCodecs.item(i).toElement(); + QDomAttr eSep=eCodec.attributeNode("separator"); + if (!eSep.isNull()) + m_sepOpt=eSep.value(); + + QDomAttr eAttr=eCodec.attributeNode("selected"); + if (eAttr.isNull()) + continue; + if (eAttr.value()=="false") + continue; + + //gets codec options + QDomNodeList lOptions=eCodec.elementsByTagName("opt"); + for (int j=0;j<lOptions.count();j++) { + QDomElement eOpt=lOptions.item(j).toElement(); + QDomAttr aType=eOpt.attributeNode("type"); + QDomAttr aCheckBox=eOpt.attributeNode("checkbox"); + QDomAttr aWidget=eOpt.attributeNode("widget"); + QCheckBox *ck=(QCheckBox*)this->child(aCheckBox.value().latin1()); + if (ck->isChecked()) { + if (sCmd1.isEmpty()){ + if (eCodec.attributeNode("options").isNull()) + sCmd1=" -"+eCodec.tagName()+" "; + else + sCmd1=eCodec.tagName()+" -"+eCodec.attributeNode("options").value()+" "; + + } + if(aType.isNull()) { + //build list + eSep=eOpt.attributeNode("separator"); + if (!eSep.isNull()) + m_sepValues=eSep.value(); + QDomNodeList lSubOpt=eOpt.elementsByTagName("subopt"); + QString sCmd2=""; + QString sTmp=""; + for (int k=0;k<lSubOpt.count();k++) { + QDomElement eSOpt=lSubOpt.item(k).toElement(); + QDomAttr aSType=eSOpt.attributeNode("type"); + QDomAttr aSWidget=eSOpt.attributeNode("widget"); + QString sPrefix=""; + if (!eSOpt.attributeNode("prefix").isNull()) + sPrefix=eSOpt.attributeNode("prefix").value(); + QCheckBox *Sck=(QCheckBox*)this->child(eSOpt.attributeNode("checkbox").value().latin1()); + if(aSType.value()=="int" && Sck->isChecked()) { + KIntSpinBox *isb=(KIntSpinBox*) this->child(aSWidget.value().latin1(),"KIntSpinBox"); + if (!sCmd2.isEmpty()) + sCmd2 +=m_sepValues; + sCmd2+=sTmp+sPrefix+isb->text().stripWhiteSpace() ; + sTmp=""; + } else if(aSType.value()=="float" && Sck->isChecked()) { + KDoubleSpinBox *isb=(KDoubleSpinBox*) this->child(aSWidget.value().latin1(),"KDoubleSpinBox"); + if (!sCmd2.isEmpty()) + sCmd2 +=m_sepValues; + sCmd2+=sTmp+sPrefix+isb->text().replace(",",".").stripWhiteSpace(); + sTmp=""; + } else if(aSType.value()=="string" && Sck->isChecked()) { + QComboBox *cb=(QComboBox*) this->child(aSWidget.value().latin1(),"QComboBox"); + if (!sCmd2.isEmpty() ) + sCmd2 +=m_sepValues; + // sCmd2+= cb->text(cb->currentItem()); + sCmd2+= sTmp+ sPrefix+cb->currentText(); + sTmp=""; + }else if(aSType.value()=="bool" && Sck->isChecked()) { + if (!sCmd2.isEmpty() ) + sCmd2 +=m_sepValues; + sCmd2+= sTmp+ eSOpt.attributeNode("name").value(); + sTmp=""; + } else if(sPrefix==""){ + sTmp +=m_sepValues; + } + } + if (!sCmd.isEmpty()) + sCmd +=m_sepOpt;; + sCmd+= eOpt.attributeNode("name").value() + "=" +sCmd2; + }else if(aType.value()=="int") { + KIntSpinBox *isb=(KIntSpinBox*) this->child(aWidget.value().latin1(),"KIntSpinBox"); + if (!sCmd.isEmpty()) + sCmd +=m_sepOpt; + sCmd+= eOpt.attributeNode("name").value() + "=" + isb->text(); + } else if(aType.value()=="float") { + KDoubleSpinBox *isb=(KDoubleSpinBox*) this->child(aWidget.value().latin1(),"KDoubleSpinBox"); + if (!sCmd.isEmpty()) + sCmd +=m_sepOpt; + sCmd+= eOpt.attributeNode("name").value() + "=" + isb->text().replace(",","."); + } else if(aType.value()=="string") { + QComboBox *cb=(QComboBox*) this->child(aWidget.value().latin1(),"QComboBox"); + if (!sCmd.isEmpty()) + sCmd +=m_sepOpt; + sCmd+= eOpt.attributeNode("name").value() + "=" + cb->currentText(); + } else if(aType.value()=="bool") { + if (!sCmd.isEmpty()) + sCmd +=m_sepOpt; + sCmd+=eOpt.attributeNode("name").value() ; + } + } + } + m_cmd+=sCmd1+sCmd; + + } + + return m_cmd; +} + +bool k9MencoderCmdGen::getMencoderOptions(QString &_cmd) { + k9MencoderCmdGen * m_cmdGen=new k9MencoderCmdGen(NULL,_cmd); + m_cmdGen->m_cmd=_cmd; + bool res=m_cmdGen->exec(); + if (res) { + QString m_video=m_cmdGen->getCmd("VIDEO").stripWhiteSpace(); + QString m_audio=m_cmdGen->getCmd("AUDIO").stripWhiteSpace(); + QString m_filters=m_cmdGen->getCmd("FILTERS").stripWhiteSpace(); + if (!m_video.isEmpty()) + m_video="-ovc "+m_video; + if (!m_audio.isEmpty()) + m_audio="-oac " +m_audio; + _cmd=" "+m_video+" "+m_audio+" "+m_filters; + } + delete m_cmdGen; + return res; +} + +void k9MencoderCmdGen::parseCmd(const QString &_cmd){ + QString cmd(_cmd); + cmd=cmd.replace("\n"," ").simplifyWhiteSpace(); + QStringList cmdList=QStringList::split(" ",cmd); + for (QStringList::iterator it=cmdList.begin();it!=cmdList.end();++it) { + if (*it=="-ovc") { + ++it; + selectCodec("VIDEO",*it); + } else if (*it=="-oac") { + ++it; + selectCodec("AUDIO",*it); + } else { + if (*it=="-vf") + selectCodec("FILTERS","vf"); + else if (*it=="-af") + selectCodec("FILTERS","af"); + QDomNodeList lRoot=m_doc.documentElement().childNodes(); + bool bFound=false; + QString sCodec=*it; + for (int i=0;i<lRoot.count();i++) { + QDomElement eRoot=lRoot.item(i).toElement(); + QDomNodeList lCodec=eRoot.childNodes(); + for (int j=0;j<lCodec.count();j++) { + QDomElement eCodec=lCodec.item(j).toElement(); + QString sOptName=""; + if (eCodec.attributeNode("options").isNull()) + sOptName="-"+eCodec.nodeName(); + else + sOptName="-"+eCodec.attributeNode("options").value(); + if ( sOptName ==sCodec) { + if (!bFound) + ++it; + parseCodecOptions(eRoot.nodeName(),eCodec.nodeName(),*it); + bFound=true; + } + } + + } + } + } +} + +void k9MencoderCmdGen::parseCodecOptions(const QString &_root,const QString &_codec,const QString & _options) { + + QString m_sepOpt=":"; + QString m_sepValues=","; + + QDomElement eRoot=m_doc.documentElement().elementsByTagName(_root).item(0).toElement(); + QDomElement eCodec=eRoot.elementsByTagName(_codec).item(0).toElement(); + + if (! eCodec.attributeNode("separator").isNull()) + m_sepOpt=eCodec.attributeNode("separator").value(); + + QStringList slOptions=QStringList::split(m_sepOpt,_options); + QDomNodeList lOpt=eCodec.elementsByTagName("opt"); + + + for (int i=0;i <lOpt.count();i++) { + QDomElement eOpt=lOpt.item(i).toElement(); + QString sName=eOpt.attributeNode("name").value(); + if (! eOpt.attributeNode("separator").isNull()) + m_sepValues=eOpt.attributeNode("separator").value(); + + //extract the option (optname=value) + QStringList sl=slOptions.grep(sName,false); + QString sOpt=""; + for (QStringList::iterator it=slOptions.begin();it !=slOptions.end();++it) + if (*it==sName || (*it).startsWith(sName+"=")) + sOpt=*it; + + if (sOpt!="") { + //QString sOpt=*(sl.at(0)); + QString value; + if (eOpt.attributeNode("type").isNull()) { + //it's a list of values + QString sValues=sOpt.replace("="+m_sepValues,"= "+m_sepValues).replace(m_sepValues+m_sepValues,m_sepValues+" "+m_sepValues).replace(m_sepValues+m_sepValues,m_sepValues+" "+m_sepValues).section("=",1); + QStringList slValues=QStringList::split(m_sepValues,sValues); + //loop on values nodes + QDomNodeList lSOpt=eOpt.elementsByTagName("subopt"); + for (int j=0;j<lSOpt.count();j++) { + QDomElement eSOpt=lSOpt.item(j).toElement(); + //if (eSOpt.attributeNode("type").value()=="int") { + if (eSOpt.attributeNode("prefix").isNull()) { + if (j< slValues.count() && *(slValues.at(j)) !=" " ) { + QString sVal=*(slValues.at(j)); + if (eSOpt.attributeNode("type").value()=="bool") + sVal="true"; + eSOpt.setAttribute("default",sVal); + eSOpt.setAttribute("selected","true"); + } + } else { + QString sPrefix=eSOpt.attributeNode("prefix").value(); + for (int k=0;k<slValues.count();k++) { + QString s=*(slValues.at(k)); + if (s.startsWith(sPrefix)) { + eSOpt.setAttribute("default",s.replace(sPrefix,"")); + eSOpt.setAttribute("selected","true"); + } + } + } + } + } else if (eOpt.attributeNode("type").value()=="bool" ) + value="true"; + else + value=sOpt.section("=",1,1); + eOpt.setAttribute("default",value); + eOpt.setAttribute("selected","true"); + } + } +} + +void k9MencoderCmdGen::selectCodec(const QString &_root,const QString &_codec) { + QDomElement root=m_doc.documentElement().elementsByTagName(_root).item(0).toElement(); + QDomElement codec=root.elementsByTagName(_codec).item(0).toElement(); + if (!codec.isNull()) + codec.setAttribute("selected","true"); +} + + +#include "k9mencodercmdgen.moc" + |