~ubuntu-branches/ubuntu/vivid/gnote/vivid-proposed

« back to all changes in this revision

Viewing changes to src/notewindow.cpp

  • Committer: Package Import Robot
  • Author(s): Vincent Cheng
  • Date: 2011-09-24 20:18:37 UTC
  • mfrom: (1.3.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110924201837-39jpl1odhsub2956
Tags: 0.8.0-1
* New upstream release, featuring GTK+ 3 port.
  - Add versioned build dependency on libglibmm-2.4-dev (>= 2.28).
  - Replace build dependency on libgtkmm-2.4-dev with libgtkmm-3.0-dev.
  - Remove build dependencies on the following packages:
    - libdbus-c++-dev
    - libgconf2-dev
    - libgtkspell-dev (GtkSpell has yet to be ported to GTK+ 3)
    - libpanelappletmm-2.6-dev (Closes: #638108)
      - This removes support for the gnome-panel applet. (Closes: #566670)
      - Support for gnome-panel will be re-enabled once
        libpanel-applet-4-dev migrates from experimental to unstable.
* Re-format debian/copyright to fix lintian warnings.

Show diffs side-by-side

added added

removed removed

Lines of Context:
80
80
    find_item->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::find_button_clicked));
81
81
    find_item->add_accelerator ("activate",
82
82
                                m_accel_group,
83
 
                                GDK_F,
 
83
                                GDK_KEY_F,
84
84
                                Gdk::CONTROL_MASK,
85
85
                                Gtk::ACCEL_VISIBLE);
86
86
    find_item->show ();
128
128
 
129
129
    // Don't set up Ctrl-W or Ctrl-N if Emacs is in use
130
130
    bool using_emacs = false;
131
 
    std::string gtk_key_theme = 
132
 
      Preferences::obj().get<std::string>("/desktop/gnome/interface/gtk_key_theme");
 
131
    Glib::RefPtr<Gio::Settings> desktop_settings = Preferences::obj()
 
132
      .get_or_load_schema_settings(Preferences::SCHEMA_DESKTOP_GNOME_INTERFACE);
 
133
    if(desktop_settings) {
 
134
      std::string gtk_key_theme = 
 
135
        desktop_settings->get_string(Preferences::DESKTOP_GNOME_KEY_THEME);
133
136
    if (!gtk_key_theme.empty() && (gtk_key_theme == "Emacs"))
134
137
      using_emacs = true;
 
138
    }
135
139
 
136
140
    // NOTE: Since some of our keybindings are only
137
141
    // available in the context menu, and the context menu
142
146
    // Close window (Ctrl-W)
143
147
    if (!using_emacs)
144
148
      m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::close_window_handler),
145
 
                                      GDK_W,
 
149
                                      GDK_KEY_W,
146
150
                                      Gdk::CONTROL_MASK,
147
151
                                      Gtk::ACCEL_VISIBLE);
148
152
 
151
155
 
152
156
    // Close all windows on current Desktop (Ctrl-Q)
153
157
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::close_all_windows_handler),
154
 
                                   GDK_Q,
 
158
                                   GDK_KEY_Q,
155
159
                                   Gdk::CONTROL_MASK,
156
160
                                   Gtk::ACCEL_VISIBLE);
157
161
 
158
162
    // Find Next (Ctrl-G)
159
163
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::find_next_activate),
160
 
                                 GDK_G,
 
164
                                 GDK_KEY_G,
161
165
                                 Gdk::CONTROL_MASK,
162
166
                                 Gtk::ACCEL_VISIBLE);
163
167
 
164
168
    // Find Previous (Ctrl-Shift-G)
165
169
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::find_previous_activate),
166
 
                                 GDK_G, (Gdk::CONTROL_MASK | Gdk::SHIFT_MASK),
 
170
                                 GDK_KEY_G, (Gdk::CONTROL_MASK | Gdk::SHIFT_MASK),
167
171
                                 Gtk::ACCEL_VISIBLE);
168
172
 
169
173
    // Open Help (F1)
170
174
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::open_help_activate),
171
 
                                    GDK_F1, (Gdk::ModifierType)0, (Gtk::AccelFlags)0);
 
175
                                    GDK_KEY_F1, (Gdk::ModifierType)0, (Gtk::AccelFlags)0);
172
176
 
173
177
    // Create a new note
174
178
    if (!using_emacs)
175
179
      m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::create_new_note),
176
 
                                     GDK_N, Gdk::CONTROL_MASK,
 
