blob: ab0237a4c37fae46d3bc7621e1b72c060dda3347 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/*
* Copyright (C) 2009-2017 Canonical Ltd.
* Author: Robert Ancell <robert.ancell@canonical.com>,
* Eduard Gotwig <g@ox.io>
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version. See http://www.gnu.org/copyleft/gpl.html the full text of the
* license.
*/
[GtkTemplate (ui = "/org/gnome/SimpleScan/ui/authorize-dialog.ui")]
private class AuthorizeDialog : Gtk.Window
{
[GtkChild]
private unowned Adw.PreferencesGroup preferences_group;
[GtkChild]
private unowned Adw.EntryRow username_entry;
[GtkChild]
private unowned Adw.PasswordEntryRow password_entry;
public signal void authorized (AuthorizeDialogResponse res);
public AuthorizeDialog (Gtk.Window parent, string title)
{
preferences_group.set_title (title);
set_transient_for (parent);
}
public string get_username ()
{
return username_entry.text;
}
public string get_password ()
{
return password_entry.text;
}
[GtkCallback]
private void authorize_button_cb ()
{
authorized (AuthorizeDialogResponse.new_authorized (get_username (), get_password ()));
}
[GtkCallback]
private void cancel_button_cb ()
{
authorized (AuthorizeDialogResponse.new_canceled ());
}
public async AuthorizeDialogResponse open()
{
SourceFunc callback = open.callback;
AuthorizeDialogResponse response = {};
authorized.connect ((res) =>
{
response = res;
callback ();
});
present ();
yield;
close ();
return response;
}
}
public struct AuthorizeDialogResponse
{
public string username;
public string password;
public bool success;
public static AuthorizeDialogResponse new_canceled ()
{
return AuthorizeDialogResponse ()
{
success = false,
};
}
public static AuthorizeDialogResponse new_authorized (string username, string password)
{
return AuthorizeDialogResponse ()
{
username = username,
password = password,
success = true,
};
}
}
|