/* * This file Copyright(C) 2010-2014 Mnemosyne LLC * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation. * * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * $Id$ */ #ifndef QTR_UNITS #define QTR_UNITS #include #include #include #include // int64_t class Speed; class Formatter: public QObject { Q_OBJECT public: Formatter() {} virtual ~Formatter() {} public: static QString memToString (int64_t bytes); static QString sizeToString (int64_t bytes); static QString speedToString (const Speed& speed); static QString percentToString (double x); static QString ratioToString (double ratio); static QString timeToString (int seconds); static QString uploadSpeedToString(const Speed& up); static QString downloadSpeedToString(const Speed& down); public: typedef enum { B, KB, MB, GB, TB } Size; typedef enum { SPEED, SIZE, MEM } Type; static QString unitStr (Type t, Size s) { return unitStrings[t][s]; } static void initUnits (); private: static QString unitStrings[3][5]; }; #endif