Making the "Save" feature works. Adding Gzv.save_project,
authorLincoln de Sousa <lincoln@minaslivre.org>
Sun, 10 Aug 2008 15:45:02 +0000 (12:45 -0300)
committerLincoln de Sousa <lincoln@minaslivre.org>
Sun, 10 Aug 2008 15:45:02 +0000 (12:45 -0300)
changing Project.save_to_file and setting callbacks in the
glade file

gzv.glade
gzv.py

index d426f6d..58ae30b 100644 (file)
--- a/gzv.glade
+++ b/gzv.glade
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Sat Aug  9 17:45:41 2008 -->
+<!--Generated with glade3 3.4.5 on Sun Aug 10 12:43:33 2008 -->
 <glade-interface>
   <widget class="GtkWindow" id="main-window">
     <property name="title" translatable="yes">Gzv</property>
                         <property name="label" translatable="yes">gtk-save</property>
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
-                      </widget>
-                    </child>
-                    <child>
-                      <widget class="GtkImageMenuItem" id="imagemenuitem4">
-                        <property name="visible">True</property>
-                        <property name="label" translatable="yes">gtk-save-as</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
+                        <signal name="activate" handler="save_project"/>
                       </widget>
                     </child>
                     <child>
                 <property name="expand">False</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkToolButton" id="toolbutton5">
+                <property name="visible">True</property>
+                <property name="stock_id">gtk-save</property>
+                <signal name="clicked" handler="save_project"/>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+              </packing>
+            </child>
             <child>
               <widget class="GtkSeparatorToolItem" id="toolbutton3">
                 <property name="visible">True</property>
diff --git a/gzv.py b/gzv.py
index 6820f83..081e06a 100644 (file)
--- a/gzv.py
+++ b/gzv.py
@@ -77,10 +77,14 @@ class Project(object):
         self.focus_points_file = ''
 
     def save_to_file(self, path):
-        bn = os.path.basename(path)
-        name = os.path.splitext(bn)[0]
+        if not self.focus_points_file:
+            bn = os.path.basename(path)
+            name = os.path.splitext(bn)[0]
+            self.focus_points_file = \
+                os.path.join(os.path.dirname(path), name + '_fpf')
 
         cp = ConfigParser()
+        cp.add_section('Project')
         cp.set('Project', 'image', self.image)
         cp.set('Project', 'width', self.width)
         cp.set('Project', 'height', self.height)
@@ -192,6 +196,19 @@ class Gzv(GladeLoader):
             self.load_project(Project.parse_file(proj_file))
         fc.destroy()
 
+    def save_project(self, *args):
+        fc = gtk.FileChooserDialog(_('Save project'), self.window,
+                                   action=gtk.FILE_CHOOSER_ACTION_SAVE,
+                                   buttons=(gtk.STOCK_CANCEL,
+                                            gtk.RESPONSE_CANCEL,
+                                            gtk.STOCK_SAVE,
+                                            gtk.RESPONSE_OK))
+        if fc.run() == gtk.RESPONSE_OK:
+            self.project.save_to_file(fc.get_filename())
+            self.balls.save_to_file(self.project.focus_points_file)
+        fc.destroy()
+
+
     def load_project(self, project):
         self.project = project
         self.balls = self.load_balls_from_file(project.focus_points_file)