[jokosher-devel] [PATCH] Add Doc strings to all methods in JokosherApp.py. (PROPOSAL)



This is a proposal concerning doc strings for all methods. I already applied it to every method in JokosherApp as an example (besides fixing a method name typo and enforcing default parameter format, ie. widget = None -> widget=None).
I think we all know the importance of having a good documentation and this is the first step towards achieving an standard in this aspect. If the idea is accepted, I'll continue and document the rest of the modules. Also, by adding doc strings. pydoc (or whichever tool fits best) would generate -much- better API documents. The template can of course change and adapt to the auto-doc generating tool if needed.
I attach an odt file with the template and some examples. If they get accepted, I'll add them to the developer wiki page so all devs can easily access it.
Index: /home/david/Projects/Jokosher/Jokosher/JokosherApp.py
===================================================================
--- /home/david/Projects/Jokosher/Jokosher/JokosherApp.py	(revision 970)
+++ /home/david/Projects/Jokosher/Jokosher/JokosherApp.py	(working copy)
@@ -31,8 +31,19 @@
 
 	#_____________________________________________________________________
 
-	def __init__(self, openproject = None, loadExtensions = True, startuptype = None):
+	def __init__(self, openproject=None, loadExtensions=True, startuptype=None):
+		"""
+		Jokosher's main class. It creates the majority of the main window GUI and gets 
+		gets everything up and running.
 		
+		Parameters:
+			openproject -- filename of the project to open at startup.
+			loadExtensions -- whether the extensions should be loaded.
+			startuptype -- determines the startup state of Jokosher:
+							0 = Open the project referred by the openproject parameter.
+							1 = Do not display the welcome dialog or open a project.
+							2 = Display the welcome dialog.
+		"""
 		gtk.glade.bindtextdomain(Globals.LOCALE_APP, Globals.LOCALE_PATH)
 		gtk.glade.textdomain(Globals.LOCALE_APP)
 
@@ -68,7 +79,7 @@
 			"on_paste_activate" : self.OnPaste,
 			"on_delete_activate" : self.OnDelete,
 			"on_MouseDown" : self.OnMouseDown,
-			"on_instrumentconnections_activate" : self.OnInstrumentConnectonsDialog,
+			"on_instrumentconnections_activate" : self.OnInstrumentConnectionsDialog,
 			"on_editmenu_activate" : self.OnEditMenu,
 			"on_projectmenu_activate" : self.OnProjectMenu,
 			"on_prereleasenotes_activate" : self.OnPreReleaseNotes,
@@ -216,6 +227,15 @@
 	#_____________________________________________________________________	
 
 	def OnChangeView(self, view, mode):
+		"""
+		Updates the state of the recording and the compact mix buttons. It also might 
+		need to force a redraw of the timeline when changing views as it may have been
+		zoomed or scrolled while hidden.
+		
+		Parameters:
+			view -- TODO
+			mode -- Mode corresponding to the view the main window has changed to.
+		"""
 		if not self.settingButtons:
 			self.settingButtons = True
 			self.recordingButton.set_active(mode == self.MODE_RECORDING)
@@ -244,6 +264,12 @@
 	#_____________________________________________________________________
 	
 	def OnRecordingView(self, window=None):
+		"""
+		Updates the main window after switching to the recording mode.
+		
+		Parameters:
+			window -- TODO			
+		"""
 		if hasattr(self, "recording"):
 			self.OnChangeView(self.recording, self.MODE_RECORDING)
 			self.contextTooltips.set_tip(self.recordingButton,_("Currently working in the Recording workspace"),None)
@@ -252,6 +278,12 @@
 	#_____________________________________________________________________
 	
 	def OnCompactMixView(self, window=None):
+		"""
+		Updates the main window after switching to the compact view mixing mode.
+		
+		Parameters:
+			window -- TODO		
+		"""
 		if hasattr(self, "compactmix"):
 			self.OnChangeView(self.compactmix, self.MODE_COMPACT_MIX)
 			self.contextTooltips.set_tip(self.recordingButton,_("Switch to the Recording workspace"),None)
@@ -259,6 +291,16 @@
 	#_____________________________________________________________________
 	
 	def OnDestroy(self, widget=None, event=None):
+		"""
+		Called when the main window is destroyed.
+		
+		Parameters:
+			widget -- TODO
+			event -- TODO
+			
+			return -- if the current project can't be properly closed, 
+					  returns True to stop signal propagation.
+		"""
 		if self.CloseProject() == 0:
 			gtk.main_quit()
 		else:
@@ -267,7 +309,12 @@
 	#_____________________________________________________________________
 	
 	def OnShowAddInstrumentDialog(self, widget):
-		""" Creates and shows the 'Add Instrument' dialog box """
+		"""
+		Creates and shows the "Add Instrument" dialog box.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		AddInstrumentDialog.AddInstrumentDialog(self.project, self)
 	
 	#_____________________________________________________________________
@@ -273,6 +320,12 @@
 	#_____________________________________________________________________
 
 	def OnChangeInstrument(self, widget=None):
+		"""
+		Changes the type of the selected Instrument.
+		
+		Parameters:
+			widget -- TODO	
+		"""
 		# Change the type of a select instrument
 		for instr in self.project.instruments:
 			if (instr.isSelected):
@@ -281,8 +334,13 @@
 	
 	#_____________________________________________________________________
 	
-	def About(self, widget = None):
-		'''Display about dialog'''
+	def About(self, widget=None):
+		"""
+		Creates and shows the "About" dialog box.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		aboutTree = gtk.glade.XML(Globals.GLADE_PATH, "AboutDialog")
 		dlg = aboutTree.get_widget("AboutDialog")
 		dlg.set_transient_for(self.window)
@@ -293,7 +351,13 @@
 	#_____________________________________________________________________
 
 	def Record(self, widget=None):
-		'''Toggle recording'''
+		"""
+		Toggles recording. If there's an error, a warning/error message is 
+		issued to the user.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		
 		# toggling the record button invokes this function so we use the settingButtons var to 
 		# indicate that we're just changing the GUI state and dont need to do anything code-wise
@@ -375,8 +439,13 @@
 
 	#_____________________________________________________________________
 	
-	def Play(self, widget = None):
-		'''Toggle playing'''
+	def Play(self, widget=None):
+		"""
+		Toggles playback.
+		
+		Parameters:
+			widget -- TODO
+		"""
 
 		if self.settingButtons == True:
 			return 
@@ -391,8 +460,13 @@
 	#_____________________________________________________________________
 
 	#The stop button is really just an alias for toggling play/record to off
-	def Stop(self, widget = None):
-		'''Stop recording/playing (whichever is happening)'''
+	def Stop(self, widget=None):
+		"""
+		Stops the current record/playback (whichever is happening) operation.
+		
+		Parameters:
+			widget -- TODO
+		"""
 
 		self.addInstrumentButton.set_sensitive(True)
 
@@ -408,7 +482,13 @@
 
 	#_____________________________________________________________________
 
-	def OnRewindPressed(self, widget = None):
+	def OnRewindPressed(self, widget=None):
+		"""
+		Starts moving backward within the project's timeline.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.transport.Reverse(True)
 		
 	#_____________________________________________________________________
@@ -413,7 +493,13 @@
 		
 	#_____________________________________________________________________
 		
-	def OnRewindReleased(self, widget = None):
+	def OnRewindReleased(self, widget=None):
+		"""
+		Stops the current rewind operation.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.transport.Reverse(False)
 		
 	#_____________________________________________________________________
@@ -418,7 +504,13 @@
 		
 	#_____________________________________________________________________
 		
-	def OnForwardPressed(self, widget = None):
+	def OnForwardPressed(self, widget=None):
+		"""
+		Starts moving forward within the project's timeline.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.transport.Forward(True)
 		
 	#_____________________________________________________________________
@@ -423,7 +515,13 @@
 		
 	#_____________________________________________________________________
 		
