The Battle for Wesnoth  1.19.7+dev
addon_auth.cpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2008 - 2024
3  Part of the Battle for Wesnoth Project https://www.wesnoth.org/
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY.
11 
12  See the COPYING file for more details.
13 */
14 
15 #define GETTEXT_DOMAIN "wesnoth-lib"
16 
17 #include <functional>
18 
20 
23 #include "gui/widgets/window.hpp"
26 
27 namespace gui2::dialogs
28 {
29 
30 REGISTER_DIALOG(addon_auth)
31 
33  : modal_dialog(window_id())
34  , cfg_(cfg)
35 {
36  register_bool("remember_password", false,
37  []() {return prefs::get().remember_password();},
38  [](bool v) {prefs::get().set_remember_password(v);});
39 }
40 
42 {
43  text_box* pwd = find_widget<text_box>("password", false, true);
44  add_to_tab_order(pwd);
45  pwd->set_value(cfg_["passphrase"].str(""));
46 
47  std::vector<config> content_list;
48 
49  for(const auto& author : utils::split(cfg_["primary_authors"].str(""), ',')) {
50  content_list.emplace_back("label", author);
51  }
52  for(const auto& author : utils::split(cfg_["secondary_authors"].str(""), ',')) {
53  content_list.emplace_back("label", author);
54  }
55  if(content_list.size() > 0) {
56  find_widget<menu_button>("choose_uploader").set_values(content_list);
57  }
58 }
59 
61 {
63  {
64  cfg_["passphrase"] = find_widget<password_box>("password").get_real_value();
65  cfg_["uploader"] = find_widget<menu_button>("choose_uploader").get_value_string();
66  }
67 }
68 
69 } // namespace dialogs
A config object defines a single node in a WML file, with access to child nodes.
Definition: config.hpp:172
virtual void post_show() override
Actions to be taken after the window has been shown.
Definition: addon_auth.cpp:60
virtual void pre_show() override
Actions to be taken before showing the window.
Definition: addon_auth.cpp:41
Abstract base class for all modal dialogs.
int get_retval() const
Returns the cached window exit code.
virtual void set_value(const std::string &text)
The set_value is virtual for the password_box class.
A widget that allows the user to input text in single line.
Definition: text_box.hpp:125
void add_to_tab_order(widget *widget, int at=-1)
Add the widget to the tabbing order.
Definition: window.cpp:1225
void set_remember_password(bool remember)
static prefs & get()
bool remember_password()
This file contains the window object, this object is a top level container which has the event manage...
REGISTER_DIALOG(editor_edit_unit)
@ OK
Dialog was closed with the OK button.
Definition: retval.hpp:35
std::vector< std::string > split(const config_attribute_value &val)