[Tux4kids-commits] r1220 - in tux4kids-admin/trunk: libtux4kidsadmin tux4kids-admin/plugins tux4kids-admin/plugins/tuxmathPlugin tux4kids-admin/plugins/tuxtypePlugin tux4kids-admin/src
Michał Świtakowski
swistakers-guest at alioth.debian.org
Thu Jul 16 23:06:00 UTC 2009
Author: swistakers-guest
Date: 2009-07-16 23:06:00 +0000 (Thu, 16 Jul 2009)
New Revision: 1220
Modified:
tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp
tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h
tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h
tux4kids-admin/trunk/tux4kids-admin/plugins/pluginInterface.h
tux4kids-admin/trunk/tux4kids-admin/plugins/tuxmathPlugin/tuxmathPlugin.cpp
tux4kids-admin/trunk/tux4kids-admin/plugins/tuxtypePlugin/tuxtypePlugin.cpp
tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.cpp
tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.h
tux4kids-admin/trunk/tux4kids-admin/src/manageStudentsWidget.cpp
tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.cpp
tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.h
Log:
add student dialog detects loaded plugins
Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -1,5 +1,6 @@
#include "studentDir.h"
#include "studentDir_p.h"
+#include "profileDir.h"
#include <QString>
#include <QDebug>
@@ -76,3 +77,9 @@
d->attributes->setValue("last_name", lastName);
}
+void StudentDir::addProfileDir(ProfileDir *profileDir)
+{
+ Q_D(StudentDir);
+ d->profiles.append(profileDir);
+}
+
Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir.h 2009-07-16 23:06:00 UTC (rev 1220)
@@ -6,6 +6,7 @@
#include "libtux4kidsadmin_global.h"
class StudentDirPrivate;
+class ProfileDir;
class QString;
class LIBTUX4KIDSADMIN_SHARED_EXPORT StudentDir : public QObject
@@ -26,6 +27,7 @@
QString lastName() const;
void setFirstName(const QString &firstName);
void setLastName(const QString &lastName);
+ void addProfileDir(ProfileDir *profileDir);
protected:
StudentDirPrivate * const d_ptr;
Modified: tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h
===================================================================
--- tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/libtux4kidsadmin/studentDir_p.h 2009-07-16 23:06:00 UTC (rev 1220)
@@ -4,9 +4,12 @@
#include <QtGlobal>
#include <QDir>
#include <QSettings>
+#include <QList>
+#include <QPointer>
#include "libtux4kidsadmin_global.h"
class QString;
+class ProfileDir;
class StudentDirPrivate
{
@@ -21,6 +24,7 @@
StudentDir::Status status;
QSettings *attributes;
QDir mainDir;
+ QList< QPointer<ProfileDir> > profiles;
};
#endif // STUDENTDIR_P_H
Modified: tux4kids-admin/trunk/tux4kids-admin/plugins/pluginInterface.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/plugins/pluginInterface.h 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/plugins/pluginInterface.h 2009-07-16 23:06:00 UTC (rev 1220)
@@ -4,6 +4,8 @@
#include <QString>
#include <QtPlugin>
+class ProfileDir;
+
class PluginInterface
{
public:
@@ -12,6 +14,8 @@
virtual QString name() const = 0;
virtual QString version() const = 0;
+ virtual ProfileDir *newProfileDir(QString path) const = 0;
+
virtual QWidget *mainWidget() = 0;
protected:
Modified: tux4kids-admin/trunk/tux4kids-admin/plugins/tuxmathPlugin/tuxmathPlugin.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/plugins/tuxmathPlugin/tuxmathPlugin.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/plugins/tuxmathPlugin/tuxmathPlugin.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -14,7 +14,7 @@
QString TuxmathPlugin::name() const
{
- return tr("tuxmath plugin");
+ return "tuxmath";
}
QString TuxmathPlugin::version() const
Modified: tux4kids-admin/trunk/tux4kids-admin/plugins/tuxtypePlugin/tuxtypePlugin.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/plugins/tuxtypePlugin/tuxtypePlugin.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/plugins/tuxtypePlugin/tuxtypePlugin.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -14,7 +14,7 @@
QString TuxtypePlugin::name() const
{
- return tr("tuxtype plugin");
+ return "tuxtype";
}
QString TuxtypePlugin::version() const
Modified: tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -53,6 +53,28 @@
m_ui->lastNameEdit->clear();
}
+QStringList AddStudentDialog::checkedApplicationNames() const
+{
+ QStringList result;
+ foreach (QListWidgetItem *listItem, m_ui->applicationList->findItems(QString(), Qt::MatchContains)) {
+ if (listItem->checkState() == Qt::Checked) {
+ result.append(listItem->text());
+ }
+ }
+ return result;
+}
+
+void AddStudentDialog::setApplicationNames(QStringList applicationNames)
+{
+ m_ui->applicationList->clear();
+
+ foreach(QString name, applicationNames) {
+ QListWidgetItem *listWidgetItem = new QListWidgetItem(name, m_ui->applicationList);
+ listWidgetItem->setFlags(listWidgetItem->flags() | Qt::ItemIsUserCheckable);
+ listWidgetItem->setCheckState(Qt::Unchecked);
+ }
+}
+
void AddStudentDialog::validate()
{
if (m_ui->firstNameEdit->text().simplified().isEmpty()
Modified: tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.h 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/src/addStudentDialog.h 2009-07-16 23:06:00 UTC (rev 1220)
@@ -3,6 +3,8 @@
#include <QtGui/QDialog>
+class QStringList;
+
namespace Ui {
class AddStudentDialog;
}
@@ -16,6 +18,8 @@
QString firstName() const;
QString lastName() const;
+ QStringList checkedApplicationNames() const;
+ void setApplicationNames(QStringList applicationNames);
private:
Ui::AddStudentDialog *m_ui;
Modified: tux4kids-admin/trunk/tux4kids-admin/src/manageStudentsWidget.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/manageStudentsWidget.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/src/manageStudentsWidget.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -31,6 +31,7 @@
{
if (m_addStudentDialog == 0) {
m_addStudentDialog = new AddStudentDialog();
+ m_addStudentDialog->setApplicationNames(m_mainController->pluginManager()->loadedPluginNames());
connect(m_addStudentDialog, SIGNAL(accepted()), this, SLOT(addStudent()));
}
m_addStudentDialog->showNormal();
@@ -41,5 +42,6 @@
StudentDir *studentDir = m_mainController->schoolData()->addStudent();
studentDir->setFirstName(m_addStudentDialog->firstName());
studentDir->setLastName(m_addStudentDialog->lastName());
+
}
Modified: tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.cpp
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.cpp 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.cpp 2009-07-16 23:06:00 UTC (rev 1220)
@@ -10,7 +10,7 @@
int PluginManager::rowCount(const QModelIndex &parent) const
{
- return plugins.size();
+ return m_plugins.size();
}
QVariant PluginManager::data(const QModelIndex &index, int role) const
@@ -22,8 +22,8 @@
return QVariant();
if (role == Qt::DisplayRole) {
- QString result = pluginNames.at(index.row());
- if (plugins.at(index.row())->isLoaded()) {
+ QString result = m_pluginNames.at(index.row());
+ if (m_plugins.at(index.row())->isLoaded()) {
result += " (loaded)";
} else {
result += " (not loaded)";
@@ -48,10 +48,10 @@
pluginInterface = qobject_cast<PluginInterface *>(plugin);
if (pluginInterface)
{
- pluginNames.append(pluginInterface->name());
- plugins.append(pluginLoader);
- delete pluginInterface;
- pluginLoader->unload();
+ m_pluginNames.append(pluginInterface->name());
+ m_plugins.append(pluginLoader);
+ //delete pluginInterface;
+ //pluginLoader->unload();
}
}
}
@@ -59,7 +59,7 @@
bool PluginManager::empty() const
{
- return plugins.empty();
+ return m_plugins.empty();
}
void PluginManager::setPluginsPath(QString pluginsPath)
@@ -69,20 +69,34 @@
bool PluginManager::load(int pluginIndex)
{
- bool result = plugins.at(pluginIndex)->load();
+ bool result = m_plugins.at(pluginIndex)->load();
emit dataChanged(index(pluginIndex, 0), index(pluginIndex, 0));
return result;
}
bool PluginManager::unload(int pluginIndex)
{
- bool result = plugins.at(pluginIndex)->unload();
+ bool result = m_plugins.at(pluginIndex)->unload();
emit dataChanged(index(pluginIndex, 0), index(pluginIndex, 0));
return result;
}
QPluginLoader &PluginManager::operator[](int i)
{
- return *plugins[i];
+ return *m_plugins[i];
}
+QStringList PluginManager::loadedPluginNames() const
+{
+ QStringList result;
+ foreach (QPluginLoader *loader, m_plugins) {
+ if (loader->isLoaded()) {
+ PluginInterface * plugin = qobject_cast<PluginInterface *>(loader->instance());
+ if (plugin) {
+ result.append(plugin->name());
+ }
+ }
+ }
+ return result;
+}
+
Modified: tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.h
===================================================================
--- tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.h 2009-07-16 22:09:11 UTC (rev 1219)
+++ tux4kids-admin/trunk/tux4kids-admin/src/pluginManager.h 2009-07-16 23:06:00 UTC (rev 1220)
@@ -23,11 +23,12 @@
bool load(int pluginIndex);
bool unload(int pluginIndex);
QPluginLoader &operator[](int i);
+ QStringList loadedPluginNames() const;
private:
QString m_pluginsPath;
- QList<QPluginLoader *> plugins;
- QStringList pluginNames;
+ QList<QPluginLoader *> m_plugins;
+ QStringList m_pluginNames;
//QList<PluginInterface *> loadedPlugins;
More information about the Tux4kids-commits
mailing list