[Tux4kids-commits] r1310 - in tux4kids-admin/trunk/tux4kids-admin: . src

Michał Świtakowski swistakers-guest at alioth.debian.org
Fri Jul 31 19:59:30 UTC 2009


Author: swistakers-guest
Date: 2009-07-31 19:59:29 +0000 (Fri, 31 Jul 2009)
New Revision: 1310

Added:
   tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.cpp
   tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.h
Modified:
   tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt
   tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h
   tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp
   tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h
   tux4kids-admin/trunk/tux4kids-admin/src/src.pro
Log:
+ClassTableProxyModel

Added: tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.cpp	                        (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.cpp	2009-07-31 19:59:29 UTC (rev 1310)
@@ -0,0 +1,25 @@
+#include "classTableProxyModel.h"
+#include "classTableModel.h"
+
+ClassTableProxyModel::ClassTableProxyModel(QObject *parent )
+		: QSortFilterProxyModel(parent)
+{
+}
+
+bool ClassTableProxyModel::lessThan(const QModelIndex &left, const QModelIndex &right) const
+{
+	QVariant leftData = sourceModel()->data(left);
+	QVariant rightData = sourceModel()->data(right);
+
+	switch(left.column()) {
+	case ClassTableModel::ClassSelected:
+		if (leftData.toBool() && !rightData.toBool()) {
+			return true;
+		} else {
+			return false;
+		};
+	case ClassTableModel::ClassName:
+		return QString::localeAwareCompare(leftData.toString(),
+					   rightData.toString()) < 0;
+	}
+}

Added: tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.h	                        (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/classTableProxyModel.h	2009-07-31 19:59:29 UTC (rev 1310)
@@ -0,0 +1,15 @@
+#ifndef CLASSTABLEPROXYMODEL_H
+#define CLASSTABLEPROXYMODEL_H
+
+#include <QSortFilterProxyModel>
+
+class ClassTableProxyModel : public QSortFilterProxyModel
+{
+	Q_OBJECT
+public:
+	ClassTableProxyModel(QObject *parent = 0);
+
+	bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
+};
+
+#endif // CLASSTABLEPROXYMODEL_H

Modified: tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt	2009-07-31 19:24:21 UTC (rev 1309)
+++ tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt	2009-07-31 19:59:29 UTC (rev 1310)
@@ -17,7 +17,8 @@
 	classTableModel.cpp
 	manageClassDialog.cpp
 	manageTeachersWidget.cpp 
-	teacherTableModel.cpp )
+	teacherTableModel.cpp 
+	../classTableProxyModel.cpp )
 
 SET(TUX4KIDS-ADMIN_MOC_HEADERS 
 	mainWindow.h
@@ -32,7 +33,8 @@
 	classTableModel.h 
 	manageClassDialog.h 
 	manageTeachersWidget.h
-	teacherTableModel.h )
+	teacherTableModel.h 
+	../classTableProxyModel.h )
 
 SET(TUX4KIDS-ADMIN_UIS 
 	mainWindow.ui 

Modified: tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h	2009-07-31 19:24:21 UTC (rev 1309)
+++ tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h	2009-07-31 19:59:29 UTC (rev 1310)
@@ -21,12 +21,13 @@
 	QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
 
 	void setSchoolDatabase(SchoolDatabase *schoolDatabase);
-private:
 
 	enum ClassField {
 		ClassSelected = 0,
 		ClassName = 1,
 	};
+private:
+
 	QPointer<SchoolDatabase> m_schoolDatabase;
 	QList<Class> m_classes;
 	QList<bool> m_classesSelection;

Modified: tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp	2009-07-31 19:24:21 UTC (rev 1309)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp	2009-07-31 19:59:29 UTC (rev 1310)
@@ -10,7 +10,8 @@
 {
 	m_ui->setupUi(this);
 
-	m_ui->classesTable->setModel(m_mainController->classTableModel());
+	m_classTableProxyModel.setSourceModel(m_mainController->classTableModel());
+	m_ui->classesTable->setModel(&m_classTableProxyModel);
 
 	connect(m_ui->addClassButton, SIGNAL(clicked()), this, SLOT(addClicked()));
 }

Modified: tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h	2009-07-31 19:24:21 UTC (rev 1309)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h	2009-07-31 19:59:29 UTC (rev 1310)
@@ -4,6 +4,8 @@
 #include <QtGui/QWidget>
 #include <QPointer>
 
+#include "classTableProxyModel.h"
+
 namespace Ui {
 	class ManageClassesWidget;
 }
@@ -23,6 +25,7 @@
 
 	QPointer<MainController> m_mainController;
 	QPointer<ManageClassDialog> m_addClassDialog;
+	ClassTableProxyModel m_classTableProxyModel;
 
 private slots:
 	void addClicked();

Modified: tux4kids-admin/trunk/tux4kids-admin/src/src.pro
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/src.pro	2009-07-31 19:24:21 UTC (rev 1309)
+++ tux4kids-admin/trunk/tux4kids-admin/src/src.pro	2009-07-31 19:59:29 UTC (rev 1310)
@@ -18,7 +18,8 @@
     classTableModel.cpp \
     manageClassDialog.cpp \
     manageTeachersWidget.cpp \
-    teacherTableModel.cpp
+    teacherTableModel.cpp \
+    ../classTableProxyModel.cpp
 HEADERS += mainWindow.h \
     mainController.h \
     pluginManager.h \
@@ -33,7 +34,8 @@
     classTableModel.h \
     manageClassDialog.h \
     manageTeachersWidget.h \
-    teacherTableModel.h
+    teacherTableModel.h \
+    ../classTableProxyModel.h
 FORMS += mainWindow.ui \
     pluginManagerDialog.ui \
     manageStudentsWidget.ui \




More information about the Tux4kids-commits mailing list