X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=main%2Fquassel.h;fp=main%2Fquassel.h;h=b3c942bab278b6070d0e2ca3909e6324b967851c;hb=e368a1672c4f917bfa6adb52dae3b5ebfcd0db18;hp=0000000000000000000000000000000000000000;hpb=8a46d2fb3b2f409b80642cd6fe30645017c980bc;p=quassel.git diff --git a/main/quassel.h b/main/quassel.h new file mode 100644 index 00000000..b3c942ba --- /dev/null +++ b/main/quassel.h @@ -0,0 +1,81 @@ +/*************************************************************************** + * Copyright (C) 2005 by The Quassel Team * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef _QUASSEL_H_ +#define _QUASSEL_H_ + +class Quassel; + +#include +//#include + +/* Some global stuff */ +typedef QMap VarMap; +extern Quassel *quassel; + +/** + * A static class containing global data. + * This is used in both core and GUI modules. Where appropriate, accessors are thread-safe + * to account for that fact. + */ +class Quassel : public QObject { + Q_OBJECT + + public: + static Quassel * init(); + //static Logger *getLogger(); + //static void setLogger(Logger *); + +// static QIcon *getIcon(QString symbol); + + QVariant getData(QString key); + + public slots: + void putData(QString key, const QVariant &data); + + signals: + void dataChanged(QString key, const QVariant &data); + + public: + enum RunMode { Monolithic, GUIOnly, CoreOnly }; + static RunMode runMode; + + private: + static void initIconMap(); + + //static Logger *logger; + +// static QString iconPath; + static QHash iconMap; + static QMutex mutex; + static QHash data; +}; + +class Exception { + public: + Exception(QString msg = "Unknown Exception") : _msg(msg) {}; + virtual inline QString msg() { return _msg; } + + protected: + QString _msg; + +}; + +#endif