blob: 99ecd07d878df0ca3c7e46c90e83bb525ed46013 (
plain)
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
|
/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version
2 of the License, or (at your option) any later version.
*/
#ifndef SMUBERMODELSINGLETON_H
#define SMUBERMODELSINGLETON_H
#include <QHash>
#include <QSize>
#include <QPair>
class QAbstractItemModel;
class PictureViewer2;
class QPixmap;
class SmGlobals : public QObject {
Q_OBJECT
public:
class FrameCache : public QObject {
public:
FrameCache(QObject *parent = 0);
~FrameCache();
void readConfig();
const QPixmap entry(const QString &sourcePath, const QString &when = QString());
const QString entryPath(const QString &sourcePath, const QString &when = QString());
private:
void readCache();
void grabFrame(const QString &sourceFile, QString when);
void cleanup();
const QPair<QString, QString> prepFrame(const QString &sourceFile, QString when);
QHash<QPair<QString, QString>, QString> mFrameCache;
const qint32 mMagic;
const QString mCacheSubDir;
const QString mCacheFileName;
QString mCacheDir;
QString mCacheFile;
QString mWhen;
QString mFfMpegPath;
};
~SmGlobals();
static SmGlobals *instance();
QAbstractItemModel *model(const QString &which);
PictureViewer2 *pictureViewer();
FrameCache *frameCache();
QSize cursorSize();
const QHash<QString, QString> & icons() const { return mIcons; }
qint64 dvdSize() const { return mDvdSize; }
private:
SmGlobals();
SmGlobals(const SmGlobals &other);
SmGlobals &operator=(const SmGlobals &other);
static SmGlobals *mInstance;
QHash<QString, QAbstractItemModel*> mModels;
PictureViewer2 *mPictureViewer;
SmGlobals::FrameCache *mFrameCache;
QSize mCursorSize;
QHash<QString, QString> mIcons;
qint64 mDvdSize;
};
#endif
|