Fixed barcode scanner issue on Windows with czech keyboard.
							parent
							
								
									b8ed333c3a
								
							
						
					
					
						commit
						b69637165d
					
				@ -0,0 +1,39 @@
 | 
			
		||||
#include "helper.h"
 | 
			
		||||
#include "define.h"
 | 
			
		||||
 | 
			
		||||
const QMap<QString, QString> Helper::m_numMap{
 | 
			
		||||
    {"+", "1"},
 | 
			
		||||
    {"ě", "2"},
 | 
			
		||||
    {"š", "3"},
 | 
			
		||||
    {"č", "4"},
 | 
			
		||||
    {"ř", "5"},
 | 
			
		||||
    {"ž", "6"},
 | 
			
		||||
    {"ý", "7"},
 | 
			
		||||
    {"á", "8"},
 | 
			
		||||
    {"í", "9"},
 | 
			
		||||
    {"é", "0"}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Helper::Helper()
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString Helper::replaceByNumbers(const QString &str)
 | 
			
		||||
{
 | 
			
		||||
    QString ret;
 | 
			
		||||
 | 
			
		||||
    std::for_each(ALL(str), [&](QChar c){
 | 
			
		||||
        QString replaced = m_numMap[c];
 | 
			
		||||
 | 
			
		||||
        if (replaced.isEmpty())
 | 
			
		||||
        {
 | 
			
		||||
            ret.append(c);
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            ret.append(replaced);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,18 @@
 | 
			
		||||
#ifndef HELPER_H
 | 
			
		||||
#define HELPER_H
 | 
			
		||||
 | 
			
		||||
#include <QString>
 | 
			
		||||
#include <QMap>
 | 
			
		||||
 | 
			
		||||
class Helper
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    Helper();
 | 
			
		||||
 | 
			
		||||
    static QString replaceByNumbers(const QString &str);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    static const QMap<QString, QString> m_numMap;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // HELPER_H
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue