OSDN Git Service

データ構造決定記念バックアップ♪
[wordring-tm/wordring-tm.git] / proxy / tmeditorwidget.h
index c847740..b09100f 100644 (file)
@@ -66,8 +66,7 @@ public:
        int target_language();
 
        void set_segment(TextSegment::pointer segment);
-       void save_sentence(int segment_id, int index,
-                                          Text::pointer target_sentence, QJsonArray link);
+       void save_sentence(int segment_id, int index);
 
 signals:
        void editModeChanged(bool mode_);
@@ -107,10 +106,12 @@ public:
 
 public:
        explicit EditorPanel(QWidget *parent);
-       void set_editor(Editor *editor);
 
-       Text::pointer sentence();
-       virtual void set_sentence(Text::pointer sentence);
+       Editor* parent_editor();
+       void set_parent_editor(Editor *editor);
+
+       virtual Text::pointer sentence() = 0;
+       virtual void ensure_sentence();
 
        bool is_empty() const;
 
@@ -122,9 +123,8 @@ public:
 
        QColor color(int index) const;
 
-protected:
-       Editor *m_editor;
-       Text::pointer m_sentence;
+private:
+       Editor *m_parent_editor;
 };
 
 class SourcePanel : public EditorPanel
@@ -136,6 +136,14 @@ public:
        int index() const;
        void set_index(int index);
 
+       Text::pointer sentence();
+       Text::pointer source_sentence();
+       Text::pointer target_sentence();
+       void set_target_sentence(Text::pointer sentence);
+
+       TextSentence::pointer text_sentence();
+       void set_text_sentence(TextSentence::pointer text_sentence);
+
        TargetPanel* target_panel();
        void set_target_panel(TargetPanel *target);
 
@@ -151,17 +159,13 @@ protected:
        void inputMethodEvent(QInputMethodEvent *ev);
        void keyPressEvent(QKeyEvent *ev);
 
-       //void do_enter();
        void do_click(QPoint const &pos);
        void do_click_in_link_mode(QPoint const &pos);
 
-       void do_focusin();
-       void do_focusout();
-
 private:
-       int m_index;
+       int m_index; /*!< Editor上での位置を示す索引 */
        TargetPanel *m_target_panel;
-       WordLinker m_linker;
+       TextSentence::pointer m_text_sentence;
 };
 
 class TargetPanel: public EditorPanel
@@ -173,7 +177,9 @@ public:
        SourcePanel* source_panel();
        void set_source_panel(SourcePanel *source);
 
-       void set_sentence(Text::pointer sentence);
+       Text::pointer sentence();
+       void save_sentence();
+       void ensure_sentence();
 
        bool is_text_saved() const;
        void set_text_saved(bool saved);
@@ -188,13 +194,9 @@ protected:
        void inputMethodEvent(QInputMethodEvent *ev);
        void keyPressEvent(QKeyEvent *ev);
 
-       //void do_enter();
        void do_click(QPoint const &pos);
        void do_click_in_link_mode(QPoint const &pos);
 
-       void do_focusin();
-       void do_focusout();
-
        void do_key_press_in_link_mode(QKeyEvent *ev);
 
 private:
@@ -220,6 +222,7 @@ public:
        bool can_link_mode() const;
 
        EditorWidget* parent_editor_widget();
+private:
        TargetPanel* current_target_panel();
        TargetPanel const* current_target_panel() const;
 
@@ -235,6 +238,9 @@ protected:
        void do_link_mode_leave(SourcePanel *panel);
 
 private:
+       void divide_target_sentence(SourcePanel *source_panel);
+
+private:
        Settings *m_settings;
        Service *m_service;