1/* 2 * This file Copyright (C) Mnemosyne LLC 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 6 * as published by the Free Software Foundation. 7 * 8 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 9 * 10 * $Id: formatter.h 12429 2011-05-12 20:21:27Z jordan $ 11 */ 12 13#ifndef QTR_UNITS 14#define QTR_UNITS 15 16#include <inttypes.h> /* uint64_t */ 17 18#include <QString> 19#include <QObject> 20#include <QIcon> 21 22class Speed; 23 24class Formatter: public QObject 25{ 26 Q_OBJECT 27 28 public: 29 30 Formatter( ) { } 31 virtual ~Formatter( ) { } 32 33 public: 34 35 static QString memToString( int64_t bytes ); 36 static QString sizeToString( int64_t bytes ); 37 static QString speedToString( const Speed& speed ); 38 static QString percentToString( double x ); 39 static QString ratioToString( double ratio ); 40 static QString timeToString( int seconds ); 41 42 public: 43 44 typedef enum { B, KB, MB, GB, TB } Size; 45 typedef enum { SPEED, SIZE, MEM } Type; 46 static QString unitStr( Type t, Size s ) { return unitStrings[t][s]; } 47 static void initUnits( ); 48 49 private: 50 51 static QString unitStrings[3][5]; 52}; 53 54#endif 55