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

gEDA-cvs: geda_manager.git: branch: master updated (c9bcd4d5b91340221264ea51b46285957fb07b7e)



The branch, master has been updated
       via  c9bcd4d5b91340221264ea51b46285957fb07b7e (commit)
      from  814243f64ff6aa5d9d5469d1a6b73bacfa403f65 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 docs/config.dox               |    2 +-
 src/dependencyloop.py         |    2 +-
 src/gedamanager.py            |  363 +++++++---------------------------------
 src/gsch2pcb.py               |   30 ++--
 src/lib/decorators.py         |    9 +-
 src/menu.xml                  |    1 +
 src/newproject.py             |   24 ++--
 src/processdependencyevent.py |    7 +-
 src/project.py                |    6 +-
 src/settings.py               |    2 +-
 src/utils.py                  |  216 +++++++++++++------------
 11 files changed, 223 insertions(+), 439 deletions(-)


=================
 Commit Messages
=================

commit c9bcd4d5b91340221264ea51b46285957fb07b7e
Author: Newell Jensen <jensen@xxxxxxxxxxxxxxx>
Date:   Sat Sep 13 01:17:03 2008 -0700

    Cleaned up the doxygen notes and made some changes to the files.

:100644 100644 b063afe... e5c2e0d... M	docs/config.dox
:100644 100644 2bdb508... 75b840a... M	src/dependencyloop.py
:100644 100644 143e7bb... 4483f8f... M	src/gedamanager.py
:100644 100644 d3378e4... d4bffb4... M	src/gsch2pcb.py
:100644 100644 9bbfea3... be858e0... M	src/lib/decorators.py
:100644 100644 65f5c33... 9e4e0e5... M	src/menu.xml
:100644 100644 db38bc0... 21d3549... M	src/newproject.py
:100644 100644 c2ec4b7... 3d39b2c... M	src/processdependencyevent.py
:100644 100644 762dbf2... 8d4f006... M	src/project.py
:100644 100644 9a782fd... 8184e01... M	src/settings.py
:100644 100644 fd84de8... 1060ee9... M	src/utils.py

=========
 Changes
=========

commit c9bcd4d5b91340221264ea51b46285957fb07b7e
Author: Newell Jensen <jensen@xxxxxxxxxxxxxxx>
Date:   Sat Sep 13 01:17:03 2008 -0700

    Cleaned up the doxygen notes and made some changes to the files.

diff --git a/docs/config.dox b/docs/config.dox
index b063afe..e5c2e0d 100644
--- a/docs/config.dox
+++ b/docs/config.dox
@@ -534,7 +534,7 @@ WARN_LOGFILE           =
 # directories like "/usr/src/myproject". Separate the files or directories 
 # with spaces.
 
-INPUT                  = "../src/"
+INPUT                  = "../src/" "../src/lib/"
 
 # This tag can be used to specify the character encoding of the source files 
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
diff --git a/src/dependencyloop.py b/src/dependencyloop.py
index 2bdb508..75b840a 100644
--- a/src/dependencyloop.py
+++ b/src/dependencyloop.py
@@ -40,7 +40,7 @@ class DependencyLoop:
         """!
         Constructor for the DependencyLoop class.
         This class is component of the gEDAManager class ('has-a' relationship).
-        @param gedamanager is the current gEDAManager instance.
+        @param gedamanager current gEDAManager instance.
         """
         # Things to do: (we can get all the info from the gedamanager object
         # Start the thread with the project's directory
diff --git a/src/gedamanager.py b/src/gedamanager.py
index 143e7bb..4483f8f 100644
--- a/src/gedamanager.py
+++ b/src/gedamanager.py
@@ -113,7 +113,8 @@ class gEDAManager:
          self.cb_url_geda_wiki),
         ('gEDA Documentation', None, 'gEDA _Documentation', None,
          'Opens link in browser', self.cb_url_geda_documentation),
-        ('gEDA Manager Documentation', None, 'gEDA _Manager', None, 'Opens link in browser', self.cb_url_geda_manager),
+        ('gEDA Manager Documentation', None, 'gEDA _Manager Blog', None, 'Opens link in browser', self.cb_url_geda_manager_blog),
+        ('gEDA Manager API Documentation', None, 'gEDA Manager _API Documentation', None, 'Opens link in browser', self.cb_url_geda_manager_api_documentation),
         ('Web Resources', None, '_Web Resources'),
         ('About', gtk.STOCK_ABOUT, '_About', None, 'Extra Information about gEDA and the gEDA Manager', self.cb_show_about_dialog),]
 
@@ -244,13 +245,6 @@ class gEDAManager:
         # Dependencies Tree View
         self.dependencies_tree = gtk.TreeView(self.dependencies)
         self.dependencies_tree.show()
-##         self.dependencies_tree.connect('columns-changed', self.cb_columns_changed)
-##         # we'll add some data now - 4 rows with 3 child rows each
-##         for parent in range(4):
-##             piter = self.dependencies.append(None, ['parent %i' % parent])
-##             for child in range(3):
-##                 self.dependencies.append(piter, ['child %i of parent %i' %
-##                                               (child, parent)])
 
         # create the TreeViewColumn to display the data
         column = gtk.TreeViewColumn('Files')
@@ -366,9 +360,9 @@ class gEDAManager:
         def about_url_cb(dialog, link, user_data):
             """!
             Call back function to test url for the about dialog
-            @param dialog is the about dialog object.
-            @param link is the the url link that was clicked.
-            @param user_data is user data that was passed in.
+            @param dialog about dialog object
+            @param link url link that was clicked
+            @param user_data user data that was passed in
             """
             gnomevfs.url_show(link)
 
@@ -441,7 +435,7 @@ class gEDAManager:
     def set_project(self, path):
         """!
         Method to set current project to the one on path.
-        @param path of project to open.
+        @param path path for project to open.
         """
         # Save current project
         if not self.project.clean:
@@ -503,22 +497,18 @@ class gEDAManager:
         project_file_path = project_path + '.gm'        
         output_file_path = self.project.directory + '/output.log'
         error_file_path = self.project.directory + '/error.log'
-        self.dependencies.append(None, [self.project.name + '.gm', project_file_path])
-        self.dependencies.append(None, ['output.log', output_file_path])
-        self.dependencies.append(None, ['error.log', error_file_path])
-        self.dependencies_tree.expand_all()
 
         # Connect to the 'columns-changed' signal
         self.dependencies.connect('row-changed', self.cb_row_changed)        
-        self.depnum = 3
+
 
     def load_sources_tree(self, file_list, parent=None, parent_path=None):
         """!
         Method to the load the tree -- recursively.
-        @param list of paths in the project's file_list.
-        @param parent node to help setup the gtk.TreeView object.
-        @param parent_path is a parameter to help in writing the paths
-        to the self.sources gtk.TreeStore object.
+        @param file_list list of paths in the project's file_list
+        @param parent node to help setup the gtk.TreeView object
+        @param parent_path parameter to help in writing the paths
+        to the self.sources gtk.TreeStore object
         """
         # parent == None is for the 'Project' node
         icon = gtk.IconTheme() # The icon used throughout the function
