Move formatDuration out of MainWindow class

This commit is contained in:
craig
2011-12-14 19:40:33 +00:00
committed by craig
parent 101f0a1ac7
commit 71dc6ec8c7
9 changed files with 40 additions and 52 deletions

10
TODO
View File

@@ -4,16 +4,6 @@
- Allow drag-n-drop within playlist
- 'Add to playlist XXX' entries to library, album, and folder context menus
* Improve tooltips in views.
Library
Artist\n%n Albums
Album\n%n Songs
Song\nDuration
Playlists
Playlist\n%n Songs DONE
Song\nDuration
* Add next/prev provider buttons to lyrics page - so that can try others.
* Need better repeat icon.

View File

@@ -25,7 +25,7 @@
#include "mpdconnection.h"
#include "mpdstats.h"
#include "mainwindow.h"
#include "mpdparseutils.h"
#ifdef ENABLE_KDE_SUPPORT
#include <KDE/KAction>
#include <KDE/KLocale>
@@ -74,9 +74,9 @@ void InfoPage::clear()
void InfoPage::statsUpdated()
{
uptime->setText(MainWindow::formatDuration(MPDStats::self()->uptime()));
timePlaying->setText(MainWindow::formatDuration(MPDStats::self()->playtime()));
totalDuration->setText(MainWindow::formatDuration(MPDStats::self()->dbPlaytime()));
uptime->setText(MPDParseUtils::formatDuration(MPDStats::self()->uptime()));
timePlaying->setText(MPDParseUtils::formatDuration(MPDStats::self()->playtime()));
totalDuration->setText(MPDParseUtils::formatDuration(MPDStats::self()->dbPlaytime()));
artists->setText(QString::number(MPDStats::self()->artists()));
album->setText(QString::number(MPDStats::self()->albums()));
songs->setText(QString::number(MPDStats::self()->songs()));

View File

@@ -23,6 +23,7 @@
#include "librarypage.h"
#include "mpdconnection.h"
#include "mpdparseutils.h"
#include "covers.h"
#include "musiclibraryitemalbum.h"
#include "musiclibraryitemsong.h"
@@ -106,7 +107,7 @@ public:
break;
case MusicLibraryItem::Type_Song:
pix=QIcon::fromTheme("audio-x-generic").pixmap(imageSize, imageSize);
childText=MainWindow::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
childText=MPDParseUtils::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
if (childText.startsWith(QLatin1String("00:"))) {
childText=childText.mid(3);
}

View File

@@ -1148,32 +1148,6 @@ void MainWindow::addToPlaylist()
}
}
QString MainWindow::formatDuration(const quint32 totalseconds)
{
//Get the days,hours,minutes and seconds out of the total seconds
quint32 days = totalseconds / 86400;
quint32 rest = totalseconds - (days * 86400);
quint32 hours = rest / 3600;
rest = rest - (hours * 3600);
quint32 minutes = rest / 60;
quint32 seconds = rest - (minutes * 60);
//Convert hour,minutes and seconds to a QTime for easier parsing
QTime time(hours, minutes, seconds);
#ifdef ENABLE_KDE_SUPPORT
return 0==days
? time.toString("hh:mm:ss")
: i18np("1 day %2", "%1 days %2", days, time.toString("hh:mm:ss"));
#else
return 0==days
? time.toString("hh:mm:ss")
: 1==days
? QObject::tr("1 day %1").arg(time.toString("hh:mm:ss"))
: QObject::tr("%1 days %2").arg(days).arg(time.toString("hh:mm:ss"));
#endif
}
void MainWindow::updatePlayListStatus()
{
MPDStats * const stats = MPDStats::self();
@@ -1194,7 +1168,7 @@ void MainWindow::updatePlayListStatus()
status += QString::number(stats->playlistSongs())+QString(1==stats->playlistSongs() ? " Song" : "Songs");
#endif
status += " (";
status += formatDuration(stats->playlistTime());
status += MPDParseUtils::formatDuration(stats->playlistTime());
status += ")";
playListStatsLabel->setText(status);

View File

@@ -146,8 +146,6 @@ public:
MainWindow(QWidget *parent = 0);
~MainWindow();
static QString formatDuration(const quint32 totalseconds);
protected:
void closeEvent(QCloseEvent *event);

View File

@@ -32,7 +32,7 @@
#include "playlisttablemodel.h"
#include "settings.h"
#include "config.h"
#include "mainwindow.h"
#include "mpdparseutils.h"
#include <QCommonStyle>
#include <QFile>
#include <QXmlStreamReader>
@@ -45,6 +45,7 @@
#include <QStringList>
#ifdef ENABLE_KDE_SUPPORT
#include <KDE/KIcon>
#include <KDE/KLocale>
#endif
QString MusicLibraryModel::cacheDir(const QString &sub, bool create)
@@ -195,7 +196,7 @@ QVariant MusicLibraryModel::data(const QModelIndex &index, int role) const
: tr("%1\n1 Song").arg(item->data(index.column()).toString());
#endif
case MusicLibraryItem::Type_Song: {
QString duration=MainWindow::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
QString duration=MPDParseUtils::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
if (duration.startsWith(QLatin1String("00:"))) {
duration=duration.mid(3);
}

View File

@@ -32,7 +32,6 @@
#include "mpdparseutils.h"
#include "mpdstats.h"
#include "mpdconnection.h"
#include "mainwindow.h"
PlaylistsModel::PlaylistsModel(QObject *parent)
: QAbstractListModel(parent)
@@ -91,7 +90,7 @@ QVariant PlaylistsModel::data(const QModelIndex &index, int role) const
: tr("%1\n1 Song").arg(pl.name);
#endif
#if 0
QString duration=MainWindow::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
QString duration=MPDParseUtils::formatDuration(static_cast<MusicLibraryItemSong *>(item)->time());
if (duration.startsWith(QLatin1String("00:"))) {
duration=duration.mid(3);
}

View File

@@ -27,7 +27,9 @@
#include <QList>
#include <QString>
#include <QStringList>
#ifdef ENABLE_KDE_SUPPORT
#include <KDE/KLocale>
#endif
#include "dirviewitemroot.h"
#include "dirviewitemdir.h"
#include "dirviewitemfile.h"
@@ -42,9 +44,6 @@
#include "song.h"
#include "output.h"
#include "covers.h"
#ifdef ENABLE_KDE_SUPPORT
#include <KDE/KLocale>
#endif
QString MPDParseUtils::getDir(const QString &f)
{
@@ -386,3 +385,28 @@ QList<Output> MPDParseUtils::parseOuputs(const QByteArray &data)
return outputs;
}
QString MPDParseUtils::formatDuration(const quint32 totalseconds)
{
//Get the days,hours,minutes and seconds out of the total seconds
quint32 days = totalseconds / 86400;
quint32 rest = totalseconds - (days * 86400);
quint32 hours = rest / 3600;
rest = rest - (hours * 3600);
quint32 minutes = rest / 60;
quint32 seconds = rest - (minutes * 60);
//Convert hour,minutes and seconds to a QTime for easier parsing
QTime time(hours, minutes, seconds);
#ifdef ENABLE_KDE_SUPPORT
return 0==days
? time.toString("hh:mm:ss")
: i18np("1 day %2", "%1 days %2", days, time.toString("hh:mm:ss"));
#else
return 0==days
? time.toString("hh:mm:ss")
: 1==days
? QObject::tr("1 day %1").arg(time.toString("hh:mm:ss"))
: QObject::tr("%1 days %2").arg(days).arg(time.toString("hh:mm:ss"));
#endif
}

View File

@@ -47,6 +47,7 @@ public:
static MusicLibraryItemRoot * parseLibraryItems(const QByteArray &data);
static DirViewItemRoot * parseDirViewItems(const QByteArray &data);
static QList<Output> parseOuputs(const QByteArray &data);
static QString formatDuration(const quint32 totalseconds);
};
#endif