moved code from qtgui to smallut
This commit is contained in:
+53
-1
@@ -1,5 +1,5 @@
|
||||
#ifndef lint
|
||||
static char rcsid[] = "@(#$Id: smallut.cpp,v 1.34 2008-10-08 16:15:22 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
static char rcsid[] = "@(#$Id: smallut.cpp,v 1.35 2008-11-19 10:06:49 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
#endif
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -497,6 +497,58 @@ bool pcSubst(const string& in, string& out, map<char, string>& subs)
|
||||
return true;
|
||||
}
|
||||
|
||||
// Convert byte count into unit (KB/MB...) appropriate for display
|
||||
string displayableBytes(long size)
|
||||
{
|
||||
char sizebuf[30];
|
||||
const char * unit = " B ";
|
||||
|
||||
if (size > 1024 && size < 1024*1024) {
|
||||
unit = " KB ";
|
||||
size /= 1024;
|
||||
} else if (size >= 1024*1204) {
|
||||
unit = " MB ";
|
||||
size /= (1024*1024);
|
||||
}
|
||||
sprintf(sizebuf, "%ld%s", size, unit);
|
||||
return string(sizebuf);
|
||||
}
|
||||
|
||||
string breakIntoLines(const string& in, unsigned int ll,
|
||||
unsigned int maxlines)
|
||||
{
|
||||
string query = in;
|
||||
string oq;
|
||||
unsigned int nlines = 0;
|
||||
while (query.length() > 0) {
|
||||
string ss = query.substr(0, ll);
|
||||
if (ss.length() == ll) {
|
||||
string::size_type pos = ss.find_last_of(" ");
|
||||
if (pos == string::npos) {
|
||||
pos = query.find_first_of(" ");
|
||||
if (pos != string::npos)
|
||||
ss = query.substr(0, pos+1);
|
||||
else
|
||||
ss = query;
|
||||
} else {
|
||||
ss = ss.substr(0, pos+1);
|
||||
}
|
||||
}
|
||||
// This cant happen, but anyway. Be very sure to avoid an infinite loop
|
||||
if (ss.length() == 0) {
|
||||
oq = query;
|
||||
break;
|
||||
}
|
||||
oq += ss + "\n";
|
||||
if (nlines++ >= maxlines) {
|
||||
oq += " ... \n";
|
||||
break;
|
||||
}
|
||||
query= query.substr(ss.length());
|
||||
}
|
||||
return oq;
|
||||
}
|
||||
|
||||
////////////////////
|
||||
// Internal redefinition of system time interface to help with dependancies
|
||||
struct m_timespec {
|
||||
|
||||
+7
-1
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
#ifndef _SMALLUT_H_INCLUDED_
|
||||
#define _SMALLUT_H_INCLUDED_
|
||||
/* @(#$Id: smallut.h,v 1.31 2008-10-08 16:15:22 dockes Exp $ (C) 2004 J.F.Dockes */
|
||||
/* @(#$Id: smallut.h,v 1.32 2008-11-19 10:06:49 dockes Exp $ (C) 2004 J.F.Dockes */
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
@@ -90,6 +90,12 @@ extern string truncate_to_word(const string &input, string::size_type maxlen);
|
||||
/** Truncate in place in an utf8-legal way */
|
||||
extern void utf8truncate(string &s, int maxlen);
|
||||
|
||||
/** Convert byte count into unit (KB/MB...) appropriate for display */
|
||||
string displayableBytes(long size);
|
||||
|
||||
/** Break big string into lines */
|
||||
string breakIntoLines(const string& in, unsigned int ll = 100,
|
||||
unsigned int maxlines= 50);
|
||||
/** Small utility to substitute printf-like percents cmds in a string */
|
||||
bool pcSubst(const string& in, string& out, map<char, string>& subs);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user