180
                                     GDK_KEY_N, Gdk::CONTROL_MASK,
177
181
                                     Gtk::ACCEL_VISIBLE);
178
182
 
179
183
    signal_key_press_event().connect(sigc::mem_fun(*this, &NoteWindow::on_key_pressed));
181
185
 
182
186
    // Increase Indent
183
187
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::change_depth_right_handler),
184
 
                                   GDK_Right, Gdk::MOD1_MASK,
 
188
                                   GDK_KEY_Right, Gdk::MOD1_MASK,
185
189
                                   Gtk::ACCEL_VISIBLE);
186
190
 
187
191
    // Decrease Indent
188
192
    m_global_keys->add_accelerator (sigc::mem_fun(*this, &NoteWindow::change_depth_left_handler),
189
 
                                   GDK_Left, Gdk::MOD1_MASK,
 
193
                                   GDK_KEY_Left, Gdk::MOD1_MASK,
190
194
                                   Gtk::ACCEL_VISIBLE);
191
195
    add(*box);
192
196
  }
200
204
    m_mark_set_timeout = NULL;
201
205
    // make sure editor is NULL. See bug 586084
202
206
    m_editor = NULL;
203
 
    Preferences::obj().remove_notify(m_gconf_notify);
204
207
  }
205
208
 
206
209
 
225
228
 
226
229
  bool NoteWindow::on_key_pressed(GdkEventKey *ev)
227
230
  {
228
 
    if(ev->keyval == GDK_Escape) {
229
 
      if (m_find_bar && m_find_bar->is_visible()) {
 
231
    if(ev->keyval == GDK_KEY_Escape) {
 
232
      if (m_find_bar && m_find_bar->get_visible()) {
230
233
        m_find_bar->hide();
231
234
      }
232
 
      else if (Preferences::obj().get<bool>(
 
235
      else if (Preferences::obj().get_schema_settings(Preferences::SCHEMA_GNOTE)->get_boolean(
233
236
                 Preferences::ENABLE_CLOSE_NOTE_ON_ESCAPE)) {
234
237
        close_window_handler();
235
238
      }
317
320
                                          _("_Search All Notes"), true));
318
321
    search->set_image(*manage(new Gtk::Image (Gtk::Stock::FIND, Gtk::ICON_SIZE_MENU)));
319
322
    search->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::search_button_clicked));
320
 
    search->add_accelerator ("activate", m_accel_group, GDK_F,
 
323
    search->add_accelerator ("activate", m_accel_group, GDK_KEY_F,
321
324
                             (Gdk::CONTROL_MASK |  Gdk::SHIFT_MASK),
322
325
                             Gtk::ACCEL_VISIBLE);
323
326
    search->show();
326
329
    link->set_image(*manage(new Gtk::Image (Gtk::Stock::JUMP_TO, Gtk::ICON_SIZE_MENU)));
327
330
    link->set_sensitive(!m_note.get_buffer()->get_selection().empty());
328
331
    link->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::link_button_clicked));
329
 
    link->add_accelerator("activate", m_accel_group, GDK_L,
 
332
    link->add_accelerator("activate", m_accel_group, GDK_KEY_L,
330
333
                          Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
331
334
    link->show();
332
335
      
358
361
    close_all->signal_activate().connect(
359
362
      sigc::mem_fun(*this, &NoteWindow::close_all_windows_handler));
360
363
    close_all->add_accelerator("activate", m_accel_group,
361
 
                               GDK_Q, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
 
364
                               GDK_KEY_Q, Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
362
365
    close_all->show();
363
366
 
364
367
    Gtk::ImageMenuItem *close_window = manage(
367
370
    close_window->signal_activate().connect(
368
371
      sigc::mem_fun(*this, &NoteWindow::close_window_handler));
369
372
    close_window->add_accelerator("activate", m_accel_group,
370
 
                                  GDK_W,
 
373
                                  GDK_KEY_W,
371
374
                                  Gdk::CONTROL_MASK, Gtk::ACCEL_VISIBLE);
372
375
    close_window->show();
373
376
 
395
398
    search->signal_clicked().connect(sigc::mem_fun(*this, &NoteWindow::search_button_clicked));
396
399
    search->set_tooltip_text(_("Search your notes (Ctrl-Shift-F)"));
397
400
    search->add_accelerator("clicked", m_accel_group,
398
 
                             GDK_F,
 
401
                             GDK_KEY_F,
399
402
                             (Gdk::CONTROL_MASK | Gdk::SHIFT_MASK),
400
403
                             Gtk::ACCEL_VISIBLE);
401
404
    search->show_all();
411
414
      sigc::mem_fun(*this, &NoteWindow::link_button_clicked));
412
415
    m_link_button->set_tooltip_text(_("Link selected text to a new note (Ctrl-L)"));
413
416
    m_link_button->add_accelerator("clicked", m_accel_group,
414
 
                                   GDK_L, Gdk::CONTROL_MASK,
 
417
                                   GDK_KEY_L, Gdk::CONTROL_MASK,
415
418
                                   Gtk::ACCEL_VISIBLE);
416
419
    m_link_button->show_all();
417
420
    tb->insert(*m_link_button, -1);
500
503
    find->set_image(*manage(new Gtk::Image (Gtk::Stock::FIND, Gtk::ICON_SIZE_MENU)));
501
504
    find->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::find_button_clicked));
502
505
    find->add_accelerator("activate", m_accel_group,
503
 
                          GDK_F, Gdk::CONTROL_MASK,
 
506
                          GDK_KEY_F, Gdk::CONTROL_MASK,
504
507
                          Gtk::ACCEL_VISIBLE);
505
508
    find->show();
506
509
 
510
513
 
511
514
    find_next->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::find_next_activate));
512
515
    find_next->add_accelerator("activate", m_accel_group,
513
 
                              GDK_G, Gdk::CONTROL_MASK,
 
516
                              GDK_KEY_G, Gdk::CONTROL_MASK,
514
517
                              Gtk::ACCEL_VISIBLE);
515
518
    find_next->show();
516
519
 
520
523
 
521
524
    find_previous->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::find_previous_activate));
522
525
    find_previous->add_accelerator("activate", m_accel_group,
523
 
                                  GDK_G, (Gdk::CONTROL_MASK | Gdk::SHIFT_MASK),
 
526
                                  GDK_KEY_G, (Gdk::CONTROL_MASK | Gdk::SHIFT_MASK),
524
527
                                  Gtk::ACCEL_VISIBLE);
525
528
    find_previous->show();
526
529
 
622
625
    Glib::RefPtr<NoteBuffer>::cast_static(m_editor->get_buffer())->change_cursor_depth_directional(false);
623
626
  }
624
627
 
 
628
  void NoteWindow::on_show()
 
629
  {
 
630
    utils::ForcedPresentWindow::on_show();
 
631
    // Make sure the cursor position is visible
 
632
    m_editor->scroll_to (m_editor->get_buffer()->get_insert());
 
633
  }
 
634
 
625
635
  
626
636
  NoteFindBar::NoteFindBar(Note & note)
627
637
    : Gtk::HBox(false, 0)
776
786
    buffer->move_mark(buffer->get_selection_bound(), start);
777
787
 
778
788
    Gtk::TextView *editor = m_note.get_window()->editor();
779
 
    editor->scroll_mark_onscreen(buffer->get_insert());
 
789
    editor->scroll_to(buffer->get_insert());
780
790
  }
781
791
 
782
792
 