-	def OnForwardReleased(self, widget = None):
+	def OnForwardReleased(self, widget=None):
+		"""
+		Stops the current forward operation.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.transport.Forward(False)
 	
 	#_____________________________________________________________________
@@ -428,8 +526,14 @@
 	
 	#_____________________________________________________________________
 	
-	def InstrumentSelected(self, widget = None, event = None):
-		'''If an instrument has been selected, enable the record button'''
+	def InstrumentSelected(self, widget=None, event=None):
+		"""
+		Enables the record button if an instrument has been selected.
+		
+		Parameters:
+			widget -- TODO
+			event -- TODO
+		"""
 		for instr in self.project.instruments:
 			if instr.isSelected:
 				self.record.set_sensitive(True)
@@ -436,8 +540,14 @@
 
 	#_____________________________________________________________________
 	
-	def OnExport(self, widget = None):
-		'''Display a save dialog allowing the user to export as ogg or mp3'''
+	def OnExport(self, widget=None):
+		"""
+		Creates and shows a save file dialog which allows the user to export
+		the project	as ogg or mp3.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		buttons = (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK)
 		chooser = gtk.FileChooserDialog(_("Mixdown Project"), self.window, gtk.FILE_CHOOSER_ACTION_SAVE, buttons)
 		chooser.set_current_folder(Globals.settings.general["projectfolder"])
@@ -489,6 +599,12 @@
 	#_____________________________________________________________________
 	
 	def UpdateExportDialog(self):
+		"""
+		Updates the progress bar corresponding to the current export operation.
+		
+		Parameters:
+			none
+		"""
 		progress = self.project.get_export_progress()
 		if progress[0] == -1 or progress[1] == 0:
 			self.exportprogress.set_fraction(0.0)
@@ -505,6 +621,12 @@
 	#_____________________________________________________________________
 	
 	def OnExportCancel(self, widget=None):
+		"""
+		Cancels a running export operation and destroys the export progress dialog.
+		
+		Parameters:
+			widget: TODO
+		"""
 		self.exportdlg.destroy()
 		self.project.export_eos()
 	
@@ -511,6 +633,14 @@
 	#_____________________________________________________________________
 	
 	def OnPreferences(self, widget, destroyCallback=None):
+		"""
+		Creates and shows the "Jokosher Preferences" dialog.
+		
+		Parameters:
+			widget -- TODO
+			destroyCallback -- function that'll get called when the preferences 
+							   dialog gets destroyed.
+		"""
 		prefsdlg = PreferencesDialog.PreferencesDialog(self.project, self, self.icon)
 			
 		if destroyCallback:
@@ -519,6 +649,12 @@
 	#_____________________________________________________________________
 	
 	def OnShowBarsBeats(self, widget):
+		"""
+		Sets and updates the current timeline view to Bars, Beats and Ticks.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		if self.settingButtons:
 			return
 		if widget.get_active() and self.project and self.project.transport:
@@ -527,6 +663,12 @@
 	#_____________________________________________________________________
 	
 	def OnShowHoursMins(self, widget):
+		"""
+		Sets and updates the current timeline view to Hours, Minutes and Seconds.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		if self.settingButtons:
 			return
 		if widget.get_active() and self.project and self.project.transport:
@@ -535,6 +677,13 @@
 	#_____________________________________________________________________
 	
 	def UpdateCurrentDisplay(self):
+		"""
+		Updates the current display, Recording or Mixing, depending on which one
+		is active.
+		
+		Parameters:
+			none
+		"""
 		if self.mode == self.MODE_RECORDING:
 			self.recording.Update()
 		elif self.mode == self.MODE_COMPACT_MIX:
@@ -543,6 +692,14 @@
 	#_____________________________________________________________________
 	
 	def UpdateDisplay(self):
+		"""
+		Updates the current display, Recording or Mixing, depending on which one
+		is active. Additionally, when idle, it'll update the view hidden in the
+		background.
+		
+		Parameters:
+			none
+		"""
 		if self.mode == self.MODE_RECORDING:
 			self.recording.Update()
 			gobject.idle_add(self.compactmix.Update)
