40 #include <glib/gi18n.h>
43 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE)
63 #define GET_OBJECT(object_name) gtk_builder_get_object(remmina_pref_dialog->builder, object_name)
76 g_return_if_fail(GTK_IS_BUTTON(widget));
79 if (arguments->
response != GTK_RESPONSE_CANCEL && arguments->
response != GTK_RESPONSE_DELETE_EVENT) {
81 gtk_button_set_label(GTK_BUTTON(widget), val);
97 gtk_dialog_run(dialog);
100 gtk_widget_destroy(GTK_WIDGET(dialog));
107 TRACE_CALL(__func__);
115 source = g_file_new_for_path(sourcepath);
117 remmina_dir = g_build_path(
"/", g_get_user_config_dir(),
"remmina", NULL);
119 destpath = g_strdup_printf(
"%s/remmina.colors", remmina_dir);
120 destination = g_file_new_for_path(destpath);
122 if (g_file_test(sourcepath, G_FILE_TEST_IS_REGULAR)) {
125 G_FILE_COPY_OVERWRITE,
136 g_object_unref(source);
141 TRACE_CALL(__func__);
146 GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
147 _(
"Recent lists cleared.")));
148 gtk_dialog_run(dialog);
149 gtk_widget_destroy(GTK_WIDGET(dialog));
155 TRACE_CALL(__func__);
161 gtk_dialog_run(dialog);
164 gtk_widget_destroy(GTK_WIDGET(dialog));
169 TRACE_CALL(__func__);
177 TRACE_CALL(__func__);
179 if (gtk_switch_get_active(sw)) {
181 gchar *unlock_password = NULL;
187 if (unlock_password == NULL || unlock_password[0] ==
'\0') {
197 g_free(unlock_password), unlock_password = NULL;
210 TRACE_CALL(__func__);
218 TRACE_CALL(__func__);
224 TRACE_CALL(__func__);
227 gboolean rebuild_remmina_icon = FALSE;
276 #if SODIUM_VERSION_INT >= 90200
297 rebuild_remmina_icon = TRUE;
306 rebuild_remmina_icon = TRUE;
314 if (rebuild_remmina_icon) {
402 TRACE_CALL(__func__);
409 widget = gtk_label_new(pref_plugin->
pref_label);
410 gtk_widget_set_halign(widget, GTK_ALIGN_START);
411 gtk_widget_show(widget);
413 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
414 gtk_widget_show(vbox);
418 gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, FALSE, 0);
425 TRACE_CALL(__func__);
431 TRACE_CALL(__func__);
434 b = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
445 gtk_button_set_label(button, val);
452 TRACE_CALL(__func__);
456 #if !defined (HAVE_LIBSSH) || !defined (HAVE_LIBVTE)
460 #if !defined (HAVE_LIBVTE)
461 align = GTK_WIDGET(GET_OBJECT(
"alignment_terminal"));
462 gtk_widget_set_sensitive(align, FALSE);
465 #if !defined (HAVE_LIBSSH)
466 align = GTK_WIDGET(GET_OBJECT(
"alignment_ssh"));
467 gtk_widget_set_sensitive(align, FALSE);
472 #if SODIUM_VERSION_INT >= 90200
537 #ifdef HAVE_LIBAPPINDICATOR
630 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE)
631 #if !VTE_CHECK_VERSION(0, 38, 0)
660 #if SODIUM_VERSION_INT >= 90200
716 TRACE_CALL(__func__);
717 GSimpleActionGroup *actions;
718 GtkAccelGroup *accel_group = NULL;
838 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE)
839 #if VTE_CHECK_VERSION(0, 38, 0)
840 const gchar *remmina_dir;
842 remmina_dir = g_build_path(
"/", g_get_user_config_dir(),
"remmina", NULL);
843 destpath = g_strdup_printf(
"%s/remmina.colors", remmina_dir);
845 const gchar *fc_tooltip_text = g_strconcat(_(
"Picking a terminal colouring file replaces the file: "),
849 _(
"This file contains the “Custom” terminal colour scheme selectable from the “Advanced” tab of terminal connections and editable in the “Terminal” tab in the settings."),
857 actions = g_simple_action_group_new();
861 g_object_unref(actions);
863 accel_group = gtk_accel_group_new();
865 gtk_accel_group_connect(accel_group, GDK_KEY_Q, GDK_CONTROL_MASK, 0,
@ REMMINA_PLUGIN_TYPE_PREF
gchar * remmina_file_get_datadir(void)
Return datadir_path from pref or first found data dir as per XDG specs.
void remmina_icon_set_autostart(gboolean autostart)
gboolean remmina_icon_is_autostart(void)
void remmina_icon_populate_menu(void)
void remmina_icon_init(void)
gchar * remmina_key_chooser_get_value(guint keyval, guint state)
RemminaKeyChooserArguments * remmina_key_chooser_new(GtkWindow *parent_window, gboolean use_modifiers)
guint remmina_key_chooser_get_keyval(const gchar *value)
void remmina_main_reload_preferences()
gboolean remmina_passwd(GtkWindow *parent, gchar **unlock_password)
void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)
void remmina_pref_init(void)
void remmina_pref_set_value(const gchar *key, const gchar *value)
gchar * remmina_pref_get_value(const gchar *key)
void remmina_pref_clear_recent(void)
gboolean remmina_pref_save(void)
void remmina_pref_on_button_keystrokes_clicked(GtkWidget *widget, gpointer user_data)
void remmina_pref_dialog_disable_tray_icon_on_toggled(GtkWidget *widget, RemminaPrefDialog *dialog)
static GActionEntry pref_actions[]
void remmina_pref_dialog_vte_font_on_toggled(GtkSwitch *widget, RemminaPrefDialog *dialog)
static RemminaPrefDialog * remmina_pref_dialog
static void remmina_pref_dialog_set_button_label(GtkButton *button, guint keyval)
void remmina_pref_dialog_clear_recent(GtkWidget *widget, gpointer user_data)
void remmina_pref_on_color_scheme_selected(GtkWidget *widget, gpointer user_data)
void remmina_pref_dialog_on_action_close(GSimpleAction *action, GVariant *param, gpointer data)
void remmina_pref_dialog_on_key_chooser(GtkWidget *widget, gpointer user_data)
static void remmina_pref_dialog_init(void)
void remmina_prefdiag_on_use_password_activated(GtkSwitch *sw, gpointer user_data)
GtkWidget * remmina_pref_dialog_get_dialog()
GtkWidget * remmina_pref_dialog_new(gint default_tab, GtkWindow *parent)
void remmina_pref_on_dialog_destroy(GtkWidget *widget, gpointer user_data)
void remmina_pref_on_button_resolutions_clicked(GtkWidget *widget, gpointer user_data)
void remmina_prefdiag_on_grab_color_activated(GtkSwitch *widget, gpointer user_data)
void remmina_pref_dialog_on_close_clicked(GtkWidget *widget, RemminaPrefDialog *dialog)
static gboolean remmina_pref_dialog_add_pref_plugin(gchar *name, RemminaPlugin *plugin, gpointer user_data)
gboolean remmina_public_resolution_validation_func(const gchar *new_str, gchar **error)
GtkBuilder * remmina_public_gtk_builder_new_from_resource(gchar *resource)
GtkDialog * remmina_string_list_new(gboolean two_columns, const gchar *fields_separator)
void remmina_string_list_set_validation_func(RemminaStringListValidationFunc func)
gchar * remmina_string_list_get_text(void)
void remmina_string_list_set_titles(gchar *title1, gchar *title2)
void remmina_string_list_set_text(const gchar *text, const gboolean clear_data)
gchar * cursor_foreground
gchar * highlight_foreground
GtkButton * button_keyboard_increase_font
GtkLabel * label_terminal_background
GtkNotebook * notebook_preferences
GtkEntry * unlock_timeout
GtkButton * button_keyboard_minimize
GtkCheckButton * checkbutton_appearance_show_tabs
GtkButton * button_options_recent_items_clear
GtkLabel * label_terminal_cursor_color
GtkButton * button_keyboard_copy
GtkColorButton * colorbutton_color8
GtkLabel * label_disable_tip
GtkButton * button_keyboard_search_text
GtkSwitch * switch_disable_news
GtkSwitch * switch_appearance_grab_color
GtkButton * button_keyboard_multimon
GtkCheckButton * checkbutton_options_save_settings
RemminaPrefDialogPriv * priv
GtkColorButton * colorbutton_color9
GtkSwitch * switch_security_lock_edit
GtkEntry * entry_options_ssh_tcp_keepintvl
GtkLabel * label_disable_stats
GtkColorButton * colorbutton_color3
GtkButton * button_keyboard_fullscreen
GtkLabel * label_terminal_foreground
GtkLabel * label_terminal_bold_color
GtkCheckButton * checkbutton_applet_start_in_tray
GtkButton * button_keyboard_clipboard
GtkSwitch * switch_disable_tip
GtkFileChooser * button_term_cs
GtkCheckButton * checkbutton_appearance_hide_searchbar
GtkSwitch * switch_security_use_primary_password
GtkColorButton * colorbutton_color11
GtkComboBox * comboboxtext_appearance_tab_interface
GtkColorButton * colorbutton_color14
GtkCheckButton * checkbutton_appearance_hide_toolbar
GtkColorButton * colorbutton_color5
GtkComboBox * comboboxtext_options_ssh_loglevel
GtkSwitch * switch_security_lock_connect
GtkEntry * entry_options_file_name
GtkComboBox * comboboxtext_options_scale_quality
GtkEntry * entry_grab_color
GtkLabel * label_terminal_normal_colors
GtkSwitch * switch_terminal_bold
GtkColorButton * colorbutton_cursor
GtkEntry * entry_options_ssh_tcp_keepidle
GtkButton * button_keyboard_host_key
GtkButton * button_keyboard_screenshot
GtkEntry * entry_options_screenshot_name
GtkCheckButton * checkbutton_appearance_show_notes
GtkEntry * entry_options_ssh_port
GtkSwitch * switch_security_lock_view_passwords
GtkEntry * entry_options_ssh_tcp_keepcnt
GtkColorButton * colorbutton_color13
GtkSwitch * switch_options_remember_last_view_mode
GtkButton * button_keyboard_decrease_font
GtkComboBox * comboboxtext_appearance_fullscreen_toolbar_visibility
GtkCheckButton * checkbutton_applet_new_connection_on_top
GtkLabel * label_disable_news
GtkSwitch * switch_disable_stats
GtkEntry * entry_options_recent_items
GtkComboBox * comboboxtext_options_double_click
GtkColorButton * colorbutton_color0
GtkColorButton * colorbutton_color1
GtkButton * button_keyboard_grab_keyboard
GtkColorButton * colorbutton_color6
GtkSwitch * switch_options_confirm_close
GtkComboBox * comboboxtext_appearance_view_mode
GtkColorButton * colorbutton_color2
GtkColorButton * colorbutton_foreground
GtkColorButton * colorbutton_color12
GtkColorButton * colorbutton_cursor_foreground
GtkButton * button_keyboard_switch_tab_left
GtkSwitch * switch_security_audit
GtkEntry * entry_options_ssh_tcp_usrtimeout
GtkButton * button_keyboard_auto_fit
GtkColorButton * colorbutton_color15
GtkCheckButton * checkbutton_applet_hide_totals
GtkButton * button_keyboard_toolbar
GtkColorButton * colorbutton_highlight
GtkCheckButton * checkbutton_options_ssh_parseconfig
GtkFileChooser * filechooserbutton_options_datadir_path
GtkEntry * entry_options_scroll
GtkSwitch * switch_terminal_font_system
GtkCheckButton * checkbutton_dark_theme
GtkLabel * label_terminal_bright_colors
GtkCheckButton * checkbutton_applet_disable_tray
GtkColorButton * colorbutton_colorBD
GtkComboBox * comboboxtext_security_enc_method
GtkCheckButton * checkbutton_appearance_fullscreen_on_auto
GtkSwitch * switch_options_deny_screenshot_clipboard
GtkColorButton * colorbutton_color10
GtkButton * button_keyboard_scaled
GtkColorButton * colorbutton_background
GtkColorButton * colorbutton_color7
GtkEntry * entry_scrollback_lines
GtkButton * button_keyboard_switch_tab_right
GtkButton * button_keyboard_disconnect
GtkFileChooser * filechooserbutton_options_screenshots_path
GtkButton * button_keyboard_paste
GtkColorButton * colorbutton_highlight_foreground
GtkButton * button_keyboard_viewonly
GtkFontButton * fontbutton_terminal_font
GtkSwitch * switch_security_trust_all
GtkColorButton * colorbutton_color4
GtkButton * button_keyboard_select_all
guint shortcutkey_fullscreen
guint shortcutkey_disconnect
guint shortcutkey_screenshot
guint shortcutkey_clipboard
guint vte_shortcutkey_decrease_font
gboolean always_show_notes
gboolean grab_color_switch
const gchar * screenshot_path
guint vte_shortcutkey_search_text
guint shortcutkey_prevtab
gboolean fullscreen_on_auto
guint shortcutkey_viewonly
guint shortcutkey_multimon
gboolean vte_allow_bold_text
guint vte_shortcutkey_copy
const gchar * unlock_password
gboolean use_primary_password
guint shortcutkey_nexttab
RemminaColorPref color_pref
guint shortcutkey_minimize
guint vte_shortcutkey_paste
guint vte_shortcutkey_increase_font
const gchar * datadir_path
gboolean hide_connection_toolbar
gint fullscreen_toolbar_visibility
gboolean applet_new_ontop
guint vte_shortcutkey_select_all
gboolean lock_view_passwords
const gchar * remmina_file_name
guint shortcutkey_toolbar
gboolean applet_hide_count
const gchar * screenshot_name
guint shortcutkey_autofit
gboolean deny_screenshot_clipboard
gboolean disable_tray_icon
GtkWidget *(* get_pref_body)(struct _RemminaPrefPlugin *instance)