@@ -553,9 +543,9 @@ class gEDAManager:
     def load_dependencies_tree(self, dep_dict, parent=None, parent_path=None, number=None):
         """!
         Method to the load the dependencies tree
-        @param dependency_dict of the project's dependencies
+        @param dependency_dict project's dependency dictionary
         @param parent node to help setup the gtk.TreeView object
-        @param parent_path is a parameter to help in writing the paths
+        @param parent_path parameter to help in writing the paths
         to the self.sources gtk.TreeStore object
         """
         for key, value in dep_dict.iteritems():
@@ -590,7 +580,7 @@ class gEDAManager:
     def get_processes_selected_node(self):
         """!
         Method to get the selected node in the 'Processes' treeview.
-        @return path of the selected node.
+        @return path of the selected node
         """
         selection = self.processes_tree.get_selection()
         model, selection_iter = selection.get_selected()
@@ -604,7 +594,7 @@ class gEDAManager:
         """!
         Method to abstract some redundant code that is used in the message
         dialog boxes.
-        @param dialog is gtk.FileChooserDialog object.
+        @param dialog gtk.FileChooserDialog object
         """
         # These are subject to change depending on users input
         file_filter = gtk.FileFilter()
@@ -704,8 +694,8 @@ class gEDAManager:
     def cb_show_about_dialog(self, menuitem, data=None):
         """!
         Event handler for About menu button.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem about menuitem that threw the event
+        @param data optional user data to pass in
         """
         self.aboutdialog.show()
         self.aboutdialog.run()
@@ -715,8 +705,8 @@ class gEDAManager:
     def cb_url_geda_wiki(self, menuitem, data=None):
         """!
         Event handler for gEDA Wiki.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         gnomevfs.url_show('http://geda.seul.org/wiki/')
 
@@ -724,26 +714,35 @@ class gEDAManager:
     def cb_url_geda_documentation(self, menuitem, data=None):
         """!
         Event handler for gEDA Documentation.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         gnomevfs.url_show('http://geda.seul.org/wiki/geda:documentation')
         
 
-    def cb_url_geda_manager(self, menuitem, data=None):
+    def cb_url_geda_manager_blog(self, menuitem, data=None):
         """!
         Event handler for gEDA Manager.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         gnomevfs.url_show('http://www.gempillar.com')
 
 
+    def cb_url_geda_manager_api_documentation(self, menuitem, data=None):
+        """!
+        Event handler for gEDA Manager.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
+        """
+        gnomevfs.url_show('http://www.gempillar.com/docs/')
+
+
     def cb_new_project(self, menuitem, data=None):
         """!
         Event handler for 'New Project'.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         self.project.save()
         NewProject(self)
@@ -752,8 +751,8 @@ class gEDAManager:
     def cb_open_project(self, menuitem, data=None):
         """!
         Event handler for 'Open Project'.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         self.project.save()
         dialog = gtk.FileChooserDialog('Open...',
@@ -778,8 +777,8 @@ class gEDAManager:
     def cb_close_project(self, menuitem, data=None):
         """!
         Event handler for 'Close Project'.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         self.write_logs()
         self.project.save()
@@ -789,8 +788,8 @@ class gEDAManager:
     def cb_exit(self, menuitem, data=None):
         """!
         Event handler for 'Exit'.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\nExiting gEDA Manager.\n')
         self.write_logs()        
@@ -800,20 +799,11 @@ class gEDAManager:
         self.dependencyloop.kill_thread()        
         
 
-##     def cb_delete(self, menuitem, data=None):
-##         """!
-##         Event handler for file 'Delete'.
-##         @param menuitem that threw the event.
-##         @param data optional to pass in.
-##         """
-##         self.utils.update_file_list(self, 1)
-
-
     def cb_project_closed(self, widget, event):
         """!
         Event occurs when a Project object is closed
-        @param widget that threw the event.
-        @param event that was thrown.
+        @param widget widget that threw the event
+        @param event event that was thrown
         """
         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\n' + 'Project closed.\n')                
         self.set_menu_defaults()
@@ -823,8 +813,8 @@ class gEDAManager:
     def cb_project_saved(self, widget, event):
         """!
         Event occurs when a Project object is saved.
-        @param widget that threw the event.
-        @param event that was thrown.
+        @param widget widget that threw the event
+        @param event event that was thrown
         """
         if self.project.name != None:
             self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\n' + 'Project ' + self.project.name + ' saved.\n')
@@ -836,8 +826,8 @@ class gEDAManager:
     def cb_project_opened(self, widget, event):
         """!
         Event occurs when a Project object is opened
-        @param widget that threw the event.
-        @param event that was thrown.
+        @param widget widget that threw the event
+        @param event event that was thrown
         """
         self.dependencyloop.switch_projects()
         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\n' + 'Project ' + self.project.name + ' opened.\n')
@@ -849,8 +839,8 @@ class gEDAManager:
     def cb_project_created(self, widget, event):
         """!
         Event occurs when a Project object is created
-        @param widget that threw the event.
-        @param event that was thrown.
+        @param widget widget that threw the event
+        @param event event that was thrown
         """
         self.dependencyloop.switch_projects()        
         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\nProject ' + self.project.name + ' created.\n')  
@@ -862,8 +852,8 @@ class gEDAManager:
     def cb_preferences(self, menuitem, data=None):
         """!
         Event occurs when the user opens up the preferences menu.
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         def new_source_cursor_changed(newsources_tree):
             selection = newsources_tree.get_selection()
@@ -930,8 +920,8 @@ class gEDAManager:
     def cb_new_source(self, menuitem, data=None):
         """!
         Event occurs when the user wants to add a source to the project
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menutiem that threw the event
+        @param data optional user data to pass in
         """
         def new_source_cursor_changed(newsources_tree):
             selection = newsources_tree.get_selection()
@@ -1016,8 +1006,8 @@ class gEDAManager:
     def cb_add_copy_source(self, menuitem, data=None):
         """!
         Event occurs when the user wants to add a source to the project
