Salome HOME
AppName_customize: initialize
[modules/gui.git] / src / LightApp / LightApp_Msg.h
diff --git a/src/LightApp/LightApp_Msg.h b/src/LightApp/LightApp_Msg.h
new file mode 100644 (file)
index 0000000..5fb5bdf
--- /dev/null
@@ -0,0 +1,64 @@
+#include <QTextStream>
+#include <QBuffer>
+#include <QString>
+#include <QXmlStreamReader>
+#include <QDebug>
+#include <QTranslator>
+#include <QFile>
+#include <QCoreApplication>
+#include <QProcess>
+#include <QDir>
+#include <memory>
+
+namespace LightApp_Msg
+{
+
+class Message
+{
+    public:
+        Message(const QString& src, const QString& trl):source(src),translation(trl){};
+        QString GetSource() const { return source ;}
+        QString GetTranslation() const { return translation ;}
+        void Set_Source(const QString& str) { source = str; }
+        void Set_Translation(const QString& str) { translation = str; }
+    private:
+        QString source;
+        QString translation;
+};
+
+class Context
+{
+    public:
+        Context(const QString& name):Context_name(name){};
+        QString GetContext_name(){return Context_name;}
+        void AddMsg(Message& msg) {Message_list.append(msg);}
+        void AddMsg(const QString& src, const QString& trl) {Message_list.append(Message(src,trl));}
+        Message* GetMessagebySrc(const QString&);
+        QList<Message>& GetMessageList(){return Message_list;}
+        QString ExportContext();
+    private:
+        QString Context_name;
+        QList<Message> Message_list;
+};
+
+class LightApp_Msg_handling
+{
+public:
+    LightApp_Msg_handling(std::unique_ptr<QList<Context>> Context_list):
+                                            Context_list(std::move(Context_list)){};
+    void read(QIODevice *device);
+    QString write();
+    Context* GetContextbyName(const QString &name);
+    bool HaveContext(const QString &name);
+private:
+    QXmlStreamReader xmlReader;
+    std::unique_ptr<QList<Context>> Context_list;
+    QString header;
+
+    void readContext();
+    void readMessage();
+    void readSrc(Message& msg);
+    void readTranslation(Message& msg);
+};
+
+}