Brief description of class still missing. More...
#include <ApplicationHelp.h>
Classes | |
struct | Example |
struct | Option |
struct | OptionGroup |
Public Member Functions | |
void | addExample (QString command, QString comments) |
void | addGroup (QString title, QByteArray section) |
void | addOption (QString option, QString comments) |
ApplicationHelp () | |
void | exec (const char *group=0) |
QList< QByteArray > | sections () |
void | setComments (QString comments) |
void | setOptionSummary (QString optionSummary) |
void | setSeeAlso (QString seeAlso) |
~ApplicationHelp () | |
Static Public Member Functions | |
static QString | encodeToHtml (QString str) |
static QString | encodeToLatex (QString str) |
static QString | getLine (QString &text, int maxLength, bool *newLine=0) |
static void | print (QString p, QString linePrefix=QString::null, int indent=0) |
Brief description of class still missing.
Full description of class still missing
void QGpCoreTools::ApplicationHelp::addExample | ( | QString | command, |
QString | comments | ||
) |
References TRACE.
Referenced by ArrayPlugin::setHelp(), and HVPlugin::setHelp().
{ TRACE; Example o; o.command=command; o.comments=comments; _examples.append(o); }
void QGpCoreTools::ApplicationHelp::addGroup | ( | QString | title, |
QByteArray | section | ||
) |
References TRACE.
Referenced by ArrayPlugin::setHelp(), DampingPlugin::setHelp(), QGpGuiTools::Application::setHelp(), HVPlugin::setHelp(), StructureRatiosPlugin::setHelp(), and QGpCoreTools::CoreApplicationPrivate::setHelp().
{ TRACE; OptionGroup g; g.title=title; g.section=section; _options.append(g); }
void QGpCoreTools::ApplicationHelp::addOption | ( | QString | option, |
QString | comments | ||
) |
References TRACE.
Referenced by ArrayPlugin::setHelp(), DampingPlugin::setHelp(), QGpGuiTools::Application::setHelp(), HVPlugin::setHelp(), StructureRatiosPlugin::setHelp(), and QGpCoreTools::CoreApplicationPrivate::setHelp().
{ TRACE; OptionGroup& g=_options.last(); Option o; o.option=option; o.comments=comments; g.options.append(o); }
QString QGpCoreTools::ApplicationHelp::encodeToHtml | ( | QString | str | ) | [static] |
QString QGpCoreTools::ApplicationHelp::encodeToLatex | ( | QString | str | ) | [static] |
void QGpCoreTools::ApplicationHelp::exec | ( | const char * | group = 0 | ) |
References QGpCoreTools::CoreApplicationPrivate::authors(), QGpCoreTools::flush(), print(), QGpCoreTools::App::setStream(), QGpCoreTools::App::stream(), QGpCoreTools::tr(), and TRACE.
Referenced by QGpCoreTools::CoreApplicationPrivate::showHelp().
{ TRACE; // make sure stdout is used for output App::setStream(new StandardStream(stdout)); if(group) { if(strcmp(group,"html")==0) { execHtml(); return; } if(strcmp(group,"latex")==0) { execLatex(); return; } } print(tr("Usage: %1 %2\n\n").arg(QCoreApplication::applicationName()).arg(_optionSummary), QString::null, 0); print(_comments, QString::null, 2); if(group) { QByteArray helpOption(group); if(helpOption=="all") { for(QList<OptionGroup>::iterator it=_options.begin(); it!=_options.end(); it++ ) { print( *it); } } else if(helpOption.startsWith("no-")) { helpOption=helpOption.mid(3); for(QList<OptionGroup>::iterator it=_options.begin(); it!=_options.end(); it++ ) { if(it->section!=helpOption) { print( *it); } } } else { for(QList<OptionGroup>::iterator it=_options.begin(); it!=_options.end(); it++ ) { if(it->section==helpOption) { print( *it); } } } } else if(!_options.isEmpty()) { print(_options.first()); if(_options.count()>1) { print("\nMore options are available. Use '-h all' to display all of them.", QString::null, 2); } } if( !_examples.isEmpty()) { App::stream() << "\nExamples:\n"; for(QList<Example>::iterator it=_examples.begin(); it!=_examples.end(); it++ ) { Example& o=*it; App::stream() << "\n"; print(o.command, QString::null, 9); App::stream() << "\n"; print(o.comments, QString::null, 2); } } App::stream() << "\nSee also:\n"; if( !_seeAlso.isEmpty()) { print(_seeAlso, QString::null, 2); } print("More information at http://www.geopsy.org", QString::null, 2); App::stream() << "\nAuthors:\n"; print(CoreApplication::authors(), QString::null, 2); App::stream() << flush; }
QString QGpCoreTools::ApplicationHelp::getLine | ( | QString & | text, |
int | maxLength, | ||
bool * | newLine = 0 |
||
) | [static] |
Returns the first line of text. The first line is removed from text. newLine is set to true if a '
' is encountered else it is set to false.
References TRACE.
Referenced by print(), and QGpCoreTools::ConsoleProgress::setCaption().
{ TRACE; if(maxLength<10) { QString line=text; text=""; return line; } QString line=text; int index=text.indexOf("\n"); if(index>-1) { if(index<=maxLength) { text=text.mid(index+1); line.truncate(index); if(newLine) *newLine=true; return line; } } if(text.length()<=maxLength) { text.clear(); if(newLine) *newLine=false; return line; } line.truncate(maxLength); index=line.lastIndexOf(" "); if(maxLength>20 && index>maxLength-20) { text=text.mid(index+1); // skip the blank line.truncate(index); if(newLine) *newLine=false; return line; } text=text.mid(maxLength); if(newLine) *newLine=false; return line; }
void QGpCoreTools::ApplicationHelp::print | ( | QString | p, |
QString | linePrefix = QString::null , |
||
int | indent = 0 |
||
) | [static] |
Print string p to stdout. Prefix linePrefix and indent indent are inserted before each line. app.terminalCols() is the maximum number of characters per line.
References getLine(), QGpCoreTools::CoreApplication::instance(), QGpCoreTools::App::stream(), and TRACE.
Referenced by exec().
{ TRACE; QString line; QString mainIndentStr, customIndentStr; bool newLine=true; mainIndentStr.fill(' ',indent); while(!p.isEmpty()) { bool lastNewLine=newLine; line=getLine(p, CoreApplication::instance()->terminalCols()-indent-linePrefix.count()-customIndentStr.count(), &newLine); App::stream() << linePrefix << mainIndentStr << customIndentStr << line << "\n"; if(lastNewLine && !newLine) { // Set indent by the position of the last double space customIndentStr=getCustomIndent(line); newLine=false; } else if(newLine) { customIndentStr=""; } } }
QList< QByteArray > QGpCoreTools::ApplicationHelp::sections | ( | ) |
Returns the list of sections
Referenced by QGpCoreTools::CoreApplicationPrivate::setHelp().
{ QList<QByteArray> l; for(QList<OptionGroup>::iterator it=_options.begin(); it!=_options.end(); it++ ) { l << it->section; } if( !_examples.isEmpty()) { l << "examples"; } return l; }
void QGpCoreTools::ApplicationHelp::setComments | ( | QString | comments | ) | [inline] |
{_comments=comments;}
void QGpCoreTools::ApplicationHelp::setOptionSummary | ( | QString | optionSummary | ) | [inline] |
{_optionSummary=optionSummary;}
void QGpCoreTools::ApplicationHelp::setSeeAlso | ( | QString | seeAlso | ) | [inline] |
{_seeAlso=seeAlso;}