-        @param menuitem that threw the event.
-        @param data optional to pass in.
+        @param menuitem menuitem that threw the event
+        @param data optional user data to pass in
         """
         dialog = gtk.FileChooserDialog('Copy Existing Source To Project...',
                                        self.window,
@@ -1034,101 +1024,11 @@ class gEDAManager:
         dialog.destroy()
 
 
-##     @exceptions
-##     def cb_add_copy_dependency(self, menuitem, data=None):
-##         """!
-##         Event occurs when the user wants to add a source to the project
-##         @param menuitem that threw the event.
-##         @param data optional to pass in.
-##         """
-##         selection = self.sources_tree.get_selection()
-##         model, selection_iter = selection.get_selected()
-##         selected_node = self.sources.get_value(selection_iter, 2)
-##         dialog = gtk.MessageDialog(self.window,
-##                                    (gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT),
-##                                    gtk.MESSAGE_OTHER,
-##                                    gtk.BUTTONS_OK_CANCEL,
-##                                    gtk.STOCK_DIRECTORY)
-##         dialog.set_markup('<b>Choose file that is dependent on selected file.\nChoose target directory (within project) for this file.</b>')
-##         dialog.set_title('Copy Existing Dependency for Selected File to the Project...')
-##         hbox = gtk.HBox()
-##         hbox.show()
-##         filebutton = gtk.FileChooserButton('Target Location')
-##         filebutton.show()
-##         filebutton.set_local_only(True)
-##         filebutton.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
-##         hbox.pack_end(filebutton)
-##         label = gtk.Label('Target Location:')
-##         label.show()
-##         hbox.pack_end(label)
-##         dialog.vbox.pack_end(hbox, True, True, 0)
-
-##         hbox = gtk.HBox()
-##         hbox.show()
-##         embed_fc = gtk.FileChooserButton('Dependency File')
-##         embed_fc.show()
-##         embed_fc.set_local_only(True)
-##         embed_fc.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
-##         hbox.pack_end(embed_fc)
-##         label = gtk.Label('Dependency File')
-##         label.show()
-##         hbox.pack_end(label)
-##         dialog.vbox.pack_end(hbox, True, True, 0)
-##         dialog.show()
-##         response = dialog.run()
-##         if response == gtk.RESPONSE_OK:
-##             directory = filebutton.get_filename()
-##             filepath = embed_fc.get_filename()
-##             if filepath != None:
-##                 # Find out what file it is so we can pick an icon for it
-##                 filename = self.utils.get_filename_from_filepath(filepath)
-##                 icon = gtk.IconTheme()
-##                 image = icon.load_icon(self.utils.icon_lut[self.utils.get_filename_ext(filename)], 22, 0)
-##                 # We can't call update file list because the currently selected
-##                 # node (a file) is not the one that we want to put it
-##                 # under ( whic is some folder). Thus, we need to find the iter
-##                 # for the directory chosen.
-## #                quit = True
-##                 for row in self.sources:
-##                     # Get the gtk.TreeIter for the directory 
-##                     if row[2] == directory:
-##                         row_iter = row.iter
-##                         # Add the new folder to project file list
-##                         self.utils.update_file_list(self)
-##                         break
-##                 if row_iter == None:
-##                     self.errors_textbuffer.insert(self.errors_textiter, self.utils.get_time() + ':\n' + directory + " is not present in the project's directory structure.\nWhen adding a dependency the target directory must be in the project.\n")
-##                     dialog.destroy()
-##                     return
-##                 else:
-##                     # Copy the filepath to the chosen directory
-##                     # Also update the sources with the proper node
-##                     files = os.listdir(directory)
-##                     if filename not in files:
-##                         os.system('cp ' + filepath + ' ' + directory)
-##                         self.sources.append(row_iter, [image, filename, filepath])
-##                         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() +
-##                                                       ':\n' + 'Added copy of source - ' + filepath + ' - to ' + directory + '.\n')
-##                     else:
-##                         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() +
-##                                                       ':\n' + filename + ' is already present in the directory - ' + directory + '.\n')
-##                     # add new file to the dependency_dict                
-##                     self.utils.add_to_dependency_dict(self, filename)
-##                     # Add the new file as a dependency for the selected file
-##                     # and make sure that it is in the dependency_dict
-##                     parent_file = self.utils.get_filename_from_filepath(selected_node)
-##                     self.utils.add_to_dependency_dict(self, parent_file)                
-##                     self.project.dependency_dict[parent_file].append([True, filename])
-##                     self.utils.update_file_list(self)
-
-##         dialog.destroy()
-        
-
     @exceptions
     def cb_new_folder(self, action):
         """!
         Event occurs when the user chooses to add a new folder to the project.
-        @param action is a gtk.Action object.
+        @param action gtk.Action object
         """
         def response_to_dialog(entry, dialog, response):
             dialog.response(response)
@@ -1194,107 +1094,12 @@ class gEDAManager:
         self.sources.append(selection_iter, [image, filename, filepath])
         # Add the new folder to project file list
         self.utils.update_file_list(self)
-        
-
-##     @exceptions
-##     def cb_delete_folder(self, action):
-##         """!
-##         Event occurs when the user chooses to delete a folder from the project.
-##         @param action is the gtk.Action object involved with this event
-##         """
-##         self.utils.update_file_list(self, 2)
-
-
-##     @exceptions
-##     def cb_rename(self, action):
-##         """!
-##         Event handler for renaming a file, folder, or project.
-##         @param action is the gtk.Action object involved with this event
-##         """
-##         # TODO -- note...this is currently broken
-##         # I need to add the functionality that when the project
-##         # name is changed, that it iterates recursively over all
-##         # the subdirectories and changes the names in the model.
-##         # Currently I am getting errors because I change the project
-##         # but not the subdirectory names in the nodes.
-##         # The error for this is actually seen in the utils.get_processes_tree
-##         # method in the Utils class.
-##         def response_to_dialog(entry, dialog, response):
-##             dialog.response(response)
-
-##         selection = self.sources_tree.get_selection()
-##         model, selection_iter = selection.get_selected()
-##         old_path = self.sources.get_value(selection_iter, 2)
-##         path = self.sources.get_path(selection_iter)
-
-##         dialog = gtk.MessageDialog(self.window,
-##                                    (gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT),
-##                                    gtk.MESSAGE_QUESTION,
-##                                    gtk.BUTTONS_OK_CANCEL,
-##                                    gtk.STOCK_DIRECTORY)
-##         dialog.set_markup('<b>Please enter the new name\n(including proper extension if applicable):</b>')
-##         entry = gtk.Entry()
-##         entry.show()
-##         entry.connect('activate', response_to_dialog, dialog, gtk.RESPONSE_OK)
-##         hbox = gtk.HBox()
-##         hbox.show()
-##         hbox.pack_end(entry)
-##         dialog.vbox.pack_end(hbox, True, True, 0)
-##         dialog.show()
-##         dialog.run()
-##         new_text = entry.get_text()
-##         dialog.destroy()
-##         new_path = old_path.rpartition('/')[0] + '/' + new_text
-
-##         if old_path == self.project.directory and '.' not in new_text:
-##             # Project Folder
-##             os.rename(old_path, new_path)
-##             model[path][1] = new_text
-##             model[path][2] = new_path
-##             project_file = new_path + '/' + self.project.name + '.gm'
-##             os.remove(project_file)
-##             self.project.directory = new_path
-##             self.project.name = new_text
-##             self.project.file_list[0] = new_text
-##             self.project.file_list[1][0] = new_text + '.gm'
-
-##             model[(0)][1] = new_text
-##             model[(0)][2] = new_path
-##             model[(0,0)][1] = new_text + '.gm'
-##             model[(0,0)][2] = new_path + '/' + new_text + '.gm'
-##             self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\nProject changed from ' + old_path + ' to ' + new_path + '\n.')
-##             self.project.save()
-##         elif '.' in new_text and '.' in old_path:
-##             # File
-##             os.rename(old_path, new_path)
-##             model[path][1] = new_text
-##             model[path][2] = new_path
-##             icon = gtk.IconTheme()
-##             model[path][0] = icon.load_icon(self.utils.icon_lut[self.utils.get_filename_ext(new_text)], 22, 0)
-##             self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\n' + old_path + ' changed to ' + new_path + '.\n')
-##         elif '.' in new_text and '.' not in old_path: # Folder being changed
-##             pass # don't allow it to change names
-
-##         elif '.' not in new_text and '.' in old_path: # File being changed
-##             pass # don't allow it to change names
-
-##         else:
-##             # Folder -- so image does not need to be changed
-##             if os.path.exists(new_path):
-##                 self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\nFolder already exists with this name.  Cannot rename.\n')
-##                 return
-##             os.rename(old_path, new_path)
-##             model[path][1] = new_text
-##             model[path][2] = new_path
-##             self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\n' + old_path + ' changed to ' + new_path + '.\n')
-
-##         self.utils.update_file_list(self) # update file list
 
 
     def open_in_editor(self, action):
         """!
         Event occurs when the user wants to open a source file in the editor.
-        @param action is the gtk.Action object involved with this event
+        @param action gtk.Action object involved with this event
         """
         selection = self.sources_tree.get_selection()
         model, selection_iter = selection.get_selected()
