// Name: debugrpt.h
// Purpose: interface of wxDebugReport*
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
@class wxDebugReportPreview
- @wxheader{debugrpt.h}
This class presents the debug report to the user and allows him to veto
report entirely or remove some parts of it. Although not mandatory, using
chose to cancel report generation or removed all files from
it.
*/
- virtual bool Show(wxDebugReport& dbgrpt) const;
+ virtual bool Show(wxDebugReport& dbgrpt) const = 0;
};
/**
@class wxDebugReportCompress
- @wxheader{debugrpt.h}
wxDebugReportCompress is a wxDebugReport which compresses all the files in
this debug report into a single ZIP file in its wxDebugReport::Process()
*/
wxDebugReportCompress();
+ /**
+ Set the directory where the debug report should be generated.
+
+ By default, the debug report is generated under user temporary files
+ directory. This is usually fine if it is meant to be processed in some
+ way (e.g. automatically uploaded to a remote server) but if the user is
+ asked to manually upload or send the report, it may be more convenient
+ to generate it in e.g. the users home directory and this function
+ allows to do this.
+
+ Notice that it should be called before wxDebugReport::Process() or it
+ has no effect.
+
+ @param dir
+ The full path to an existing directory where the debug report file
+ should be generated.
+
+ @since 2.9.1
+ */
+ void SetCompressedFileDirectory(const wxString& dir);
+
+ /**
+ Set the base name of the generated debug report file.
+
+ This function is similar to SetCompressedFileDirectory() but allows to
+ change the base name of the file. Notice that the file extension will
+ always be @c .zip.
+
+ By default, a unique name constructed from wxApp::GetAppName(), the
+ current process id and the current date and time is used.
+
+ @param name
+ The base name (i.e. without extension) of the file.
+
+ @since 2.9.1
+ */
+ void SetCompressedFileBaseName(const wxString& name);
+
/**
Returns the full path of the compressed file (empty if creation
failed).
*/
- const wxString GetCompressedFileName() const;
+ const wxString& GetCompressedFileName() const;
};
/**
@class wxDebugReport
- @wxheader{debugrpt.h}
wxDebugReport is used to generate a debug report, containing information
about the program current state. It is usually used from
constructor with all the files it contains. Call Reset() to prevent
this from happening.
*/
- ~wxDebugReport();
+ virtual ~wxDebugReport();
/**
Adds all available information to the report. Currently this includes a
Add an XML file containing the current or exception context and the
stack trace.
*/
- bool AddContext(Context ctx);
+ virtual bool AddContext(Context ctx);
/**
The same as calling AddContext(Context_Current).
(@c dbghlp32.dll can be installed under older systems to make minidumps
available).
*/
- bool AddDump(Context ctx);
+ virtual bool AddDump(Context ctx);
/**
The same as calling AddContext(Context_Exception).
/**
Add another file to the report. If @a filename is an absolute path, it
is copied to a file in the debug report directory with the same name.
- Otherwise the file should already exist in this directory
- @a description only exists to be displayed to the user in the report
- summary shown by wxDebugReportPreview.
+ Otherwise the file will be searched in the temporary directory returned
+ by GetDirectory().
+
+ The argument @a description only exists to be displayed to the user in
+ the report summary shown by wxDebugReportPreview.
@see GetDirectory(), AddText()
*/
- void AddFile(const wxString& filename, const wxString& description);
+ virtual void AddFile(const wxString& filename, const wxString& description);
/**
This is a convenient wrapper around AddFile(). It creates the file with
bool AddText(const wxString& filename, const wxString& text,
const wxString& description);
- /**
- This function may be overridden to add arbitrary custom context to the
- XML context file created by AddContext(). By default, it does nothing.
- */
- void DoAddCustomContext(wxXmlNode* nodeRoot);
-
- /**
- This function may be overridden to modify the contents of the exception
- tag in the XML context file.
- */
- bool DoAddExceptionInfo(wxXmlNode* nodeContext);
-
- /**
- This function may be overridden to modify the contents of the modules
- tag in the XML context file.
- */
- bool DoAddLoadedModules(wxXmlNode* nodeModules);
-
- /**
- This function may be overridden to modify the contents of the system
- tag in the XML context file.
- */
- bool DoAddSystemInfo(wxXmlNode* nodeSystemInfo);
-
/**
This method should be used to construct the full name of the files
which you wish to add to the report using AddFile().
@return The name of the temporary directory used for the files in this
report.
*/
- const wxString GetDirectory() const;
+ const wxString& GetDirectory() const;
/**
Retrieves the name (relative to GetDirectory()) and the description of
the file with the given index. If @a n is greater than or equal to the
- number of filse, @false is returned.
+ number of files, then @false is returned.
*/
bool GetFile(size_t n, wxString* name, wxString* desc) const;
Gets the name used as a base name for various files, by default
wxApp::GetAppName() is used.
*/
- wxString GetReportName() const;
+ virtual wxString GetReportName() const;
/**
Returns @true if the object was successfully initialized. If this
after this as it becomes uninitialized and invalid.
*/
void Reset();
+
+protected:
+
+ /**
+ This function may be overridden to add arbitrary custom context to the
+ XML context file created by AddContext(). By default, it does nothing.
+ */
+ virtual void DoAddCustomContext(wxXmlNode* nodeRoot);
+
+ /**
+ This function may be overridden to modify the contents of the exception
+ tag in the XML context file.
+ */
+ virtual bool DoAddExceptionInfo(wxXmlNode* nodeContext);
+
+ /**
+ This function may be overridden to modify the contents of the modules
+ tag in the XML context file.
+ */
+ virtual bool DoAddLoadedModules(wxXmlNode* nodeModules);
+
+ /**
+ This function may be overridden to modify the contents of the system
+ tag in the XML context file.
+ */
+ virtual bool DoAddSystemInfo(wxXmlNode* nodeSystemInfo);
};
/**
@class wxDebugReportPreviewStd
- @wxheader{debugrpt.h}
wxDebugReportPreviewStd is a standard debug report preview window. It
displays a dialog allowing the user to examine the contents of a debug
/**
@class wxDebugReportUpload
- @wxheader{debugrpt.h}
This class is used to upload a compressed file using HTTP POST request. As
this class derives from wxDebugReportCompress, before upload the report is
const wxString& action,
const wxString& curl = "curl");
+protected:
/**
This function may be overridden in a derived class to show the output
from curl: this may be an HTML page or anything else that the server
returned. Value returned by this function becomes the return value of
wxDebugReport::Process().
*/
- bool OnServerReply(const wxArrayString& reply);
+ virtual bool OnServerReply(const wxArrayString& reply);
};