-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathutils.h
94 lines (75 loc) · 1.97 KB
/
utils.h
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#ifndef _UTILS_H_
#define _UTILS_H_
#include <QtGui>
enum
{
MAMEFILE_GETINFO = 0,
MAMEFILE_GETDATINFO,
MAMEFILE_READ,
MAMEFILE_EXTRACT
};
class MameFileInfo : public QObject
{
public:
QString path;
quint32 crc;
quint64 size;
QByteArray data;
bool removable;
};
class MameDat;
class GameInfo;
class Utils : public QObject
{
Q_OBJECT
public:
Utils(QObject *parent = 0);
QProcess *loadProc;
QRegExp rxSpace;
QString getDesc(const QString &, bool = true);
QSize getScaledSize(QSize, QSize, bool);
QString capitalizeStr(const QString &);
void lowerTrimmed(QStringList &);
QStringList split2Str(const QString &, const QString &, bool = false);
QString getPath(QString);
QString getSinglePath(QString, QString);
QString getMameVersion();
quint8 getStatus(QString);
QString getStatusString(quint8, bool = false);
QString getLongName(const QString &);
QString getSize(quint64 size);
QHash<QString, MameFileInfo *> iterateMameFile(const QString &_dirPaths, const QString &_archNames, const QString &_fileNameFilters, int method, const QString &_extractPath = "", const MameDat *_pFixDat = NULL);
void clearMameFileInfoList(QHash<QString, MameFileInfo *>);
signals:
void icoUpdated(QString);
public slots:
void getMameVersionReadyReadStandardOutput();
void getMameVersionFinished(int, QProcess::ExitStatus);
private:
QString mameVersion;
QMap<QString, QString> descMap;
void initDescMap();
bool matchMameFile(const QString &, const QStringList &, quint32);
bool extractMameFile(const QString &, MameFileInfo *, const QString &outPath, const GameInfo *itemInfo = NULL);
};
class MyQueue : public QObject
{
Q_OBJECT
public:
MyQueue(QObject *parent = 0);
void setSize(int);
QString dequeue();
void enqueue(const QString &);
bool isEmpty() const;
bool contains(const QString &) const;
QString value(int);
int size() const;
signals:
void logStatusUpdated(QString);
private:
int capacity;
QQueue<QString> queue;
mutable QMutex mutex;
};
extern Utils *utils;
#endif