10 #include <QtGui/QApplication>
11 #include <QApplication>
14 #include <QStringList>
16 #include <core/util/ComposerSettings.h>
18 #include "ComposerMainWindow.h"
21 #include <QX11EmbedWidget>
25 using namespace composer::gui;
30 void updateSettingsWithDefaults()
33 QStringList defaultPluginsPath;
36 defaultPluginsPath << QDir::homePath() + QString(
"/composer/extensions");
40 defaultPluginsPath <<
"/Library/Application Support/Composer/Extensions"
41 << QApplication::applicationDirPath() +
42 "/../PlugIns/composer";
43 #elif defined(Q_WS_WIN32)
44 defaultPluginsPath << QApplication::applicationDirPath() +
"/extensions";
45 defaultPluginsPath <<
"C:/Composer/extensions";
48 #ifdef EXT_DEFAULT_PATH
49 defaultPluginsPath << QString(EXT_DEFAULT_PATH)
50 + QString(
"/lib/composer/extensions");
56 settings.beginGroup(
"extensions");
57 QStringList extensions_path = settings.value(
"path").toStringList();
58 extensions_path << defaultPluginsPath;
59 extensions_path.removeDuplicates();
60 settings.setValue(
"path", extensions_path);
65 settings.beginGroup(
"languages");
66 if(!settings.contains(
"currentLanguage"))
67 settings.setValue(
"currentLanguage",
"en");
70 if(!settings.contains(
"supportedLanguages"))
73 list <<
"en_US" <<
"pt_BR" <<
"es_ES";
74 settings.setValue(
"supportedLanguages", list);
80 QString defaultConnBaseDir;
81 settings.beginGroup(
"importBases");
82 if(!settings.contains(
"default_connector_base"))
85 defaultConnBaseDir =
"/Library/Application Support/Composer/Data/";
86 #elif defined(Q_WS_WIN32)
87 defaultConnBaseDir = QApplication::applicationDirPath() +
"/data/";
90 #ifdef EXT_DEFAULT_PATH
91 defaultConnBaseDir = QString(EXT_DEFAULT_PATH)
92 + QString(
"/share/composer/");
96 settings.setValue(
"default_conn_base",
97 defaultConnBaseDir +
"defaultConnBase.ncl");
102 QStringList stylesheetsDirs =
103 settings.value(
"default_stylesheets_dirs").toStringList();
105 stylesheetsDirs << QString(DATA_PATH);
108 stylesheetsDirs << QApplication::applicationDirPath() +
"/data";
109 #elif defined(Q_WS_MAC)
110 stylesheetsDirs << QApplication::applicationDirPath() +
"/../PlugIns/composer";
113 stylesheetsDirs.removeDuplicates();
115 settings.setValue(
"default_stylesheets_dirs", stylesheetsDirs);
119 void loadTranslations(QApplication *app)
123 settings.beginGroup(
"languages");
124 QString language_code = settings.value(
"currentLanguage",
125 QString(
"en")).toString();
127 qDebug() <<
"[GUI] Current Language = " << language_code;
129 QLocale locale = QLocale(language_code);
130 QLocale::setDefault(locale);
133 settings.beginGroup(
"extensions");
134 QStringList extensions_paths = settings.value(
"path").toStringList();
137 qDebug() <<
"[GUI]" << extensions_paths;
140 foreach(QString curPath, extensions_paths)
143 QDir curDir(curPath);
145 curDir.setNameFilters(QStringList() <<
"*_" + language_code +
".qm");
147 QFileInfoList fileInfoList = curDir.entryInfoList();
150 foreach(QFileInfo fileInfo, fileInfoList)
152 qDebug() <<
"[GUI] translation file = " << fileInfo.absoluteFilePath();
153 QTranslator *composerTranslator =
new QTranslator(qApp);
154 composerTranslator->load(fileInfo.absoluteFilePath());
155 QCoreApplication::installTranslator(composerTranslator);
161 int main(
int argc,
char *argv[])
166 QApplication a(argc, argv);
167 a.setQuitOnLastWindowClosed(
true);
169 updateSettingsWithDefaults();
170 loadTranslations(&a);
172 QResource::registerResource(
"images.qrc");
173 QCoreApplication::setOrganizationName(
"Telemidia Lab");
174 QCoreApplication::setOrganizationDomain(
"telemidia.pucrio.br");
175 QCoreApplication::setApplicationName(
"composer");
179 QApplication::addLibraryPath(QApplication::applicationDirPath());
182 w.setWindowIcon(QIcon(
":/mainwindow/icon"));
185 GlobalSettings().value(
"default_stylesheets_dirs").toStringList();
187 foreach(QString dir, dirs)
189 if (QFile::exists(dir+
"/style.qss"))
191 QFile style(dir+
"/style.qss");
192 if (style.open(QFile::ReadOnly))
194 w.setStyleSheet(style.readAll());
203 QStringList argList = a.arguments();
204 QStringList filesToOpen;
205 for(
int i = 0; i < argList.size(); i++)
207 if(argList.at(i).endsWith(
".cpr"))
208 filesToOpen << argList.at(i);
211 w.openProjects(filesToOpen);