void ProgramDataMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return; switch(index) { case 5: createName(); break; case 6: editName(); break; default: ProgramData undo(p_); if(!runEdit(index)) { p_ = undo; } else { Buzzer::soundSelect(); p_.check(); } break; } } while(true); }
int BaseCommand::run(char* argv[], int argc) { QStringList args = toQStringList(argv, argc); args = args.mid(2); Settings::parseCommonArguments(args); return runSimple(args); }
bool SettingsMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return false; switch(index) { case sizeOfArray(SettingsStaticMenu) - 2: //reset p_.setDefault(); buzzer.soundSelect(); break; case sizeOfArray(SettingsStaticMenu) - 1: //save return true; default: Settings undo(p_); if(!runEdit(index)) p_ = undo; p_.check(); p_.apply(); break; } } while(true); }
void SettingsMenu::run() { int8_t index; do { index = runSimple(); if(index < 0) return; switch(index) { case sizeOfArray(SettingsStaticMenu) - 1: //reset p_.setDefault(); Buzzer::soundSelect(); break; default: Settings undo(p_); if(!runEdit(index)) { p_ = undo; } else { Buzzer::soundSelect(); p_.check(); } p_.apply(); break; } } while(true); }
int BaseCommand::run(char* argv[], int argc) { QStringList args = toQStringList(argv, argc); args = args.mid(2); bool foundOne = true; while (args.size() > 0 && foundOne) { if (args[0] == "--conf" || args[0] == "-C") { if (args.size() < 2) { throw HootException("--conf must be followed by a file name."); } conf().loadJson(args[1]); // move on to the next argument. args = args.mid(2); } else if (args[0] == "--debug") { Log::getInstance().setLevel(Log::Debug); args = args.mid(1); } else if (args[0] == "--info") { Log::getInstance().setLevel(Log::Info); args = args.mid(1); } else if (args[0] == "--warn") { Log::getInstance().setLevel(Log::Warn); args = args.mid(1); } else if (args[0] == "--error") { Log::getInstance().setLevel(Log::Error); args = args.mid(1); } else if (args[0] == "--define" || args[0] == "-D") { if (args.size() < 2) { throw HootException("--define or -D must be followed by key=value."); } QString kv = args[1]; QStringList kvl = kv.split("+="); bool append = true; if (kvl.size() != 2) { // split on the first '=' int sep = kv.indexOf('='); kvl.clear(); if (sep != -1) { kvl << kv.mid(0, sep); kvl << kv.mid(sep + 1); } append = false; } if (kvl.size() != 2) { throw HootException("define must takes the form key=value."); } if (append) { QStringList values = kvl[1].split(";", QString::SkipEmptyParts); conf().append(kvl[0], values); } else { conf().set(kvl[0], kvl[1]); } // move on to the next argument. args = args.mid(2); } else { foundOne = false; } } // re-initialize the logger and other resources after the settings have been parsed. Hoot::getInstance().reinit(); return runSimple(args); }