The Battle for Wesnoth
1.19.5+dev
gui
dialogs
addon
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
19
#include "
gui/dialogs/addon/addon_auth.hpp
"
20
21
#include "
gui/widgets/menu_button.hpp
"
22
#include "
gui/widgets/password_box.hpp
"
23
#include "
gui/widgets/window.hpp
"
24
#include "
preferences/preferences.hpp
"
25
#include "
serialization/string_utils.hpp
"
26
27
namespace
gui2::dialogs
28
{
29
30
REGISTER_DIALOG
(addon_auth)
31
32
addon_auth
::
addon_auth
(
config
& cfg)
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
41
void
addon_auth::pre_show
()
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
content_list.emplace_back(
"label"
,
cfg_
[
"author"
].str(
""
));
49
50
for
(
const
auto
& author :
utils::split
(
cfg_
[
"secondary_authors"
].str(
""
),
','
)) {
51
content_list.emplace_back(
"label"
, author);
52
}
53
find_widget<menu_button>(
"choose_uploader"
).set_values(content_list);
54
}
55
56
void
addon_auth::post_show
()
57
{
58
if
(
get_retval
() ==
gui2::retval::OK
)
59
{
60
cfg_
[
"passphrase"
] = find_widget<password_box>(
"password"
).get_real_value();
61
cfg_
[
"uploader"
] = find_widget<menu_button>(
"choose_uploader"
).get_value_string();
62
}
63
}
64
65
}
// namespace dialogs
addon_auth.hpp
config
A config object defines a single node in a WML file, with access to child nodes.
Definition:
config.hpp:172
gui2::dialogs::addon_auth
Definition:
addon_auth.hpp:23
gui2::dialogs::addon_auth::post_show
virtual void post_show() override
Actions to be taken after the window has been shown.
Definition:
addon_auth.cpp:56
gui2::dialogs::addon_auth::cfg_
config & cfg_
Definition:
addon_auth.hpp:36
gui2::dialogs::addon_auth::pre_show
virtual void pre_show() override
Actions to be taken before showing the window.
Definition:
addon_auth.cpp:41
gui2::dialogs::modal_dialog
Abstract base class for all modal dialogs.
Definition:
modal_dialog.hpp:146
gui2::dialogs::modal_dialog::get_retval
int get_retval() const
Returns the cached window exit code.
Definition:
modal_dialog.hpp:176
gui2::text_box_base::set_value
virtual void set_value(const std::string &text)
The set_value is virtual for the password_box class.
Definition:
text_box_base.cpp:125
gui2::text_box
A widget that allows the user to input text in single line.
Definition:
text_box.hpp:125
gui2::window::add_to_tab_order
void add_to_tab_order(widget *widget, int at=-1)
Add the widget to the tabbing order.
Definition:
window.cpp:1225
prefs::set_remember_password
void set_remember_password(bool remember)
Definition:
preferences.cpp:2147
prefs::get
static prefs & get()
Definition:
preferences.hpp:199
prefs::remember_password
bool remember_password()
Definition:
preferences.cpp:2142
window.hpp
This file contains the window object, this object is a top level container which has the event manage...
menu_button.hpp
gui2::dialogs
Definition:
achievements_dialog.cpp:36
gui2::dialogs::REGISTER_DIALOG
REGISTER_DIALOG(editor_edit_unit)
gui2::OK
@ OK
Dialog was closed with the OK button.
Definition:
retval.hpp:35
utils::split
std::vector< std::string > split(const config_attribute_value &val)
Definition:
config_attribute_value.cpp:412
password_box.hpp
preferences.hpp
string_utils.hpp
Generated by
1.9.1