20 #include <QWebSocketServer>
34 class SocketConnection : public QObject
39 typedef QPointer<SocketConnection> pointer;
40 typedef QMap<int, TextSegment::pointer> segment_map_type;
41 typedef segment_map_type::iterator segment_map_iterator;
44 SocketConnection(Settings *settings, Service *service,
45 EditorWidget *editor_widget, QWebSocket *socket);
46 virtual ~SocketConnection();
49 void send_message(QString const &message);
50 void send_message(QJsonObject const &json);
52 void set_edit_mode(bool edit_mode);
54 void save_sentence(int segment_id, int index);
55 void remove_sentence(int segment_id, int index);
58 int segment_id, int index, sentence_data_type::pointer result);
59 void sentence_inserted(int segment_id, int index,
60 quint32 source_id, quint32 target_id);
63 //void editCmd(int id, QString html);
66 void changeEditMode(bool edit_mode);
67 void changeLanguage();
70 void set_segment(int segment_id, QString html);
72 void do_edit_segment(QJsonObject const &json);
73 void do_focus(QJsonObject const &json);
74 void do_blur(QJsonObject const &json);
75 void do_load(QJsonObject const &json);
76 void do_load_segment(QJsonObject const &json);
78 Text::pointer to_text(HtmlRange range) const;
79 TextSegment::pointer find_segment(int segment_id);
80 void insert_segment(int segment_id, TextSegment::pointer segment);
83 void onTextMessageReceived(QString const &message);
84 void onBinaryMessageReceived(QByteArray const &message);
91 QUrl m_url; /*!< 読み込んでいるウェブページのURL */
96 int m_target_language_code;
98 EditorWidget *m_editor_widget;
100 QMap<int, TextSegment::pointer> m_segments;
101 TextSegment::pointer m_current_segment;
104 class SocketServer : public QObject
108 SocketServer(Settings *settings, Service* service,
109 EditorWidget *editor_widget, QObject *parent);
112 quint16 port() const;
118 void onNewConnection();
119 void onDisconnected();
122 void attachConnections(QWebSocket* socket);
123 void detachConnections(QWebSocket* socket);
127 Settings *m_settings;
130 QWebSocketServer *m_server;
131 QList<QWebSocket*> m_sockets;
133 EditorWidget *m_editor_widget;
136 Q_DECLARE_METATYPE(SocketConnection::pointer)