X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Futil.h;h=28639ba97be6b1e3efe726ae2dddf06f7a89665f;hp=1a6d889f032e8c8d196ae42ba0f5a29bb4709cf7;hb=6f99a6e2f39aaacabe8bb51a7bb1ff53c1b2082f;hpb=077d44f36d2f5c730283ef6be839aea7dd073d56 diff --git a/src/common/util.h b/src/common/util.h index 1a6d889f..28639ba9 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005/06 by The Quassel Team * + * Copyright (C) 2005/06 by the Quassel Project * * 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. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -18,34 +18,73 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _UTIL_H_ -#define _UTIL_H_ +#ifndef UTIL_H +#define UTIL_H -#include +#include +#include #include #include +#include + +// TODO Use versions from Network instead QString nickFromMask(QString mask); QString userFromMask(QString mask); QString hostFromMask(QString mask); - bool isChannelName(QString str); -/** - * Writes a QVariant to a device. The data item is prefixed with the resulting blocksize, - * so the corresponding function readDataFromDevice() can check if enough data is available - * at the device to reread the item. +//! Strip mIRC format codes +QString stripFormatCodes(QString); + +QString secondsToString(int timeInSeconds); + +//! Take a string and decode it using the specified text codec, recognizing utf8. +/** This function takes a string and first checks if it is encoded in utf8, in which case it is + * decoded appropriately. Otherwise, the specified text codec is used to transform the string. + * \param input The input string containing encoded data + * \param codec The text codec we use if the input is not utf8 + * \return The decoded string. */ -void writeDataToDevice(QIODevice *, const QVariant &); +QString decodeString(const QByteArray &input, QTextCodec *codec = 0); -/** Reads a data item from a device that has previously been written by writeDataToDevice(). - * If not enough data bytes are available, the function returns false and the QVariant reference - * remains untouched. +uint editingDistance(const QString &s1, const QString &s2); + +QDir quasselDir(); + +//! Returns a list of data directory paths +/** There are several locations for applications to install their data files in. On Unix, + * a common location is /usr/share; others include $PREFIX/share and additional directories + * specified in the env variable XDG_DATA_DIRS. + * \return A list of directory paths to look for data files in */ -bool readDataFromDevice(QIODevice *, quint32 &, QVariant &); +QStringList dataDirPaths(); +//! Searches for a data file in the possible data directories +/** Data files can reside in $DATA_DIR/apps/quassel, where $DATA_DIR is one of the directories + * returned by \sa dataDirPaths(). + * \return The full path to the data file if found; a null QString else + */ +QString findDataFilePath(const QString &fileName); +void loadTranslation(const QLocale &locale); +template +QVariantList toVariantList(const QList &list) { + QVariantList variants; + for(int i = 0; i < list.count(); i++) { + variants << QVariant::fromValue(list[i]); + } + return variants; +} +template +QList fromVariantList(const QVariantList &variants) { + QList list; + for(int i = 0; i < variants.count(); i++) { + list << variants[i].value(); + } + return list; +} #endif