[gnote] Add important note popover button
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Add important note popover button
- Date: Sun, 6 Dec 2015 18:29:58 +0000 (UTC)
commit d3a58f0d0534879659549c3e7321612c5079b695
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sat Dec 5 19:55:55 2015 +0200
Add important note popover button
src/actionmanager.cpp | 1 +
src/notewindow.cpp | 27 ++++++++++++++++-----------
src/notewindow.hpp | 4 ++--
3 files changed, 19 insertions(+), 13 deletions(-)
---
diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp
index e5e949f..6f33599 100644
--- a/src/actionmanager.cpp
+++ b/src/actionmanager.cpp
@@ -75,6 +75,7 @@ namespace gnote {
register_main_window_action("close-window");
register_main_window_action("delete-note");
+ register_main_window_action(MainWindowAction::create("important-note", false));
}
diff --git a/src/notewindow.cpp b/src/notewindow.cpp
index 845a979..eeb7da0 100644
--- a/src/notewindow.cpp
+++ b/src/notewindow.cpp
@@ -184,6 +184,14 @@ namespace gnote {
m_delete_note_slot = IActionManager::obj().find_main_window_action("delete-note")->signal_activate()
.connect(sigc::mem_fun(*this, &NoteWindow::on_delete_button_clicked));
}
+
+ MainWindowAction::Ptr important_action = IActionManager::obj().find_main_window_action("important-note");
+ important_action->set_state(Glib::Variant<bool>::create(m_note.is_pinned()));
+ m_important_note_slot = important_action->signal_change_state()
+ .connect(sigc::mem_fun(*this, &NoteWindow::on_pin_button_clicked));
+ notebooks::NotebookManager::obj().signal_note_pin_status_changed
+ .connect(sigc::mem_fun(*this, &NoteWindow::on_pin_status_changed));
+
}
void NoteWindow::background()
@@ -211,6 +219,7 @@ namespace gnote {
m_note.save(); // to update not title immediately in notes list
m_delete_note_slot.disconnect();
+ m_important_note_slot.disconnect();
}
void NoteWindow::hint_size(int & width, int & height)
@@ -298,6 +307,7 @@ namespace gnote {
std::vector<Gtk::Widget*> NoteWindow::get_popover_widgets()
{
std::vector<Gtk::Widget*> widgets;
+ widgets.push_back(utils::create_popover_button("win.important-note", _("Is Important")));
widgets.push_back(utils::create_popover_button("win.delete-note", _("_Delete")));
return widgets;
}
@@ -305,6 +315,7 @@ namespace gnote {
std::vector<MainWindowAction::Ptr> NoteWindow::get_widget_actions()
{
std::vector<MainWindowAction::Ptr> res;
+ IActionManager::obj().find_main_window_action("important-note");
IActionManager::obj().find_main_window_action("delete-note");
return res;
}
@@ -393,14 +404,6 @@ namespace gnote {
text_button->set_tooltip_text(_("Set properties of text"));
m_text_menu->property_attach_widget() = text_button;
- m_important_action = utils::CheckAction::create("mark-important");
- m_important_action->set_label(_("Is Important"));
- m_important_action->set_tooltip(_("Toggle notes presence in Important Notes notebook"));
- m_important_action->checked(m_note.is_pinned());
- m_important_action->signal_activate().connect(sigc::mem_fun(*this, &NoteWindow::on_pin_button_clicked));
- notebooks::NotebookManager::obj().signal_note_pin_status_changed
- .connect(sigc::mem_fun(*this, &NoteWindow::on_pin_status_changed));
-
grid->property_margin_left() = 12;
grid->show_all();
return grid;
@@ -564,12 +567,14 @@ namespace gnote {
if(&m_note != ¬e) {
return;
}
- m_important_action->checked(pinned);
+
IActionManager::obj().find_main_window_action("important-note")->change_state(Glib::Variant<bool>::create(pinned));
}
- void NoteWindow::on_pin_button_clicked()
+ void NoteWindow::on_pin_button_clicked(const Glib::VariantBase & state)
{
- m_note.set_pinned(!m_note.is_pinned());
+ Glib::Variant<bool> new_state = Glib::VariantBase::cast_dynamic<Glib::Variant<bool> >(state);
+ m_note.set_pinned(new_state.get());
+ IActionManager::obj().find_main_window_action("important-note")->set_state(state);
}
void NoteWindow::on_text_button_clicked()
diff --git a/src/notewindow.hpp b/src/notewindow.hpp
index 1c2a838..e873a9b 100644
--- a/src/notewindow.hpp
+++ b/src/notewindow.hpp
@@ -248,7 +248,7 @@ private:
void add_accel_group(Gtk::Window &);
void remove_accel_group(Gtk::Window &);
void on_pin_status_changed(const Note &, bool);
- void on_pin_button_clicked();
+ void on_pin_button_clicked(const Glib::VariantBase & state);
void on_text_button_clicked();
Note & m_note;
@@ -261,8 +261,8 @@ private:
Gtk::TextView *m_editor;
Gtk::ScrolledWindow *m_editor_window;
NoteFindHandler m_find_handler;
- utils::CheckAction::Ptr m_important_action;
sigc::connection m_delete_note_slot;
+ sigc::connection m_important_note_slot;
Gtk::Grid *m_template_widget;
Gtk::CheckButton *m_save_size_check_button;
Gtk::CheckButton *m_save_selection_check_button;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]