datetablewidgetitem.cpp
1 //------------------------------------------------------------------------------
2 // datetablewidgetitem.cpp
3 //------------------------------------------------------------------------------
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301, USA.
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2013 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 #include "datetablewidgetitem.h"
24 
25 DateTableWidgetItem::DateTableWidgetItem(const QDateTime& date,
26  const QString& displayFormat)
27 {
28  this->date = date;
29  this->displayFormat = displayFormat;
30  updateInternalData();
31 }
32 
33 QString DateTableWidgetItem::displayedText() const
34 {
35  return date.toString(displayFormat);
36 }
37 
38 bool DateTableWidgetItem::operator<(const QTableWidgetItem& other) const
39 {
40  return data(Qt::EditRole).toDateTime() < other.data(Qt::EditRole).toDateTime();
41 }
42 
43 void DateTableWidgetItem::setDisplayFormat(const QString& format)
44 {
45  this->displayFormat = displayFormat;
46  updateInternalData();
47 }
48 
49 void DateTableWidgetItem::setDateTime(const QDateTime& date)
50 {
51  this->date = date;
52  updateInternalData();
53 }
54 
55 void DateTableWidgetItem::updateInternalData()
56 {
57  setData(Qt::DisplayRole, this->date.toString(this->displayFormat));
58  setData(Qt::EditRole, this->date);
59 }