00001 #ifndef DATADEFINITIONS_H
00002 #define DATADEFINITIONS_H
00003
00004 #include <QTextCodec>
00005 #include <QObject>
00006 #include <QPointer>
00007 #include <stdio.h>
00008 #include <QMultiMap>
00009 using namespace std;
00010
00011
00012
00013 typedef QMultiMap<QString, QPointer<QObject> > AccountingInformation;
00014
00015 enum DataExerciseStatus
00016 {
00017 Correct,
00018 Wrong,
00019 NotCompleted
00020 };
00021
00022 class FileType
00023 {
00024 public:
00025 enum Type
00026 {
00027 Task,
00028 Exercise,
00029 TableOfAccounts
00030 };
00031 };
00032
00033
00034 class AccountsTableHeaders : public QObject
00035 {
00036 public:
00037 enum Headers
00038 {
00039 AccountNumber,
00040 Name,
00041 Description
00042 };
00043
00044 QString header(int column) const
00045 {
00046 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
00047 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
00048 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
00049
00050 switch(column)
00051 {
00052 case AccountsTableHeaders::AccountNumber:
00053 {
00054 return tr("Konto Nummer");
00055 }
00056 case AccountsTableHeaders::Name:
00057 {
00058 return tr("Name des Kontos");
00059 }
00060 case AccountsTableHeaders::Description:
00061 {
00062 return tr("Beschreibung");
00063 }
00064 default:
00065 {
00066 return "";
00067 }
00068 }
00069 }
00070 };
00071
00072 class ABool : public QObject
00073 {
00074 public:
00075 ABool()
00076 {
00077 setValue(false);
00078 }
00079
00080 ABool(QObject *parent) : QObject(parent)
00081 {
00082 setValue(false);
00083 }
00084
00085 void setValue(bool value)
00086 {
00087 this->boolValue = value;
00088 }
00089
00090 bool value() const
00091 {
00092 return boolValue;
00093 }
00094
00095 ABool& operator=(const bool &value)
00096 {
00097 this->setValue(value);
00098 return *this;
00099 }
00100
00101 ABool& operator=(const ABool &value)
00102 {
00103 this->setValue(value.value());
00104 return *this;
00105 }
00106
00107 bool operator==(const bool &a)
00108 {
00109 return (a == value());
00110 }
00111
00112 bool operator==(const ABool &a)
00113 {
00114 return (a.value() == value());
00115 }
00116
00117 bool operator!=(const bool &a)
00118 {
00119 return (a != value());
00120 }
00121
00122 bool operator!=(const ABool &a)
00123 {
00124 return (a.value() != value());
00125 }
00126
00127 bool operator!()
00128 {
00129 return !value();
00130 }
00131
00132 private:
00133 bool boolValue;
00134 };
00135
00136 class SettingsDialogPages
00137 {
00138 public:
00139 enum pages
00140 {
00141 General,
00142 Project,
00143 Print
00144 };
00145 };
00146
00147 class OperatingSystems
00148 {
00149 public:
00150 QString os()
00151 {
00152 QString version;
00153 #ifdef Q_OS_WIN
00154 if(QSysInfo::windowsVersion() == QSysInfo::WV_NT)
00155 {
00156 version = "Microsoft Windows NT";
00157 }
00158 else if(QSysInfo::windowsVersion() == QSysInfo::WV_2000)
00159 {
00160 version = "Microsoft Windows 2000";
00161 }
00162 else if(QSysInfo::windowsVersion() == QSysInfo::WV_XP)
00163 {
00164 version = "Microsoft Windows XP";
00165 }
00166 else if(QSysInfo::windowsVersion() == QSysInfo::WV_VISTA)
00167 {
00168 version = "Microsoft Windows Vista";
00169 }
00170 else
00171 {
00172 version = "Microsoft Windows";
00173 }
00174 #endif
00175 #ifdef Q_OS_DARWIN
00176 if(QSysInfo::MacVersion() == QSysInfo::MV_9)
00177 {
00178 version = "Mac OS 9";
00179 }
00180 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_0)
00181 {
00182 version = "Mac OS X 10.0";
00183 }
00184 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_1)
00185 {
00186 version = "Mac OS X 10.1";
00187 }
00188 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_2)
00189 {
00190 version = "Mac OS X 10.2";
00191 }
00192 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_3)
00193 {
00194 version = "Mac OS X 10.3";
00195 }
00196 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_4)
00197 {
00198 version = "Mac OS X 10.4";
00199 }
00200 else if(QSysInfo::MacVersion() == QSysInfo::MV_10_5)
00201 {
00202 version = "Mac OS X 10.5";
00203 }
00204 else if(QSysInfo::MacVersion() == QSysInfo::MV_CHEETAH)
00205 {
00206 version = "Mac OS X 10.0 Cheetah";
00207 }
00208 else if(QSysInfo::MacVersion() == QSysInfo::MV_PUMA)
00209 {
00210 version = "Mac OS X 10.1 Puma";
00211 }
00212 else if(QSysInfo::MacVersion() == QSysInfo::MV_JAGUAR)
00213 {
00214 version = "Mac OS X 10.2 Jaguar";
00215 }
00216 else if(QSysInfo::MacVersion() == QSysInfo::MV_PANTHER)
00217 {
00218 version = "Mac OS X 10.3 Panther";
00219 }
00220 else if(QSysInfo::MacVersion() == QSysInfo::MV_TIGER)
00221 {
00222 version = "Mac OS X 10.4 Tiger";
00223 }
00224 else if(QSysInfo::MacVersion() == QSysInfo::MV_LEOPARD)
00225 {
00226 version = "Mac OS X 10.5 Leopard";
00227 }
00228 else
00229 {
00230 version = "Mac OS";
00231 }
00232 #endif
00233 #ifdef Q_OS_LINUX
00234 version = "GNU Linux";
00235 #endif
00236
00237 return version;
00238 }
00239 };
00240
00241
00242
00243 static QString normalizedAccountNumber(const int &accountNumberValue)
00244 {
00245
00246
00247
00248 if(accountNumberValue >= 0 && accountNumberValue < 1000)
00249 {
00250 QString accountString = QString::number(accountNumberValue);
00251 int accountLength = accountString.length();
00252 for(int i = accountLength; i < 4; i++)
00253 {
00254 accountString.prepend("0");
00255 }
00256 return accountString;
00257 }
00258 else if(accountNumberValue < 0)
00259 {
00260 return "0000";
00261 }
00262 return QString::number(accountNumberValue);
00263 }
00264
00265 enum DataError
00266 {
00267 ErrorFile = 1,
00268 ErrorXml = 2,
00269 ErrorFormat = 3,
00270 ErrorHash = 4
00271 };
00272
00273 class AccountingRecordWidgetType
00274 {
00275 public:
00276 enum type
00277 {
00278 RowWithData,
00279 RowWithOutData
00280 };
00281 };
00282
00283 #endif