Ref T111, improved dot commands (e.g. ".drv") handling

* register help implementation to .cpp file
* tooltip HTML formatting
This commit is contained in:
Klaus Basan
2017-07-27 00:33:57 +02:00
committed by Mathew Sutcliffe
parent 52805965cd
commit d597dcec15
6 changed files with 30 additions and 26 deletions

View File

@@ -371,19 +371,12 @@ namespace BlackCore
{
if (this->isMyIdentifier(originator)) { return false; }
if (commandLine.isEmpty()) { return false; }
CSimpleCommandParser parser(
{
".plugin", ".drv", ".driver",
});
CSimpleCommandParser parser({ ".plugin", ".drv", ".driver" });
parser.parse(commandLine);
if (!parser.isKnownCommand()) { return false; }
// .plugin unload
if (parser.matchesPart(1, "unload"))
{
this->unload();
return true;
}
if (parser.matchesPart(1, "unload")) { this->unload(); return true; }
// .plugin log interpolator
const QString part1(parser.part(1).toLower().trimmed());
@@ -447,6 +440,17 @@ namespace BlackCore
return this->parseDetails(parser);
}
void CSimulatorCommon::registerHelp()
{
if (BlackMisc::CSimpleCommandParser::registered("BlackCore::CSimulatorCommon")) { return; }
BlackMisc::CSimpleCommandParser::registerCommand({".drv", "alias: .driver .plugin"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint callsign", "log interpolator for callsign"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint off", "no log information for interpolator"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint write", "write interpolator log to file"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint clear", "clear current log"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv spline|linear <callsign>", "set spline/linear interpolator for one/all callsign(s)"});
}
void CSimulatorCommon::ps_oneSecondTimer()
{
blinkHighlightedAircraft();

View File

@@ -101,16 +101,7 @@ namespace BlackCore
virtual bool parseCommandLine(const QString &commandLine, const BlackMisc::CIdentifier &originator) override;
//! Register help
static void registerHelp()
{
if (BlackMisc::CSimpleCommandParser::registered("BlackCore::CSimulatorCommon")) { return; }
BlackMisc::CSimpleCommandParser::registerCommand({".drv", "alias: .driver .plugin"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint callsign", "log interpolator for callsign"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint off", "no log information for interpolator"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint write", "write interpolator log to file"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv logint clear", "clear current log"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv spline|linear <callsign>", "set spline/linear interpolator for one/all callsign(s)"});
}
static void registerHelp();
// --------- ISimulator implementations ------------

View File

@@ -157,10 +157,17 @@ namespace BlackMisc
static const QString html("<table style=\"font-size: 8pt; white-space: nowrap;\">\n%1\n</table>");
static const QString row("<td>%1</td><td>%2</td>");
static const QString rowHeader("<th>%1</th><th>%2</th><th>%3</th><th>%4</th>");
QString rows;
QList<CommandHtmlHelp> cmds(s_commands);
qSort(cmds.begin(), cmds.end(), CommandHtmlHelp::less);
static const QString cmdCol(QString().fill('-', 20));
static const QString textCol(QString().fill('-', 40));
rows += "<tr>" + rowHeader.arg("command", "synopsis", "command", "synopsis") + "</tr>\n";
rows += "<tr>" + rowHeader.arg(cmdCol, textCol, cmdCol, textCol) + "</tr>\n";
for (int i = 0; i < cmds.size(); i++)
{
CommandHtmlHelp help = cmds[i];

View File

@@ -99,7 +99,7 @@ namespace BlackMisc
//! Help already registered
static bool registered(const QString &helpContext);
//! HTML commans HELP
//! HTML commands HELP
static QString commandsHtmlHelp();
private:

View File

@@ -67,6 +67,13 @@ namespace BlackSimPlugin
return false;
}
void CSimulatorFsCommon::registerHelp()
{
if (BlackMisc::CSimpleCommandParser::registered("BlackSimPlugin::FsCommon::CSimulatorFsCommon")) { return; }
BlackMisc::CSimpleCommandParser::registerCommand({".drv", "alias: .driver .plugin"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv fsuipc on|off", "FSUIPC on|off if applicable"});
}
bool CSimulatorFsCommon::disconnectFrom()
{
if (this->m_fsuipc) { this->m_fsuipc->disconnect(); }

View File

@@ -72,12 +72,7 @@ namespace BlackSimPlugin
virtual bool parseDetails(const BlackMisc::CSimpleCommandParser &parser) override;
//! Register help
static void registerHelp()
{
if (BlackMisc::CSimpleCommandParser::registered("BlackSimPlugin::FsCommon::CSimulatorFsCommon")) { return; }
BlackMisc::CSimpleCommandParser::registerCommand({".drv", "alias: .driver .plugin"});
BlackMisc::CSimpleCommandParser::registerCommand({".drv fsuipc on|off", "FSUIPC on|off if applicable"});
}
static void registerHelp();
QString m_simulatorName; //!< name of simulator
QString m_simulatorDetails; //!< describes version etc.