{
static MoonshotLogger logger = get_logger("IdCardWidget");
+ private IdentityManagerView manager_view;
+
public IdCard id_card { get; set; default = null; }
private VBox main_vbox;
private HBox table;
string services_text = _("Services: ");
string service_spacer = _("\n ");
- var label_text = Markup.printf_escaped(_("<big>%s</big>"), this.id_card.display_name);
+ var display_name = (manager_view.selection_in_progress() && this.id_card.is_no_identity()
+ ? "Do not use a Moonshot identity for this service" : this.id_card.display_name);
+ var label_text = Markup.printf_escaped(_("<big>%s</big>"), display_name);
if (is_selected)
{
label.set_markup(label_text);
}
- public IdCardWidget(IdCard id_card)
+ public IdCardWidget(IdCard id_card, IdentityManagerView manager_view)
{
this.id_card = id_card;
+ this.manager_view = manager_view;
var image = new Image.from_pixbuf(get_pixbuf(id_card));
internal IdentityManagerModel identities_manager;
private unowned SList<IdCard> candidates;
- public GLib.Queue<IdentityRequest> request_queue;
+ private GLib.Queue<IdentityRequest> request_queue;
internal CheckButton remember_identity_binding = null;
private IdCardWidget add_id_card_widget(IdCard id_card)
{
- var id_card_widget = new IdCardWidget(id_card);
+ var id_card_widget = new IdCardWidget(id_card, this);
this.custom_vbox.add_id_card_widget(id_card_widget);
id_card_widget.expanded.connect(this.widget_selected_cb);
id_card_widget.collapsed.connect(this.widget_unselected_cb);
this.edit_button.set_sensitive(true);
this.custom_vbox.receive_expanded_event(id_card_widget);
- if (this.request_queue.length > 0)
+ if (this.selection_in_progress())
this.send_button.set_sensitive(true);
}
public void queue_identity_request(IdentityRequest request)
{
- if (this.request_queue.is_empty())
+ if (!this.selection_in_progress())
{ /* setup widgets */
candidates = request.candidates;
filter.refilter();
private void send_identity_cb(IdCard id)
{
- return_if_fail(request_queue.length > 0);
+ return_if_fail(this.selection_in_progress());
if (!check_and_confirm_trust_anchor(id)) {
// Allow user to pick again
candidates = null;
- if (this.request_queue.is_empty())
+ if (!this.selection_in_progress())
{
candidates = null;
clear_selection_prompts();
add(main_vbox);
main_vbox.show_all();
- if (this.request_queue.length == 0)
+ if (!this.selection_in_progress())
remember_identity_binding.hide();
}
+ internal bool selection_in_progress() {
+ return !this.request_queue.is_empty();
+ }
+
private void set_atk_name_description(Widget widget, string name, string description)
{
var atk_widget = widget.get_accessible();