[Tux4kids-commits] r974 - in tuxmath/trunk/src: . tux4kidsadmin tux4kidsadmin/plugins tux4kidsadmin/plugins/dummy tux4kidsadmin/src

Michał Świtakowski swistakers-guest at alioth.debian.org
Sat May 9 23:35:44 UTC 2009


Author: swistakers-guest
Date: 2009-05-09 23:35:44 +0000 (Sat, 09 May 2009)
New Revision: 974

Added:
   tuxmath/trunk/src/tux4kidsadmin/
   tuxmath/trunk/src/tux4kidsadmin/plugins/
   tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/
   tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.cpp
   tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.h
   tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.pro
   tuxmath/trunk/src/tux4kidsadmin/plugins/pluginInterface.h
   tuxmath/trunk/src/tux4kidsadmin/src/
   tuxmath/trunk/src/tux4kidsadmin/src/main.cpp
   tuxmath/trunk/src/tux4kidsadmin/src/mainController.cpp
   tuxmath/trunk/src/tux4kidsadmin/src/mainController.h
   tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.cpp
   tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.h
   tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.ui
   tuxmath/trunk/src/tux4kidsadmin/src/src.pro
   tuxmath/trunk/src/tux4kidsadmin/tux4kidsadmin.pro
Log:
added skeleton for tux4kidsadmin with a dummy plugin

Added: tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.cpp
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.cpp	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.cpp	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,16 @@
+#include "dummy.h"
+
+DummyPlugin::DummyPlugin(QObject *parent) : QObject(parent)
+{
+}
+
+DummyPlugin::~DummyPlugin()
+{
+}
+
+QString DummyPlugin::name()
+{
+	return "dummy plugin";
+}
+
+Q_EXPORT_PLUGIN2(dummyPlugin, DummyPlugin);

Added: tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.h
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.h	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.h	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,21 @@
+#ifndef DUMMY_PLUGIN_H
+#define DUMMY_PLUGIN_H
+
+#include <QObject>
+
+#include "pluginInterface.h"
+
+class DummyPlugin : public QObject, PluginInterface
+{
+	Q_OBJECT
+	Q_INTERFACES(PluginInterface)
+
+public:
+	DummyPlugin(QObject *parent = 0);
+	~DummyPlugin();
+
+	QString name();
+
+};
+
+#endif

Added: tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.pro
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.pro	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/plugins/dummy/dummy.pro	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,14 @@
+TEMPLATE	= lib
+CONFIG		+= plugin
+INCLUDEPATH	+= ../
+
+HEADERS		= dummy.h \
+
+SOURCES		= dummy.cpp \
+
+TARGET		= $$qtLibraryTarget(dummyPlugin)
+DESTDIR		= ../
+
+# Uncomment to use GCOV
+# QMAKE_CXXFLAGS+=-fprofile-arcs -ftest-coverage
+

Added: tuxmath/trunk/src/tux4kidsadmin/plugins/pluginInterface.h
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/plugins/pluginInterface.h	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/plugins/pluginInterface.h	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,17 @@
+#ifndef PLUGIN_INTERFACE_H
+#define PLUGIN_INTERFACE_H
+
+#include <QString>
+#include <QtPlugin>
+
+class PluginInterface
+{
+public:
+	virtual ~PluginInterface() {}
+
+	virtual QString name() = 0;
+};
+
+Q_DECLARE_INTERFACE(PluginInterface, "org.Tux4Kids.Tux4KidsPluginInterface/0.0.1");
+
+#endif


Property changes on: tuxmath/trunk/src/tux4kidsadmin/plugins/pluginInterface.h
___________________________________________________________________
Added: svn:executable
   + *

Added: tuxmath/trunk/src/tux4kidsadmin/src/main.cpp
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/main.cpp	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/main.cpp	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,12 @@
+#include <QtGui/QApplication>
+
+#include "mainWindow.h"
+
+int main(int argc, char *argv[])
+{
+	QApplication app(argc, argv);
+	MainController controller;
+	MainWindow mainWindow(&controller);
+	mainWindow.show();
+	return app.exec();
+}

