]> git.lyx.org Git - lyx.git/blob - src/frontends/controllers/Kernel.C
Use Buffer const reference in most placees possible.
[lyx.git] / src / frontends / controllers / Kernel.C
1 /**
2  * \file Kernel.C
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 "Kernel.h"
14
15 #include "buffer.h"
16 #include "BufferView.h"
17 #include "funcrequest.h"
18 #include "lyxfunc.h"
19 #include "frontends/Dialogs.h"
20 #include "frontends/LyXView.h"
21
22 #include "support/LAssert.h"
23
24 using lyx::support::Assert;
25
26 Kernel::Kernel(LyXView & lyxview)
27         : lyxview_(lyxview)
28 {}
29
30
31 void Kernel::dispatch(FuncRequest const & fr, bool verbose) const
32 {
33         lyxview_.getLyXFunc().dispatch(fr, verbose);
34 }
35
36
37 void Kernel::updateDialog(string const & name) const
38 {
39         dispatch(FuncRequest(LFUN_DIALOG_UPDATE, name));
40 }
41
42
43 void Kernel::disconnect(string const & name) const
44 {
45         lyxview_.getDialogs().disconnect(name);
46 }
47
48 bool Kernel::isBufferAvailable() const
49 {
50         if (!lyxview_.view().get())
51                 return false;
52         return lyxview_.view()->available();
53 }
54
55
56 bool Kernel::isBufferReadonly() const
57 {
58         if (!lyxview_.buffer())
59                 return true;
60         return lyxview_.buffer()->isReadonly();
61 }
62
63
64 string const Kernel::bufferFilepath() const
65 {
66         return buffer().filePath();
67 }
68
69 Kernel::DocTypes Kernel::docType() const
70 {
71         if (buffer().isLatex())
72                 return LATEX;
73         if (buffer().isLiterate())
74                 return LITERATE;
75         if (buffer().isLinuxDoc())
76                 return LINUXDOC;
77
78         return DOCBOOK;
79 }
80
81
82 BufferView * Kernel::bufferview()
83 {
84         return lyxview_.view().get();
85 }
86
87
88 BufferView const * Kernel::bufferview() const
89 {
90         return lyxview_.view().get();
91 }
92
93
94 Buffer & Kernel::buffer()
95 {
96         Assert(lyxview_.buffer());
97         return *lyxview_.buffer();
98 }
99
100
101 Buffer const & Kernel::buffer() const
102 {
103         Assert(lyxview_.buffer());
104         return *lyxview_.buffer();
105 }