Create a CREATE_INSTANCE_METHOD macro

This is just to simplify the creation of more filters.
more macros will be used, because I tend to abuse them.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-11-13 16:34:55 -02:00 committed by Dirk Hohndel
parent 10fecefddd
commit dfea10fbb8

View file

@ -4,14 +4,21 @@
#include "mainwindow.h"
#include "display.h"
TagFilterModel::TagFilterModel(QObject *parent) : QStringListModel(parent)
{
#define CREATE_INSTANCE_METHOD( CLASS ) \
CLASS *CLASS::instance() \
{ \
static CLASS *self = new CLASS(); \
return self; \
}
TagFilterModel *TagFilterModel::instance()
CREATE_INSTANCE_METHOD(TagFilterModel);
CREATE_INSTANCE_METHOD(BuddyFilterModel);
CREATE_INSTANCE_METHOD(LocationFilterModel);
#undef CREATE_INSTANCE_METHOD
TagFilterModel::TagFilterModel(QObject *parent) : QStringListModel(parent)
{
static TagFilterModel *self = new TagFilterModel();
return self;
}
QVariant TagFilterModel::data(const QModelIndex &index, int role) const
@ -126,12 +133,6 @@ BuddyFilterModel::BuddyFilterModel(QObject *parent) : QStringListModel(parent)
{
}
BuddyFilterModel *BuddyFilterModel::instance()
{
static BuddyFilterModel *self = new BuddyFilterModel();
return self;
}
bool BuddyFilterModel::doFilter(dive *d, QModelIndex &index0, QAbstractItemModel *sourceModel) const
{
// If there's nothing checked, this should show everything
@ -316,12 +317,6 @@ Qt::ItemFlags LocationFilterModel::flags(const QModelIndex &index) const
return QStringListModel::flags(index) | Qt::ItemIsUserCheckable;
}
LocationFilterModel *LocationFilterModel::instance()
{
static LocationFilterModel *self = new LocationFilterModel();
return self;
}
void LocationFilterModel::repopulate()
{
QStringList list;