[gnote] Make ReadOnly add-in disable note



commit 0e38af5ccf5518a363e047a36e92e138c62241b3
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sat Sep 7 22:15:45 2013 +0300

    Make ReadOnly add-in disable note

 src/addins/readonly/readonly.desktop.in   |    2 +-
 src/addins/readonly/readonlynoteaddin.cpp |   19 +++++++++++++------
 2 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/src/addins/readonly/readonly.desktop.in b/src/addins/readonly/readonly.desktop.in
index 626b256..a097d43 100644
--- a/src/addins/readonly/readonly.desktop.in
+++ b/src/addins/readonly/readonly.desktop.in
@@ -4,6 +4,6 @@ _Name=Read Only
 _Description=Mark certain notes as read only
 _Authors=Aurimas Černius, Debarshi Ray and Arief Bayu Purwanto
 Category=Tools
-Version=0.1
+Version=0.2
 DefaultEnabled=false
 Module=readonly
diff --git a/src/addins/readonly/readonlynoteaddin.cpp b/src/addins/readonly/readonlynoteaddin.cpp
index fef35e1..c562c93 100644
--- a/src/addins/readonly/readonlynoteaddin.cpp
+++ b/src/addins/readonly/readonlynoteaddin.cpp
@@ -29,7 +29,7 @@
 
 namespace {
   class ReadOnlyAction
-    : public Gtk::Action
+    : public gnote::NoteWindow::NonModifyingAction
   {
   public:
     typedef Glib::RefPtr<ReadOnlyAction> Ptr;
@@ -37,6 +37,10 @@ namespace {
       {
         return Ptr(new ReadOnlyAction);
       }
+    void checked(bool check)
+      {
+        m_checked = check;
+      }
     bool checked() const
       {
         return m_checked;
@@ -44,7 +48,9 @@ namespace {
   protected:
     virtual Gtk::Widget *create_menu_item_vfunc() override
     {
-      return new Gtk::CheckMenuItem;
+      Gtk::CheckMenuItem *item = new Gtk::CheckMenuItem;
+      item->set_active(m_checked);
+      return item;
     }
     virtual void on_activate() override
     {
@@ -53,7 +59,7 @@ namespace {
     }
   private:
     ReadOnlyAction()
-      : Gtk::Action("ReadOnlyAction")
+      : gnote::NoteWindow::NonModifyingAction("ReadOnlyAction")
       , m_checked(false)
     {
       set_label(_("Read Only"));
@@ -104,7 +110,8 @@ void ReadOnlyNoteAddin::on_note_opened()
   gnote::ITagManager & m = gnote::ITagManager::obj();
   const gnote::Tag::Ptr ro_tag = m.get_or_create_system_tag("read-only");
   if(get_note()->contains_tag(ro_tag)) {
-    //m_item->set_active(true);
+    ReadOnlyAction::Ptr::cast_dynamic(m_action)->checked(true);
+    on_menu_item_toggled();
   }
 }
 
@@ -113,11 +120,11 @@ void ReadOnlyNoteAddin::on_menu_item_toggled()
   gnote::ITagManager & m = gnote::ITagManager::obj();
   const gnote::Tag::Ptr ro_tag = m.get_or_create_system_tag("read-only");
   if(ReadOnlyAction::Ptr::cast_dynamic(m_action)->checked()) {
-    get_window()->editor()->set_editable(false);
+    get_note()->enabled(false);
     get_note()->add_tag(ro_tag);
   }
   else {
-    get_window()->editor()->set_editable(true);
+    get_note()->enabled(true);
     get_note()->remove_tag(ro_tag);
   }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]