[Tux4kids-commits] r1255 - in tux4kids-admin/trunk: libtux4kidsadmin tux4kids-admin/src
Michał Świtakowski
swistakers-guest at alioth.debian.org
Thu Jul 23 12:49:56 UTC 2009
Author: swistakers-guest
Date: 2009-07-23 12:49:53 +0000 (Thu, 23 Jul 2009)
New Revision: 1255
Added:
tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.cpp
tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h
tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.cpp
tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.h
tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.ui
tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp
tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h
tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.ui
Modified:
tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp
tux4kids-admin/trunk/libtux4kidsadmin/schoolDatabase.cpp
tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt
tux4kids-admin/trunk/tux4kids-admin/src/mainController.cpp
tux4kids-admin/trunk/tux4kids-admin/src/mainController.h
tux4kids-admin/trunk/tux4kids-admin/src/mainWindow.cpp
tux4kids-admin/trunk/tux4kids-admin/src/src.pro
tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp
tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.h
Log:
some gui elements for managing classes
Modified: tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/libtux4kidsadmin/schoolData.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -21,7 +21,7 @@
loadStudentDirs();
- //qDebug() << database.open("/home/swistak/test.db");
+ qDebug() << database.open("/home/swistak/test.db");
}
Modified: tux4kids-admin/trunk/libtux4kidsadmin/schoolDatabase.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/schoolDatabase.cpp 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/libtux4kidsadmin/schoolDatabase.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -40,6 +40,28 @@
lastError = createTeachers.lastError().text();
return;
}
+
+ QSqlQuery createStudents("CREATE TABLE students (id integer primary key, profile_name text)", db);
+ if (!createStudents.isActive()) {
+ error = true;
+ lastError = createStudents.lastError().text();
+ return;
+ }
+
+ QSqlQuery createClassTeachers("CREATE TABLE class_teachers (id_class integer, id_teacher integer, primary key(id_class,id_teacher))", db);
+ if (!createClassTeachers.isActive()) {
+ error = true;
+ lastError = createClassTeachers.lastError().text();
+ return;
+ }
+
+ QSqlQuery createClassStudents("CREATE TABLE class_students (id_class integer, id_student integer, primary key(id_class,id_student))", db);
+ if (!createClassStudents.isActive()) {
+ error = true;
+ lastError = createClassStudents.lastError().text();
+ return;
+ }
+
}
/************************ SchoolDatabase **************************/
@@ -66,6 +88,10 @@
{
Q_D(SchoolDatabase);
+ if (d->db.isOpen()) {
+ close();
+ }
+
QFile dbFile(dbFilePath);
d->db.setDatabaseName(dbFilePath);
if (dbFile.exists()) {
@@ -95,3 +121,6 @@
Q_D(SchoolDatabase);
return d->lastError;
}
+
+
+
Modified: tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/CMakeLists.txt 2009-07-23 12:49:53 UTC (rev 1255)
@@ -12,7 +12,10 @@
manageStudentsWidget.cpp
addStudentDialog.cpp
studentTableModel.cpp
- studentTableProxyModel.cpp )
+ studentTableProxyModel.cpp
+ manageClassesWidget.cpp
+ classTableModel.cpp
+ manageClassDialog.cpp )
SET(TUX4KIDS-ADMIN_MOC_HEADERS
mainWindow.h
@@ -22,13 +25,18 @@
manageStudentsWidget.h
addStudentDialog.h
studentTableModel.h
- studentTableProxyModel.h )
+ studentTableProxyModel.h
+ manageClassesWidget.h
+ classTableModel.h
+ manageClassDialog.h )
SET(TUX4KIDS-ADMIN_UIS
mainWindow.ui
pluginManagerDialog.ui
manageStudentsWidget.ui
- addStudentDialog.ui )
+ addStudentDialog.ui
+ manageClassesWidget.ui
+ manageClassDialog.ui )
# enable warnings
ADD_DEFINITIONS( -Wall )
Added: tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.cpp (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,6 @@
+#include "classTableModel.h"
+
+ClassTableModel::ClassTableModel(QObject *parent)
+ : QAbstractTableModel(parent)
+{
+}
Added: tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/classTableModel.h 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,13 @@
+#ifndef CLASSTABLEMODEL_H
+#define CLASSTABLEMODEL_H
+
+#include <QAbstractTableModel>
+
+class ClassTableModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ ClassTableModel(QObject *parent = 0);
+};
+
+#endif // CLASSTABLEMODEL_H
Modified: tux4kids-admin/trunk/tux4kids-admin/src/mainController.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/mainController.cpp 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/mainController.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -6,7 +6,8 @@
#include "schoolData.h"
#include "profileDirFactory.h"
-MainController::MainController()
+MainController::MainController(QObject *parent)
+ : QObject(parent)
{
m_pluginManager.setPluginsPath(qApp->applicationDirPath() + "/plugins");
m_pluginManager.loadPlugins();
Modified: tux4kids-admin/trunk/tux4kids-admin/src/mainController.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/mainController.h 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/mainController.h 2009-07-23 12:49:53 UTC (rev 1255)
@@ -14,7 +14,7 @@
Q_OBJECT
public:
- MainController();
+ MainController(QObject *parent = 0);
~MainController();
PluginManager *pluginManager();
Modified: tux4kids-admin/trunk/tux4kids-admin/src/mainWindow.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/mainWindow.cpp 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/mainWindow.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -3,6 +3,7 @@
#include "pluginManagerDialog.h"
#include "manageStudentsWidget.h"
#include "mainController.h"
+#include "manageClassesWidget.h"
MainWindow::MainWindow(MainController *mainController, QWidget *parent) : QMainWindow(parent), m_ui(new Ui::MainWindow)
{
@@ -10,6 +11,7 @@
m_mainController = mainController;
m_ui->tabWidget->insertTab(1, new ManageStudentsWidget(m_mainController, this), tr("Students"));
+ m_ui->tabWidget->insertTab(2, new ManageClassesWidget(m_mainController, this), tr("Classes and Teachers"));
connect(m_ui->actionPlugins, SIGNAL(triggered()), this, SLOT(pluginsManagerClicked()));
}
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.cpp (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,19 @@
+#include "manageClassDialog.h"
+#include "ui_manageClassDialog.h"
+#include "mainController.h"
+
+ManageClassDialog::ManageClassDialog(MainController *mainController, QWidget *parent) :
+ QDialog(parent),
+ m_ui(new Ui::ManageClassDialog),
+ m_mainController(mainController)
+{
+ m_ui->setupUi(this);
+
+ m_studentTableModel.setSchoolData(m_mainController->schoolData());
+ m_ui->studentsTable->setModel(&m_studentTableModel);
+}
+
+ManageClassDialog::~ManageClassDialog()
+{
+ delete m_ui;
+}
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.h (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.h 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,29 @@
+#ifndef MANAGECLASSDIALOG_H
+#define MANAGECLASSDIALOG_H
+
+#include <QtGui/QDialog>
+#include <QPointer>
+
+#include "studentTableModel.h"
+
+class MainController;
+
+namespace Ui {
+ class ManageClassDialog;
+}
+
+class ManageClassDialog : public QDialog
+{
+ Q_OBJECT
+public:
+ ManageClassDialog(MainController *mainController, QWidget *parent = 0);
+ ~ManageClassDialog();
+
+private:
+ Ui::ManageClassDialog *m_ui;
+ QPointer <MainController> m_mainController;
+ StudentTableModel m_studentTableModel;
+
+};
+
+#endif // MANAGECLASSDIALOG_H
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.ui
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.ui (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassDialog.ui 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ManageClassDialog</class>
+ <widget class="QDialog" name="ManageClassDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>424</width>
+ <height>367</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ </property>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="classNameEdit"/>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Class name:</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTableView" name="studentsTable"/>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,28 @@
+#include "manageClassesWidget.h"
+#include "ui_manageClassesWidget.h"
+#include "manageClassDialog.h"
+#include "mainController.h"
+
+ManageClassesWidget::ManageClassesWidget(MainController *mainController, QWidget *parent) :
+ QWidget(parent),
+ m_ui(new Ui::ManageClassesWidget),
+ m_mainController(mainController)
+{
+ m_ui->setupUi(this);
+
+ connect(m_ui->addClassButton, SIGNAL(clicked()), this, SLOT(addClicked()));
+}
+
+ManageClassesWidget::~ManageClassesWidget()
+{
+ delete m_ui;
+}
+
+void ManageClassesWidget::addClicked()
+{
+ if (m_addClassDialog == 0) {
+ m_addClassDialog = new ManageClassDialog(m_mainController);
+ }
+
+ m_addClassDialog->showNormal();
+}
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.h 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,31 @@
+#ifndef MANAGECLASSESWIDGET_H
+#define MANAGECLASSESWIDGET_H
+
+#include <QtGui/QWidget>
+#include <QPointer>
+
+namespace Ui {
+ class ManageClassesWidget;
+}
+
+class MainController;
+class ManageClassDialog;
+
+class ManageClassesWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ ManageClassesWidget(MainController *mainController, QWidget *parent = 0);
+ ~ManageClassesWidget();
+
+private:
+ Ui::ManageClassesWidget *m_ui;
+
+ QPointer<MainController> m_mainController;
+ QPointer<ManageClassDialog> m_addClassDialog;
+
+private slots:
+ void addClicked();
+};
+
+#endif // MANAGECLASSESWIDGET_H
Added: tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.ui
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.ui (rev 0)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageClassesWidget.ui 2009-07-23 12:49:53 UTC (rev 1255)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ManageClassesWidget</class>
+ <widget class="QWidget" name="ManageClassesWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QTableView" name="classesTable"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="addClassButton">
+ <property name="text">
+ <string>Add</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
Modified: tux4kids-admin/trunk/tux4kids-admin/src/src.pro
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/src.pro 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/src.pro 2009-07-23 12:49:53 UTC (rev 1255)
@@ -12,7 +12,10 @@
manageStudentsWidget.cpp \
addStudentDialog.cpp \
studentTableModel.cpp \
- studentTableProxyModel.cpp
+ studentTableProxyModel.cpp \
+ manageClassesWidget.cpp \
+ classTableModel.cpp \
+ manageClassDialog.cpp
HEADERS += mainWindow.h \
mainController.h \
pluginManager.h \
@@ -22,10 +25,15 @@
manageStudentsWidget.h \
addStudentDialog.h \
studentTableModel.h \
- studentTableProxyModel.h
+ studentTableProxyModel.h \
+ manageClassesWidget.h \
+ classTableModel.h \
+ manageClassDialog.h
FORMS += mainWindow.ui \
pluginManagerDialog.ui \
manageStudentsWidget.ui \
- addStudentDialog.ui
+ addStudentDialog.ui \
+ manageClassesWidget.ui \
+ manageClassDialog.ui
LIBS += -ltux4kidsadmin \
-L../../libtux4kidsadmin
Modified: tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.cpp 2009-07-23 12:49:53 UTC (rev 1255)
@@ -20,7 +20,7 @@
int StudentTableModel::columnCount(const QModelIndex &parent) const
{
- return 2;
+ return 3;
}
QVariant StudentTableModel::headerData(int section, Qt::Orientation orientation, int role) const
@@ -60,13 +60,46 @@
case StudentLastName:
return m_students.at(index.row())->lastName();
}
+ } else if (role == Qt::CheckStateRole) {
+ if (index.column() == StudentSelected) {
+ if (m_studentsSelection[index.row()]) {
+ return Qt::Checked;
+ } else {
+ return Qt::Unchecked;
+ }
+ }
}
return QVariant();
}
+Qt::ItemFlags StudentTableModel::flags(const QModelIndex &index) const
+{
+ Qt::ItemFlags result;
+ result = Qt::ItemIsEnabled
+ | Qt::ItemIsSelectable;
+ if (index.column() == StudentSelected) {
+ result |= (Qt::ItemIsUserCheckable | Qt::ItemIsEditable);
+ }
+ return result;
+}
+
+bool StudentTableModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ if (role == Qt::CheckStateRole && index.column() == StudentSelected) {
+ m_studentsSelection[index.row()] = !m_studentsSelection[index.row()];
+ emit dataChanged(index, index);
+ return true;
+ }
+ return false;
+}
+
void StudentTableModel::setSchoolData(const SchoolData *schoolData)
{
m_students = schoolData->students();
+
+ for (int i = 0; i < m_students.size(); i++) {
+ m_studentsSelection.append(false);
+ }
connect(schoolData, SIGNAL(studentAdded(StudentDir*)), this,
SLOT(addStudent(StudentDir*)));
reset();
Modified: tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.h 2009-07-23 00:24:05 UTC (rev 1254)
+++ tux4kids-admin/trunk/tux4kids-admin/src/studentTableModel.h 2009-07-23 12:49:53 UTC (rev 1255)
@@ -19,17 +19,21 @@
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
void setSchoolData(const SchoolData *schoolData);
protected:
enum StudentField {
- StudentFirstName = 0,
- StudentLastName = 1
+ StudentSelected = 0,
+ StudentFirstName = 1,
+ StudentLastName = 2
};
QList< QPointer<StudentDir> > m_students;
+ QList<bool> m_studentsSelection;
private slots:
void addStudent(StudentDir *newStudent);
More information about the Tux4kids-commits
mailing list