@@ -553,7 +710,15 @@
 	#_____________________________________________________________________
 
 	def OnOpenProject(self, widget, destroyCallback=None):
+		"""
+		Creates and shows a open file dialog which allows the user to open
+		an existing Jokosher project.
 		
+		Parameters:
+			widget -- TODO
+			destroyCallback -- function that'll get called when the open file
+							   dialog gets destroyed.
+		"""
 		chooser = gtk.FileChooserDialog((_('Choose a Jokosher project file')), None, gtk.FILE_CHOOSER_ACTION_OPEN, (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK))
 		chooser.set_current_folder(Globals.settings.general["projectfolder"])
 
@@ -591,7 +756,13 @@
 		
 	#_____________________________________________________________________
 		
-	def OnSaveProject(self, widget=None):		
+	def OnSaveProject(self, widget=None):
+		"""
+		Saves the current project file.
+		
+		Parameters:
+			widget -- TODO
+		"""	
 		if self.project:
 			self.project.SelectInstrument(None)
 			self.project.ClearEventSelections()
@@ -600,6 +771,13 @@
 	#_____________________________________________________________________
 	
 	def OnSaveAsProject(self, widget=None):
+		"""
+		Creates and shows a save as file dialog which allows the user to save
+		the current project to an specific file name.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		buttons = (gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_SAVE,gtk.RESPONSE_OK)
 		chooser = gtk.FileChooserDialog(_("Choose a location to save the project"), self.window, gtk.FILE_CHOOSER_ACTION_SAVE, buttons)
 		chooser.set_current_folder(Globals.settings.general["projectfolder"])
@@ -617,7 +795,14 @@
 	#_____________________________________________________________________
 
 	def OnNewProject(self, widget, destroyCallback=None):
-		""" Creates and shows the 'New Project' dialog box """
+		"""
+		Creates and shows the "New Project" dialog.
+		
+		Parameters:
+			widget -- TODO
+			destroyCallback -- function that'll get called when the new project
+							   dialog gets destroyed.
+		"""
 		newdlg = NewProjectDialog.NewProjectDialog(self)
 		if destroyCallback:
 			newdlg.dlg.connect("destroy", destroyCallback)
@@ -625,7 +810,12 @@
 	#_____________________________________________________________________
 		
 	def OnCloseProject(self, widget):
-		""" Closes a project """
+		"""
+		Closes the current project by calling CloseProject(). 
+		
+		Parameters:
+			widget -- TODO
+		"""
 		if self.CloseProject() == 0:
 			self.SetGUIProjectLoaded()
 	#_____________________________________________________________________
@@ -631,7 +821,13 @@
 	#_____________________________________________________________________
 	
 	def CloseProject(self):
-		#return values: 0 == okay, 1 == cancel and return to program
+		"""
+		Closes the current project. If there's changes pending, it'll ask the user for confirmation.
+		
+		Parameters:
+			return -- 0 = there was no project open or it was closed succesfully.
+				 	  1 = cancel the operation and return to the normal program flow.
+		"""
 		if not self.project:
 			return 0
 		
@@ -672,6 +868,12 @@
 	#_____________________________________________________________________
 	
 	def OnUndo(self, widget):
+		"""
+		Undoes the last change made to the project and updates the displays.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.Undo()
 		self.UpdateDisplay()
 		
@@ -678,6 +880,12 @@
 	#_____________________________________________________________________
 	
 	def OnRedo(self, widget):
