[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