Mercurial > hg > syntilista
diff src/util.cpp @ 246:43a5e09bb832
Split some utility functions to util.{h,cpp}
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 08 May 2018 13:14:29 +0300 |
parents | |
children | 4f947840c806 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/util.cpp Tue May 08 13:14:29 2018 +0300 @@ -0,0 +1,111 @@ +// +// Syntilista - debt list/management database program +// Programmed and designed by Matti Hämäläinen <ccr@tnsp.org> +// (C) Copyright 2017-2018 Tecnic Software productions (TNSP) +// +// Distributed under 3-clause BSD style license, refer to +// included file "COPYING" for exact terms. +// +#include "main.h" +#include "util.h" +#include <QMessageBox> + + +// +// Convert QString to a double value, replacing comma +// +double slMoneyStrToValue(const QString &str) +{ + QString str2 = str; + return str2.replace(",", ".").toDouble(); +} + + +// +// Convert double value to formatted QString +// +QString slMoneyValueToStr(double val) +{ + return QStringLiteral("%1").arg(val, 1, 'f', 2); +} + + +QString slMoneyValueToStrSign(double val) +{ + return QStringLiteral("%1%2"). + arg(val > 0 ? "+" : ""). + arg(val, 1, 'f', 2); +} + + +// +// Trim and cleanup given QString (removing double whitespace etc.) +// +QString slCleanupStr(const QString &str) +{ + return str.simplified().trimmed(); +} + + +// +// Manipulate given QDateTime value to get desired +// correct timestamp. +// +const QDateTime slDateTimeToLocal(const QDateTime &val) +{ + QDateTime tmp = val; + tmp.setOffsetFromUtc(0); + return tmp.toLocalTime(); +} + + +// +// Return a string representation of given QDateTime +// converted to local time. +// +const QString slDateTimeToStr(const QDateTime &val) +{ +// return slDateTimeToLocal(val).toString(QStringLiteral("yyyy-MM-dd hh:mm")); + return slDateTimeToLocal(val).toString(QStringLiteral("dd.MM.yyyy hh:mm")); +} + + +// +// Error logging +// +void slLog(const QString &mtype, const QString &msg) +{ + QString filename = settings.dataPath + QDir::separator() + APP_LOG_FILE; + QFile fh(filename); + if (fh.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) + { + QTextStream out(&fh); + out << + slDateTimeToLocal(QDateTime::currentDateTimeUtc()). + toString(QStringLiteral("yyyy-MM-dd hh:mm:ss")) + << " [" << mtype << "]: " << msg << "\n"; + fh.close(); + } +} + + +// +// Display an error dialog with given title and message +// +int slErrorMsg(const QString &title, const QString &msg) +{ + QMessageBox dlg; + + slLog("ERROR", msg); + + dlg.setText(title); + dlg.setInformativeText(msg); + dlg.setTextFormat(Qt::RichText); + dlg.setIcon(QMessageBox::Critical); + dlg.setStandardButtons(QMessageBox::Ok); + dlg.setDefaultButton(QMessageBox::Ok); + + return dlg.exec(); +} + +