I've been getting segmentation fault error with below code.
Header file is below
#include <QSortFilterProxyModel>
#include <QDateTime>
class TransactionFilterProxy : public QSortFilterProxyModel
{
Q_OBJECT
public:
explicit TransactionFilterProxy(QObject *parent = 0);
static const QDateTime MIN_DATE;
static const QDateTime MAX_DATE;
void setDateRange(const QDateTime &from, const QDateTime &to);
protected:
bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;
private:
QDateTime dateFrom;
QDateTime dateTo;
};
And CPP file is below
#include "transactionfilterproxy.h"
#include "transactiontablemodel.h"
#include <QDateTime>
#include <cstdlib>
const QDateTime TransactionFilterProxy::MIN_DATE = QDateTime::fromTime_t(0);
const QDateTime TransactionFilterProxy::MAX_DATE = QDateTime::fromTime_t(0xFFFFFFFF);
TransactionFilterProxy::TransactionFilterProxy(QObject *parent) :
QSortFilterProxyModel(parent),
dateFrom(MIN_DATE),
dateTo(MAX_DATE)
{
}
bool TransactionFilterProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
int type = index.data(TransactionTableModel::TypeRole).toInt();
QDateTime datetime = index.data(TransactionTableModel::DateRole).toDateTime();
if( datetime < dateFrom || datetime > dateTo) //crashes here
return false;
return true;
}
void TransactionFilterProxy::setDateRange(const QDateTime &from, const QDateTime &to)
{
this->dateFrom = from; //crashes here
this->dateTo = to;
invalidateFilter();
}
Application crashes when the QDateTime class members dateFrom was accessed. Tried to run debug mode with QTcreator, it shows SIGSEGV error. Any suggestion would be great.
User contributions licensed under CC BY-SA 3.0