1 /***************************************************************************
2 * Copyright (C) 2005 by The Quassel Team *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
28 #include <QDomDocument>
30 extern void messageHandler(QtMsgType type, const char *msg);
33 if(global) qFatal("Trying to instantiate more than one Global object!");
34 qInstallMsgHandler(messageHandler);
35 qRegisterMetaType<Message>("Message");
36 qRegisterMetaTypeStreamOperators<Message>("Message");
37 qRegisterMetaType<BufferId>("BufferId");
38 qRegisterMetaTypeStreamOperators<BufferId>("BufferId");
44 void Global::setLogger(Logger *) {
50 QVariant Global::getData(QString key, QVariant defval) {
53 if(data.contains(key)) d = data[key];
56 //qDebug() << "getData("<<key<<"): " << d;
60 QStringList Global::getKeys() {
68 void Global::putData(QString key, QVariant d) {
72 emit dataPutLocally(key);
75 void Global::updateData(QString key, QVariant d) {
79 emit dataUpdatedRemotely(key);
83 void Global::initIconMap() {
84 // Do not depend on GUI in core!
86 QDomDocument doc("IconMap");
87 QFile file("images/iconmap.xml");
88 if(!file.open(QIODevice::ReadOnly)) {
89 qDebug() << "Error opening iconMap file!";
91 } else if(!doc.setContent(&file)) {
93 qDebug() << "Error parsing iconMap file!";
101 /**************************************************************************************/
105 BufferId::BufferId(uint _id, QString _net, QString _buf, uint _gid) : id(_id), gid(_gid), net(_net), buf(_buf) {
110 QString BufferId::buffer() {
111 if(isChannelName(buf)) return buf;
112 else return nickFromMask(buf);
115 QDataStream &operator<<(QDataStream &out, const BufferId &bufferId) {
116 out << bufferId.id << bufferId.gid << bufferId.net.toUtf8() << bufferId.buf.toUtf8();
119 QDataStream &operator>>(QDataStream &in, BufferId &bufferId) {
122 in >> bufferId.id >> bufferId.gid >> n >> b;
123 bufferId.net = QString::fromUtf8(n);
124 bufferId.buf = QString::fromUtf8(b);
127 uint qHash(const BufferId &bid) {
128 return qHash(bid.id);
132 * Retrieves an icon determined by its symbolic name. The mapping shall later
133 * be performed by a theme manager or something like that.
134 * @param symbol Symbol of requested icon
135 * @return Pointer to a newly created QIcon
138 //QIcon *Global::getIcon(QString /*symbol*/) {
139 //if(symbol == "connect"
145 Global::RunMode Global::runMode;
146 QString Global::quasselDir;