@@ -1306,14 +1111,14 @@ class gEDAManager:
     def cb_remove_file_from_project(self, action):
         """!
         Event occurs when the user chooses to remove a file from the project.
-        @param action is the gtk.Action object involved with this event
+        @param action gtk.Action object involved with this event
         """
         self.utils.update_file_list(self, 4)
 
     def cb_remove_folder_from_project(self, action):
         """!
         Event occurs when the user chooses to remove a folder from the project.
-        @param action is the gtk.Action object involved with this event
+        @param action gtk.Action object involved with this event
         """
         self.utils.update_file_list(self, 5)
 
@@ -1321,7 +1126,7 @@ class gEDAManager:
     def cb_cursor_changed(self, widget):
         """!
         Event occurs when the cursor changes in the treeview.
-        @param widget that threw the event.
+        @param widget widget that threw the event
         """
         selection = self.sources_tree.get_selection()
         model, selection_iter = selection.get_selected()
@@ -1338,14 +1143,6 @@ class gEDAManager:
                 column.set_title('Processes for: ' + filename)
                 column = self.processes_tree.get_column(2)
                 column.set_title('status')
-                
-##             elif selected_node != self.project.directory: # We have a folder
-##                 # Logic to call the functions to populate the 'Processes' tree
-##                 # view.
-##                 self.utils.get_processes_tree(self, selected_node, None, True, True)
-##                 # Update 'Processes: ' for the 'Processes' tree
-##                 column = self.processes_tree.get_column(0)
-##                 column.set_title('Processes for all files in: ' + name)
             else: # We have the project folder
                 # Clear out the columns
                 column = self.processes_tree.get_column(0)
@@ -1359,19 +1156,8 @@ class gEDAManager:
     def cb_row_changed(self, model, path, _iter):
         """!
         Event occurs when the columns change in the dependencies treeview.
-        @param widget that threw the event
+        @param widget widget that threw the event
         """
-        # I figured out that if len(self.dependencies) > self.depnum
-        # then a reordering took place but nothing happended.
-        # We want to ignore this case.
-
-#        if len(self.dependencies) != self.depnum:
-#            print 'len(self.dependencies):',len(self.dependencies)
-
-        # This last print statement give me the file that was moved
-        # Path gives me where it was moved to.
-        # We can check for a match when iterating through, and if the path
-        # doesn't match the path of where it is moved we will ignore it
         if len(self.dependencies) <= self.depnum:
             # Iterate over the whole tree and create the project.depedency_dict
             for i, row in enumerate(self.dependencies):
@@ -1392,23 +1178,6 @@ class gEDAManager:
             selection.unselect_all()
             self.processes.clear()
             
-        
-    def update_dependency_dict(self, row_iter):
-        """!
-        Method to update the dependency_dict ... this is really a helper
-        """
-        lst = [True]
-        try:
-            for row in row_iter.next():
-                baby_row_iter = row.iterchildren()
-                if baby_row_iter != None:
-                    self.project.dependency_dict[row[0]] = lst.append(self.update_dependency_dict(baby_row_iter))
-                else:
-                    self.project.dependency_dict[row[0]] = lst
-            return lst
-        except:
-            pass # Don't want the StopIteration exception to be raised
-        
 
     def cb_popup_deactivate(self, popup_menu, merge_id):
         """!
@@ -1426,8 +1195,8 @@ class gEDAManager:
         """!
         This signal handler will be called when the treeview emits
         a 'button_press_event' signal.
-        @param widget that threw the event.
-        @param event that was thrown.
+        @param widget widget that threw the event
+        @param event event that was thrown
         """
         if event.button == 3:
             selection = self.sources_tree.get_selection()
@@ -1439,14 +1208,10 @@ class gEDAManager:
             popup_menu = gtk.Menu()
             actiongroup = gtk.ActionGroup('Popup')
             actiongroup_list = [('Open in Editor', None, '_Open in Editor', None, None, self.open_in_editor),
-                #('Rename', None, '_Rename', None, None, self.cb_rename),
                                 ('Remove File from Project', gtk.STOCK_REMOVE, 'R_emove File from Project', None, None, self.cb_remove_file_from_project),
-#                                ('Delete', gtk.STOCK_DELETE, '_Delete', '<Control>d', None, self.cb_delete),
-#                                ('Copy Existing Dependency for Selected File to the Project...', gtk.STOCK_COPY, 'Copy Existing _Dependency for Selected File to the Project...', None, None, self.cb_add_copy_dependency),
                                 ('New Source...', gtk.STOCK_FILE, '_New Source...', None, None, self.cb_new_source),
                                 ('Copy Existing Source To Project...', gtk.STOCK_COPY, '_Copy Existing Source To Project...', None, None, self.cb_add_copy_source),
                                 ('New Folder', gtk.STOCK_DIRECTORY, 'New _Folder', None, None, self.cb_new_folder),
-#                                ('Delete Folder', gtk.STOCK_DELETE, '_Delete Folder', None, None, self.cb_delete_folder),
                                 ('Remove Folder from Project', gtk.STOCK_REMOVE, 'R_emove Folder from Project', None, None, self.cb_remove_folder_from_project),]
 
             actiongroup.add_actions(actiongroup_list)
@@ -1476,7 +1241,7 @@ class gEDAManager:
     def cb_destroy(self, event):
         """!
         Event handlder when the form is closed in any fashion.
