1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef UTILS_H
#define UTILS_H
#include <QString>
#include <QStringList>
#include <functional>
class Utils
{
public:
Utils();
static int querySimiliarity(const QString &a, const QString &b);
static QStringList commonSlicesInStrings(const QString a, const QString b);
static QString commonSliceInStrings(const QStringList& strings);
static QString createSaveDir(const QString parentDir, const QString dirname);
template<class T>
static QList<T> filter(const QList<T> list, typename std::common_type<const std::function<bool(const T&)> >::type filterFn) {
QList<T> reducedList;
foreach (T it, list) {
if (filterFn(it)) {
reducedList << it;
}
}
return reducedList;
}
static int parseRomanNumbers(QString numberString);
static void removeLastOccurance(QString& baseStr, const QString matchStr);
private:
static QString commonSliceAtStart(const QString &a, const QString &b, int startIndex);
};
#endif // UTILS_H