You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k9copy/src/k9titlefactor.cpp

146 lines
3.3 KiB

//
// C++ Implementation:
//
// Description:
//
//
// Author: Jean-Michel PETIT <k9copy@free.fr>, (C) 2006
//
// Copyright: See COPYING file that comes with this distribution
//
//
#include "k9titlefactor.h"
#include "k9cellcopylist.h"
#include "k9dvdsize.h"
#include <tqgroupbox.h>
#include <tqslider.h>
#include <tqlabel.h>
#include <tqcheckbox.h>
#include <tdelocale.h>
k9TitleFactor::k9TitleFactor(TQWidget* parent, const char* name, WFlags fl)
: titleFactor(parent,name,fl) {
m_current=NULL;
m_slFactorPressed=false;
m_factor=-1;
m_dvd=NULL;
m_updating=false;
SelectionChanged( NULL,m_withMenus);
m_useDvdAuthor=false;
slFactor->setPageStep(0);
}
k9TitleFactor::~k9TitleFactor() {}
/*$SPECIALIZATION$*/
void k9TitleFactor::setUseDvdAuthor( bool _value) {
m_useDvdAuthor=_value;
}
float k9TitleFactor::getFactor() {
if (m_factor==-1)
m_factor=m_dvd->getfactor( m_withMenus,false,m_useDvdAuthor);
return m_factor;
}
void k9TitleFactor::ckAutoClicked(bool checked) {
if (m_current!=NULL && !m_updating) {
m_current->setforceFactor(checked);
if ( checked) {
m_current->setfactor( getFactor());
slFactor->setValue(m_current->getfactor()*100.0);
setMinFactor();
} else {
slFactor->setValue(getFactor()*100.0);
slFactor->setMinValue(100);
}
}
}
void k9TitleFactor::slFactorReleased() {
m_slFactorPressed=false;
}
void k9TitleFactor::slFactorPressed() {
if (m_current !=NULL) {
m_current->setforceFactor(true);
setMinFactor();
}
m_slFactorPressed=true;
}
void k9TitleFactor::slFactor_valueChanged( int ) {
if (m_current !=NULL ) {
if (m_slFactorPressed) {
m_current->setfactor( (double)slFactor->value() /100);
for (int i=0;i <m_current->getTitles().count();i++) {
k9DVDTitle * title=m_current->getTitles().at(i);
title->setfactor( (double)slFactor->value() /100);
}
m_factor=-1;
}
if (m_current->getforceFactor())
tFactor->setText(TQString("%1").arg(m_current->getfactor(),4,'f',2));
else
tFactor->setText(TQString("%1").arg(getFactor(),4,'f',2));
}
}
void k9TitleFactor::changedTitle(k9DVDTitle *_title) {
if (_title ==NULL) {
gbTitle->hide();
lbTitle->setText(i18n("Select a Title in the treeview..."));
return;
}
gbTitle->show();
m_current=_title;
m_updating=true;
gbTitle->setChecked(m_current->getforceFactor());
m_updating=false;
lbTitle->setText(TQString(i18n("Shrink Factor for %1")).arg(m_current->getname()));
if (m_current->getforceFactor()) {
slFactor->setValue(m_current->getfactor()*100.0);
tFactor->setText(TQString("%1").arg(m_current->getfactor(),4,'f',2));
setMinFactor();
} else {
slFactor->setValue(getFactor()*100.0);
tFactor->setText(TQString("%1").arg(getFactor(),4,'f',2));
slFactor->setMinValue(100);
}
}
void k9TitleFactor::setMinFactor() {
k9CellCopyList *lst=new k9CellCopyList(m_dvd->getdvd(),m_dvd);
double minFactor=lst->getMinFactor( true); //TODO : corriger pour copie sans menus
slFactor->setMinValue(minFactor*100);
delete lst;
}
void k9TitleFactor::SelectionChanged( k9DVD *_dvd,bool _withMenus) {
m_dvd=_dvd;
if (_dvd==NULL)
m_current=NULL;
m_factor=-1;
m_withMenus=_withMenus;
changedTitle( m_current);
}
#include "k9titlefactor.moc"