[Tux4kids-commits] r1434 - in tux4kids-admin/trunk: libtux4kidsadmin tux4kids-admin/src

Michał Świtakowski swistakers-guest at alioth.debian.org
Fri Aug 14 22:25:09 UTC 2009


Author: swistakers-guest
Date: 2009-08-14 22:25:09 +0000 (Fri, 14 Aug 2009)
New Revision: 1434

Modified:
   tux4kids-admin/trunk/libtux4kidsadmin/computerDir.cpp
   tux4kids-admin/trunk/libtux4kidsadmin/computerDir.h
   tux4kids-admin/trunk/libtux4kidsadmin/computerDir_p.h
   tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp
   tux4kids-admin/trunk/libtux4kidsadmin/schoolData.h
   tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp
   tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h
   tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h
   tux4kids-admin/trunk/tux4kids-admin/src/studentTableDelegate.cpp
   tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp
Log:
gui for changing computers works

Modified: tux4kids-admin/trunk/libtux4kidsadmin/computerDir.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/computerDir.cpp	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/computerDir.cpp	2009-08-14 22:25:09 UTC (rev 1434)
@@ -3,8 +3,17 @@
 
 /**************************** ComputerPrivate *************************/
 
-ComputerDirPrivate::ComputerDirPrivate()
+ComputerDirPrivate::ComputerDirPrivate(QString path, int num)
 {
+	QDir parentDir(path);
+	QString dirName = QString("computer_%1").arg(number);
+	if (!parentDir.exists(dirName)) {
+		if (!parentDir.mkdir(dirName)) {
+			//report error
+		}
+	}
+	mainDir.setPath(parentDir.absoluteFilePath(dirName));
+	number = num;
 }
 
 ComputerDirPrivate::~ComputerDirPrivate()
@@ -13,9 +22,9 @@
 
 /**************************** ComputerDir *************************/
 
-ComputerDir::ComputerDir(QObject *parent)
+ComputerDir::ComputerDir(QString path, int number, QObject *parent)
 		: QObject(parent),
