Skip to content

Commit 2b43e1d

Browse files
committed
Imporve mpc error handling
1 parent cb13c98 commit 2b43e1d

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

remmina/src/remmina_mpchange.c

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,15 +313,30 @@ static gboolean remmina_file_multipasswd_changer_mt(gpointer d)
313313
GtkDialog* dialog;
314314
GtkWindow* mainwindow;
315315
GtkCellRendererToggle *toggle;
316+
RemminaSecretPlugin *secret_plugin;
317+
char *initerror;
316318

319+
mainwindow = remmina_main_get_window();
317320

318321
/* The multiple passowrd changer works only when a secret plugin is available */
319-
if (remmina_plugin_manager_get_secret_plugin() == NULL) {
320-
remmina_log_printf("The multi password changer does not work without a secret plugin\n");
322+
initerror = NULL;
323+
secret_plugin = remmina_plugin_manager_get_secret_plugin();
324+
if (secret_plugin == NULL) {
325+
initerror = _("The multi password changer cannot work without a secret plugin.\n");
326+
}else {
327+
if (!secret_plugin->is_service_available()) {
328+
initerror = _("The multi password changer does not work without a secret service.\n");
329+
}
330+
}
331+
if (initerror) {
332+
GtkWidget *msgDialog;
333+
msgDialog = gtk_message_dialog_new(mainwindow, GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
334+
"%s", initerror);
335+
gtk_dialog_run(GTK_DIALOG(msgDialog));
336+
gtk_widget_destroy(msgDialog);
321337
return FALSE;
322338
}
323339

324-
mainwindow = remmina_main_get_window();
325340

326341
bu = remmina_public_gtk_builder_new_from_file("remmina_mpc.glade");
327342
if (!bu) {

0 commit comments

Comments
 (0)