Skip to content

Commit

Permalink
[Data] Use std::chrono::minutes for runtime
Browse files Browse the repository at this point in the history
  • Loading branch information
bugwelle committed Sep 28, 2018
1 parent 8835c94 commit 4581613
Show file tree
Hide file tree
Showing 27 changed files with 102 additions and 69 deletions.
6 changes: 4 additions & 2 deletions src/concerts/ConcertController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,11 @@ void ConcertController::loadData(QString id,

void ConcertController::loadStreamDetailsFromFile()
{
using namespace std::chrono;
m_concert->streamDetails()->loadStreamDetails();
m_concert->setRuntime(qFloor(
m_concert->streamDetails()->videoDetails().value(StreamDetails::VideoDetails::DurationInSeconds).toInt() / 60));
seconds runtime(
m_concert->streamDetails()->videoDetails().value(StreamDetails::VideoDetails::DurationInSeconds).toInt());
m_concert->setRuntime(duration_cast<minutes>(runtime));
m_concert->setStreamDetailsLoaded(true);
m_concert->setChanged(true);
}
Expand Down
9 changes: 5 additions & 4 deletions src/concerts/ConcertWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,9 @@ void ConcertWidget::setConcert(Concert *concert)
const auto videoDetails = concert->streamDetails()->videoDetails();
if (concert->streamDetailsLoaded()
&& videoDetails.value(StreamDetails::VideoDetails::DurationInSeconds).toInt() != 0) {
concert->setRuntime(
qFloor(videoDetails.value(StreamDetails::VideoDetails::DurationInSeconds).toInt() / 60));
using namespace std::chrono;
seconds runtime{videoDetails.value(StreamDetails::VideoDetails::DurationInSeconds).toInt()};
concert->setRuntime(duration_cast<minutes>(runtime));
}
}
updateConcertInfo();
Expand Down Expand Up @@ -442,7 +443,7 @@ void ConcertWidget::updateConcertInfo()
ui->tagline->setText(m_concert->tagline());
ui->rating->setValue(m_concert->rating());
ui->released->setDate(m_concert->released());
ui->runtime->setValue(m_concert->runtime());
ui->runtime->setValue(static_cast<int>(m_concert->runtime().count()));
ui->trailer->setText(m_concert->trailer().toString());
ui->playcount->setValue(m_concert->playcount());
ui->lastPlayed->setDateTime(m_concert->lastPlayed());
Expand Down Expand Up @@ -875,7 +876,7 @@ void ConcertWidget::onRuntimeChange(int value)
if (!m_concert) {
return;
}
m_concert->setRuntime(value);
m_concert->setRuntime(std::chrono::minutes(value));
ui->buttonRevert->setVisible(true);
}

Expand Down
10 changes: 6 additions & 4 deletions src/data/Concert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#include "globals/NameFormatter.h"
#include "settings/Settings.h"

using namespace std::chrono_literals;