+		"""
+		Redoes the last undo operation and updates the displays.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.project.Redo()
 		self.UpdateDisplay()
 
@@ -684,7 +892,21 @@
 	#_____________________________________________________________________
 	
 	def OnStateChanged(self, obj=None, change=None, *extra):
-		#for when undo and redo history change
+		"""
+		Updates internal flags, views and the user interface to reflect a given
+		change in the project.
+		
+		Parameters:
+			obj -- TODO
+			change -- string indicating the change which fired this function:
+					gst-bus-error = a serious core engine error occurred.
+					play = playback started.
+					record = recording started.
+					stop = playback or recording was stopped.
+					transport-mode = the transport mode display was changed.
+					undo = an undo operation was performed.
+			*extra -- TODO
+		"""
 
 		if change=="play" or (change == "stop" and self.isPlaying):
 			self.isPlaying = not self.isPlaying
@@ -734,12 +956,12 @@
 			if self.settingButtons:
 				return
 			self.settingButtons = True
-			a = self.wTree.get_widget("show_as_bars_beats_ticks")
-			b = self.wTree.get_widget("show_as_hours_minutes_seconds")
-			t = self.project.transport
+			modeBars = self.wTree.get_widget("show_as_bars_beats_ticks")
+			modeHours = self.wTree.get_widget("show_as_hours_minutes_seconds")
+			transport = self.project.transport
 			
-			a.set_active(t.mode == t.MODE_BARS_BEATS)
-			b.set_active(t.mode == t.MODE_HOURS_MINS_SECS)
+			modeBars.set_active(transport.mode == transport.MODE_BARS_BEATS)
+			modeHours.set_active(transport.mode == transport.MODE_HOURS_MINS_SECS)
 			
 			self.settingButtons = False
 		
@@ -746,6 +968,13 @@
 	#_____________________________________________________________________
 
 	def InsertRecentProject(self, path, name):
+		"""
+		Inserts a new project with it's corresponding path to the recent project list.
+		
+		Parameters:
+			path -- path to the project file.
+			name -- name of the project being added.
+		"""
 		for item in self.recentprojectitems:
 			if path == item[0]:
 				self.recentprojectitems.remove(item)
@@ -758,6 +987,13 @@
 	#_____________________________________________________________________
 	
 	def OnClearRecentProjects(self, widget):
+		"""
+		Clears the recent projects list. It then updates the user interface to reflect
+		the changes.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.recentprojectitems = []
 		self.SaveRecentProjects()
 		self.PopulateRecentProjects()
@@ -765,8 +1001,12 @@
 	#_____________________________________________________________________
 	
 	def PopulateRecentProjects(self):
-		'''Populate the Recent Projects menu with items from self.recentprojectitems'''
+		"""
+		Populates the Recent Projects menu with items from self.recentprojectitems.
 		
+		Parameters:
+			none
+		"""	
 		menuitems = self.recentprojectsmenu.get_children()
 		for c in menuitems:
 			self.recentprojectsmenu.remove(c)
@@ -797,7 +1037,12 @@
 	#_____________________________________________________________________
 	
 	def OpenRecentProjects(self):
-		'''Populate the self.recentprojectpaths with items from global settings'''
+		"""
+		Populate the self.recentprojectpaths with items from global settings.
+		
+		Parameters:
+			none
+		"""
 		self.recentprojectitems = []
 		if Globals.settings.general.has_key("recentprojects"):
 			filestring = Globals.settings.general["recentprojects"]
@@ -823,6 +1068,14 @@
 	#_____________________________________________________________________
 	
 	def OnRecentProjectsItem(self, widget, path, name):
+		"""
+		Opens the project selected from the "Recent Projects" drop-down menu.
+		
+		Parameters:
+			widget -- TODO
+			path -- path to the project file.
+			name -- name of the project being opened.
+		"""
 		return self.OpenProjectFromPath(path)
 
 	#_____________________________________________________________________
@@ -828,6 +1081,12 @@
 	#_____________________________________________________________________
 
 	def SaveRecentProjects(self):
+		"""
+		Saves the list of the last 8 recent projects as a global setting.
+		
+		Parameters:
+			none
+		"""
 		string = ""
 
 		# Cut list to 8 items
@@ -843,6 +1102,15 @@
 	#______________________________________________________________________
 	
 	def OnCut(self, widget=None, cut=True):
