From 18f6e4027fa1383f336f902745f5a2e7796f9836 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 28 Aug 2015 02:09:27 +0200 Subject: Extract title from Stream If a title tag exists in a movie's metadata, extract it with ffmpeg and put it into mSubtitle when archiving new movies. --- newmoviewizard.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'newmoviewizard.cpp') diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 6c15fef..2fec6e9 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "newmoviewizard.h" #include "smtreeitem.h" @@ -309,6 +310,9 @@ void MovieInfoPage::setupGui(){ //add + remove files QHBoxLayout *fileButtonLayout = new QHBoxLayout; fileButtonLayout->addStretch(); + mExtractTitle = new QPushButton(tr("Title")); + fileButtonLayout->addWidget(mExtractTitle); + connect(mExtractTitle, SIGNAL(clicked()), this, SLOT(extractTitle())); mAddOld = new QPushButton(tr("Add Old...")); fileButtonLayout->addWidget(mAddOld); connect(mAddOld, SIGNAL(clicked()), this, SLOT(addOld())); @@ -425,6 +429,20 @@ void MovieInfoPage::initCompleters(){ mSeriesCompleterModel->setStringList(series); } +void MovieInfoPage::extractTitle(){ + QModelIndexList curIdxList = mFileView->selectionModel()->selectedRows(); + if(!curIdxList.isEmpty()){ + QString fp = curIdxList.at(0).data(WizardTreeModel::FullPathRole).toString(); + QJsonDocument jDoc = Helper::streamData(fp); + if(!jDoc.isNull()){ + QJsonObject jObj1 = jDoc.object().value("format").toObject(); + QJsonObject jObj2 = jObj1.value("tags").toObject(); + QString title = jObj2.value("title").toString().toLower(); + mSubtitle->setText(title); + } + } +} + void MovieInfoPage::addOld(){ QFileDialog *oldFileDlg = new QFileDialog(this, tr("Select source"), mCurrentDir); int retval = oldFileDlg->exec(); -- cgit v1.2.3-70-g09d2