235
startup_cb (gpointer data)
237
g_source_remove (startup_id);
234
activate_help (GSimpleAction *action,
238
GApplication *application = user_data;
241
windows = gtk_application_get_windows (GTK_APPLICATION (application));
243
activate_action_manual (NULL, windows->data);
248
activate_about (GSimpleAction *action,
252
GApplication *application = user_data;
255
windows = gtk_application_get_windows (GTK_APPLICATION (application));
257
activate_action_about (NULL, windows->data);
262
activate_quit (GSimpleAction *action,
266
activate_action_quit (NULL, NULL);
270
static const GActionEntry app_menu_entries[] = {
271
{ "help", activate_help },
272
{ "about", activate_about },
273
{ "quit", activate_quit }
278
initialize_app_menu (GApplication *application)
282
g_action_map_add_action_entries (G_ACTION_MAP (application),
284
G_N_ELEMENTS (app_menu_entries),
287
builder = _gtk_builder_new_from_resource ("app-menu.ui");
288
gtk_application_set_app_menu (GTK_APPLICATION (application),
289
G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu")));
291
g_object_unref (builder);
296
startup_cb (GApplication *application)
240
298
initialize_data ();
299
initialize_app_menu (application);
305
activate_cb (GApplication *application)
309
for (link = gtk_application_get_windows (GTK_APPLICATION (application));
313
if (! fr_window_is_batch_mode (FR_WINDOW (link->data)))
314
gtk_widget_show (GTK_WIDGET (link->data));
260
332
egg_sm_client_set_restart_command (client, 1, argv);
263
for (window = WindowList, i = 0; window; window = window->next, i++) {
264
FrWindow *session = window->data;
267
key = g_strdup_printf ("archive%d", i);
268
if ((session->archive == NULL) || (session->archive->file == NULL)) {
269
g_key_file_set_string (state, "Session", key, "");
273
uri = g_file_get_uri (session->archive->file);
274
g_key_file_set_string (state, "Session", key, uri);
335
application = g_application_get_default ();
336
if (application != NULL) {
339
for (window = gtk_application_get_windows (GTK_APPLICATION (application)), i = 0;
341
window = window->next, i++)
343
FrWindow *session = window->data;
346
key = g_strdup_printf ("archive%d", i);
347
if ((session->archive == NULL) || (session->archive->file == NULL)) {
348
g_key_file_set_string (state, "Session", key, "");
353
uri = g_file_get_uri (session->archive->file);
354
g_key_file_set_string (state, "Session", key, uri);
280
361
g_key_file_set_integer (state, "Session", "archives", i);
284
366
main (int argc, char **argv)
286
368
GOptionContext *context = NULL;
287
369
GError *error = NULL;
370
GtkApplication *app = NULL;
288
371
EggSMClient *client = NULL;
290
374
program_argv0 = argv[0];
318
402
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
319
403
PKG_DATA_DIR G_DIR_SEPARATOR_S "icons");
321
startup_id = g_idle_add (startup_cb, NULL);
405
app = gtk_application_new ("org.gnome.file-roller", G_APPLICATION_FLAGS_NONE);
406
g_signal_connect (app, "startup", G_CALLBACK (startup_cb), NULL);
407
g_signal_connect (app, "activate", G_CALLBACK (activate_cb), NULL);
409
status = g_application_run (G_APPLICATION (app), argc, argv);