-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.cpp
107 lines (90 loc) · 2.5 KB
/
main.cpp
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
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "mainwindow.h"
#include "core/qqsettingsparams.h"
#include <QApplication>
#include <QStandardPaths>
#include <QDateTime>
#include <QDir>
#include <QSettings>
#undef QML_PALMI
#ifdef QML_PALMI
#include "qml/documenthandler.h"
#include <QQmlApplicationEngine>
#include <QQuickWindow>
#endif //QML_PALMI
//#define QQ_ENABLE_QML true
bool removeDirRecursive(const QString &dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists(dirName))
{
auto entryInfoList = dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden | QDir::AllDirs | QDir::Files, QDir::DirsFirst);
for(auto fi = entryInfoList.begin(); fi != entryInfoList.end(); ++fi)
{
if ((*fi).isDir())
result = removeDirRecursive((*fi).absoluteFilePath());
else
result = QFile::remove((*fi).absoluteFilePath());
if (!result)
return result;
}
result = dir.rmdir(dirName);
}
return result;
}
void purgeCache()
{
QDir dirCache(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
QDateTime now = QDateTime::currentDateTime();
QFileInfoList fileInfoList = dirCache.entryInfoList();
for (const auto &fi : fileInfoList)
{
if(fi.lastModified().daysTo(now) > MAX_CACHE_AGE_DAYS)
QFile(fi.filePath()).remove();
}
//Nettoyage du cache reseau au demarrage : QTBUG-34498
removeDirRecursive(dirCache.absoluteFilePath("networkCache"));
}
#ifdef QML_PALMI
void dumpRecurse(QQuickItem *rootItem)
{
foreach (QQuickItem *item, rootItem->childItems())
{
qDebug() << Q_FUNC_INFO << item->childItems().size() << item->objectName();
dumpRecurse(item);
}
}
#endif //QML_PALMI
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QApplication::setOrganizationName("Moules Corp");
QApplication::setApplicationName(APP_NAME);
QApplication::setApplicationVersion(GIT_VERSION);
QSettings::setDefaultFormat(QSettings::IniFormat);
purgeCache();
MainWindow w;
w.show();
#ifdef ENABLE_QML
#ifdef QT_DEBUG
qmlRegisterType<DocumentHandler>("org.moules.quteqoin", 1, 0, "DocumentHandler");
QQmlApplicationEngine engine(QUrl("qrc:///qml/QQmlMain.qml"));
QQuickWindow *qmlRoot = qobject_cast<QQuickWindow *>(engine.rootObjects().at(0));
if(!qmlRoot)
{
qWarning("Error: Your root item has to be a Window.");
return -1;
}
QQuickItem *qmlRootItem = qmlRoot->contentItem();
dumpRecurse(qmlRootItem);
/*
if(textArea)
{
textArea->setProperty("text", "Lorem ipsum");
qDebug() << Q_FUNC_INFO << "textArea found";
}
*/
#endif //QT_DEBUG
#endif //QQ_ENABLE_QML
return QApplication::exec();
}