diff options
Diffstat (limited to 'newimagegui.cpp')
-rw-r--r-- | newimagegui.cpp | 56 |
1 files changed, 32 insertions, 24 deletions
diff --git a/newimagegui.cpp b/newimagegui.cpp index 69298ad..898ed79 100644 --- a/newimagegui.cpp +++ b/newimagegui.cpp @@ -1,4 +1,5 @@ #include "newimagegui.h" +#include "titleloader.h" #include <QLabel> #include <QLineEdit> #include <QPushButton> @@ -11,38 +12,32 @@ NewImageGui::NewImageGui() { + m_titleLoader = new TitleLoader(this); + connect(m_titleLoader, SIGNAL(loadedTitles(QMap<int,QString>)), this, SLOT(loadedTitles(QMap<int,QString>))); m_dvdName = new QLineEdit; - m_dvdName->setVisible(false); connect(m_dvdName, SIGNAL(textChanged(QString)), this, SLOT(validateName(QString))); - m_imagePath = new QLineEdit(tr("Select a DVD image")); - m_imagePath->setEnabled(false); - connect(m_imagePath, SIGNAL(textChanged(QString)), this, SLOT(validatePath(QString))); - QPushButton *browseButton = new QPushButton(tr("&Browse")); - connect(browseButton, SIGNAL(clicked()), this, SLOT(browse())); + m_status = new QLabel; + m_status->setText(tr("Scanning titles...")); + m_browseButton = new QPushButton(tr("&Select File")); + connect(m_browseButton, SIGNAL(clicked()), this, SLOT(browse())); m_importImageButton = new QPushButton(tr("&Import Image")); - m_importImageButton->setEnabled(false); connect(m_importImageButton, SIGNAL(clicked()), this, SLOT(importImage())); - QHBoxLayout *pathArea = new QHBoxLayout; - pathArea->addWidget(m_imagePath); - pathArea->addWidget(browseButton); QVBoxLayout *layout = new QVBoxLayout; - layout->addLayout(pathArea); + layout->addWidget(m_status); layout->addWidget(m_dvdName); + layout->addWidget(m_browseButton); layout->addWidget(m_importImageButton); + initialState(); setLayout(layout); setTitle(tr("New Video from DVD Image")); setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); } -void NewImageGui::validatePath(const QString &path) +void NewImageGui::initialState() { - if (path.toLower().endsWith(".iso") && QFile::exists(path)) { - m_dvdName->setText(QFileInfo(path).baseName()); - m_dvdName->setVisible(true); - } else { - m_dvdName->setText(QString()); - m_dvdName->setVisible(false); - m_importImageButton->setEnabled(false); - } + m_status->setVisible(false); + m_dvdName->setVisible(false); + m_importImageButton->setVisible(false); + m_browseButton->setVisible(true); } void NewImageGui::validateName(const QString &name) { @@ -53,11 +48,24 @@ void NewImageGui::validateName(const QString &name) void NewImageGui::browse() { QString path = QFileDialog::getOpenFileName(this, tr("Select DVD Image"), QString(), tr("DVD Images (*.iso)")); - if (!path.isNull()) - m_imagePath->setText(path); + if (!path.isNull()) { + m_path = path; + m_browseButton->setVisible(false); + m_titleLoader->setLocation(path); + m_status->setVisible(true); + m_titleLoader->loadTitles(); + } +} +void NewImageGui::loadedTitles(QMap<int, QString> titles) +{ + m_dvdName->setVisible(true); + m_dvdName->setText(QFileInfo(m_path).baseName()); + m_status->setVisible(false); + m_importImageButton->setVisible(true); + m_titles = titles; } void NewImageGui::importImage() { - m_importImageButton->setEnabled(false); - emit newImage(m_imagePath->text(), m_dvdName->text()); + initialState(); + emit newImage(m_path, m_dvdName->text(), m_titles); } |