3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
14 #include "FormDocument.h"
16 #include "CutAndPaste.h"
20 #include "QtLyXView.h"
23 #ifdef CXX_WORKING_NAMESPACES
24 using Liason::setMinibuffer;
27 FormDocument::FormDocument(LyXView *v, Dialogs *d)
28 : dialog_(0), lv_(v), d_(d), h_(0)
30 d->showLayoutDocument.connect(slot(this, &FormDocument::show));
34 FormDocument::~FormDocument()
40 void FormDocument::update(bool)
42 if (!lv_->view()->available())
45 Buffer *buf = lv_->buffer();
47 if (readonly!=buf->isReadonly()) {
48 readonly = buf->isReadonly();
49 dialog_->setReadOnly(readonly);
52 dialog_->setFromParams(buf->params);
56 void FormDocument::apply()
61 if (!lv_->view()->available())
64 BufferParams & params = lv_->buffer()->params;
66 if (dialog_->updateParams(params))
67 lv_->view()->redoCurrentBuffer();
69 lv_->buffer()->markDirty();
70 setMinibuffer(lv_, _("Document layout set"));
74 void FormDocument::show()
77 dialog_ = new DocDialog(this, 0, _("LyX: Document Options"), false);
79 if (!dialog_->isVisible())
80 h_ = d_->hideBufferDependent.connect(slot(this, &FormDocument::hide));
84 dialog_->setActiveWindow();
91 bool FormDocument::changeClass(BufferParams & params, int new_class)
93 if (textclasslist.Load(new_class)) {
94 // successfully loaded
95 setMinibuffer(lv_, _("Converting document to new document class..."));
98 int ret = cap.SwitchLayoutsBetweenClasses(
99 params.textclass, new_class,
100 lv_->buffer()->paragraph);
102 /* FIXME: error message */
105 params.textclass = new_class;
113 void FormDocument::close()
119 void FormDocument::hide()