[niepce] [cw] Add the "persistent" checkbox.



commit 6c20b19edd27c7187af40e24ed3fb10e8b90b4ae
Author: Hubert Figuiere <hub figuiere net>
Date:   Fri May 22 15:40:53 2009 -0400

    [cw] Add the "persistent" checkbox.
---
 camerawire/ChangeLog        |    3 +++
 camerawire/src/cwwindow.cpp |   19 +++++++++++++++----
 camerawire/src/cwwindow.hpp |    2 ++
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/camerawire/ChangeLog b/camerawire/ChangeLog
index 629758e..cd4e698 100644
--- a/camerawire/ChangeLog
+++ b/camerawire/ChangeLog
@@ -1,5 +1,8 @@
 2009-05-22  Hubert Figuiere  <hub figuiere net>
 
+	* src/cwwindow.{hpp,cpp}:
+	Add the "persistent" checkbox.
+
 	* configure.ac
 	* src/Makefile.am
 	* src/cwwindow.{hpp,cpp}
diff --git a/camerawire/src/cwwindow.cpp b/camerawire/src/cwwindow.cpp
index 34273ad..9d224f5 100644
--- a/camerawire/src/cwwindow.cpp
+++ b/camerawire/src/cwwindow.cpp
@@ -53,13 +53,21 @@ Gtk::Widget * CwWindow::buildWidget()
 
   Gtk::Widget* pMenuBar = pApp->uiManager()->get_widget("/MenuBar");
   m_vbox.pack_start(*pMenuBar, Gtk::PACK_SHRINK);
-  m_vbox.pack_start(m_hbox, true, true);
+  m_vbox.pack_start(m_hbox, true, true, 4);
 
   m_camera_tree_model = Gtk::ListStore::create(m_camera_tree_record);
   Gtk::TreeView *treeview = manage(new Gtk::TreeView(m_camera_tree_model));
-  treeview->append_column("", m_camera_tree_record.m_icon);
-  treeview->append_column(_("Camera"), m_camera_tree_record.m_label);
-  m_hbox.pack_start(*treeview, false, true);
+  Gtk::TreeViewColumn *column;
+
+  column = manage(new Gtk::TreeViewColumn(_("Camera")));
+  Gtk::CellRendererToggle *cell = manage(new Gtk::CellRendererToggle);
+  column->pack_start(*cell, false);
+  column->add_attribute(cell->property_active(), 
+                        m_camera_tree_record.m_persistent);
+  column->pack_start(m_camera_tree_record.m_icon, false);
+  column->pack_start(m_camera_tree_record.m_label);
+  treeview->append_column(*column);
+  m_hbox.pack_start(*treeview, false, true, 4);
 
   reload_camera_list();
 
@@ -182,6 +190,8 @@ void CwWindow::reload_camera_list()
 {
   using fwk::GpDeviceList;
 
+  m_camera_tree_model->clear();
+  
   GpDeviceList::obj().detect();
   for(GpDeviceList::const_iterator iter = GpDeviceList::obj().begin();
       iter != GpDeviceList::obj().end(); ++iter) {
@@ -189,6 +199,7 @@ void CwWindow::reload_camera_list()
     Gtk::TreeIter treeiter = m_camera_tree_model->append();
     treeiter->set_value(m_camera_tree_record.m_label, (*iter)->get_model());
     treeiter->set_value(m_camera_tree_record.m_camera, *iter);
+    treeiter->set_value(m_camera_tree_record.m_persistent, false);
   }
 }
 
diff --git a/camerawire/src/cwwindow.hpp b/camerawire/src/cwwindow.hpp
index 4510d8b..659ec30 100644
--- a/camerawire/src/cwwindow.hpp
+++ b/camerawire/src/cwwindow.hpp
@@ -52,11 +52,13 @@ private:
         add(m_icon);
         add(m_label);
         add(m_camera);
+        add(m_persistent);
       }
 
     Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > m_icon;
     Gtk::TreeModelColumn<std::string>        m_label;
     Gtk::TreeModelColumn<fwk::GpDevice::Ptr> m_camera;
+    Gtk::TreeModelColumn<bool>               m_persistent;
   };
 
   void init_ui();



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