]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/Dialog.cpp
fix memory leaks
[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         theLyXFunc().setLyXView(lyxview_);
53         lyx::dispatch(fr);
54 }
55
56
57 void Dialog::updateDialog() const
58 {
59         dispatch(FuncRequest(LFUN_DIALOG_UPDATE, name_));
60 }
61
62
63 void Dialog::disconnect() const
64 {
65         lyxview_->disconnectDialog(name_);
66 }
67
68
69 bool Dialog::isBufferAvailable() const
70 {
71         return lyxview_->buffer() != 0;
72 }
73
74
75 bool Dialog::isBufferReadonly() const
76 {
77         if (!lyxview_->buffer())
78                 return true;
79         return lyxview_->buffer()->isReadonly();
80 }
81
82
83 std::string const Dialog::bufferFilepath() const
84 {
85         return buffer().filePath();
86 }
87
88
89 KernelDocType Dialog::docType() const
90 {
91         if (buffer().isLatex())
92                 return LATEX;
93         if (buffer().isLiterate())
94                 return LITERATE;
95
96         return DOCBOOK;
97 }
98
99
100 BufferView * Dialog::bufferview()
101 {
102         return lyxview_->view();
103 }
104
105
106 BufferView const * Dialog::bufferview() const
107 {
108         return lyxview_->view();
109 }
110
111
112 Buffer & Dialog::buffer()
113 {
114         BOOST_ASSERT(lyxview_->buffer());
115         return *lyxview_->buffer();
116 }
117
118
119 Buffer const & Dialog::buffer() const
120 {
121         BOOST_ASSERT(lyxview_->buffer());
122         return *lyxview_->buffer();
123 }
124
125 } // namespace frontend
126 } // namespace lyx