File: nemo-desktop-preferences.c

package info (click to toggle)
nemo 6.4.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,088 kB
  • sloc: ansic: 127,474; xml: 1,555; python: 1,434; sh: 57; makefile: 20
file content (123 lines) | stat: -rw-r--r-- 3,784 bytes parent folder | download | duplicates (3)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <config.h>

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <math.h>
#include "nemo-desktop-preferences.h"

typedef struct
{
    GtkBuilder *builder;
    GSettings *desktop_settings;
} NemoDesktopPreferencesPrivate;

struct _NemoDesktopPreferences
{
    GtkBin parent_object;

    NemoDesktopPreferencesPrivate *priv;
};

G_DEFINE_TYPE_WITH_PRIVATE (NemoDesktopPreferences, nemo_desktop_preferences, GTK_TYPE_BIN)

/* copied from nemo-file-management-properties.c */
static void
bind_builder_bool (GtkBuilder *builder,
                   GSettings  *settings,
                   const char *widget_name,
                   const char *prefs)
{
    g_settings_bind (settings, prefs,
                     gtk_builder_get_object (builder, widget_name),
                     "active", G_SETTINGS_BIND_DEFAULT);
}

static void
bind_builder_string_combo (GtkBuilder *builder,
                           GSettings  *settings,
                           const char *widget_name,
                           const char *prefs)
{
    g_settings_bind (settings, prefs,
                     gtk_builder_get_object (builder, widget_name),
                     "active-id", G_SETTINGS_BIND_DEFAULT);
}

static void
nemo_desktop_preferences_init (NemoDesktopPreferences *preferences)
{
    GtkWidget *widget;
    NemoDesktopPreferencesPrivate *priv = nemo_desktop_preferences_get_instance_private (preferences);

    preferences->priv = priv;

    priv->desktop_settings = g_settings_new ("org.nemo.desktop");

    priv->builder = gtk_builder_new ();
    gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE);
    gtk_builder_add_from_resource (priv->builder, "/org/nemo/nemo-desktop-preferences.glade", NULL);

    widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "prefs_box"));

    gtk_container_add (GTK_CONTAINER (preferences), widget);

    bind_builder_string_combo (priv->builder,
                               priv->desktop_settings,
                               "layout_combo",
                               "desktop-layout");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "computer_switch",
                       "computer-icon-visible");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "home_switch",
                       "home-icon-visible");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "trash_switch",
                       "trash-icon-visible");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "drives_switch",
                       "volumes-visible");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "network_switch",
                       "network-icon-visible");

    bind_builder_bool (priv->builder,
                       priv->desktop_settings,
                       "orphan_switch",
                       "show-orphaned-desktop-icons");

    gtk_widget_show_all (GTK_WIDGET (preferences));
}

static void
nemo_desktop_preferences_dispose (GObject *object)
{
    NemoDesktopPreferences *preferences = NEMO_DESKTOP_PREFERENCES (object);

    g_clear_object (&preferences->priv->builder);
    g_clear_object (&preferences->priv->desktop_settings);

    G_OBJECT_CLASS (nemo_desktop_preferences_parent_class)->dispose (object);
}

static void
nemo_desktop_preferences_class_init (NemoDesktopPreferencesClass *klass)
{
    G_OBJECT_CLASS (klass)->dispose = nemo_desktop_preferences_dispose;
}

NemoDesktopPreferences *
nemo_desktop_preferences_new (void)
{
    return g_object_new (NEMO_TYPE_DESKTOP_PREFERENCES, NULL);
}