921
931
  {
922
932
    switch (ev->keyval)
923
933
    {
924
 
    case GDK_Escape:
 
934
    case GDK_KEY_Escape:
925
935
      hide();
926
936
      break;
927
 
    case GDK_Shift_L:
928
 
    case GDK_Shift_R:
 
937
    case GDK_KEY_Shift_L:
 
938
    case GDK_KEY_Shift_R:
929
939
      m_shift_key_pressed = true;
930
940
      return false;
931
941
      break;
932
 
    case GDK_Return:
 
942
    case GDK_KEY_Return:
933
943
      if (m_shift_key_pressed)
934
944
        m_prev_button.clicked();
935
945
      break;
945
955
  {
946
956
    switch (ev->keyval)
947
957
    {
948
 
    case GDK_Shift_L:
949
 
    case GDK_Shift_R:
 
958
    case GDK_KEY_Shift_L:
 
959
    case GDK_KEY_Shift_R:
950
960
      m_shift_key_pressed = false;
951
961
      break;
952
962
    }
1106
1116
//      m_undo->set_accel_group(accel_group);
1107
1117
      m_undo->signal_activate().connect(sigc::mem_fun(*this, &NoteTextMenu::undo_clicked));
1108
1118
      m_undo->add_accelerator ("activate", accel_group,
1109
 
                               GDK_Z,
 
1119
                               GDK_KEY_Z,
1110
1120
                               Gdk::CONTROL_MASK,
1111
1121
                               Gtk::ACCEL_VISIBLE);
1112
1122
      m_undo->show();
1116
1126
//      m_redo->set_accel_group(accel_group);
1117
1127
      m_redo->signal_activate().connect(sigc::mem_fun(*this, &NoteTextMenu::redo_clicked));
1118
1128
      m_redo->add_accelerator ("activate", accel_group,
1119
 
                               GDK_Z, (Gdk::CONTROL_MASK |
 
1129
                               GDK_KEY_Z, (Gdk::CONTROL_MASK |
1120
1130
                                       Gdk::SHIFT_MASK),
1121
1131
                               Gtk::ACCEL_VISIBLE);
1122
1132
      m_redo->show();
1135
1145
      m_bold.signal_activate()
1136
1146
        .connect(sigc::bind(sigc::mem_fun(*this, &NoteTextMenu::font_style_clicked), &m_bold));
1137
1147
      m_bold.add_accelerator ("activate", accel_group,
1138
 
                           GDK_B,
 
1148
                           GDK_KEY_B,
1139
1149
                           Gdk::CONTROL_MASK,
1140
1150
                           Gtk::ACCEL_VISIBLE);
1141
1151
 
1145
1155
        .connect(sigc::bind(sigc::mem_fun(*this, &NoteTextMenu::font_style_clicked), &m_italic));
1146
1156
      m_italic.add_accelerator ("activate",
1147
1157
                             accel_group,
1148
 
                             GDK_I,
 
1158
                             GDK_KEY_I,
1149
1159
                             Gdk::CONTROL_MASK,
1150
1160
                             Gtk::ACCEL_VISIBLE);
1151
1161
 
1155
1165
        .connect(sigc::bind(sigc::mem_fun(*this, &NoteTextMenu::font_style_clicked), &m_strikeout));
1156
1166
      m_strikeout.add_accelerator ("activate",
1157
1167
                                accel_group,
1158
 
                                GDK_S,
 
1168
                                GDK_KEY_S,
1159
1169
                                Gdk::CONTROL_MASK,
1160
1170
                                Gtk::ACCEL_VISIBLE);
1161
1171
 
1165
1175
        .connect(sigc::bind(sigc::mem_fun(*this, &NoteTextMenu::font_style_clicked), &m_highlight));
1166
1176
      m_highlight.add_accelerator ("activate",
1167
1177
                                accel_group,
1168
 
                                GDK_H,
 
1178
                                GDK_KEY_H,
1169
1179
                                Gdk::CONTROL_MASK,
1170
1180
                                Gtk::ACCEL_VISIBLE);
1171
1181
 
1198
1208
 
1199
1209
      m_increase_font.add_accelerator ("activate",
1200
1210
                                       accel_group,
1201
 
                                       GDK_plus,
 
1211
                                       GDK_KEY_plus,
1202
1212
                                       Gdk::CONTROL_MASK,
1203
1213
                                       Gtk::ACCEL_VISIBLE);
1204
1214
      m_increase_font.signal_activate()
1206
1216
 
1207
1217
      m_decrease_font.add_accelerator ("activate",
1208
1218
                                       accel_group,
1209
 
                                       GDK_minus,
 
1219
                                       GDK_KEY_minus,
1210
1220
                                       Gdk::CONTROL_MASK,
1211
1221
                                       Gtk::ACCEL_VISIBLE);
1212
1222
      m_decrease_font.signal_activate()
1219
1229
 
1220
1230
//      m_increase_indent.set_accel_group(accel_group);
1221
1231
      m_increase_indent.add_accelerator ("activate", accel_group,
1222
 
                                       GDK_Right,
 
1232
                                       GDK_KEY_Right,
1223
1233
                                       Gdk::MOD1_MASK,
1224
1234
                                       Gtk::ACCEL_VISIBLE);
1225
1235
      m_increase_indent.signal_activate()
1228
1238
 
1229
1239
//      m_decrease_indent.set_accel_group(accel_group);
1230
1240
      m_decrease_indent.add_accelerator ("activate", accel_group,
1231
 
                                         GDK_Left,
 
1241
                                         GDK_KEY_Left,
1232
1242
                                         Gdk::MOD1_MASK,
1233
1243
                                         Gtk::ACCEL_VISIBLE);
1234
1244
      m_decrease_indent.signal_activate()