summaryrefslogtreecommitdiffstats
path: root/newimagegui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'newimagegui.cpp')
-rw-r--r--newimagegui.cpp56
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);
}