-        @param event that was thrown.
+        @param event event that was thrown
         """
         self.output_textbuffer.insert(self.output_textiter, self.utils.get_time() + ':\nExiting gEDA Manager.\n')
         self.write_logs()        
diff --git a/src/gsch2pcb.py b/src/gsch2pcb.py
index d3378e4..d4bffb4 100644
--- a/src/gsch2pcb.py
+++ b/src/gsch2pcb.py
@@ -38,7 +38,7 @@ class Gsch2pcb:
     def __init__(self, gedamanager, filepath):
         """!
         Gsch2pcb Constructor.
-        @param filepath of the file to be automatically included
+        @param filepath filepath of file to be automatically included
         in the checklist of schematics.
         """
         self.g = gedamanager            
@@ -129,7 +129,7 @@ class Gsch2pcb:
             schematics = ''
             self.in_project = False
 
-            # Iterate over the gtk.TreeModel
+            # Iterate over the gtk.TreeModel to create an arg input for gsch2pcb
             for row in self.schematics:
                 if row[2]:
                     # Add the schematic to the schematic_list
@@ -160,8 +160,11 @@ class Gsch2pcb:
                 dm.run()
                 dm.destroy()
             else:
+                os.chdir(self.directory)
                 files_before = os.listdir(self.directory)
                 subproc = Popen(['gsch2pcb', '-v','-v','-o',name,schematics]).wait()
+                print 'self.directory:',self.directory
+                print 'pwd:',os.getcwd()
                 files_after = os.listdir(self.directory)
                 files = []
                 for f in files_after:
@@ -177,14 +180,19 @@ class Gsch2pcb:
                     wanted = ['pcb','new.pcb','net']
                     new_files = []
                     new_files.append(True)
+                    print 'files:',files
+                    print 'parent_iter:',parent_iter
                     for f in files:
                         if f.endswith('new.pcb'):
                             ext = 'new.pcb'
                         else:
                             ext = f.split('.')[-1]
                         if ext in wanted:
+                            filepath = self.directory + '/' + f
+                            print 'filepath:',filepath
                             image = icon.load_icon(self.g.utils.icon_lut[ext], 22, 0)
-                            self.g.sources.append(parent_iter, [image, f, self.directory + '/' + f])
+                            self.g.sources.append(parent_iter, [image, f, filepath])
+                            self.g.dependencies.append(None, [f, filepath])
                             # add new file to the dependency_dict
                             if f not in self.g.project.dependency_dict:
                                 self.g.project.dependency_dict[f] = [True]
@@ -199,7 +207,7 @@ class Gsch2pcb:
                                 self.g.project.dependency_dict[sch[0]].append(f)
                     # Update the project and its file list
                     self.g.utils.update_file_list(self.g)
-                else: 
+                else:
                     pass
         self.dialog.destroy()
 
@@ -208,9 +216,9 @@ class Gsch2pcb:
         """!
         Method to see whether or not the chosen directory for the gsch2pcb
         workflow is in the project directory structure or not.
-        @param arg ??
+        @param arg not used (needs to be here for the os.path.walk function)
         @param dirname name of current directory
-        @param filenames name of files in the current directory
+        @param filenames list of file names in the current directory
         """
         if self.directory == dirname:
             self.in_project = True
@@ -219,9 +227,9 @@ class Gsch2pcb:
     def cb_file_toggled(self, cellrenderertoggle, path, model):
         """!
         Event handler to handle the active state of the toggle buttons.
-        @param cellrenderertoggle that received the 'toggle' signal
-        @param path of the cellrenderertoggle represented as a string
-        @param model is the gtk.TreeStore model for the treeview
+        @param cellrenderertoggle toggle that received the 'toggle' signal
+        @param path cellrenderertoggle represented as a string
+        @param model gtk.TreeStore model for the treeview
         """
         model[path][2] = not model[path][2]
 
@@ -256,11 +264,11 @@ class Gsch2pcb:
     def search(self, rows, func, data, lst=None):
         """!
         Method to search for schematics in the project.
-        @param rows gtk.TreeModel object or the object itself
+        @param rows gtk.TreeModel object or the object itself (due to recursion)
         @param func function pointer to the match_func method
         @param data tuple used for comparison criteria
         @param lst list used to store matching gtk.TreeModelRow objects
-        @return lst list of gtk.TreeModelRow objects
+        @return list of gtk.TreeModelRow objects
         """
         if not rows:
             return None
diff --git a/src/lib/decorators.py b/src/lib/decorators.py
index 9bbfea3..be858e0 100644
--- a/src/lib/decorators.py
+++ b/src/lib/decorators.py
@@ -31,14 +31,15 @@ def exceptions(func):
     Exceptions decorator for functions that are in the Utils or gEDAManager
     class. Decorator to decorate functions for generic exception handling
     and logging this to the errors text buffer.
-    @param func is the function that will be decorated.
-    @return func_to_decorate which is the decorated function.
+    @param func function that will be decorated
+    @return func_to_decorate which is the decorated function
     """
     def func_to_decorate(*args):
         """!
         New function that is returned by exceptions decorator.
-        @param *args is the arguments that are passed to the the function that
-        is being decorated (func).
+        @param *args arguments that are passed to the the function that
+        is being decorated (func)
+        @return decorated function
         """
         f = None
         for arg in args:
diff --git a/src/menu.xml b/src/menu.xml
index 65f5c33..9e4e0e5 100644
--- a/src/menu.xml
+++ b/src/menu.xml
@@ -15,6 +15,7 @@
 	<menuitem action="gEDA Wiki"/>
 	<menuitem action="gEDA Documentation"/>
 	<menuitem action="gEDA Manager Documentation"/>
+	<menuitem action="gEDA Manager API Documentation"/>
       </menu>
       <separator/>
       <menuitem action="About"/>
diff --git a/src/newproject.py b/src/newproject.py
index db38bc0..21d3549 100644
--- a/src/newproject.py
+++ b/src/newproject.py
@@ -36,8 +36,8 @@ class NewProject:
     def __init__(self, gedamanager):
         """!
         NewProject Constructor.
-        @param gedamanager is gEDAManager object that the new project is
-        called from.
+        @param gedamanager gEDAManager object that the new project is
+        called from
         """
         self.project = gedamanager.project
         self.manager = gedamanager
@@ -92,7 +92,7 @@ class NewProject:
         def cb_filebutton_selection_changed(filechooser):
             """!
             Function to handle when the filebutton selection is changed.
-            @param filechooser is the gtk.FileChooserButton object.
+            @param filechooser gtk.FileChooserButton object
             """
             os.chdir(self.get_path())
 
