93
procman_save_tree_state2(GConfClient *client, GtkWidget *tree, const gchar *cprefix)
95
const string prefix(cprefix);
102
g_assert(prefix != "");
104
model = gtk_tree_view_get_model(GTK_TREE_VIEW (tree));
106
if (gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(model), &sort_col, &order)) {
107
gconf_client_set_int(client, (prefix + "/sort_col").c_str(), sort_col, 0);
108
gconf_client_set_int(client, (prefix + "/sort_order").c_str(), order, 0);
111
GList * const columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(tree));
115
for (GList *it = columns; it; it = it->next)
117
GtkTreeViewColumn *column;
120
column = static_cast<GtkTreeViewColumn*>(it->data);
121
cs.id = gtk_tree_view_column_get_sort_column_id(column);
122
cs.visible = gtk_tree_view_column_get_visible(column);
123
cs.width = gtk_tree_view_column_get_width(column);
125
list = g_slist_append(list, GINT_TO_POINTER(cs.pack()));
128
g_list_free(columns);
132
if (not gconf_client_set_list(client, (prefix + "/columns").c_str(),
133
GCONF_VALUE_INT, list,
135
g_critical("Failed to save tree state %s : %s",
145
gboolean procman_get_tree_state2(GConfClient *client, GtkWidget *tree, const gchar *cprefix)
147
const string prefix(cprefix);
154
g_assert(prefix != "");
156
if (!gconf_client_dir_exists(client, prefix.c_str(), 0))
159
model = gtk_tree_view_get_model(GTK_TREE_VIEW(tree));
161
sort_col = gconf_client_get_int(client, (prefix + "/sort_col").c_str(), 0);
162
sort_order = gconf_client_get_int(client, (prefix + "/sort_order").c_str(), 0);
165
gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), sort_col, order);
167
proctable_set_columns_order(GTK_TREE_VIEW(tree), order);
169
GSlist *list = gconf_client_get_list(client, (prefix + "/columns").c_str(),
173
for (GSList *it = list; it; it = it->next) {
175
cs.unpack(GPOINTER_TO_INT(it->data));
177
GtkTreeViewColumn *column;
178
column = gtk_tree_view_get_column(GTK_TREE_VIEW(tree), cs.id);
183
gtk_tree_view_column_set_visible(column, cs.visible);
185
gtk_tree_view_column_set_fixed_width(column, MAX(10, cs.width));
191
GList * const columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(tree));
193
for (GList * it = columns; it; it = it->next)
195
GtkTreeViewColumn *column = static_cast<GtkTreeViewColumn*>(it->data);
196
unsigned id = gtk_tree_view_column_get_sort_column_id(column);
198
ColumnState &cs(states[id]);
202
key = g_strdup_printf("%s/col_%d_width", prefix, id);
203
value = gconf_client_get (client, key, NULL);
207
width = gconf_value_get_int(value);
208
gconf_value_free (value);
210
key = g_strdup_printf ("%s/col_%d_visible", prefix, id);
211
visible = gconf_client_get_bool (client, key, NULL);
214
column = gtk_tree_view_get_column (GTK_TREE_VIEW (tree), id);
215
if(!column) continue;
216
gtk_tree_view_column_set_visible (column, visible);
218
/* ensure column is really visible */
219
width = MAX(width, 10);
220
gtk_tree_view_column_set_fixed_width(column, width);
225
g_list_free(columns);
299
161
OffsetFormater format;
300
162
mutable InodeDevices devices;
301
const char * const key;
163
const char * const schema;
303
MemMapsData(GtkWidget *a_tree, GConfClient *a_client)
165
MemMapsData(GtkWidget *a_tree, GSettings *a_settings)
306
key("/apps/procman/memmapstree2")
167
settings(a_settings),
168
schema("memmapstree")
308
procman_get_tree_state(this->client, this->tree, this->key);
170
procman_get_tree_state(this->settings, this->tree, this->schema);
313
procman_save_tree_state(this->client, this->tree, this->key);
175
procman_save_tree_state(this->settings, this->tree, this->schema);
601
464
mmdata = create_memmapsdata (procdata);
602
465
mmdata->info = info;
604
memmapsdialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
605
gtk_window_set_transient_for(GTK_WINDOW(memmapsdialog), GTK_WINDOW(procdata->app));
606
gtk_window_set_destroy_with_parent(GTK_WINDOW(memmapsdialog), TRUE);
607
// gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
608
gtk_window_set_title(GTK_WINDOW(memmapsdialog), _("Memory Maps"));
467
memmapsdialog = gtk_dialog_new_with_buttons (_("Memory Maps"), GTK_WINDOW (procdata->app),
468
GTK_DIALOG_DESTROY_WITH_PARENT,
469
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
609
471
gtk_window_set_resizable(GTK_WINDOW(memmapsdialog), TRUE);
610
472
gtk_window_set_default_size(GTK_WINDOW(memmapsdialog), 575, 400);
611
// gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
612
gtk_container_set_border_width(GTK_CONTAINER(memmapsdialog), 12);
614
GtkWidget *mainbox = gtk_vbox_new(FALSE, 12);
615
gtk_container_add(GTK_CONTAINER(memmapsdialog), mainbox);
618
gtk_box_set_spacing (GTK_BOX (vbox), 2);
619
gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
621
dialog_vbox = gtk_vbox_new (FALSE, 6);
473
gtk_container_set_border_width(GTK_CONTAINER(memmapsdialog), 5);
475
dialog_vbox = gtk_dialog_get_content_area (GTK_DIALOG(memmapsdialog));
622
476
gtk_container_set_border_width (GTK_CONTAINER (dialog_vbox), 5);
623
gtk_box_pack_start (GTK_BOX (vbox), dialog_vbox, TRUE, TRUE, 0);
626
478
label = procman_make_label_for_mmaps_or_ofiles (
627
479
_("_Memory maps for process \"%s\" (PID %u):"),
644
496
gtk_box_pack_start (GTK_BOX (dialog_vbox), scrolled, TRUE, TRUE, 0);
646
gtk_widget_show_all (memmapsdialog);
648
g_signal_connect(G_OBJECT(memmapsdialog), "delete-event",
649
G_CALLBACK(window_delete_event), mmdata);
498
g_signal_connect(G_OBJECT(memmapsdialog), "response",
499
G_CALLBACK(dialog_response), mmdata);
501
gtk_widget_show_all (memmapsdialog);
651
502
mmdata->timer = g_timeout_add_seconds (5, memmaps_timer, mmdata);
653
504
update_memmaps_dialog (mmdata);