+		"""
+		Cuts the portion of selected audio and puts it in the clipboard.
+		
+		Parameters:
+			widget -- TODO
+			cut --  Determines whether the operation should perform a cut or paste operation:
+					True = perform a cut operation.
+					False = perform a copy operation.
+		"""
 		if self.instrNameEntry:
 			#if an instrument name is currently being edited
 			if cut:
@@ -867,6 +1135,12 @@
 	#______________________________________________________________________
 	
 	def OnCopy(self, widget=None):
+		"""
+		Copies the portion of selected audio to the clipboard.	
+		
+		Parameters:
+			widget -- TODO
+		"""
 		self.OnCut(widget, False)
 	
 	#______________________________________________________________________
@@ -872,6 +1146,13 @@
 	#______________________________________________________________________
 	
 	def OnPaste(self, widget=None):
+		"""
+		Pastes the portion of audio in the clipboard to the selected instrument,
+		at the selected position in time.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		if self.instrNameEntry:
 			#if an instrument name is currently being edited
 			self.instrNameEntry.paste_clipboard()
@@ -888,6 +1169,12 @@
 	#______________________________________________________________________
 	
 	def OnDelete(self, widget=None):
+		"""
+		Deletes the currently selected instrument or event.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		# Delete any select instruments
 		for instr in self.project.instruments:
 			if (instr.isSelected):
@@ -905,6 +1192,14 @@
 	#______________________________________________________________________
 
 	def OnMouseDown(self, widget, mouse):
+		"""
+		If there's a project open, clears event and instrument selections. It also
+		updates the current display.
+		
+		Parameters:
+			widget -- TODO
+			mouse -- TODO
+		"""
 		if self.project:
 			self.project.ClearEventSelections()
 			self.project.SelectInstrument(None)
@@ -913,6 +1208,13 @@
 	#______________________________________________________________________
 	
 	def SetGUIProjectLoaded(self):
+		"""
+		Refreshes the main window and it's components when a project is opened or closed.
+		For example, buttons are enabled/disabled whether there's a project currently open or not. 
+		
+		Parameters:
+			none
+		"""
 		children = self.main_vbox.get_children()
 		if self.recording in children:
 			self.main_vbox.remove(self.recording)
@@ -981,7 +1283,13 @@
 	#_____________________________________________________________________
 	
 	def OnKeyPress(self, widget, event):
