summaryrefslogtreecommitdiffstats
path: root/helper.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-03-22 09:18:52 +0100
committerArno <am@disconnect.de>2013-03-22 09:18:52 +0100
commit153683e2e961b13c5e97e582563656851bce377c (patch)
tree5efd902813f059dfb76548f96e77558c58930d98 /helper.cpp
parent50b34092a45990000ba73409abd75377816b70e6 (diff)
downloadSheMov-153683e2e961b13c5e97e582563656851bce377c.tar.gz
SheMov-153683e2e961b13c5e97e582563656851bce377c.tar.bz2
SheMov-153683e2e961b13c5e97e582563656851bce377c.zip
Show duration in statusBar
Show total duration of selected Movies in FileView. Created a new class Helper::Duration for this and declared it as QMetaType.
Diffstat (limited to 'helper.cpp')
-rw-r--r--helper.cpp34
1 files changed, 32 insertions, 2 deletions
diff --git a/helper.cpp b/helper.cpp
index 174f585..07a66c0 100644
--- a/helper.cpp
+++ b/helper.cpp
@@ -235,7 +235,7 @@ namespace Helper {
QString llc = l.toLower();
if(llc.contains("duration")){
int idx = llc.indexOf("duration:");
- retval[0] = llc.mid(idx + 10, 8);
+ retval[0].setValue(Duration(llc.mid(idx + 10, 8)));
idx = llc.indexOf("bitrate:");
retval[1] = llc.mid(idx + 9);
break;
@@ -243,5 +243,35 @@ namespace Helper {
}
return retval;
}
-}
+ Duration::Duration() : mHours(0), mMinutes(0), mSeconds(0) {}
+
+ Duration::Duration(const QString &dur) : mHours(0), mMinutes(0), mSeconds(0){
+ QStringList parts = dur.split(':');
+ if(parts.size() == 3){
+ mHours = parts.at(0).toInt();
+ mMinutes = parts.at(1).toInt();
+ mSeconds = parts.at(2).toInt();
+ }
+ }
+
+ Duration Duration::operator+(const Duration &dur) const{
+ Duration retval;
+ retval.mSeconds = mSeconds + dur.mSeconds;
+ retval.mMinutes = mMinutes + dur.mMinutes + retval.mSeconds / 60;
+ retval.mSeconds %= 60;
+ retval.mHours = mHours + dur.mHours + retval.mMinutes / 60;
+ retval.mMinutes %= 60;
+ return retval;
+ }
+
+ const QString Duration::toString() const {
+ QString retval = QString("%1:%2:%3").arg(QString::number(mHours), 2, '0').arg(QString::number(mMinutes), 2, '0').arg(QString::number(mSeconds), 2, '0');
+ return retval;
+ }
+
+ bool Duration::isNull() const {
+ return mHours == 0 && mMinutes == 0 && mSeconds == 0;
+ }
+
+}