void PlayButtonLayout::setState(State state) {
	if (_nextState == state) return;

	_nextState = state;
	if (!_transformProgress.animating(getms())) {
		_oldState = _state;
		_state = _nextState;
		_transformBackward = false;
		if (_state != _oldState) {
			startTransform(0., 1.);
			if (_callback) _callback();
		}
	} else if (_oldState == _nextState) {
		qSwap(_oldState, _state);
		startTransform(_transformBackward ? 0. : 1., _transformBackward ? 1. : 0.);
		_transformBackward = !_transformBackward;
	}
}
MusicTransformWidget::MusicTransformWidget(QWidget *parent)
    : MusicAbstractMoveDialog(parent),
      ui(new Ui::MusicTransformWidget), m_movie(NULL)
{
    ui->setupUi(this);
    
    m_process = new QProcess(this);
    ui->topTitleCloseButton->setIcon(QIcon(":/share/searchclosed"));
    ui->topTitleCloseButton->setStyleSheet(MusicUIObject::MToolButtonStyle03);
    ui->topTitleCloseButton->setCursor(QCursor(Qt::PointingHandCursor));
    ui->topTitleCloseButton->setToolTip(tr("Close"));
    connect(ui->topTitleCloseButton, SIGNAL(clicked()), SLOT(close()));

    ui->inputButton->setStyleSheet(MusicUIObject::MPushButtonStyle05);
    ui->outputButton->setStyleSheet(MusicUIObject::MPushButtonStyle05);
    ui->formatCombo->setStyleSheet(MusicUIObject::MComboBoxStyle01);
    ui->formatCombo->view()->setStyleSheet(MusicUIObject::MScrollBarStyle01);
    ui->kbpsCombo->setStyleSheet(MusicUIObject::MComboBoxStyle01);
    ui->kbpsCombo->view()->setStyleSheet(MusicUIObject::MScrollBarStyle01);
    ui->hzCombo->setStyleSheet(MusicUIObject::MComboBoxStyle01);
    ui->hzCombo->view()->setStyleSheet(MusicUIObject::MScrollBarStyle01);
    ui->msCombo->setStyleSheet(MusicUIObject::MComboBoxStyle01);
    ui->msCombo->view()->setStyleSheet(MusicUIObject::MScrollBarStyle01);
    ui->transformButton->setStyleSheet(MusicUIObject::MPushButtonStyle05);
    ui->inputLineEdit->setStyleSheet(MusicUIObject::MLineEditStyle01);
    ui->outputLineEdit->setStyleSheet(MusicUIObject::MLineEditStyle01);

    ui->inputButton->setCursor(QCursor(Qt::PointingHandCursor));
    ui->outputButton->setCursor(QCursor(Qt::PointingHandCursor));
    ui->transformButton->setCursor(QCursor(Qt::PointingHandCursor));

    connect(ui->inputButton, SIGNAL(clicked()), SLOT(initInputPath()));
    connect(ui->outputButton, SIGNAL(clicked()), SLOT(initOutputPath()));
    connect(ui->transformButton, SIGNAL(clicked()), SLOT(startTransform()));
    connect(m_process, SIGNAL(finished(int)), SLOT(transformFinish(int)));

    ui->folderBox->setStyleSheet(MusicUIObject::MCheckBoxStyle01);
    connect(ui->folderBox, SIGNAL(clicked(bool)), SLOT(folderBoxChecked(bool)));
    initControlParameter();

}