[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