~vcs-imports/workrave/main

« back to all changes in this revision

Viewing changes to frontend/gtkmm/src/Menus.cc

  • Committer: rcaelers
  • Date: 2006-09-18 21:10:27 UTC
  • Revision ID: vcs-imports@canonical.com-20060918211027-64176d79c6a355da
dbus and menus fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
// GNU General Public License for more details.
15
15
//
16
16
 
17
 
static const char rcsid[] = "$Id: Menus.cc,v 1.30 2006/09/18 19:09:30 dotsphinx Exp $";
 
17
static const char rcsid[] = "$Id: Menus.cc,v 1.31 2006/09/18 21:10:28 rcaelers Exp $";
18
18
 
19
19
#include "preinclude.h"
20
20
 
52
52
#include "NetworkLogDialog.hh"
53
53
#endif
54
54
#ifdef HAVE_GNOME
55
 
#include "AppletWindow.hh"
 
55
#include "GnomeAppletWindow.hh"
56
56
#else
57
57
#include "gnome-about.h"
58
58
#endif
88
88
};
89
89
#endif
90
90
 
 
91
 
91
92
//! Constructor.
92
93
/*!
93
94
 *  \param gui the main GUI entry point.
112
113
  instance = this;
113
114
  gui = GUI::get_instance();
114
115
 
115
 
  for (int i = 0; i < MAX_CHECKMENUS; i++)
 
116
  for (int k = 0; k < MENU_SIZEOF; k++)
116
117
    {
117
 
      main_window_check_menus[i] = NULL;
118
 
      tray_check_menus[i] = NULL;
 
118
      menus[k] = NULL;
 
119
      for (int i = 0; i < MENUSYNC_SIZEOF; i++)
 
120
        {
 
121
          sync_menus[k][i] = NULL;
 
122
        }
119
123
    }
120
124
}
121
125
 
125
129
{
126
130
  TRACE_ENTER("Menus::~Menus");
127
131
  instance = 0;
 
132
 
 
133
  for (int k = 0; k < MENU_SIZEOF; k++)
 
134
    {
 
135
      delete menus[k];
 
136
      menus[k] = NULL;
 
137
    }
 
138
  
128
139
  TRACE_EXIT();
129
140
}
130
141
 
131
142
 
132
143
Gtk::Menu *
133
 
Menus::create_main_window_menu()
134
 
{
135
 
  Gtk::Menu *menu = manage(create_menu(main_window_check_menus)); // FIXME: leak
136
 
    
137
 
#ifdef HAVE_DISTRIBUTION
138
 
  main_window_check_menus[3]->signal_toggled().connect(MEMBER_SLOT(*this,
139
 
                                                                  &Menus::on_menu_network_log_main_window));
140
 
#endif  
141
 
 
142
 
  return menu;
143
 
}
144
 
 
145
 
 
146
 
Gtk::Menu *
147
 
Menus::create_tray_menu()
148
 
{
149
 
  Gtk::Menu *menu = manage(create_menu(tray_check_menus));
150
 
#ifdef HAVE_DISTRIBUTION
151
 
  tray_check_menus[3]->signal_toggled().connect(MEMBER_SLOT(*this,
152
 
                                                           &Menus::on_menu_network_log_tray));
 
144
Menus::create_menu(MenuKind kind)
 
145
{
 
146
  Gtk::Menu *menu = menus[kind];
 
147
 
 
148
  if (menu == NULL)
 
149
    {
 
150
      menu = manage(create_menu(kind, sync_menus[kind]));
 
151
 
 
152
#ifdef HAVE_DISTRIBUTION
 
153
 
 
154
      switch (kind)
 
155
        {
 
156
        case MENU_MAINWINDOW:
 
157
          sync_menus[kind][MENUSYNC_SHOW_LOG]->signal_toggled().
 
158
            connect(MEMBER_SLOT(*this, &Menus::on_menu_network_log_main_window));
 
159
          break;
 
160
      
 
161
        case MENU_APPLET:
 
162
          sync_menus[kind][MENUSYNC_SHOW_LOG]->signal_toggled().
 
163
            connect(MEMBER_SLOT(*this, &Menus::on_menu_network_log_tray));
 
164
          break;
 
165
 
 
166
        default:
 
167
          break;
 
168
        }
153
169
#endif
154
170
 
 
171
      menus[kind] = menu;
 
172
    }
 
173
  
155
174
  return menu;
156
175
}
157
176
 
158
 
 
159
177
//! Create the popup-menu
160
178
Gtk::Menu *
161
 
Menus::create_menu(Gtk::CheckMenuItem *check_menus[4])
 
179
Menus::create_menu(MenuKind kind, Gtk::CheckMenuItem *check_menus[MENUSYNC_SIZEOF])
162
180
{
163
 
  TRACE_ENTER("Menus::create_menu");
 
181
  TRACE_ENTER_MSG("Menus::create_menu", kind);
164
182
  Gtk::Menu *pop_menu = manage(new Gtk::Menu());
165
183
  
166
184
  Gtk::Menu::MenuList &menulist = pop_menu->items();
247
265
  distr_log_menu_item->show();
248
266
  distr_menu_list.push_back(*distr_log_menu_item);
249
267
 
250
 
  check_menus[3] = distr_log_menu_item;
 
268
  check_menus[MENUSYNC_SHOW_LOG] = distr_log_menu_item;
251
269
#endif
252
270
  
253
271
  // FIXME: add separators, etc...
254
272
#ifndef WIN32
255
 
  if (check_menus == tray_check_menus)
 
273
  if (kind == MENU_APPLET)
256
274
    {
257
275
      menulist.push_front(Gtk::Menu_Helpers::StockMenuElem
258
276
                          (Gtk::Stock::OPEN,
323
341
void
324
342
Menus::sync_mode_menu(int mode)
325
343
{
326
 
  TRACE_ENTER("sync_mode_menu");
327
 
 
328
344
  // Ugh, isn't there an other way to prevent endless signal loops?
329
345
  static bool syncing = false;
 
346
 
 
347
  TRACE_ENTER_MSG("Menus::sync_mode_menu", mode << " " << syncing);
330
348
  if (syncing)
331
349
    return;
332
350
  syncing = true;
333
351
 
334
 
  if (main_window_check_menus[mode] != NULL && !main_window_check_menus[mode]->get_active())
 
352
  for (int k = MENU_MAINWINDOW; k < MENU_SIZEOF; k++)
335
353
    {
336
 
      TRACE_MSG("setting active");
337
 
      main_window_check_menus[mode]->set_active(true);
 
354
      if (sync_menus[k][mode] != NULL && !sync_menus[k][mode]->get_active())
 
355
        {
 
356
          TRACE_MSG("setting active " << k <<" " << mode);
 
357
          sync_menus[k][mode]->set_active(true);
 
358
        }
 
359
 
338
360
    }
339
 
 
340
 
  if (tray_check_menus[mode] != NULL && !tray_check_menus[mode]->get_active())
341
 
    tray_check_menus[mode]->set_active(true);
342
361
  
343
362
#if defined(HAVE_GNOME)
344
 
//   if (applet_window != NULL)
345
 
//     {
346
 
//       applet_window->set_menu_active(mode, true);
347
 
//     }
 
363
  GnomeAppletWindow *aw = static_cast<GnomeAppletWindow*>(applet_window);
 
364
  if (aw != NULL)
 
365
    {
 
366
      TRACE_MSG("setting gnome active " << mode);
 
367
      aw->set_menu_active(mode, true);
 
368
    }
348
369
#elif defined(WIN32)
349
370
  resync_applet();
350
371
#endif
357
378
void
358
379
Menus::sync_log_menu(bool active)
359
380
{
360
 
  TRACE_ENTER("sync_log_menu");
 
381
  TRACE_ENTER("Menus::sync_log_menu");
361
382
 
362
383
  static bool syncing = false;
363
384
  if (syncing)
364
385
    return;
365
386
  syncing = true;
366
387
 
367
 
  if (main_window_check_menus[3] != NULL)
368
 
    {
369
 
      main_window_check_menus[3]->set_active(active);
370
 
    }
371
 
 
372
 
  if (tray_check_menus[3] != NULL)
373
 
    {
374
 
      tray_check_menus[3]->set_active(active);
 
388
  for (int k = 0; k < MENU_SIZEOF; k++)
 
389
    {
 
390
      if (sync_menus[k][MENUSYNC_SHOW_LOG] != NULL)
 
391
        {
 
392
          sync_menus[k][MENUSYNC_SHOW_LOG]->set_active(active);
 
393
        }
375
394
    }
376
395
  
377
396
#if defined(HAVE_GNOME)
378
 
//   if (applet_window != NULL)
379
 
//     {
380
 
//       applet_window->set_menu_active(3, active);
381
 
//     }
 
397
  GnomeAppletWindow *aw = static_cast<GnomeAppletWindow*>(applet_window);
 
398
  if (aw != NULL)
 
399
    {
 
400
      aw->set_menu_active(MENUSYNC_SHOW_LOG, active);
 
401
    }
382
402
#elif defined(WIN32)
383
403
  resync_applet();
384
404
#endif
392
412
void
393
413
Menus::resync_applet()
394
414
{
 
415
  CoreInterface *core = CoreFactory::get_core();
 
416
  OperationMode mode = core->get_operation_mode();
 
417
  
 
418
  for (int k = MENU_MAINWINDOW; k < MENU_SIZEOF; k++)
 
419
    {
 
420
      if (sync_menus[k][mode] != NULL && !sync_menus[k][mode]->get_active())
 
421
        {
 
422
          sync_menus[k][mode]->set_active(true);
 
423
        }
 
424
    }
 
425
  
 
426
#if defined(HAVE_DISTRIBUTION)
 
427
  bool network_log_active = network_log_dialog != NULL;
 
428
  for (int k = 0; k < MENU_SIZEOF; k++)
 
429
    {
 
430
      if (sync_menus[k][MENUSYNC_SHOW_LOG] != NULL)
 
431
        {
 
432
          sync_menus[k][MENUSYNC_SHOW_LOG]->set_active(network_log_active);
 
433
        }
 
434
    }
 
435
#endif
 
436
      
395
437
#if defined(HAVE_GNOME)
396
 
//   if (applet_window != NULL)
397
 
//     {
398
 
//       CoreInterface *core = CoreFactory::get_core();
399
 
//       OperationMode mode = core->get_operation_mode();      
400
 
//       switch(mode)
401
 
//         {
402
 
//         case OPERATION_MODE_NORMAL:
403
 
//           applet_window->set_menu_active(0, true);
404
 
//           break;
405
 
//         case OPERATION_MODE_SUSPENDED:
406
 
//           applet_window->set_menu_active(1, true);
407
 
//           break;
408
 
//         case OPERATION_MODE_QUIET:
409
 
//           applet_window->set_menu_active(2, true);
410
 
//           break;
411
 
//         default:
412
 
//           break;
413
 
//         }
 
438
  GnomeAppletWindow *aw = static_cast<GnomeAppletWindow*>(applet_window);
 
439
  if (aw != NULL)
 
440
    {
 
441
      switch(mode)
 
442
        {
 
443
        case OPERATION_MODE_NORMAL:
 
444
          aw->set_menu_active(MENUSYNC_MODE_NORMAL, true);
 
445
          break;
 
446
        case OPERATION_MODE_SUSPENDED:
 
447
          aw->set_menu_active(MENUSYNC_MODE_SUSPENDED, true);
 
448
          break;
 
449
        case OPERATION_MODE_QUIET:
 
450
          aw->set_menu_active(MENUSYNC_MODE_QUIET, true);
 
451
          break;
 
452
        default:
 
453
          break;
 
454
        }
414
455
#if defined(HAVE_DISTRIBUTION)
415
 
//       applet_window->set_menu_active(3, network_log_dialog != NULL);
 
456
      bool network_log_active = network_log_dialog != NULL;
 
457
      aw->set_menu_active(MENUSYNC_SHOW_LOG, network_log_dialog);
 
458
      
416
459
#endif
417
 
//     }
 
460
    }
 
461
 
418
462
#elif defined(WIN32)
419
 
  if (applet_window != NULL && main_window != NULL )
 
463
  if (applet_window != NULL && main_window != NULL)
420
464
    {
421
 
      CoreInterface *core = CoreFactory::get_core();
422
 
 
423
465
      HWND cmd_win = (HWND) GDK_WINDOW_HWND( main_window
424
466
                                             ->Gtk::Widget::gobj()->window);
425
467
      W32AppletWindow *w32aw = static_cast<W32AppletWindow*>(applet_window);
431
473
 
432
474
 
433
475
      w32aw->add_menu(_("_Normal"), MENU_COMMAND_MODE_NORMAL,
434
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
435
 
                              |W32AppletWindow::MENU_FLAG_POPUP
436
 
                              |(core->get_operation_mode()
437
 
                                == OPERATION_MODE_NORMAL
438
 
                                ? W32AppletWindow::MENU_FLAG_SELECTED
439
 
                                : 0));
 
476
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
477
                      |W32AppletWindow::MENU_FLAG_POPUP
 
478
                      |(core->get_operation_mode()
 
479
                        == OPERATION_MODE_NORMAL
 
480
                        ? W32AppletWindow::MENU_FLAG_SELECTED
 
481
                        : 0));
440
482
      w32aw->add_menu(_("_Suspended"), MENU_COMMAND_MODE_SUSPENDED,
441
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
442
 
                              |W32AppletWindow::MENU_FLAG_POPUP
443
 
                              |(core->get_operation_mode()
444
 
                                == OPERATION_MODE_SUSPENDED
445
 
                                ? W32AppletWindow::MENU_FLAG_SELECTED
446
 
                                : 0));
 
483
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
484
                      |W32AppletWindow::MENU_FLAG_POPUP
 
485
                      |(core->get_operation_mode()
 
486
                        == OPERATION_MODE_SUSPENDED
 
487
                        ? W32AppletWindow::MENU_FLAG_SELECTED
 
488
                        : 0));
447
489
      w32aw->add_menu(_("Q_uiet"), MENU_COMMAND_MODE_QUIET,
448
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
449
 
                              |W32AppletWindow::MENU_FLAG_POPUP
450
 
                              |(core->get_operation_mode()
451
 
                                == OPERATION_MODE_QUIET
452
 
                                ? W32AppletWindow::MENU_FLAG_SELECTED
453
 
                                : 0));
 
490
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
491
                      |W32AppletWindow::MENU_FLAG_POPUP
 
492
                      |(core->get_operation_mode()
 
493
                        == OPERATION_MODE_QUIET
 
494
                        ? W32AppletWindow::MENU_FLAG_SELECTED
 
495
                        : 0));
454
496
      w32aw->add_menu(_("_Mode"), 0, 0);
455
497
 
456
498
#ifdef HAVE_DISTRIBUTION
457
499
      w32aw->add_menu(_("_Connect"), MENU_COMMAND_NETWORK_CONNECT,
458
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
459
 
                              |W32AppletWindow::MENU_FLAG_POPUP);
 
500
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
501
                      |W32AppletWindow::MENU_FLAG_POPUP);
460
502
      w32aw->add_menu(_("_Disconnect"),
461
 
                              MENU_COMMAND_NETWORK_DISCONNECT,
462
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
463
 
                              |W32AppletWindow::MENU_FLAG_POPUP);
 
503
                      MENU_COMMAND_NETWORK_DISCONNECT,
 
504
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
505
                      |W32AppletWindow::MENU_FLAG_POPUP);
464
506
      w32aw->add_menu(_("_Reconnect"), MENU_COMMAND_NETWORK_RECONNECT,
465
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
466
 
                              |W32AppletWindow::MENU_FLAG_POPUP);
 
507
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
508
                      |W32AppletWindow::MENU_FLAG_POPUP);
467
509
      w32aw->add_menu(_("Show _log"), MENU_COMMAND_NETWORK_LOG,
468
 
                              W32AppletWindow::MENU_FLAG_TOGGLE
469
 
                              |W32AppletWindow::MENU_FLAG_POPUP
470
 
                              |(network_log_dialog != NULL
471
 
                                ? W32AppletWindow::MENU_FLAG_SELECTED
472
 
                                : 0));
 
510
                      W32AppletWindow::MENU_FLAG_TOGGLE
 
511
                      |W32AppletWindow::MENU_FLAG_POPUP
 
512
                      |(network_log_dialog != NULL
 
513
                        ? W32AppletWindow::MENU_FLAG_SELECTED
 
514
                        : 0));
473
515
      w32aw->add_menu(_("_Network"), 0, 0);
474
516
#endif
475
517
      w32aw->add_menu(_("Statistics"), MENU_COMMAND_STATISTICS, 0);
479
521
 
480
522
}
481
523
 
482
 
 
483
524
void
484
525
Menus::on_menu_open_main_window()
485
526
{
492
533
Menus::on_menu_quit()
493
534
{
494
535
  TRACE_ENTER("Menus::on_menu_quit");
495
 
 
 
536
  
496
537
  gui->terminate();
497
 
 
 
538
  
498
539
  TRACE_EXIT();
499
540
}
500
541
 
506
547
  gui->restbreak_now();
507
548
}
508
549
 
 
550
 
509
551
void
510
552
Menus::set_operation_mode(OperationMode m)
511
553
{
539
581
void
540
582
Menus::on_menu_normal_menu(Gtk::CheckMenuItem *menu)
541
583
{
542
 
  TRACE_ENTER("Menus::on_menu_normal");
 
584
  TRACE_ENTER("Menus::on_menu_normal_menu");
543
585
  if (menu != NULL && menu->get_active())
544
586
    {
 
587
      TRACE_MSG("active");
545
588
      on_menu_normal();
546
589
    }
547
590
  TRACE_EXIT();
552
595
void
553
596
Menus::on_menu_quiet_menu(Gtk::CheckMenuItem *menu)
554
597
{
555
 
  TRACE_ENTER("Menus::on_menu_quiet");
556
 
 
 
598
  TRACE_ENTER("Menus::on_menu_quiet_menu");
 
599
  
557
600
  if (menu != NULL && menu->get_active())
558
601
    {
 
602
      TRACE_MSG("active");
559
603
      on_menu_quiet();
560
604
    }
561
605
  TRACE_EXIT();
567
611
void
568
612
Menus::on_menu_suspend_menu(Gtk::CheckMenuItem *menu)
569
613
{
570
 
  TRACE_ENTER("Menus::on_menu_suspend");
571
 
 
 
614
  TRACE_ENTER("Menus::on_menu_suspend_menu");
 
615
  
572
616
  if (menu != NULL && menu->get_active())
573
617
    {
 
618
      TRACE_MSG("active");
574
619
      on_menu_suspend();
575
620
    }
576
 
 
 
621
  
577
622
  TRACE_EXIT();
578
623
}
579
624
 
595
640
  CoreInterface *core = CoreFactory::get_core();
596
641
  StatisticsInterface *stats = core->get_statistics();
597
642
  stats->dump();
598
 
 
 
643
  
599
644
  core->test_me();
600
645
}
601
646
#endif
639
684
    {
640
685
      preferences_dialog = new PreferencesDialog();
641
686
      preferences_dialog->signal_response().connect(MEMBER_SLOT(*this, &Menus::on_preferences_response));
642
 
          
 
687
      
643
688
      preferences_dialog->run();
644
689
    }
645
690
  else
658
703
    {
659
704
      exercises_dialog = new ExercisesDialog();
660
705
      exercises_dialog->signal_response().connect(MEMBER_SLOT(*this, &Menus::on_exercises_response));
661
 
          
 
706
      
662
707
      exercises_dialog->run();
663
708
    }
664
709
  else
675
720
  
676
721
  assert(exercises_dialog != NULL);
677
722
  exercises_dialog->hide_all();
678
 
 
 
723
  
679
724
  delete exercises_dialog;
680
725
  exercises_dialog = NULL;
681
726
}
695
740
      
696
741
      statistics_dialog = new StatisticsDialog();
697
742
      statistics_dialog->signal_response().connect(MEMBER_SLOT(*this, &Menus::on_statistics_response));
698
 
          
 
743
      
699
744
      statistics_dialog->run();
700
745
    }
701
746
  else
711
756
Menus::on_menu_about()
712
757
{
713
758
  const gchar *authors[] = {
714
 
   "Rob Caelers <robc@krandor.org>",
715
 
   "Raymond Penners <raymond@dotsphinx.com>",
716
 
   NULL
 
759
    "Rob Caelers <robc@krandor.org>",
 
760
    "Raymond Penners <raymond@dotsphinx.com>",
 
761
    NULL
717
762
  };
718
763
  const gchar *translators = 
719
764
    "Raymond Penners <raymond@dotsphinx.com>\n"
736
781
    "ORY Mate <orymate@gmail.com>\n"
737
782
    "Иван Димов <idimov@users.sourceforge.net>\n"
738
783
    "Enver ALTIN <ealtin@parkyeri.com>";
739
 
 
 
784
  
740
785
  string icon = Util::complete_directory("workrave.png",
741
786
                                         Util::SEARCH_PATH_IMAGES);
742
787
  GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(icon.c_str(), NULL); 
778
823
  
779
824
  assert(network_join_dialog != NULL);
780
825
  network_join_dialog->hide_all();
781
 
 
 
826
  
782
827
  if (response == Gtk::RESPONSE_OK)
783
828
    {
784
829
      CoreInterface *core = CoreFactory::get_core();
788
833
      dist_manager->connect(peer);
789
834
      CoreFactory::get_configurator()->save();
790
835
    }
791
 
 
 
836
  
792
837
  delete network_join_dialog;
793
838
  network_join_dialog = NULL;
794
839
}
825
870
{
826
871
#ifdef HAVE_DISTRIBUTION
827
872
  TRACE_ENTER("Menus::on_menu_network_log");
828
 
 
 
873
  
829
874
  if (active)
830
875
    {
831
876
      if (network_log_dialog == NULL)
832
877
        {
833
878
          network_log_dialog = new NetworkLogDialog();
834
 
          network_log_dialog->signal_response().connect(MEMBER_SLOT(*this, &Menus::on_network_log_response));
 
879
          network_log_dialog->signal_response().
 
880
            connect(MEMBER_SLOT(*this, &Menus::on_network_log_response));
835
881
          
836
882
          sync_log_menu(active);
837
 
 
 
883
          
838
884
          network_log_dialog->run();
839
885
        }
840
 
 
841
886
    }
842
887
  else if (network_log_dialog != NULL)
843
888
    {
846
891
      network_log_dialog = NULL;
847
892
      sync_log_menu(active);
848
893
    }
849
 
 
850
 
 
 
894
  
 
895
  
851
896
  TRACE_EXIT();
852
897
#endif
853
898
}
859
904
Menus::on_menu_network_log_tray()
860
905
{
861
906
  TRACE_ENTER("Menus::on_menu_network_log_tray");
862
 
 
863
 
  if (tray_check_menus[3] != NULL)
 
907
  
 
908
  if (sync_menus[MENU_APPLET][MENUSYNC_SHOW_LOG] != NULL)
864
909
    {
865
 
      bool active = tray_check_menus[3]->get_active();
 
910
      bool active = sync_menus[MENU_APPLET][MENUSYNC_SHOW_LOG]->get_active();
866
911
      on_menu_network_log(active);
867
912
    }
868
 
 
 
913
  
869
914
  TRACE_EXIT();
870
915
}
871
916
 
873
918
Menus::on_menu_network_log_main_window()
874
919
{
875
920
  TRACE_ENTER("Menus::on_menu_network_log");
876
 
 
877
 
  if (main_window_check_menus[3] != NULL)
 
921
  
 
922
  if (sync_menus[MENU_MAINWINDOW][MENUSYNC_SHOW_LOG] != NULL)
878
923
    {
879
 
      bool active = main_window_check_menus[3]->get_active();
 
924
      bool active = sync_menus[MENU_MAINWINDOW][MENUSYNC_SHOW_LOG]->get_active();
880
925
      on_menu_network_log(active);
881
926
    }
882
 
 
 
927
  
883
928
  TRACE_EXIT();
884
929
}
885
930
 
887
932
Menus::on_network_log_response(int response)
888
933
{
889
934
  (void) response;
890
 
 
 
935
  
891
936
  assert(network_log_dialog != NULL);
892
937
  
893
938
  network_log_dialog->hide_all();
894
 
 
 
939
  
895
940
  sync_log_menu(false);
896
941
  // done by gtkmm ??? delete network_log_dialog;
897
942
  network_log_dialog = NULL;
906
951
  
907
952
  assert(statistics_dialog != NULL);
908
953
  statistics_dialog->hide_all();
909
 
 
 
954
  
910
955
  delete statistics_dialog;
911
956
  statistics_dialog = NULL;
912
957
}
919
964
  
920
965
  assert(preferences_dialog != NULL);
921
966
  preferences_dialog->hide_all();
922
 
 
 
967
  
923
968
  CoreFactory::get_configurator()->save();
924
 
 
 
969
  
925
970
  delete preferences_dialog;
926
971
  preferences_dialog = NULL;
927
972
}