Added: tuxmath/trunk/src/tux4kidsadmin/src/mainController.cpp
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/mainController.cpp	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/mainController.cpp	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,45 @@
+#include <QDebug>
+#include <QDir>
+#include <QApplication>
+#include <QPluginLoader>
+
+#include "mainController.h"
+
+MainController::MainController()
+{
+	loadPlugins();
+
+	if (plugins.isEmpty()) {
+		qDebug() << "Failed to load plugins";
+	} else {
+		qDebug() << "Loaded plugins: ";
+		foreach(PluginInterface *plugin, plugins) {
+			qDebug() << plugin->name();
+		}
+	}
+}
+
+MainController::~MainController()
+{
+}
+
+void MainController::loadPlugins()
+{
+	PluginInterface *pluginInterface;
+	QDir pluginsDir(qApp->applicationDirPath() + "/plugins");
+
+	foreach (QString fileName, pluginsDir.entryList(QDir::Files))
+	{
+		QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
+		QObject *plugin = pluginLoader.instance();
+		if (plugin)
+		{
+			pluginInterface = qobject_cast<PluginInterface *>(plugin);
+			if (pluginInterface)
+			{
+				plugins.append(pluginInterface);
+			}
+		}
+	}
+}
+

Added: tuxmath/trunk/src/tux4kidsadmin/src/mainController.h
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/mainController.h	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/mainController.h	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,23 @@
+#ifndef MAINCONTROLLER_H
+#define MAINCONTROLLER_H
+
+#include <QObject>
+#include <QList>
+
+#include "pluginInterface.h"
+
+class MainController : public QObject
+{
+	Q_OBJECT
+
+public:
+	MainController();
+	~MainController();
+
+private:
+	QList<PluginInterface *> plugins;
+
+	void loadPlugins();
+};
+
+#endif // MAINCONTROLLER_H

Added: tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.cpp
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.cpp	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.cpp	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,14 @@
+#include "mainWindow.h"
+#include "ui_mainWindow.h"
+
+MainWindow::MainWindow(MainController *controller, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
+{
+	ui->setupUi(this);
+
+	mainController = controller;
+}
+
+MainWindow::~MainWindow()
+{
+	delete ui;
+}

Added: tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.h
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.h	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.h	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,27 @@
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QtGui/QMainWindow>
+
+#include "mainController.h"
+
+namespace Ui
+{
+	class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+	Q_OBJECT
+
+public:
+	MainWindow(MainController *controller, QWidget *parent = 0);
+	~MainWindow();
+
+private:
+	Ui::MainWindow *ui;
+
+	MainController *mainController;
+};
+
+#endif // MAINWINDOW_H

Added: tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.ui
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.ui	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/mainWindow.ui	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,24 @@
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>600</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>MainWindow</string>
+  </property>
+  <widget class="QMenuBar" name="menuBar" />
+  <widget class="QToolBar" name="mainToolBar" />
+  <widget class="QWidget" name="centralWidget" />
+  <widget class="QStatusBar" name="statusBar" />
+ </widget>
+ <layoutDefault spacing="6" margin="11" />
+ <pixmapfunction></pixmapfunction>
+ <resources/>
+ <connections/>
+</ui>

Added: tuxmath/trunk/src/tux4kidsadmin/src/src.pro
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/src/src.pro	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/src/src.pro	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,16 @@
+TARGET = ../tux4kidsadmin
+TEMPLATE = app
+INCLUDEPATH	+= ../plugins/
+
+SOURCES += main.cpp \
+    mainWindow.cpp \
+    mainController.cpp
+
+HEADERS += mainWindow.h \
+    mainController.h
+
+FORMS += mainWindow.ui
+
+# Uncomment to use GCOV
+# QMAKE_CXXFLAGS+=-fprofile-arcs -ftest-coverage
+

Added: tuxmath/trunk/src/tux4kidsadmin/tux4kidsadmin.pro
===================================================================
--- tuxmath/trunk/src/tux4kidsadmin/tux4kidsadmin.pro	                        (rev 0)
+++ tuxmath/trunk/src/tux4kidsadmin/tux4kidsadmin.pro	2009-05-09 23:35:44 UTC (rev 974)
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+
+SUBDIRS	= src \
+    plugins/dummy \




More information about the Tux4kids-commits mailing list