]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/Dialog.cpp
cc3d3999c51cbd5528b91480aef37dadcd7aba30
[lyx.git] / src / frontends / qt4 / Dialog.cpp
1 /**
2  * \file Dialog.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Angus Leeming
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "Dialog.h"
14
15 #include "GuiView.h"
16
17 #include "Buffer.h"
18 #include "FuncRequest.h"
19 #include "FuncStatus.h"
20 #include "LyXFunc.h"
21
22 #include <string>
23
24 namespace lyx {
25 namespace frontend {
26
27
28 Dialog::Dialog(GuiView & lv, std::string const & name)
29         : lyxview_(&lv), name_(name.c_str())
30 {}
31
32
33 Dialog::~Dialog()
34 {}
35
36
37 std::string Dialog::name() const
38 {
39         return name_;
40 }
41
42 bool Dialog::canApply() const
43 {
44         FuncRequest const fr(getLfun(), name_);
45         FuncStatus const fs(getStatus(fr));
46         return fs.enabled();
47 }
48
49
50 void Dialog::dispatch(FuncRequest const & fr) const
51 {
52         lyxview_->dispatch(fr);
53 }
54
55
56 void Dialog::updateDialog() const
57 {
58         dispatch(FuncRequest(LFUN_DIALOG_UPDATE, name_));
59 }
60
61
62 void Dialog::disconnect() const
63 {
64         lyxview_->disconnectDialog(name_);
65 }
66
67
68 bool Dialog::isBufferAvailable() const
69 {
70         return lyxview_->buffer() != 0;
71 }
72
73
74 bool Dialog::isBufferReadonly() const
75 {
76         if (!lyxview_->buffer())
77                 return true;
78         return lyxview_->buffer()->isReadonly();
79 }
80
81
82 std::string const Dialog::bufferFilepath() const
83 {
84         return buffer().filePath();
85 }
86
87
88 KernelDocType Dialog::docType() const
89 {
90         if (buffer().isLatex())
91                 return LATEX;
92         if (buffer().isLiterate())
93                 return LITERATE;
94
95         return DOCBOOK;
96 }
97
98
99 BufferView * Dialog::bufferview()
100 {
101         return lyxview_->view();
102 }
103
104
105 BufferView const * Dialog::bufferview() const
106 {
107         return lyxview_->view();
108 }
109
110
111 Buffer & Dialog::buffer()
112 {
113         BOOST_ASSERT(lyxview_->buffer());
114         return *lyxview_->buffer();
115 }
116
117
118 Buffer const & Dialog::buffer() const
119 {
120         BOOST_ASSERT(lyxview_->buffer());
121         return *lyxview_->buffer();
122 }
123
124 } // namespace frontend
125 } // namespace lyx