3 * Copyright 2001 The LyX Team.
4 * See the file COPYING.
6 * \author Edwin Leuven, leuven@fee.uva.nl
12 #include "QCharacterDialog.h"
13 #include "QCharacter.h"
14 #include "bufferview_funcs.h"
17 #include "QtLyXView.h"
21 #include "support/lstrings.h"
22 #include "BufferView.h"
25 using Liason::setMinibuffer;
27 QCharacter::QCharacter(LyXView *v, Dialogs *d)
28 : dialog_(0), lv_(v), d_(d), h_(0), u_(0)
30 d->showCharacter.connect(slot(this, &QCharacter::show));
32 d->setUserFreeFont.connect(slot(this, &QCharacter::apply));
36 QCharacter::~QCharacter()
42 void QCharacter::apply()
44 if (!lv_->view()->available() || !dialog_)
47 LyXFont font = dialog_->getChar();
49 if (dialog_->langItem()==1)
50 font.setLanguage(lv_->buffer()->params.language);
52 toggleAndShow(lv_->view(), font, dialog_->toggleAll());
53 lv_->view()->setState();
54 lv_->buffer()->markDirty();
55 setMinibuffer(lv_, _("Character set"));
59 void QCharacter::show()
62 dialog_ = new QCharacterDialog(this, 0, _("Character Settings"), false);
65 for (Languages::const_iterator cit = languages.begin();
66 cit != languages.end(); ++cit) {
67 string const language = cit->second.lang();
68 dialog_->lang->insertItem(tostr(language).c_str(), -1);
72 if (!dialog_->isVisible()) {
73 h_ = d_->hideBufferDependent.connect(slot(this, &QCharacter::hide));
74 u_ = d_->updateBufferDependent.connect(slot(this, &QCharacter::update));
78 dialog_->setActiveWindow();
84 void QCharacter::close()
91 void QCharacter::hide()
98 void QCharacter::update(bool)
100 if (!lv_->view()->available())
103 dialog_->setReadOnly(lv_->buffer()->isReadonly());