[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