#include "TurntableDialog.h"
#include <QtGui/QGridLayout>
#include <QtGui/QFileDialog>
TurntableDialog::TurntableDialog(
QWidget *parent,
int width,
int height,
int frames,
bool antialias,
const QString& folderPath )
: QDialog( parent )
, m_pWidthField(NULL)
, m_pHeightField(NULL)
, m_pFramesField(NULL)
, m_pAntiAliasCheckBox(NULL)
, m_pFolderField(NULL)
, m_pButtonBox(NULL)
{
setWindowTitle(QString("Create a Turntable"));
QGridLayout *gl = new QGridLayout;
gl->addWidget( new QLabel("Width:", this), 0, 0, Qt::AlignRight );
gl->addWidget( new QLabel("Height:", this), 1, 0, Qt::AlignRight );
gl->addWidget( new QLabel("pixels", this), 0, 2, Qt::AlignLeft );
gl->addWidget( new QLabel("pixels", this), 1, 2, Qt::AlignLeft );
gl->addWidget( new QLabel("Frames:", this), 2, 0, Qt::AlignRight );
m_pWidthField = new QLineEdit(this);
m_pHeightField = new QLineEdit(this);
m_pFramesField = new QLineEdit(this);
m_pFolderField = new QLineEdit(this);
m_pWidthField->setMaxLength(4);
m_pHeightField->setMaxLength(4);
m_pFramesField->setMaxLength(3);
m_pWidthField->setMaximumWidth(50);
m_pHeightField->setMaximumWidth(50);
m_pFramesField->setMaximumWidth(50);
m_pWidthField->setInputMask("9999");
m_pHeightField->setInputMask("9999");
m_pFramesField->setInputMask("999");
gl->addWidget( m_pWidthField, 0, 1 );
gl->addWidget( m_pHeightField, 1, 1 );
gl->addWidget( m_pFramesField, 2, 1 );
QVBoxLayout *topLayout = new QVBoxLayout;
topLayout->addLayout(gl);
QPushButton *browseBtn = new QPushButton( "Select folder for output frames...", this );
connect( browseBtn, SIGNAL(clicked()), SLOT(OnBrowse()) );
topLayout->addWidget( browseBtn );
m_pFolderField->setReadOnly(true);
topLayout->addWidget( m_pFolderField );
m_pAntiAliasCheckBox = new QCheckBox(this);
m_pAntiAliasCheckBox->setText(QString("Anti-alias (better quality but slower)"));
m_pAntiAliasCheckBox->setChecked(antialias);
topLayout->addWidget(m_pAntiAliasCheckBox);
m_pButtonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
m_pButtonBox->button(QDialogButtonBox::Ok)->setText("Create Frames");
connect( m_pButtonBox, SIGNAL(accepted()), this, SLOT(accept()) );
connect( m_pButtonBox, SIGNAL(rejected()), this, SLOT(reject()) );
m_pWidthField->setText(QString::number(width));
m_pHeightField->setText(QString::number(height));
m_pFramesField->setText(QString::number(frames));
m_pFolderField->setText(folderPath);
if ( m_pFolderField->text() == "" ){
m_pFolderField->setText(QString("<no folder selected>"));
m_pButtonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
}
m_pButtonBox->button(QDialogButtonBox::Ok)->setDefault(true);
topLayout->addWidget(m_pButtonBox);
setLayout(topLayout);
};
int TurntableDialog::Width() const
{
return m_pWidthField->text().toInt();
};
int TurntableDialog::Height() const
{
return m_pHeightField->text().toInt();
};
int TurntableDialog::Frames() const
{
return m_pFramesField->text().toInt();
};
bool TurntableDialog::Antialias() const
{
return m_pAntiAliasCheckBox->isChecked();
};
QString TurntableDialog::FolderPath() const
{
return m_pFolderField->text();
};
void TurntableDialog::OnBrowse(void)
{
QString path = Kernel()->GetDirectoryDialog( QString("Choose a Folder"),m_pFolderField->text() );
if ( path != "" )
{
m_pFolderField->setText(path);
m_pButtonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
}
}