/**
* @brief Constructs a new concert object
* @param files List of files for this concert
Expand All @@ -20,7 +22,7 @@ Concert::Concert(QStringList files, QObject *parent) :
QObject(parent),
m_controller{new ConcertController(this)},
m_rating{0},
m_runtime{0},
m_runtime{0min},
m_playcount{0},
m_downloadsSize{0},
m_watched{false},
Expand Down Expand Up @@ -109,7 +111,7 @@ void Concert::clear(QList<ConcertScraperInfos> infos)
m_tagline = "";
}
if (infos.contains(ConcertScraperInfos::Runtime)) {
m_runtime = 0;
m_runtime = 0min;
}
if (infos.contains(ConcertScraperInfos::Trailer)) {
m_trailer = "";
Expand Down Expand Up @@ -236,7 +238,7 @@ QString Concert::tagline() const
* @return Runtime of the concert
* @see Concert::setRuntime
*/
int Concert::runtime() const
std::chrono::minutes Concert::runtime() const
{
return m_runtime;
}
Expand Down Expand Up @@ -578,7 +580,7 @@ void Concert::setTagline(QString tagline)
* @param runtime Runtime in minutes
* @see Concert::runtime
*/
void Concert::setRuntime(int runtime)
void Concert::setRuntime(std::chrono::minutes runtime)
{
m_runtime = runtime;
setChanged(true);
Expand Down
9 changes: 5 additions & 4 deletions src/data/Concert.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <QPixmap>
#include <QStringList>
#include <QUrl>
#include <chrono>

class MediaCenterInterface;
class StreamDetails;
Expand All @@ -30,7 +31,7 @@ class Concert : public QObject
Q_PROPERTY(QDate released READ released WRITE setReleased)
Q_PROPERTY(QString overview READ overview WRITE setOverview)
Q_PROPERTY(QString tagline READ tagline WRITE setTagline)
Q_PROPERTY(int runtime READ runtime WRITE setRuntime)
Q_PROPERTY(std::chrono::minutes runtime READ runtime WRITE setRuntime)
Q_PROPERTY(QString certification READ certification WRITE setCertification)
Q_PROPERTY(int playcount READ playcount WRITE setPlayCount)
Q_PROPERTY(QDateTime lastPlayed READ lastPlayed WRITE setLastPlayed)
Expand All @@ -57,7 +58,7 @@ class Concert : public QObject
virtual qreal rating() const;
virtual QDate released() const;
virtual QString tagline() const;
virtual int runtime() const;
virtual std::chrono::minutes runtime() const;
virtual QString certification() const;
virtual QStringList genres() const;
virtual QStringList tags() const;
Expand Down Expand Up @@ -93,7 +94,7 @@ class Concert : public QObject
void setRating(qreal rating);
void setReleased(QDate released);
void setTagline(QString tagline);
void setRuntime(int runtime);
void setRuntime(std::chrono::minutes runtime);
void setCertification(QString certification);
void setTrailer(QUrl trailer);
void addGenre(QString genre);
Expand Down Expand Up @@ -168,7 +169,7 @@ class Concert : public QObject
qreal m_rating;
QDate m_released;
QString m_tagline;
int m_runtime;
std::chrono::minutes m_runtime;
QString m_certification;
QStringList m_genres;
QStringList m_tags;
Expand Down
12 changes: 6 additions & 6 deletions src/data/Movie.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
#include <QDebug>
#include <QDir>
#include <QFileInfo>
#include <utility>

#include "data/ImageCache.h"
#include "data/MediaCenterInterface.h"
#include "globals/Helper.h"
#include "settings/Settings.h"

using namespace std::chrono_literals;

/**
* @brief Constructs a new movie object
Expand All @@ -22,7 +22,7 @@ Movie::Movie(QStringList files, QObject *parent) :
QObject(parent),
m_controller{new MovieController(this)},
m_movieImages(*this),
m_runtime{0},
m_runtime{0min},
m_playcount{0},
m_databaseId{-1},
m_mediaCenterId{-1},
Expand Down Expand Up @@ -137,7 +137,7 @@ void Movie::clear(QList<MovieScraperInfos> infos)
m_tagline = "";
}
if (infos.contains(MovieScraperInfos::Runtime)) {
m_runtime = 0;
m_runtime = 0min;
}
if (infos.contains(MovieScraperInfos::Trailer)) {
m_trailer = "";
Expand Down Expand Up @@ -291,7 +291,7 @@ QString Movie::outline() const
* @return Runtime of the movie
* @see Movie::setRuntime
*/
int Movie::runtime() const
std::chrono::minutes Movie::runtime() const
{
return m_runtime;
}
Expand Down Expand Up @@ -745,7 +745,7 @@ void Movie::setOutline(QString outline)
* @param runtime Runtime in minutes
* @see Movie::runtime
*/
void Movie::setRuntime(int runtime)
void Movie::setRuntime(std::chrono::minutes runtime)
{
m_runtime = runtime;
setChanged(true);
Expand Down Expand Up @@ -1268,7 +1268,7 @@ QDebug operator<<(QDebug dbg, const Movie &movie)
out.append(QString(" Rating: %1").arg(movie.rating()).append(nl));
out.append(QString(" Released: ").append(movie.released().toString("yyyy-MM-dd")).append(nl));
out.append(QString(" Tagline: ").append(movie.tagline()).append(nl));
out.append(QString(" Runtime: %1").arg(movie.runtime()).append(nl));
out.append(QString(" Runtime: %1").arg(movie.runtime().count()).append(nl));
out.append(QString(" Certification: ").append(movie.certification()).append(nl));
out.append(QString(" Playcount: %1%2").arg(movie.playcount()).arg(nl));
out.append(QString(" Lastplayed: ").append(movie.lastPlayed().toString("yyyy-MM-dd HH:mm:ss")).append(nl));
Expand Down
7 changes: 4 additions & 3 deletions src/data/Movie.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <QPixmap>
#include <QStringList>
#include <QUrl>
#include <chrono>

class MediaCenterInterface;

Expand Down Expand Up @@ -49,7 +50,7 @@ class Movie : public QObject
QDate released() const;
QString tagline() const;
QString outline() const;
int runtime() const;
std::chrono::minutes runtime() const;
QString certification() const;
QString writer() const;
QString director() const;
Expand Down Expand Up @@ -99,7 +100,7 @@ class Movie : public QObject
void setReleased(QDate released);
void setTagline(QString tagline);
void setOutline(QString outline);
void setRuntime(int runtime);
void setRuntime(std::chrono::minutes runtime);
void setCertification(QString certification);
void setWriter(QString writer);
void setDirector(QString director);
Expand Down Expand Up @@ -176,7 +177,7 @@ private slots:
QDate m_released;
QString m_tagline;
QString m_outline;
int m_runtime;
std::chrono::minutes m_runtime;
QString m_certification;
QString m_writer;
QString m_director;
Expand Down
10 changes: 6 additions & 4 deletions src/data/TvShow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
#include "globals/Manager.h"
#include "globals/NameFormatter.h"

using namespace std::chrono_literals;

/**
* @brief TvShow::TvShow
* @param dir
Expand All @@ -21,7 +23,7 @@
TvShow::TvShow(QString dir, QObject *parent) :
QObject(parent),
m_dir{dir},
m_runtime{0},
m_runtime{0min},
m_hasTune{false},
m_downloadsInProgress{false},
m_infoLoaded{false},
Expand Down Expand Up @@ -153,7 +155,7 @@ void TvShow::clear(QList<TvShowScraperInfos> infos)
m_extraFanarts.clear();
}
if (infos.contains(TvShowScraperInfos::Runtime)) {
m_runtime = 0;
m_runtime = 0min;
}
m_hasChanged = false;
}
Expand Down Expand Up @@ -1368,12 +1370,12 @@ bool TvShow::hasImage(ImageType type)
return m_hasImage.value(type, false);
}

int TvShow::runtime() const
std::chrono::minutes TvShow::runtime() const
{
return m_runtime;
}

void TvShow::setRuntime(int runtime)
void TvShow::setRuntime(std::chrono::minutes runtime)
{
m_runtime = runtime;
setChanged(true);
Expand Down
7 changes: 4 additions & 3 deletions src/data/TvShow.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <QMetaType>
#include <QObject>
#include <QStringList>
#include <chrono>

struct Actor;
struct Poster;
Expand Down Expand Up @@ -76,7 +77,7 @@ class TvShow : public QObject
virtual bool syncNeeded() const;
virtual QList<TvShowScraperInfos> infosToLoad() const;
virtual bool hasTune() const;
virtual int runtime() const;
virtual std::chrono::minutes runtime() const;
virtual QString sortTitle() const;
virtual bool isDummySeason(SeasonNumber season) const;
virtual bool hasDummyEpisodes() const;
Expand Down Expand Up @@ -122,7 +123,7 @@ class TvShow : public QObject
void setDatabaseId(int id);
void setSyncNeeded(bool syncNeeded);
void setHasTune(bool hasTune);
void setRuntime(int runtime);
void setRuntime(std::chrono::minutes runtime);
void setSortTitle(QString sortTitle);
void setShowMissingEpisodes(bool showMissing, bool updateDatabase = true);
void setHideSpecialsInMissingEpisodes(bool hideSpecials, bool updateDatabase = true);
Expand Down Expand Up @@ -184,7 +185,7 @@ class TvShow : public QObject
QString m_sortTitle;
Rating m_rating;
QDate m_firstAired;
int m_runtime;
std::chrono::minutes m_runtime;
QStringList m_genres;
QStringList m_tags;
QString m_certification;
Expand Down
4 changes: 2 additions & 2 deletions src/export/ExportDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ void ExportDialog::replaceVars(QString &m, Movie *movie, QDir dir, bool subDir)
m.replace("{{ MOVIE.TRAILER }}", movie->trailer().toString());
m.replace("{{ MOVIE.RATING }}", QString::number(movie->rating(), 'f', 1));
m.replace("{{ MOVIE.VOTES }}", QString::number(movie->votes(), 'f', 0));
m.replace("{{ MOVIE.RUNTIME }}", QString::number(movie->runtime(), 'f', 0));
m.replace("{{ MOVIE.RUNTIME }}", QString::number(movie->runtime().count(), 'f', 0));
m.replace("{{ MOVIE.PLAY_COUNT }}", QString::number(movie->playcount(), 'f', 0));
m.replace("{{ MOVIE.LAST_PLAYED }}",
movie->lastPlayed().isValid() ? movie->lastPlayed().toString("yyyy-MM-dd hh:mm") : "");
Expand Down Expand Up @@ -333,7 +333,7 @@ void ExportDialog::replaceVars(QString &m, const Concert *concert, QDir dir, boo
m.replace("{{ CONCERT.TAGLINE }}", concert->tagline().toHtmlEscaped());
m.replace("{{ CONCERT.RATING }}", QString::number(concert->rating(), 'f', 1));
m.replace("{{ CONCERT.YEAR }}", concert->released().isValid() ? concert->released().toString("yyyy") : "");
m.replace("{{ CONCERT.RUNTIME }}", QString::number(concert->runtime(), 'f', 0));
m.replace("{{ CONCERT.RUNTIME }}", QString::number(concert->runtime().count(), 'f', 0));
m.replace("{{ CONCERT.CERTIFICATION }}", concert->certification().toHtmlEscaped());
m.replace("{{ CONCERT.TRAILER }}", concert->trailer().toString());
m.replace("{{ CONCERT.PLAY_COUNT }}", QString::number(concert->playcount(), 'f', 0));
Expand Down
3 changes: 2 additions & 1 deletion src/mediaCenterPlugins/kodi/ConcertXmlReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ void ConcertXmlReader::parseNfoDom(QDomDocument domDoc)
m_concert.setTagline(domDoc.elementsByTagName("tagline").at(0).toElement().text());
}
if (!domDoc.elementsByTagName("runtime").isEmpty()) {
m_concert.setRuntime(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt());
m_concert.setRuntime(
std::chrono::minutes(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt()));
}
if (!domDoc.elementsByTagName("mpaa").isEmpty()) {
m_concert.setCertification(domDoc.elementsByTagName("mpaa").at(0).toElement().text());
Expand Down
6 changes: 4 additions & 2 deletions src/mediaCenterPlugins/kodi/ConcertXmlWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ ConcertXmlWriter::ConcertXmlWriter(Concert &concert) : m_concert{concert}

QByteArray ConcertXmlWriter::getConcertXml()
{
using namespace std::chrono_literals;

QDomDocument doc;
doc.setContent(m_concert.nfoContent());
if (m_concert.nfoContent().isEmpty()) {
Expand All @@ -35,8 +37,8 @@ QByteArray ConcertXmlWriter::getConcertXml()
XbmcXml::setTextValue(doc, "plot", m_concert.overview());
XbmcXml::setTextValue(doc, "outline", m_concert.overview());
XbmcXml::setTextValue(doc, "tagline", m_concert.tagline());
if (m_concert.runtime() > 0) {
XbmcXml::setTextValue(doc, "runtime", QString("%1").arg(m_concert.runtime()));
if (m_concert.runtime() > 0min) {
XbmcXml::setTextValue(doc, "runtime", QString::number(m_concert.runtime().count()));
}
XbmcXml::setTextValue(doc, "mpaa", m_concert.certification());
XbmcXml::setTextValue(doc, "playcount", QString("%1").arg(m_concert.playcount()));
Expand Down
2 changes: 1 addition & 1 deletion src/mediaCenterPlugins/kodi/MovieXmlReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ void MovieXmlReader::parseNfoDom(QDomDocument domDoc)
m_movie.setTagline(domDoc.elementsByTagName("tagline").at(0).toElement().text());
}
if (!domDoc.elementsByTagName("runtime").isEmpty()) {
m_movie.setRuntime(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt());
m_movie.setRuntime(std::chrono::minutes(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt()));
}
if (!domDoc.elementsByTagName("mpaa").isEmpty()) {
m_movie.setCertification(domDoc.elementsByTagName("mpaa").at(0).toElement().text());
Expand Down
6 changes: 4 additions & 2 deletions src/mediaCenterPlugins/kodi/MovieXmlWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ MovieXmlWriter::MovieXmlWriter(Movie &movie) : m_movie{movie}

QByteArray MovieXmlWriter::getMovieXml()
{
using namespace std::chrono_literals;

QDomDocument doc;
doc.setContent(m_movie.nfoContent());
if (m_movie.nfoContent().isEmpty()) {
Expand All @@ -34,8 +36,8 @@ QByteArray MovieXmlWriter::getMovieXml()
XbmcXml::setTextValue(doc, "plot", m_movie.overview());
XbmcXml::setTextValue(doc, "outline", m_movie.outline());
XbmcXml::setTextValue(doc, "tagline", m_movie.tagline());
if (m_movie.runtime() > 0) {
XbmcXml::setTextValue(doc, "runtime", QString("%1").arg(m_movie.runtime()));
if (m_movie.runtime() > 0min) {
XbmcXml::setTextValue(doc, "runtime", QString::number(m_movie.runtime().count()));
} else {
XbmcXml::removeChildNodes(doc, "runtime");
}
Expand Down
2 changes: 1 addition & 1 deletion src/mediaCenterPlugins/kodi/TvShowXmlReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ void TvShowXmlReader::parseNfoDom(QDomDocument domDoc)
.text());
}
if (!domDoc.elementsByTagName("runtime").isEmpty()) {
m_show.setRuntime(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt());
m_show.setRuntime(std::chrono::minutes(domDoc.elementsByTagName("runtime").at(0).toElement().text().toInt()));
}
if (!domDoc.elementsByTagName("status").isEmpty()) {
m_show.setStatus(domDoc.elementsByTagName("status").at(0).toElement().text());
Expand Down
Loading

0 comments on commit 4581613

Please sign in to comment.