| 748 | } |
| 749 | |
| 750 | static std::string generateScopeString(const std::set<TokenOption> &options) |
| 751 | { |
| 752 | if (options.empty()) { |
| 753 | return ""; |
| 754 | } |
| 755 | |
| 756 | std::string scope; |
| 757 | for (const auto &option : options) { |
| 758 | scope += option.apiId + "+"; |
| 759 | } |
| 760 | scope.pop_back(); // Remove trailing + |
| 761 | return scope; |
| 762 | } |
| 763 | |
| 764 | static std::string getHtml(const QString &redirect) |
| 765 | { |