[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krecipes] src: Add model for ingredient name.
From:       José_Manuel_Santamaría_Lema <panfaust () gmail ! com>
Date:       2016-04-07 20:25:06
Message-ID: E1aoGUE-0007O4-Uw () scm ! kde ! org
[Download RAW message or body]

Git commit 806f46cea7b44689a591ae13494359871b19c99a by José Manuel Santamaría Lema.
Committed on 07/04/2016 at 20:13.
Pushed by joselema into branch 'master'.

Add model for ingredient name.

M  +1    -0    src/CMakeLists.txt
M  +11   -1    src/models/kreallingredientsmodels.cpp
M  +3    -0    src/models/kreallingredientsmodels.h
C  +12   -9    src/models/kresinglecolumnproxymodel.cpp [from: \
src/models/kreallingredientsmodels.cpp - 058% similarity] C  +10   -13   \
src/models/kresinglecolumnproxymodel.h [from: src/models/kreallingredientsmodels.h - \
066% similarity]

http://commits.kde.org/krecipes/806f46cea7b44689a591ae13494359871b19c99a

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b104aa1..b133f0a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -41,6 +41,7 @@ qt4_add_dbus_adaptor(krecipesdbs_SRCS \
backends/org.kde.krecipesdb.xml recipedb.h  
 set(krecipesmodels_SRCS
    models/kreallingredientsmodels.cpp
+   models/kresinglecolumnproxymodel.cpp
    )
 
 ############ importers ###############
diff --git a/src/models/kreallingredientsmodels.cpp \
b/src/models/kreallingredientsmodels.cpp index 1da6a5e..3ef16ac 100644
--- a/src/models/kreallingredientsmodels.cpp
+++ b/src/models/kreallingredientsmodels.cpp
@@ -9,16 +9,26 @@
 
 #include "kreallingredientsmodels.h"
 
+#include "kresinglecolumnproxymodel.h"
+
 #include <QStandardItemModel>
 
 
 KreAllIngredientsModels::KreAllIngredientsModels( RecipeDB * database ):
 	m_database( database )
 {
-	m_sourceModel = new QStandardItemModel( this );
+	m_sourceModel = new QStandardItemModel;
+	m_ingredientNameModel = new KreSingleColumnProxyModel( 1 );
+	m_ingredientNameModel->setSortCaseSensitivity( Qt::CaseInsensitive );
+	m_ingredientNameModel->setSourceModel( m_sourceModel );
 }
 
 QStandardItemModel * KreAllIngredientsModels::sourceModel()
 {
 	return m_sourceModel;
 }
+
+KreSingleColumnProxyModel * KreAllIngredientsModels::ingredientNameModel()
+{
+	return m_ingredientNameModel;
+}
diff --git a/src/models/kreallingredientsmodels.h \
b/src/models/kreallingredientsmodels.h index 52cf264..1a0f7b9 100644
--- a/src/models/kreallingredientsmodels.h
+++ b/src/models/kreallingredientsmodels.h
@@ -13,6 +13,7 @@
 #include <QObject>
 
 class RecipeDB;
+class KreSingleColumnProxyModel;
 class QStandardItemModel;
 
 class KreAllIngredientsModels: public QObject {
@@ -22,10 +23,12 @@ public:
 	KreAllIngredientsModels( RecipeDB * database );
 
 	QStandardItemModel * sourceModel();
+	KreSingleColumnProxyModel * ingredientNameModel();
 
 private:
 	RecipeDB * m_database;
 	QStandardItemModel * m_sourceModel;
+	KreSingleColumnProxyModel * m_ingredientNameModel;
 	
 };
 
diff --git a/src/models/kreallingredientsmodels.cpp \
b/src/models/kresinglecolumnproxymodel.cpp similarity index 58%
copy from src/models/kreallingredientsmodels.cpp
copy to src/models/kresinglecolumnproxymodel.cpp
index 1da6a5e..c28ef35 100644
--- a/src/models/kreallingredientsmodels.cpp
+++ b/src/models/kresinglecolumnproxymodel.cpp
@@ -7,18 +7,21 @@
 *   (at your option) any later version.                                    *
 ****************************************************************************/
 
-#include "kreallingredientsmodels.h"
+#include "kresinglecolumnproxymodel.h"
 
-#include <QStandardItemModel>
-
-
-KreAllIngredientsModels::KreAllIngredientsModels( RecipeDB * database ):
-	m_database( database )
+KreSingleColumnProxyModel::KreSingleColumnProxyModel( int column ):
+	QSortFilterProxyModel( 0 ),
+	m_acceptedColumn( column )
 {
-	m_sourceModel = new QStandardItemModel( this );
 }
 
-QStandardItemModel * KreAllIngredientsModels::sourceModel()
+bool KreSingleColumnProxyModel::filterAcceptsColumn( int source_column, 
+	const QModelIndex& source_parent ) const
 {
-	return m_sourceModel;
+	if ( source_column == m_acceptedColumn ) {
+		return QSortFilterProxyModel::filterAcceptsColumn(
+			source_column, source_parent );
+	} else {
+		return false;
+	}
 }
diff --git a/src/models/kreallingredientsmodels.h \
b/src/models/kresinglecolumnproxymodel.h similarity index 66%
copy from src/models/kreallingredientsmodels.h
copy to src/models/kresinglecolumnproxymodel.h
index 52cf264..fdeffa5 100644
--- a/src/models/kreallingredientsmodels.h
+++ b/src/models/kresinglecolumnproxymodel.h
@@ -7,26 +7,23 @@
 *   (at your option) any later version.                                    *
 ****************************************************************************/
 
-#ifndef KREALLINGREDIENTSMODELS_H
-#define KREALLINGREDIENTSMODELS_H
+#ifndef KRESINGLECOLUMNMODEL_H
+#define KRESINGLECOLUMNMODEL_H
 
-#include <QObject>
+#include <QSortFilterProxyModel>
 
-class RecipeDB;
-class QStandardItemModel;
-
-class KreAllIngredientsModels: public QObject {
+class KreSingleColumnProxyModel: public QSortFilterProxyModel {
 Q_OBJECT
 
 public:
-	KreAllIngredientsModels( RecipeDB * database );
+	KreSingleColumnProxyModel( int column );
+
+protected:
+	bool filterAcceptsColumn( int source_column, 
+		const QModelIndex& source_parent ) const;
 
-	QStandardItemModel * sourceModel();
+	int m_acceptedColumn;
 
-private:
-	RecipeDB * m_database;
-	QStandardItemModel * m_sourceModel;
-	
 };
 
 #endif


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic