paperbox r110 - in trunk: . src



Author: markoa
Date: Sat Mar  8 23:16:43 2008
New Revision: 110
URL: http://svn.gnome.org/viewvc/paperbox?rev=110&view=rev

Log:
Monitor keyboard on the text view for smart save button sensitivity/


Modified:
   trunk/ChangeLog
   trunk/src/category-editor.cc
   trunk/src/category-editor.hh

Modified: trunk/src/category-editor.cc
==============================================================================
--- trunk/src/category-editor.cc	(original)
+++ trunk/src/category-editor.cc	Sat Mar  8 23:16:43 2008
@@ -120,6 +120,10 @@
         // connect the selection function
         category_view_->selection->set_select_function(
             sigc::mem_fun(*this, &CategoryEditor::on_category_selected));
+
+        // monitor text view
+        text_view_.signal_key_release_event().connect(
+            sigc::mem_fun(*this, &CategoryEditor::on_key_release_event));
     }
 
     int
@@ -231,8 +235,7 @@
         selected_name_ = cat_name;
 
         try {
-            shared_ptr<CategoryEditorData> data =
-                model_->get_category(cat_name);
+            shared_ptr<CategoryEditorData> data(model_->get_category(cat_name));
 
             text_view_.set_buffer(data->buffer);
         } catch (const CategoryNotFound& ex) {
@@ -250,4 +253,17 @@
         model_->save_category(selected_name_);
     }
 
+    bool
+    CategoryEditor::on_key_release_event(GdkEventKey* /* key */)
+    {
+        shared_ptr<CategoryEditorData> data(
+            model_->get_category(selected_name_));
+
+        (data->category->get_tags_as_string() != data->buffer->get_text())
+            ? button_save_.set_sensitive()
+            : button_save_.set_sensitive(false);
+
+        return true;
+    }
+
 } // namespace paperbox

Modified: trunk/src/category-editor.hh
==============================================================================
--- trunk/src/category-editor.hh	(original)
+++ trunk/src/category-editor.hh	Sat Mar  8 23:16:43 2008
@@ -62,6 +62,7 @@
         bool on_category_selected(const Glib::RefPtr<Gtk::TreeModel>& model,
                                   const Gtk::TreeModel::Path& path,
                                   bool path_selected);
+        bool on_key_release_event(GdkEventKey* key);
 
         Glib::RefPtr<Gnome::Glade::Xml> glade_;
 



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