[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [krecipes] src/dialogs/recipeinput: Use the new ingredient name model in the delegate.
From: José_Manuel_Santamaría_Lema <panfaust () gmail ! com>
Date: 2016-04-07 20:25:06
Message-ID: E1aoGUE-0007O4-W4 () scm ! kde ! org
[Download RAW message or body]
Git commit 4733f8582d65a00f285550c442672f69db1440b2 by José Manuel Santamaría Lema.
Committed on 07/04/2016 at 20:20.
Pushed by joselema into branch 'master'.
Use the new ingredient name model in the delegate.
M +7 -9 src/dialogs/recipeinput/ingredientnamedelegate.cpp
M +4 -1 src/dialogs/recipeinput/ingredientnamedelegate.h
M +1 -1 src/dialogs/recipeinput/ingredientseditor.cpp
http://commits.kde.org/krecipes/4733f8582d65a00f285550c442672f69db1440b2
diff --git a/src/dialogs/recipeinput/ingredientnamedelegate.cpp \
b/src/dialogs/recipeinput/ingredientnamedelegate.cpp index 1161248..2a24b9f 100644
--- a/src/dialogs/recipeinput/ingredientnamedelegate.cpp
+++ b/src/dialogs/recipeinput/ingredientnamedelegate.cpp
@@ -11,6 +11,8 @@
#include "dialogs/recipeinput/ingredientseditor.h"
#include "backends/recipedb.h"
+#include "models/kreallingredientsmodels.h"
+#include "models/kresinglecolumnproxymodel.h"
#include "datablocks/unit.h"
#include <KComboBox>
@@ -19,7 +21,9 @@
//#include <kdebug.h>
-IngredientNameDelegate::IngredientNameDelegate(QObject *parent): \
QStyledItemDelegate(parent) +IngredientNameDelegate::IngredientNameDelegate( RecipeDB \
* database, QObject *parent ): + QStyledItemDelegate(parent),
+ m_database(database)
{
}
@@ -100,12 +104,8 @@ QWidget * IngredientNameDelegate::createEditor(QWidget *parent, \
const QStyleOpti
//Order
editor->completionObject()->setOrder( KCompletion::Sorted );
- QSortFilterProxyModel * proxyModel = new QSortFilterProxyModel( editor );
- proxyModel->setSourceModel(editor->model());
- // editor's current model must be reparented,
- // otherwise QComboBox::setModel() will delete it
- editor->model()->setParent(proxyModel);
- editor->setModel( proxyModel );
+
+ editor->setModel( m_database->allIngredientsModels()->ingredientNameModel() );
//Fill the items and the completion objects
int i = 0;
@@ -119,12 +119,10 @@ QWidget * IngredientNameDelegate::createEditor(QWidget *parent, \
const QStyleOpti it_end = m_idToIngredientMap.constEnd();
}
while( it != it_end ) {
- editor->insertItem( i, it.value().name );
editor->completionObject()->addItem( it.value().name );
++i;
++it;
}
- proxyModel->sort(0);
return editor;
}
diff --git a/src/dialogs/recipeinput/ingredientnamedelegate.h \
b/src/dialogs/recipeinput/ingredientnamedelegate.h index f44fc48..e2e052a 100644
--- a/src/dialogs/recipeinput/ingredientnamedelegate.h
+++ b/src/dialogs/recipeinput/ingredientnamedelegate.h
@@ -24,7 +24,8 @@ class IngredientNameDelegate : public QStyledItemDelegate
Q_OBJECT
public:
- IngredientNameDelegate(QObject *parent = 0);
+ IngredientNameDelegate( RecipeDB * database,
+ QObject *parent = 0 );
void loadAllIngredientsList( RecipeDB * database );
void loadAllHeadersList( RecipeDB * database );
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const \
QModelIndex &index) const; @@ -42,6 +43,8 @@ private slots:
void headerRemovedSlot( int id );
private:
+ RecipeDB * m_database;
+
QHash<RecipeDB::IdType,Element> m_idToIngredientMap;
QMultiHash<QString,RecipeDB::IdType> m_ingredientNameToIdMap;
diff --git a/src/dialogs/recipeinput/ingredientseditor.cpp \
b/src/dialogs/recipeinput/ingredientseditor.cpp index 99078d0..5589ba4 100644
--- a/src/dialogs/recipeinput/ingredientseditor.cpp
+++ b/src/dialogs/recipeinput/ingredientseditor.cpp
@@ -186,7 +186,7 @@ void IngredientsEditor::loadIngredientList( IngredientList * \
ingredientList ) m_sourceModel->setRowCount( ingredientList->count() );
//Set ingredient name delegate
- IngredientNameDelegate * ingredientNameDelegate = new IngredientNameDelegate;
+ IngredientNameDelegate * ingredientNameDelegate = new IngredientNameDelegate( \
m_database ); if ( m_database ) {
ingredientNameDelegate->loadAllIngredientsList( m_database );
ingredientNameDelegate->loadAllHeadersList( m_database );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic