OSDN Git Service

972c732d2eb4f28e9252eaf08a865970a8f661d5
[wordring-tm/wordring-tm.git] / proxy / tmcandidatewidget.cpp
1 #include "tmcandidatewidget.h"
2 #include "settings.h"
3 #include "tmservice.h"
4 #include "tmsocket.h"
5
6 #include <QToolBar>
7 #include <QAction>
8 #include <QListWidget>
9 #include <QBoxLayout>
10 #include <QLabel>
11
12 TM::CandidateWidget::CandidateWidget(Settings *settings, Service *service, QWidget *parent)
13         : QWidget(parent)
14         , m_service(service)
15         , m_settings(settings)
16         , m_connection(nullptr)
17 {
18         QVBoxLayout *vlayout = new QVBoxLayout(this);
19         vlayout->setSpacing(4);
20         vlayout->setContentsMargins(0, 0, 0, 0);
21
22         m_toolbar = new QToolBar("candidate", this);
23
24         m_search = new QAction(QIcon(":/search.png"), "search", this);
25         m_toolbar->addAction(m_search);
26
27         m_list_widget = new QListWidget(this);
28         m_list_widget->setWordWrap(true);
29
30         vlayout->addWidget(m_toolbar);
31         vlayout->addWidget(m_list_widget);
32
33         connect(m_search, SIGNAL(triggered(bool)), this, SLOT(onSearchTriggered(bool)));
34 }
35
36 void TM::CandidateWidget::attach(SocketConnection *connection)
37 {
38         if(m_connection == connection) return;
39         if(m_connection) detach(connection);
40
41
42         m_connection = connection;
43 }
44
45 void TM::CandidateWidget::detach(SocketConnection *connection)
46 {
47         if(m_connection != connection) return;
48
49         clear();
50         m_connection = nullptr;
51 }
52
53 void TM::CandidateWidget::clear() { m_list_widget->clear(); }
54
55 void TM::CandidateWidget::append(QString text)
56 {
57         qDebug() << text;
58         QListWidgetItem *wi = new QListWidgetItem(m_list_widget);
59         wi->setText(text);
60         //QLabel *l = new QLabel(m_list_widget);
61         //l->setTextFormat(Qt::RichText);
62         //l->setWordWrap(true);
63         //l->setText(text);
64         m_list_widget->addItem(wi);
65         //m_list_widget->setItemWidget(wi, l);
66 }
67
68 void TM::CandidateWidget::onSearchTriggered(bool)
69 {
70         clear();
71         if(!m_connection) return;
72         TextSentence::pointer sentence =
73                         m_connection->segment_list()->current_sentence();
74         if(!sentence) return;
75
76         m_service->find_candidates(sentence);
77 }
78
79
80
81
82
83