/** Displays usage information for command-line args. */ void Rshare::showUsageMessageBox() { QString usage; QTextStream out(&usage); out << "Available Options:" << endl; out << "<table>"; //out << trow(tcol("-"ARG_HELP) + // tcol(tr("Displays this usage message and exits."))); out << trow(tcol("-"ARG_RESET) + tcol(tr("Resets ALL stored RetroShare settings."))); out << trow(tcol("-"ARG_DATADIR" <dir>") + tcol(tr("Sets the directory RetroShare uses for data files."))); out << trow(tcol("-"ARG_LOGFILE" <file>") + tcol(tr("Sets the name and location of RetroShare's logfile."))); out << trow(tcol("-"ARG_LOGLEVEL" <level>") + tcol(tr("Sets the verbosity of RetroShare's logging.") + "<br>[" + Log::logLevels().join("|") +"]")); out << trow(tcol("-"ARG_GUISTYLE" <style>") + tcol(tr("Sets RetroShare's interface style.") + "<br>[" + QStyleFactory::keys().join("|") + "]")); out << trow(tcol("-"ARG_GUISTYLESHEET" <stylesheet>") + tcol(tr("Sets RetroShare's interface stylesheets."))); out << trow(tcol("-"ARG_LANGUAGE" <language>") + tcol(tr("Sets RetroShare's language.") + "<br>[" + LanguageSupport::languageCodes().join("|") + "]")); out << "</table>"; VMessageBox::information(0, tr("RetroShare Usage Information"), usage, VMessageBox::Ok); }
void genOSXPrefValues(const CFTypeRef& value, const Row& base, QueryData& results, size_t depth) { if (value == nullptr) { return; } // Since we recurse when parsing Arrays/Dicts, monitor stack limits. if (++depth > kPreferenceDepthLimit) { TLOG << "The macOS preference: " << base.at("domain") << " exceeded subkey depth limit: " << kPreferenceDepthLimit; return; } // Emit a string representation for each preference type. Row r = base; if (CFGetTypeID(value) == CFNumberGetTypeID()) { r["value"] = stringFromCFNumber(static_cast<CFDataRef>(value)); } else if (CFGetTypeID(value) == CFStringGetTypeID()) { r["value"] = stringFromCFString(static_cast<CFStringRef>(value)); } else if (CFGetTypeID(value) == CFDateGetTypeID()) { auto unix_time = CFDateGetAbsoluteTime(static_cast<CFDateRef>(value)) + kCFAbsoluteTimeIntervalSince1970; r["value"] = boost::lexical_cast<std::string>(std::llround(unix_time)); } else if (CFGetTypeID(value) == CFBooleanGetTypeID()) { r["value"] = (CFBooleanGetValue(static_cast<CFBooleanRef>(value)) == TRUE) ? "true" : "false"; } else if (CFGetTypeID(value) == CFDataGetTypeID()) { // Do not include data preferences. } else if (CFGetTypeID(value) == CFArrayGetTypeID()) { genOSXListPref(static_cast<CFArrayRef>(value), base, results, depth); return; } else if (CFGetTypeID(value) == CFDictionaryGetTypeID()) { // Generate a row for each hash key. TRowResults trow(base, results, depth); CFDictionaryApplyFunction( static_cast<CFDictionaryRef>(value), &genOSXHashPref, &trow); return; } results.push_back(std::move(r)); }