+		"""
+		Handles the hotkeys, calling whichever function they are assigned to.
 		
+		Parameters:
+			widget -- TODO
+			event -- TODO
+		"""
 		if 'GDK_CONTROL_MASK' in event.state.value_names:
 			keysdict = {
 				120:self.OnCut, # Ctrl-X
@@ -1001,7 +1309,13 @@
 		
 	#_____________________________________________________________________
 	
-	def OnInstrumentConnectonsDialog(self, widget):
+	def OnInstrumentConnectionsDialog(self, widget):
+		"""
+		Creates and shows the "Instrument Connections Dialog".
+		
+		Parameters:
+			widget -- none
+		"""
 		InstrumentConnectionsDialog.InstrumentConnectionsDialog(self.project, self)
 		
 	#_____________________________________________________________________
@@ -1007,8 +1321,13 @@
 	#_____________________________________________________________________
 	
 	def OnEditMenu(self, widget):
-		#HACK: when the edit menu opens, check if any events or
-		#instruments are selected and set the cut, copy, paste and delete accordingly
+		"""
+		When the edit menu opens, checks if any events or instruments are selected 
+		and sets the cut, copy, paste and delete menu items accordingly.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		instrSelected = False
 		eventSelected = False
 		if self.project:
@@ -1029,8 +1348,13 @@
 	#_____________________________________________________________________
 	
 	def OnProjectMenu(self, widget):
-		#HACK: when project menu opens, set sensitivity so we don't
-		#have to monitor all the selection changes
+		"""
+		When the project menu opens, set sensitivity depending on
+		whether there's an open project or not.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		if self.settingButtons:
 				return
 		self.settingButtons = True
@@ -1049,6 +1373,18 @@
 	#_____________________________________________________________________
 
 	def OpenProjectFromPath(self,path, parent=None):
+		"""
+		Opens the project file referred by the path parameter.
+		
+		Parameters:
+			path -- Path to the project to be opened.
+			parent -- Parent window of the error message dialog.
+			
+			return -- True = the project could be successfully opened and 
+					  		 set as the current project.
+					  False = loading the project failed. A dialog will be
+					  		  displayed to user detailing the error.
+		"""
 		try:
 			self.SetProject(Project.LoadFromFile(path))
 			return True
@@ -1059,6 +1395,13 @@
 	#_____________________________________________________________________
 	
 	def SetProject(self, project):
+		"""
+		Tries to establish the Project parameter as the current project.
+		If there are errors, an error message is issued to the user.
+		
+		Parameters:
+			project -- the Project object to set as the main project.
+		"""
 		try:
 			project.ValidateProject()
 		except Project.InvalidProjectError, e:
@@ -1099,6 +1442,13 @@
 	#_____________________________________________________________________
 	
 	def CheckGstreamerVersions(self):
+		"""
+		Check for CVS versions of Gstreamer and gnonlin. If requirements are not met,
+		a warning message is issued to the user.
+		
+		Parameters:
+			none
+		"""
 		#Check for CVS versions of Gstreamer and gnonlin
 		message = ""
 		gstVersion = gst.version()
@@ -1130,6 +1480,12 @@
 	#_____________________________________________________________________
 
 	def SetStatusBar(self, message):
+		"""
+		Appends the message parameter to the status bar text.
+		
+		Parameters:
+			message -- string to append to the status bar text.
+		"""
 		return self.statusbar.Push(message)
 	
 	#_____________________________________________________________________
@@ -1135,6 +1491,12 @@
 	#_____________________________________________________________________
 
 	def ClearStatusBar(self, messageID):
+		"""
+		Clears the status bar text in the position pointed by messageID.
+		
+		Parameters:
+			messageID -- position within the status bar, of the text to be cleared.
+		"""
 		self.statusbar.Remove(messageID)
 	
 	#_____________________________________________________________________
@@ -1140,6 +1502,12 @@
 	#_____________________________________________________________________
 
 	def OnPreReleaseNotes(self, widget):
+		"""
+		Creates and shows the "Pre Release Notes" dialog.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		dlg = gtk.MessageDialog(self.window,
 			gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
 			gtk.MESSAGE_WARNING,
@@ -1151,7 +1519,12 @@
 	#_____________________________________________________________________
 
 	def OnContributingDialog(self, widget):
+		"""
+		Creates and shows the "Contributing to Jokosher" dialog.
 		
+		Parameters:
+			widget -- TODO
+		"""
 		self.contribTree = gtk.glade.XML(Globals.GLADE_PATH, "ContributingDialog")
 		
 		# grab reference to the ContributingDialog window
@@ -1167,6 +1540,13 @@
 	#_____________________________________________________________________
 	
 	def ShowOpenProjectErrorDialog(self, error, parent=None):
+		"""
+		Creates and shows a dialog to inform the user about an error that has ocurred.
+		
+		Parameters:
+			error -- string with the error(s) description.
+			parent -- parent window of the error message dialog.
+		"""
 		if not parent:
 			parent = self.window
 
@@ -1195,6 +1575,12 @@
 	#_____________________________________________________________________
 
 	def OnExtensionManagerDialog(self, widget):
+		"""
+		Creates and shows the "Extension Manager" dialog.
+		
+		Parameters:
+			widget -- TODO
+		"""
 		ExtensionManagerDialog.ExtensionManagerDialog(self)
 
 #=========================================================================
@@ -1199,7 +1585,13 @@
 
 #=========================================================================
 
-def main():	
+def main():
+	"""
+		Main entry point for Jokosher.
+			
+	Parameters:
+			none
+	"""	
 	MainApp()
 	gtk.main()
 

Attachment: Documentation Templates.odt
Description: application/vnd.oasis.opendocument.text



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