diff --git a/TODO b/TODO index 760c91d4d..6509822ac 100644 --- a/TODO +++ b/TODO @@ -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. diff --git a/gui/infopage.cpp b/gui/infopage.cpp index 57c34751f..7d297437d 100644 --- a/gui/infopage.cpp +++ b/gui/infopage.cpp @@ -25,7 +25,7 @@ #include "mpdconnection.h" #include "mpdstats.h" #include "mainwindow.h" - +#include "mpdparseutils.h" #ifdef ENABLE_KDE_SUPPORT #include #include @@ -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())); diff --git a/gui/librarypage.cpp b/gui/librarypage.cpp index 268c37d11..085558ea0 100644 --- a/gui/librarypage.cpp +++ b/gui/librarypage.cpp @@ -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(item)->time()); + childText=MPDParseUtils::formatDuration(static_cast(item)->time()); if (childText.startsWith(QLatin1String("00:"))) { childText=childText.mid(3); } diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 8476f5e44..9e489c750 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -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); diff --git a/gui/mainwindow.h b/gui/mainwindow.h index dd8838660..46c38251d 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -146,8 +146,6 @@ public: MainWindow(QWidget *parent = 0); ~MainWindow(); - static QString formatDuration(const quint32 totalseconds); - protected: void closeEvent(QCloseEvent *event); diff --git a/models/musiclibrarymodel.cpp b/models/musiclibrarymodel.cpp index fd71cdcd7..fcfeb5eb7 100644 --- a/models/musiclibrarymodel.cpp +++ b/models/musiclibrarymodel.cpp @@ -32,7 +32,7 @@ #include "playlisttablemodel.h" #include "settings.h" #include "config.h" -#include "mainwindow.h" +#include "mpdparseutils.h" #include #include #include @@ -45,6 +45,7 @@ #include #ifdef ENABLE_KDE_SUPPORT #include +#include #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(item)->time()); + QString duration=MPDParseUtils::formatDuration(static_cast(item)->time()); if (duration.startsWith(QLatin1String("00:"))) { duration=duration.mid(3); } diff --git a/models/playlistsmodel.cpp b/models/playlistsmodel.cpp index b62fee97f..ac5d0da78 100644 --- a/models/playlistsmodel.cpp +++ b/models/playlistsmodel.cpp @@ -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(item)->time()); + QString duration=MPDParseUtils::formatDuration(static_cast(item)->time()); if (duration.startsWith(QLatin1String("00:"))) { duration=duration.mid(3); } diff --git a/mpd/mpdparseutils.cpp b/mpd/mpdparseutils.cpp index b23f360bb..2452e1887 100644 --- a/mpd/mpdparseutils.cpp +++ b/mpd/mpdparseutils.cpp @@ -27,7 +27,9 @@ #include #include #include - +#ifdef ENABLE_KDE_SUPPORT +#include +#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 -#endif QString MPDParseUtils::getDir(const QString &f) { @@ -386,3 +385,28 @@ QList 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 +} diff --git a/mpd/mpdparseutils.h b/mpd/mpdparseutils.h index 9c1bbe351..81ec0fa41 100644 --- a/mpd/mpdparseutils.h +++ b/mpd/mpdparseutils.h @@ -47,6 +47,7 @@ public: static MusicLibraryItemRoot * parseLibraryItems(const QByteArray &data); static DirViewItemRoot * parseDirViewItems(const QByteArray &data); static QList parseOuputs(const QByteArray &data); + static QString formatDuration(const quint32 totalseconds); }; #endif