X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Futil.cpp;h=14435bde118fe4d0367aaf73b84e40c12d9f7188;hp=4698b30db7e57046548b946d2e7a258afc053fcc;hb=32023e27e875eede980d7323c1d05b5d4cc795d8;hpb=cd37744f0a2cd8ffe027892ddce5c7d6f4848ab0 diff --git a/src/common/util.cpp b/src/common/util.cpp index 4698b30d..14435bde 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2010 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,9 +23,7 @@ #include #include #include -#include #include -#include #include "quassel.h" @@ -62,6 +60,22 @@ QString stripFormatCodes(QString str) { return str; } +QString stripAcceleratorMarkers(const QString &label_) { + QString label = label_; + int p = 0; + forever { + p = label.indexOf('&', p); + if(p < 0 || p + 1 >= label.length()) + break; + + if(label.at(p + 1).isLetterOrNumber() || label.at(p + 1) == '&') + label.remove(p, 1); + + ++p; + } + return label; +} + QString decodeString(const QByteArray &input, QTextCodec *codec) { // First, we check if it's utf8. It is very improbable to encounter a string that looks like // valid utf8, but in fact is not. This means that if the input string passes as valid utf8, it @@ -110,14 +124,14 @@ uint editingDistance(const QString &s1, const QString &s2) { uint insertChar = matrix[i][j-1] + 1; if(deleteChar < insertChar) - min = deleteChar; + min = deleteChar; else - min = insertChar; + min = insertChar; if(s1[i-1] == s2[j-1]) { - uint inheritChar = matrix[i-1][j-1]; - if(inheritChar < min) - min = inheritChar; + uint inheritChar = matrix[i-1][j-1]; + if(inheritChar < min) + min = inheritChar; } matrix[i][j] = min; @@ -126,32 +140,6 @@ uint editingDistance(const QString &s1, const QString &s2) { return matrix[n-1][m-1]; } -void loadTranslation(const QLocale &locale) { - QTranslator *qtTranslator = QCoreApplication::instance()->findChild("QtTr"); - QTranslator *quasselTranslator = QCoreApplication::instance()->findChild("QuasselTr"); - - if(!qtTranslator) { - qtTranslator = new QTranslator(qApp); - qtTranslator->setObjectName("QtTr"); - qApp->installTranslator(qtTranslator); - } - if(!quasselTranslator) { - quasselTranslator = new QTranslator(qApp); - quasselTranslator->setObjectName("QuasselTr"); - qApp->installTranslator(quasselTranslator); - } - - QLocale::setDefault(locale); - - if(locale.language() == QLocale::C) - return; - - bool success = qtTranslator->load(QString(":i18n/qt_%1").arg(locale.name())); - if(!success) - qtTranslator->load(QString("%2/qt_%1").arg(locale.name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))); - quasselTranslator->load(QString(":i18n/quassel_%1").arg(locale.name())); -} - QString secondsToString(int timeInSeconds) { QList< QPair > timeUnit; timeUnit.append(qMakePair(365*24*60*60, QCoreApplication::translate("Quassel::secondsToString()", "year"))); @@ -170,3 +158,14 @@ QString secondsToString(int timeInSeconds) { } return returnString.join(", "); } + +QByteArray prettyDigest(const QByteArray &digest) { + QByteArray hexDigest = digest.toHex().toUpper(); + QByteArray prettyDigest; + prettyDigest.fill(':', hexDigest.count() + (hexDigest.count() / 2) - 1); + + for(int i = 0; i * 2 < hexDigest.count(); i++) { + prettyDigest.replace(i * 3, 2, hexDigest.mid(i * 2, 2)); + } + return prettyDigest; +}