]> git.lyx.org Git - lyx.git/blob - src/frontends/qt3/QViewSource.C
945a067d1e6f9319ab7a1f0de5e737b17b2dade9
[lyx.git] / src / frontends / qt3 / QViewSource.C
1 /**
2  * \file QViewSource.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  * \author Bo Peng
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #include <config.h>
13
14 #include "QViewSource.h"
15 #include "QViewSourceDialog.h"
16 #include "qt_helpers.h"
17 #include "lyx_gui.h"
18
19 #include "controllers/ControlViewSource.h"
20
21 #include <sstream>
22
23 #include <qtextview.h>
24 #include <qpushbutton.h>
25 #include <qcheckbox.h>
26
27 namespace lyx {
28 namespace frontend {
29
30 typedef QController<ControlViewSource, QView<QViewSourceDialog> > base_class;
31
32 QViewSource::QViewSource(Dialog & parent)
33         : base_class(parent, "")
34 {}
35
36
37 void QViewSource::build_dialog()
38 {
39         dialog_.reset(new QViewSourceDialog(this));
40         dialog_->viewSourceTV->setReadOnly(true);
41         dialog_->viewSourceTV->setTextFormat(Qt::PlainText);
42         // this is personal. I think source code should be in fixed-size font
43         QFont font(toqstr(theApp->typewriterFontName()));
44         font.setFixedPitch(true);
45         font.setStyleHint(QFont::TypeWriter);
46         dialog_->viewSourceTV->setFont(font);
47         // again, personal taste
48         dialog_->viewSourceTV->setWordWrap(QTextEdit::NoWrap);
49 }
50
51
52 void QViewSource::update_source()
53 {
54         bool fullSource = dialog_->viewFullSourceCB->isChecked();
55         dialog_->viewSourceTV->setText(toqstr(controller().updateContent(fullSource)));
56 }
57
58
59 void QViewSource::update_contents()
60 {
61         setTitle(controller().title());
62         if (dialog_->autoUpdateCB->isChecked())
63                 update_source();
64 }
65
66 } // namespace frontend
67 } // namespace lyx