-
Notifications
You must be signed in to change notification settings - Fork 19
/
main.cpp
122 lines (102 loc) · 4.25 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/***************************************************************************//**
* @brief Thumbnail me 3.0
* Thumbnail me is a user interface for Movie thumbnailer.
* Generate thumbnails from any movie is now easier !
*
* @file main.cpp
*
* @author Quentin Rousseau\n
* @note Copyright (C) 2011-2012 Quentin Rousseau\n
* License: GNU General Public License version 2 (GPLv2) - http://www.gnu.org/licenses/gpl-2.0.html\n
* Site web: www.thumbnailme.com\n
* Email: [email protected]
*
* @since 2.0
* @version 3.0
* @date 2011-2012
*******************************************************************************/
#include <QApplication>
#include <QSplashScreen>
#include <QFile>
#include "defines.h"
#include "MainWindow.h"
QSettings settings(QSettings::IniFormat,DEFAULT_PATH_INI,APPLICATION_NAME,DEFAULT_FILE_INI);
/**
*@brief Initialise le fichier de configuration.
*@return QString - Retourne la langue à charger au démarrage de l'application.
*/
QString initSettings()
{
if (!QFile::exists(settings.fileName()))
{
QString locale = QLocale::system().name().section('_', 0, 0);
settings.beginGroup("Langs");
settings.setValue("lang",locale);
settings.endGroup();
settings.beginGroup("RecentConfs");
settings.setValue("file1","undefined");
settings.setValue("file2","undefined");
settings.setValue("file3","undefined");
settings.setValue("file4","undefined");
settings.endGroup();
settings.setValue("last_path_input","undefined");
settings.setValue("last_path_output","undefined");
settings.setValue("last_path_input_batchmod","undefined");
settings.setValue("last_path_output_batchmod","undefined");
settings.setValue("last_path_settingload","undefined");
settings.setValue("last_path_settingsave","undefined");
settings.beginGroup("Font_Paths");
settings.setValue("font_path0",DEFAULT_PATH_FONT);
settings.endGroup();
return QString(locale);
} else return settings.value("Langs/lang").toString();
}
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
app.setWindowIcon(QIcon(":sprites/thumbnailer.png"));
app.setApplicationName(APPLICATION_NAME);
app.setApplicationVersion(VERSION);
/*Initialisation du fichier de configuration + récupération de la langue*/
QString lang = initSettings();
/*Chargement de la langue logiciel et qt*/
QTranslator *system_translator = new QTranslator;
system_translator->load(TRANSLATORS + "qt_" + lang);
QTranslator *soft_translator = new QTranslator;
soft_translator->load(DEFAULT_PATH_LANG + "thumbnailme_" + lang);
app.installTranslator(system_translator);
app.installTranslator(soft_translator);
QPixmap splashPixmap(":sprites/splash.png");
/* Création de la page de demarrage + La page sera devant toute les fenêtres*/
QSplashScreen splash(splashPixmap, Qt::WindowStaysOnTopHint);
splash.setEnabled(false); //Ignore les évènements (Souris, clavier etc.).
#if defined(Q_OS_LINUX)
splash.setWindowFlags(Qt::SplashScreen);
#else
splash.setWindowFlags(Qt::Dialog);
#endif
splash.setMask(QRegion(splashPixmap.mask()));
splash.show();
/*Initialisation*/
splash.showMessage (QObject::tr ("Initialisation"), Qt::AlignLeft | Qt::AlignBottom, Qt::black);
usleep(500*FACTOR_TIME);
app.processEvents();
/*Initialisation of widgets*/
splash.showMessage (QObject::tr ("Widgets initialisation"), Qt::AlignLeft | Qt::AlignBottom, Qt::black);
MainWindow mafenetre;
app.processEvents();
/*Read preferences*/
splash.showMessage (QObject::tr("Preferences reading"), Qt::AlignLeft | Qt::AlignBottom, Qt::black);
usleep(500*FACTOR_TIME);
app.processEvents();
/*Starting...*/
splash.showMessage (QObject::tr("Starting..."), Qt::AlignLeft | Qt::AlignBottom, Qt::black);
usleep(250*FACTOR_TIME);
splash.close();
if(!settings.contains("WindowState/mainWindowGeometry"))
mafenetre.showMaximized();
else mafenetre.show();
app.processEvents();
/*Lancement de l'application*/
return app.exec();
}