-		d_ptr(new ComputerDirPrivate())
+		d_ptr(new ComputerDirPrivate(path, number))
 {
 	Q_D(ComputerDir);
 	d->q_ptr = this;

Modified: tux4kids-admin/trunk/libtux4kidsadmin/computerDir.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/computerDir.h	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/computerDir.h	2009-08-14 22:25:09 UTC (rev 1434)
@@ -2,20 +2,25 @@
 #define COMPUTERDIR_H
 
 #include <QObject>
+#include <QDir>
 
 class ComputerDirPrivate;
+class StudentDir;
 
 class ComputerDir : public QObject
 {
 	Q_OBJECT
 public:
-	ComputerDir(QObject *parent = 0);
+	ComputerDir(QString path, int num, QObject *parent = 0);
 	~ComputerDir();
 
 protected:
 	ComputerDirPrivate * const d_ptr;
 	ComputerDir(ComputerDirPrivate &dd, QObject *parent = 0);
 
+	QDir mainDir;
+	StudentDir *studentDir;
+
 private:
 	Q_DECLARE_PRIVATE(ComputerDir)
 	Q_DISABLE_COPY(ComputerDir)

Modified: tux4kids-admin/trunk/libtux4kidsadmin/computerDir_p.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/computerDir_p.h	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/computerDir_p.h	2009-08-14 22:25:09 UTC (rev 1434)
@@ -10,12 +10,13 @@
 public:
 	Q_DECLARE_PUBLIC(ComputerDir)
 
-	ComputerDirPrivate();
+	ComputerDirPrivate(QString path, int number);
 	virtual ~ComputerDirPrivate();
 
 	ComputerDir *q_ptr;
 
 	QDir mainDir;
+	int number;
 };
 
 

Modified: tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp	2009-08-14 22:25:09 UTC (rev 1434)
@@ -1,6 +1,7 @@
 #include "schoolData.h"
 #include "schoolData_p.h"
 #include "studentDir.h"
+#include "studentDir_p.h"
 
 #include <QString>
 #include <QDebug>
@@ -134,6 +135,10 @@
 
 int SchoolData::setComputerCount(int computerCount)
 {
+}
 
+int SchoolData::setStudentComputer(StudentDir *student, int computerNumber)
+{
+	student->d_func()->computerNumber = computerNumber;
 }
 

Modified: tux4kids-admin/trunk/libtux4kidsadmin/schoolData.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/schoolData.h	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/schoolData.h	2009-08-14 22:25:09 UTC (rev 1434)
@@ -30,6 +30,7 @@
 	SchoolDatabase *schoolDatabase();
 	int computerCount() const;
 	int setComputerCount(int computerCount);
+	int setStudentComputer(StudentDir *student, int computerNumber);
 
 protected:
 	SchoolDataPrivate * const d_ptr;

Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp	2009-08-14 22:25:09 UTC (rev 1434)
@@ -9,7 +9,8 @@
 /****************** StudentDirPrivate *******************/
 
 StudentDirPrivate::StudentDirPrivate(QString path) :
-		status(StudentDir::NoError)
+		status(StudentDir::NoError),
+		computerNumber(-1)
 {
 	mainDir.setPath(path);
 	if (!mainDir.exists()) {
@@ -144,6 +145,12 @@
 	return d->profiles;
 }
 
+int StudentDir::computerNumber() const
+{
+	Q_D(const StudentDir);
+	return d->computerNumber;
+}
+
 /*void StudentDir::setClasses(const QList<Class> &classes)
 {
 	Q_D(StudentDir);

Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h	2009-08-14 22:25:09 UTC (rev 1434)
@@ -33,6 +33,7 @@
 	ProfileDir *addProfileDir(QString profileType);
 	QList<Class> *classes();
 	QList<ProfileDir *> profiles();
+	int computerNumber() const;
 	//void setClasses(const QList<Class>& classes);
 
 protected:
@@ -41,6 +42,9 @@
 private:
 	Q_DECLARE_PRIVATE(StudentDir)
 	Q_DISABLE_COPY(StudentDir)
+
+	friend class SchoolData;
+	friend class ComputerDir;
 };
 
 #endif // STUDENTDIR_H

Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h	2009-08-14 22:25:09 UTC (rev 1434)
@@ -30,6 +30,7 @@
 	QDir mainDir;
 	QList<ProfileDir *> profiles;
 	QList<Class> classes;
+	int computerNumber;
 };
 
 #endif // STUDENTDIR_P_H

Modified: tux4kids-admin/trunk/tux4kids-admin/src/studentTableDelegate.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/studentTableDelegate.cpp	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/tux4kids-admin/src/studentTableDelegate.cpp	2009-08-14 22:25:09 UTC (rev 1434)
@@ -28,7 +28,7 @@
 			int computerCount = model->computerCount();
 			comboBox->addItem(data);
 			for (int i = 1; i <= computerCount; ++i) {
-				comboBox->addItem(tr("Computer %1").arg(i));
+				comboBox->addItem(tr("Computer %1").arg(i), i);
 			}
 		} else {
 			const StudentTableProxyModel *proxyModel = qobject_cast<const StudentTableProxyModel *>(index.model());
@@ -37,7 +37,7 @@
 				int computerCount = model->computerCount();
 				comboBox->addItem(data);
 				for (int i = 1; i <= computerCount; ++i) {
-					comboBox->addItem(tr("Computer %1").arg(i));
+					comboBox->addItem(tr("Computer %1").arg(i), i);
 				}
 			}
 		}
@@ -49,7 +49,7 @@
 {
 	QComboBox *comboBox = static_cast<QComboBox *>(editor);
 	if (comboBox != 0) {
-		qDebug() << "data set to" << comboBox->currentText();
+		model->setData(index, comboBox->itemData(comboBox->currentIndex(), Qt::UserRole), Qt::UserRole);
 	}
 }
 

Modified: tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp	2009-08-14 21:16:04 UTC (rev 1433)
+++ tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp	2009-08-14 22:25:09 UTC (rev 1434)
@@ -65,9 +65,15 @@
 			return m_students.at(index.row())->firstName();
 		case StudentLastName:
 			return m_students.at(index.row())->lastName();
-		case StudentComputer:
-			return tr("None");
+		case StudentComputer: {
+			int computerNumber = m_students.at(index.row())->computerNumber();
+			if (computerNumber <= 0) {
+				return tr("None");
+			} else {
+				return tr("Computer %1").arg(computerNumber);
+			}
 		}
+		}
 	} else if (role == Qt::CheckStateRole) {
 		if (index.column() == StudentSelected) {
 			if (m_studentsSelection[index.row()]) {
@@ -76,6 +82,14 @@
 				return Qt::Unchecked;
 			}
 		}
+	} else if (role == Qt::UserRole) {
+		if (index.column() == StudentComputer) {
+			return m_students.at(index.row())->computerNumber();
+		}
+	} else if (role == Qt::ToolTipRole) {
+		if (index.column() == StudentComputer) {
+			return tr("Double click to change");
+		}
 	}
 	return QVariant();
 }
@@ -100,6 +114,8 @@
 		m_studentsSelection[index.row()] = !m_studentsSelection[index.row()];
 		emit dataChanged(index, index);
 		return true;
+	} else if (role == Qt::UserRole && index.column() == StudentComputer) {
+		m_schoolData->setStudentComputer(m_students.at(index.row()), value.toInt());
 	}
 	return false;
 }




More information about the Tux4kids-commits mailing list