00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KROSS_ERRORINTERFACE_H
00021 #define KROSS_ERRORINTERFACE_H
00022
00023 #include <QString>
00024 #include <koffice_export.h>
00025
00026 #include "krossconfig.h"
00027
00028 namespace Kross {
00029
00033 class KROSSCORE_EXPORT ErrorInterface
00034 {
00035 public:
00036
00044 ErrorInterface() {}
00045
00049 bool hadError() const { return ! m_error.isNull(); }
00050
00054 const QString errorMessage() const { return m_error; }
00055
00059 const QString errorTrace() const { return m_trace; }
00060
00065 long errorLineNo() const { return m_lineno; }
00066
00070 void setError(const QString& errormessage, const QString& tracemessage = QString::null, long lineno = -1) {
00071 m_error = errormessage;
00072 m_trace = tracemessage;
00073 m_lineno = lineno;
00074 krosswarning( QString("Error error=%1 lineno=%2 trace=\n%3").arg(m_error).arg(m_lineno).arg(m_trace) );
00075 }
00076
00080 void setError(ErrorInterface* error) {
00081 m_error = error->errorMessage();
00082 m_trace = error->errorTrace();
00083 m_lineno = error->errorLineNo();
00084 }
00085
00089 void clearError() {
00090 m_error = QString::null;
00091 m_trace = QString::null;
00092 m_lineno = -1;
00093 }
00094
00095 private:
00097 QString m_error;
00099 QString m_trace;
00101 long m_lineno;
00102 };
00103
00104 }
00105
00106 #endif
00107