summaryrefslogtreecommitdiff
path: root/LanguagesManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'LanguagesManager.h')
-rw-r--r--LanguagesManager.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/LanguagesManager.h b/LanguagesManager.h
new file mode 100644
index 0000000..6d59284
--- /dev/null
+++ b/LanguagesManager.h
@@ -0,0 +1,81 @@
+/** \file LanguagesManager.h
+\brief Define the class to manage and load the languages
+\author alpha_one_x86
+\version 0.3
+\date 2010
+\licence GPL3, see the file COPYING */
+
+#ifndef LANGUAGES_MANAGER_H
+#define LANGUAGES_MANAGER_H
+
+#include <QObject>
+#include <QString>
+#include <QStringList>
+#include <QList>
+#include <QLocale>
+#include <QTranslator>
+#include <QByteArray>
+#include <QCoreApplication>
+#include <QDir>
+
+#include "Environment.h"
+#include "Singleton.h"
+#include "OptionEngine.h"
+#include "ResourcesManager.h"
+#include "PluginsManager.h"
+
+/** \brief Define the class to manage and load the resources linked with the themes
+
+This class provide a core load and manage the resources */
+class LanguagesManager : public QObject, public Singleton<LanguagesManager>
+{
+ Q_OBJECT
+ friend class Singleton<LanguagesManager>;
+ //public:
+ // QString getMainShortName();
+ private:
+ /// \brief Create the manager and load the defaults variables
+ LanguagesManager();
+ /// \brief Destroy the language manager
+ ~LanguagesManager();
+ //for the options
+ OptionEngine *options;
+ /** \brief To set the current language
+ \param newLanguage Should be short name code found into informations.xml of language file */
+ void setCurrentLanguage(const QString &newLanguage);
+ /// \brief Structure of language
+ struct LanguagesAvailable
+ {
+ QString path;
+ QString fullName;
+ QString mainShortName;
+ QStringList shortName;
+ };
+ /// \brief To store the language path
+ QStringList languagePath;
+ /// \brief To store the language detected
+ QList<LanguagesAvailable> LanguagesAvailableList;
+ /// \brief check if short name is found into language
+ QString getMainShortName(const QString &shortName);
+ /// \brief Store the object of resources manager
+ ResourcesManager *resources;
+ /// \brief Store the object of plugin manager
+ PluginsManager *plugins;
+ /// \brief list of installed translator
+ QList<QTranslator *> installedTranslator;
+ QString currentLanguage;
+ /// \brief load the language selected
+ QString getTheRightLanguage();
+ private slots:
+ /// \brief load the language in languagePath
+ void allPluginIsLoaded();
+ //plugin management
+ void onePluginAdded(const PluginsAvailable &plugin);
+ void onePluginWillBeRemoved(const PluginsAvailable &plugin);
+ void newOptionValue(const QString &group);
+ signals:
+ //send the language is loaded or the new language is loaded
+ void newLanguageLoaded(const QString &mainShortName);
+};
+
+#endif // LANGUAGES_MANAGER_H