The Battle for Wesnoth  1.19.0-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 
24 #include "gui/widgets/window.hpp"
27 
28 namespace gui2::dialogs
29 {
30 
31 REGISTER_DIALOG(addon_auth)
32 
34  : modal_dialog(window_id())
35  , cfg_(cfg)
36 {
37  register_bool("remember_password", false,
40 }
41 
43 {
44  text_box* pwd = find_widget<text_box>(&win, "password", false, true);
45  win.add_to_tab_order(pwd);
46  pwd->set_value(cfg_["passphrase"].str(""));
47 
48  std::vector<config> content_list;
49  content_list.emplace_back("label", cfg_["author"].str(""));
50 
51  for(const auto& author : utils::split(cfg_["secondary_authors"].str(""), ',')) {
52  content_list.emplace_back("label", author);
53  }
54  find_widget<menu_button>(&win, "choose_uploader", false).set_values(content_list);
55 }
56 
58 {
60  {
61  cfg_["passphrase"] = find_widget<password_box>(&win, "password", false).get_real_value();
62  cfg_["uploader"] = find_widget<menu_button>(&win, "choose_uploader", false).get_value_string();
63  }
64 }
65 
66 } // namespace dialogs
A config object defines a single node in a WML file, with access to child nodes.
Definition: config.hpp:159
This shows the dialog to provide a password when uploading an add-on.
Definition: addon_auth.hpp:32
virtual void post_show(window &window) override
Actions to be taken after the window has been shown.
Definition: addon_auth.cpp:57
virtual void pre_show(window &window) override
Actions to be taken before showing the window.
Definition: addon_auth.cpp:42
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.
Class for a single line text area.
Definition: text_box.hpp:142
base class of top level items, the only item which needs to store the final canvases to draw on.
Definition: window.hpp:63
void add_to_tab_order(widget *widget, int at=-1)
Add the widget to the tabbing order.
Definition: window.cpp:1233
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
void set_remember_password(bool remember)
bool remember_password()
std::vector< std::string > split(const config_attribute_value &val)