#include "quassel.h"
#include "logger.h"
+#include "core.h"
-#include <QIcon>
#include <QString>
+#include <QStringList>
#include <QDomDocument>
-void Quassel::init() {
+extern void messageHandler(QtMsgType type, const char *msg);
+
+Global::Global() {
+ if(global) qFatal("Trying to instantiate more than one Global object!");
+ qInstallMsgHandler(messageHandler);
//initIconMap();
}
-void Quassel::setLogger(Logger *) {
+/*
+void Global::setLogger(Logger *) {
};
+*/
+
+QVariant Global::getData(QString key, QVariant defval) {
+ QVariant d;
+ mutex.lock();
+ if(data.contains(key)) d = data[key];
+ else d = defval;
+ mutex.unlock();
+ //qDebug() << "getData("<<key<<"): " << d;
+ return d;
+}
+
+QStringList Global::getKeys() {
+ QStringList k;
+ mutex.lock();
+ k = data.keys();
+ mutex.unlock();
+ return k;
+}
+void Global::putData(QString key, QVariant d) {
+ mutex.lock();
+ data[key] = d;
+ mutex.unlock();
+ emit dataPutLocally(key);
+}
+
+void Global::updateData(QString key, QVariant d) {
+ mutex.lock();
+ data[key] = d;
+ mutex.unlock();
+ emit dataUpdatedRemotely(key);
+}
/* not done yet */
-void Quassel::initIconMap() {
+void Global::initIconMap() {
+// Do not depend on GUI in core!
+/*
QDomDocument doc("IconMap");
QFile file("images/iconmap.xml");
if(!file.open(QIODevice::ReadOnly)) {
file.close();
}
+*/
}
* @param symbol Symbol of requested icon
* @return Pointer to a newly created QIcon
*/
-QIcon *Quassel::getIcon(QString /*symbol*/) {
+//
+//QIcon *Global::getIcon(QString /*symbol*/) {
//if(symbol == "connect"
- return 0;
-}
+// return 0;
+//}
+
+Global *global = 0;
+Global::RunMode Global::runMode;