示例#1
0
void TransferTab::createCodecComboBox()
{
    QMap<QString, QString> codecMap;
    QRegExp iso8859RegExp("ISO[- ]8859-([0-9]+).*");

    foreach (QByteArray name, QTextCodec::availableCodecs()) {
        QTextCodec *codec = QTextCodec::codecForName(name);

        QString sortKey = codec->name().toUpper();
        int rank;

        if (sortKey.startsWith("UTF-8")) {
            rank = 1;
        } else if (sortKey.startsWith("UTF-16")) {
            rank = 2;
        } else if (iso8859RegExp.exactMatch(sortKey)) {
            if (iso8859RegExp.cap(1).size() == 1)
                rank = 3;
            else
                rank = 4;
        } else {
            rank = 5;
        }
        sortKey.prepend(QChar('0' + rank));

        codecMap.insert(sortKey, QString(name));
    }
示例#2
0
void SettingsDialog::findCodecs()
{
    QMap<QString, QTextCodec *> codecMap;
    QRegExp iso8859RegExp("ISO[- ]8859-([0-9]+).*");

    foreach (int mib, QTextCodec::availableMibs())
    {
        QTextCodec *codec = QTextCodec::codecForMib(mib);

        QString sortKey = codec->name().toUpper();
        int rank;

        if (sortKey.startsWith("UTF-8"))
        {
            rank = 1;
        }
        else if (sortKey.startsWith("UTF-16"))
        {
            rank = 2;
        }
        else if (iso8859RegExp.exactMatch(sortKey))
        {
            if (iso8859RegExp.cap(1).size() == 1)
                rank = 3;
            else
                rank = 4;
        }
        else
        {
            rank = 5;
        }
        sortKey.prepend(QChar('0' + rank));

        codecMap.insert(sortKey, codec);
    }
示例#3
0
void MainWindow::initMenuEncoding() {
	//connect menu "Encoding" Action
	connect(actionConvertToWindowsFormat, SIGNAL(triggered()), this, SLOT(convertToWindowFormat()));
	connect(actionConvertToUnixFormat, SIGNAL(triggered()), this, SLOT(convertToUnixFormat()));
	connect(actionConvertToMacFormat, SIGNAL(triggered()), this, SLOT(convertToMacFormat()));

	//codec list
	QMap<QString, QTextCodec *> codecMap;
	QRegExp iso8859RegExp("ISO[- ]8859-([0-9]+).*");

	foreach (int mib, QTextCodec::availableMibs()) {
		QTextCodec *codec = QTextCodec::codecForMib(mib);

		QString sortKey = codec->name().toUpper();
		int rank;

		if (sortKey.startsWith("UTF-8")) {
			rank = 1;
		} else if (sortKey.startsWith("UTF-16")) {
			rank = 2;
		} else if (iso8859RegExp.exactMatch(sortKey)) {
			if (iso8859RegExp.cap(1).size() == 1)
				rank = 3;
			else
				rank = 4;
		} else {
			rank = 5;
		}
		sortKey.prepend(QChar('0' + rank));

		codecMap.insert(sortKey, codec);
	}