@@ -115,8 +115,8 @@ class NewProject:
         def cb_filename_changed(filename_entry):
             """!
             Function to handle when the filename is changed.
-            @param filename_entry is the text entered for the file and
-            directory to be created.
+            @param filename_entry text entered for the file and
+            directory to be created
             """
             self.assistant.set_page_complete(self.filename_page,
                                              (filename_entry != ""))
@@ -193,7 +193,7 @@ class NewProject:
             """!
             Function is called when there is already a file with the same
             name as the one that is trying to be created.
-            @param togglebutton is the widget that is either checked (activated)
+            @param togglebutton widget that is either checked (activated)
             or not checked (not activated)
             """
             confirmed = togglebutton.get_active()
@@ -229,8 +229,8 @@ class NewProject:
         def cb_prepare(assistant, page):
             """!
             Function to help setup the assistant summary page.
-            @param assistant is the gtk.Assistant object
-            @param page is one of the pages of the gtk.Assistant object
+            @param assistant gtk.Assistant object
+            @param page one of the pages of the gtk.Assistant object
             """
             if page is self.summary_page:
                 # Summary page before creating the new project on disk
@@ -264,14 +264,14 @@ class NewProject:
     def cb_close(self, assistant):
         """!
         Method is called when the NewProject object is closed.
-        @param assistant is the gtk.Assistant object
+        @param assistant gtk.Assistant object
         """
         self.assistant.destroy()
 
     def cb_cancel(self, assistant):
         """!
         Method is called when the the user chooses 'cancel'.
-        @param assistant is the gtk.Assistant object
+        @param assistant gtk.Assistant object
         """
         self.assistant.destroy()
 
@@ -279,13 +279,13 @@ class NewProject:
         """!
         Method is called when the user chooses 'apply' to create
         the new project.
-        @param assistant is the gtk.Assistant object
+        @param assistant gtk.Assistant object
         """
         try:
             # Set new project attributes
             self.project.name = self.get_filename().split('.')[0]
             self.project.directory = self.get_path() + '/' + self.project.name.split('.')[0]
-            self.project.dependency_dict = {self.project.name + '.gm': [True], 'output.log': [True], 'error.log': [True]}
+            self.project.dependency_dict = {}
             self.project.file_list = [self.project.name, [self.project.name + '.gm', 'output.log', 'error.log']]
             # Remove directories with imported remove_tree
             if self.confirm_overwrite.get_active():
diff --git a/src/processdependencyevent.py b/src/processdependencyevent.py
index c2ec4b7..3d39b2c 100644
--- a/src/processdependencyevent.py
+++ b/src/processdependencyevent.py
@@ -37,7 +37,7 @@ class ProcessDependencyEvent(ProcessEvent):
     def __init__(self, gedamanager):
         """!
         Constructor for the ProcessDependencyEvent class.
-        @param gedamanager is the current gEDAManager instance.
+        @param gedamanager current gEDAManager instance
         """
         self.g = gedamanager
 
@@ -45,13 +45,14 @@ class ProcessDependencyEvent(ProcessEvent):
     def process_IN_MODIFY(self, event):
         """!
         Method to process the IN_MODIFY event from the pyinotify module
-        @param event is the current IN_MODIFY event that was caught for the
-        project's filesystem.
+        @param event current IN_MODIFY event that was caught for the
+        project's filesystem
         """
         # Call method to set the status of the dependent files recursively
         filename = self.g.utils.get_filename_from_filepath(event.pathname)
         if filename != None and self.g.project.dependency_dict != None:
             if filename in self.g.project.dependency_dict:
+                print 'filename in process catcher:',filename
                 self.g.utils.update_dependency_dict(self.g, filename, True)
                 self.g.utils.update_file_list(self.g)
 
diff --git a/src/project.py b/src/project.py
index 762dbf2..8d4f006 100644
--- a/src/project.py
+++ b/src/project.py
@@ -111,8 +111,7 @@ class Project(gobject.GObject):
     def save(self, silent=None):
         """!
         Method to save the project file and then emit the 'saved' signal if succesful
-        @param silent: flag for whether or not the 'saved' signal should be emitted
-        @type silent: bool
+        @param silent flag for whether or not the 'saved' signal should be emitted
         """
         if self.name != None and self.directory != None:
             filepath = self.directory + '/' + self.name + '.gm'
@@ -132,8 +131,7 @@ class Project(gobject.GObject):
     def open(self, filepath):
         """!
         Method to open up project from path and set as current project
-        @param filepath: filepath of the project file to open
-        @type filepath: string
+        @param filepath filepath of the project file to open
         """
         self.name = filepath.rsplit('/')[-1].split('.')[0]
         self.directory = filepath.rpartition('/')[0]
diff --git a/src/settings.py b/src/settings.py
index 9a782fd..8184e01 100644
--- a/src/settings.py
+++ b/src/settings.py
@@ -93,7 +93,7 @@ class Settings:
         """!
         Find all of the gEDA suite applications that are
         installed on this machine and return list of these programs.
-        @return list of installed geda apps.
+        @return list of installed geda apps
         """
         apps = []
         for app in self.geda_apps:
diff --git a/src/utils.py b/src/utils.py
index fd84de8..1060ee9 100644
--- a/src/utils.py
+++ b/src/utils.py
@@ -154,7 +154,7 @@ class Utils:
     def get_filename_from_filepath(self, path):
         """!
         Method to return the node name from the path.
-        @param path to the node
+        @param path path to the node
         @return filename of the node without an extension
         """
         if '/' in path:
@@ -166,7 +166,7 @@ class Utils:
     def get_filename_ext(self, filepath):
         """!
         Method to return the extension for the path.
-        @param filepath for the node file
+        @param filepath filepath for the node file
         @return ext the extension of the node
         """
         if '.' in filepath:
@@ -180,9 +180,9 @@ class Utils:
     def get_status_image(self, gedamanager, selected_node):
         """!
         Method to get the status image for the process.
-        @param gedamanager the current gEDAManager instance
-        @param selected_node the currently selected node in the 'Sources' tree view.
-        @return icon the icon from the self.icon_lut structure
+        @param gedamanager current gEDAManager instance
+        @param selected_node currently selected node in the 'Sources' tree view.
+        @return icon from the self.icon_lut structure
         """
         g = gedamanager
         filename = self.get_filename_from_filepath(selected_node)
@@ -200,7 +200,7 @@ class Utils:
     def flatten(self, lst):
         """!
         Method to flatten a nested list with tuple or list elements.
-        @param lst the nested list to flatten
+        @param lst nested list to flatten
         """
         for elem in lst:
             if type(elem) in (tuple, list):
@@ -246,8 +246,8 @@ class Utils:
     def child_recurse(self, row_iter, index):
         """!
         Method to iterate recursively over child nodes.
-        @param row_iter is the gtk.TreeModelRowIter object
-        @param index is the index of the row to add to the returned list
+        @param row_iter gtk.TreeModelRowIter object
+        @param index index of the row to add to the returned list
         @return list of child nodes
         """
         child_list = []
