From 3f428ab7c20cbe11e821a6aa44fcee4bf17b3f3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Tue, 1 May 2012 10:25:19 +0200 Subject: [PATCH] Forbid database upgrade from version 2 to version 3 Always display date in insertion and fix a bug in day display --- src/model/DatabaseUpdate.cpp | 2 ++ src/view/grid/GridAccount.cpp | 37 +++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/model/DatabaseUpdate.cpp b/src/model/DatabaseUpdate.cpp index 195feb5..2a8cec8 100644 --- a/src/model/DatabaseUpdate.cpp +++ b/src/model/DatabaseUpdate.cpp @@ -90,6 +90,8 @@ static void Version_2_to_3(QSqlDatabase& _db) req = "UPDATE account SET hidden='0'"; UPDATE_TABLE("2", "3", "2"); + + ON_ERROR(_("Cannot update database version 2 to version 3 because some columns needs to be deleted.")); } static update_func updates[] = { diff --git a/src/view/grid/GridAccount.cpp b/src/view/grid/GridAccount.cpp index c06a7e9..845caf9 100644 --- a/src/view/grid/GridAccount.cpp +++ b/src/view/grid/GridAccount.cpp @@ -441,7 +441,23 @@ void GridAccount::InsertOperation(User* user, Operation& op, int line, bool fix, } else { - setItem(line, OP_DATE, new QTableWidgetItem(_kiss->FormatDate(curDate.day(), month+1, year))); + int day; + if (curDate.year() == year) + { + if (curDate.month() > (month+1)) + day = QDate(year, month+1, 1).daysInMonth(); + else if (curDate.month() < (month+1)) + day = 1; + else + day = curDate.day(); + + } + else if (curDate.year() > year) + day = QDate(year, month+1, 1).daysInMonth(); + else + day = 1; + + setItem(line, OP_DATE, new QTableWidgetItem(_kiss->FormatDate(day, month+1, year))); SET_ROW_COLOR(line, view::OWN_GREEN, Qt::black); } @@ -1051,9 +1067,22 @@ void GridAccount::OnOperationModified(int row, int col) } if (!fix_cost) { - if (_curMonth+1 == curDate.month() && - _curYear == curDate.year()) - setItem(row, OP_DATE, new QTableWidgetItem(_kiss->FormatDate(curDate.day(), _curMonth+1, _curYear))); + int day; + if (curDate.year() == _curYear) + { + if (curDate.month() > (_curMonth+1)) + day = QDate(_curYear, _curMonth+1, 1).daysInMonth(); + else if (curDate.month() < (_curMonth+1)) + day = 1; + else + day = curDate.day(); + + } + else if (curDate.year() > _curYear) + day = QDate(_curYear, _curMonth+1, 1).daysInMonth(); + else + day = 1; + setItem(row, OP_DATE, new QTableWidgetItem(_kiss->FormatDate(day, _curMonth+1, _curYear))); } DEFAULT_FONT(font);