@@ -272,11 +272,11 @@ class Utils:
         """!
         Method to update the gEDA Manager's project file list any time
         the 'Sources' tree view is changed.
-        @param gedamanager is the current gEDAManager instance
-        @param index (0 = add copy source, 1 = delete source,
+        @param gedamanager current gEDAManager instance
+        @param index index -- (0 = add copy source, 1 = delete source,
         2 = delete folder, 3 = add a new source, 4 = remove source,
         5 = remove folder)
-        @param filepath of the source to copy
+        @param filepath filepath of the source to copy
         """
         g = gedamanager
         selection = g.sources_tree.get_selection()
@@ -307,36 +307,36 @@ class Utils:
                     g.dependencies.append(None, [filename, path])
                 # Add to the dependency_dict if not in there
                 if filename not in g.project.dependency_dict:
-                    g.project.dependency_dict[filename] = [True]
+                    g.project.dependency_dict[filename] = [True, [], []]
             elif filepath == selected_node + '/' + filename:
                 g.sources.append(selection_iter, [image, filename, path])
                 g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\n' + 'Added copy of source:' + filepath + ' to project.\n')
                 if filename not in g.project.dependency_dict:
-                    g.project.dependency_dict[filename] = [True]
+                    g.project.dependency_dict[filename] = [True, [], []]
             else:
                 g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\n' + filename + ' is already present in the directory: ' + selected_node + '.\n')
-        elif index == 1:
-            # This is currently not implemented -- TODO delete this            
-            # Logic here to delete the selected file
-            f = os.path.exists(selected_node)
-            if f:
-                os.system('rm ' + selected_node)
-                g.sources.remove(selection_iter)
-                g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\nDeleted ' + selected_node + '.\n')
-                node = self.get_filename_from_filepath(selected_node)
-                if node in g.project.dependency_dict and list(self.flatten(g.project.file_list)).count(node) == 1:
-                    del g.project.dependency_dict[node]
-        elif index == 2:
-            # This is currently not implemented -- TODO delete this
-            # Logic here to delete the folder
-            exists = os.path.exists(selected_node)
-            if exists: # delete directory recursively
-                for f in os.listdir(selected_node):
-                    if f in g.project.dependency_dict and list(self.flatten(g.project.file_list)).count(f) == 1:
-                        del g.project.dependency_dict[f]
-                os.system('rm -rf ' + selected_node)
-                g.sources.remove(selection_iter)
-                g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\nDeleted ' + selected_node + '.\n')
+##         elif index == 1:
+##             # This is currently not implemented -- TODO delete this            
+##             # Logic here to delete the selected file
+##             f = os.path.exists(selected_node)
+##             if f:
+##                 os.system('rm ' + selected_node)
+##                 g.sources.remove(selection_iter)
+##                 g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\nDeleted ' + selected_node + '.\n')
+##                 node = self.get_filename_from_filepath(selected_node)
+##                 if node in g.project.dependency_dict and list(self.flatten(g.project.file_list)).count(node) == 1:
+##                     del g.project.dependency_dict[node]
+##         elif index == 2:
+##             # This is currently not implemented -- TODO delete this
+##             # Logic here to delete the folder
+##             exists = os.path.exists(selected_node)
+##             if exists: # delete directory recursively
+##                 for f in os.listdir(selected_node):
+##                     if f in g.project.dependency_dict and list(self.flatten(g.project.file_list)).count(f) == 1:
+##                         del g.project.dependency_dict[f]
+##                 os.system('rm -rf ' + selected_node)
+##                 g.sources.remove(selection_iter)
+##                 g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\nDeleted ' + selected_node + '.\n')
         elif index == 3:
             # Logic here to add a new source
             files = os.listdir(selected_node)
@@ -349,7 +349,7 @@ class Utils:
                     g.dependencies.append(None, [filename, path])
                 # Add to the dependency_dict if not in there
                 if filename not in g.project.dependency_dict:
-                    g.project.dependency_dict[filename] = [True]
+                    g.project.dependency_dict[filename] = [True, [], []]
             else:
                 g.output_textbuffer.insert(g.output_textiter, self.get_time() + ':\n' + filename + ' is already present in the directory: ' + selected_node + '.\n')
         elif index == 4:
@@ -383,36 +383,32 @@ class Utils:
                 g.project.file_list.append(row[1])
             row_iter = row.iterchildren() # This will be True for the root
             if row_iter != None: # We have children in this row
-                print 'going into child_list'
                 child_list = self.child_recurse(row_iter, 1)
-                print 'child_list:',child_list
                 if child_list != None:
                     for x in child_list:
                         if x == None:
                             child_list.remove(None)
                     g.project.file_list.append(child_list)
 
-        print 'g.projec.file_list after:',g.project.file_list
-
-        # Now save the project since the new update file_list is made
-        g.project.save()
         # Expand the 'Sources' tree view
         g.sources_tree.expand_all()
         # Create a new dependency loop
         g.dependencyloop.switch_projects()
+        # Now save the project since the new update file_list is made        
+        g.project.save()
 
 
-    #@exceptions
+    @exceptions
     def get_processes_tree(self, gedamanager, selected_node=None, ext=None, folder=None, clear=None):
         """!
         Method to populate the 'Processes' tree view in the gEDA Manager.
-        @param gedamanager is the current gEDAManager instance
-        @param selected_node is the selected node in the 'Sources' tree view
-        @param ext is the filename extension for the currently selected node
+        @param gedamanager current gEDAManager instance
+        @param selected_node selected node in the 'Sources' tree view
+        @param ext filename extension for the currently selected node
         in the 'Sources' tree view
-        @param folder is a flag used to let the method know whether or not a
+        @param folder flag used to let the method know whether or not a
         folder has been selected
-        @param clear is a paramater that is used to force a clearing of the
+        @param clear paramater that is used to force a clearing of the
         processes model
         """
         g = gedamanager
@@ -530,12 +526,12 @@ class Utils:
         """!
         Event occurs when 'row-activated' signal is emitted or a user double
         clicks on a treeview row.
-        @param widget that threw the event
-        @param path of the row of the cell to be activated in the gtk.TreeView
+        @param widget widget that threw the event
+        @param path path of the row of the cell to be activated in the gtk.TreeView
         object
-        @param view_column is the gtk.TreeViewColumn of the cell to be
+        @param view_column gtk.TreeViewColumn of the cell to be
         activated
-        @param gedamanager is the current gEDAManager instance
+        @param gedamanager current gEDAManager instance
         """
         g = gedamanager
         selected_node = g.sources[path][2]
@@ -553,12 +549,12 @@ class Utils:
         """!
         Event occurs when 'row-activated' signal is emitted or a user double
         clicks on a treeview row.
-        @param widget that threw the event
-        @param path of the row of the cell to be activated in the gtk.TreeView
+        @param widget widget that threw the event
+        @param path path of the row of the cell to be activated in the gtk.TreeView
         object
-        @param view_column is the gtk.TreeViewColumn of the cell to be
+        @param view_column gtk.TreeViewColumn of the cell to be
         activated
-        @param gedamanager is the current gEDAManager instance
+        @param gedamanager current gEDAManager instance
         """
         g = gedamanager
         selected_node = g.processes[path][0]
@@ -567,19 +563,19 @@ class Utils:
         highlighted_source = g.sources.get_value(selection_iter, 2)
         filename = self.get_filename_from_filepath(highlighted_source)
         if filename not in g.project.dependency_dict:
-            g.project.dependency_dict[filename] = [True]
+            g.project.dependency_dict[filename] = [True, [], []]
         self.run_command(g, selected_node, highlighted_source)
 
         
-    #@exceptions
+    @exceptions
     def run_command(self, gedamanager, filepath, highlighted_source=None, ext=None):
         """!
         Method to run commands for 'Processes' and 'Sources'.
-        @param gedamanager is the current gEDAManager instance
-        @param filepath is the selected 'Sources' or 'Processes' node
-        @param highlighted_source is the highlighted 'Sources' node that
+        @param gedamanager current gEDAManager instance
+        @param filepath selected 'Sources' or 'Processes' node
+        @param highlighted_source highlighted 'Sources' node that
         is being used for the current process
-        @param ext is the extension of the selected file
+        @param ext extension of the selected file
         """
         g = gedamanager
         files = ['net','log','bom','bom1','bom2','v','vhd','gm','txt']
@@ -653,42 +649,49 @@ class Utils:
                 self.gsch2pcb = Gsch2pcb(g, highlighted_source)
                 pass
             elif program == 'Update PCB (gsch2pcb)':
-                # Only run if the highlighted_souce is outdated
                 filename = self.get_filename_from_filepath(highlighted_source)
+                print 'filename:',filename
+                # Only run if the highlighted_souce is outdated                
                 if not g.project.dependency_dict[filename][0]:
                     print 'We are in'
                     files_before = os.listdir(highlighted_source.rpartition('/')[0])
                     schematics_list = [x for x in g.project.dependency_dict[filename][1:] if x.endswith('.sch')]
-                    schematics = ''
-                    for sch in schematics_list:
-                            schematics += row[1] + ' '
-                    
-                    name = filename.split('.')[0]
-                    subproc = Popen(['gsch2pcb', '-v','-v','-o',name,schematics]).wait()
-                    files_after = os.listdir(highlighted_source.rpartition('/')[0])
-                    files = [x for x in files_after if x not in files_before]
-                    print 'files:',files
-                    print 'files_before:',files_before
-                    print 'files_after:',files_after
-                    # Add any new files to the sources tree view
-                    icon = gtk.IconTheme()
-                    selection = g.sources_tree.get_selection()
-                    model, selection_iter = selection.get_selected()
-                    parent_iter = g.sources.iter_parent(selection_iter)
-                    wanted = ['pcb','new.pcb','net']
-                    new_files = []
-                    new_files.append(True)
-                    for f in files:
-                        if f.endswith('new.pcb'):
-                            ext = 'new.pcb'
-                        else:
-                            ext = f.split('.')[-1]
-                        if ext in wanted:
-                            image = icon.load_icon(g.utils.icon_lut[ext], 22, 0)
-                            g.sources.append(parent_iter, [image, f, directory + '/' + f])
-                            # Need to see if there are any new files
-                            new_files.append(f)
-                    print 'new_files:',new_files
+                    print 'g.project.dependency_dict[filename][1:]:',g.project.dependency_dict[filename][1:]
+                    print 'g.project.dependency_dict:',g.project.dependency_dict
+                    print 'schematics_list:',schematics_list
+                    if schematics_list:
+                        schematics = ''
+                        for sch in schematics_list:
+                                schematics += sch + ' '
+
+                        name = filename.split('.')[0]
+                        print 'name:',name
+                        print 'schematics:',schematics
+                        subproc = Popen(['gsch2pcb', '-v','-v','-o',name,schematics]).wait()
+                        files_after = os.listdir(highlighted_source.rpartition('/')[0])
+                        files = [x for x in files_after if x not in files_before]
+                        # Add any new files to the sources tree view if any
+                        if files:
+                            icon = gtk.IconTheme()
+                            selection = g.sources_tree.get_selection()
+                            model, selection_iter = selection.get_selected()
+                            parent_iter = g.sources.iter_parent(selection_iter)
+                            wanted = ['pcb','new.pcb','net']
+                            new_files = []
+                            new_files.append(True)
+                            for f in files:
+                                if f.endswith('new.pcb'):
+                                    ext = 'new.pcb'
+                                else:
+                                    ext = f.split('.')[-1]
+                                if ext in wanted:
+                                    filepath = directory + '/' + f
+                                    image = icon.load_icon(g.utils.icon_lut[ext], 22, 0)
+                                    g.sources.append(parent_iter, [image, f, filepath])
+                                    g.dependencies.append(None, [f, filepath])
+                                    # Need to see if there are any new files
+                                    new_files.append(f)
+                            print 'new_files:',new_files
             else:
                 print 'program: (process no name)',program
                 subproc = Popen([program, highlighted_source])                
@@ -697,24 +700,31 @@ class Utils:
     def update_dependency_dict(self, gedamanager, filename, flag=False):
         """!
         Method to update the dependencies for filename.
-        @param gedamanager of the current gEDAManager instance
-        @param filename of the file that will have its dependencies updated
+        @param gedamanager current gEDAManager instance
+        @param filename file that will have its dependencies updated
+        or list of filenames that will have its dependencies updated
         """
-        # We just need to create a new list and set that as the value
-        gedamanager.project.dependency_dict[filename][0] = flag
-        for x in gedamanager.project.dependency_dict[filename][1:]:
-            # recure over files and make out of date
-            self.update_dependency_dict(gedamanager, x, False)
+        if isinstance(filename, list):
+            for f in filename:
+                gedamanager.project.dependency_dict[f][0] = flag
+                for x in gedamanager.project.dependency_dict[f][1:]:
+                    self.update_dependency_dict(gedamanager, x, False)
+        else:
+            # We just need to create a new list and set that as the value
+            gedamanager.project.dependency_dict[filename][0] = flag
+            for x in gedamanager.project.dependency_dict[filename][1:]:
+                # recurse over files and make out of date
+                self.update_dependency_dict(gedamanager, x, False)
         
 
     def add_to_dependency_dict(self, gedamanager, filename):
         """!
         Method to add a file to the project's dependency_dict.
-        @param gedamanager of the current gEDAManager instance
-        @param filename of the file to add to project.dependency_dict
+        @param gedamanager current gEDAManager instance
+        @param filename file to add to project.dependency_dict
         """
         g = gedamanager
         # add file to the dependency_dict
         if filename not in g.project.dependency_dict:
-            g.project.dependency_dict[filename] = [True]
+            g.project.dependency_dict[filename] = [True, [], []]
 




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs