diff --git a/src/frontends/qt4/Makefile.am b/src/frontends/qt4/Makefile.am index 34be273029..135d7cb5fc 100644 --- a/src/frontends/qt4/Makefile.am +++ b/src/frontends/qt4/Makefile.am @@ -43,21 +43,15 @@ libqt4_la_SOURCES = \ QLMenubar.C QLMenubar.h \ QBox.C QBox.h \ QBranches.C QBranches.h \ - QCharacter.C QCharacter.h \ QCitation.C QCitation.h \ QDialogView.C QDialogView.h \ QFloat.C QFloat.h \ QGraphics.C QGraphics.h \ - QInclude.C QInclude.h \ QLImage.C QLImage.h \ QViewSource.C QViewSource.h \ QLPainter.C QLPainter.h \ QLyXKeySym.C QLyXKeySym.h \ - QNomencl.C QNomencl.h \ - QNote.C QNote.h \ QPrint.C QPrint.h \ - QRef.C QRef.h \ - QSendto.C QSendto.h \ Qt2BC.C Qt2BC.h \ checkedwidgets.C checkedwidgets.h \ panelstack.h panelstack.C \ diff --git a/src/frontends/qt4/Makefile.dialogs b/src/frontends/qt4/Makefile.dialogs index 68fb51c554..02e37469a8 100644 --- a/src/frontends/qt4/Makefile.dialogs +++ b/src/frontends/qt4/Makefile.dialogs @@ -93,7 +93,7 @@ MOCFILES = \ QBranch.C QBranch.h \ QBranches.C QBranches.h \ QChanges.C QChanges.h \ - QCharacterDialog.C QCharacterDialog.h \ + QCharacter.C QCharacter.h \ QCitationDialog.C QCitationDialog.h \ QCommandBuffer.C QCommandBuffer.h \ QCommandEdit.C QCommandEdit.h \ @@ -104,7 +104,7 @@ MOCFILES = \ QExternal.C QExternal.h \ QFloatDialog.C QFloatDialog.h \ QGraphicsDialog.C QGraphicsDialog.h \ - QIncludeDialog.C QIncludeDialog.h \ + QInclude.C QInclude.h \ QIndex.C QIndex.h \ QLog.C QLog.h \ QViewSource.C QViewSource.h \ @@ -112,13 +112,13 @@ MOCFILES = \ QLPopupMenu.C QLPopupMenu.h \ QLPrintDialog.C QLPrintDialog.h \ QMathMatrixDialog.C QMathMatrixDialog.h \ - QNomenclDialog.C QNomenclDialog.h \ - QNoteDialog.C QNoteDialog.h \ + QNomencl.C QNomencl.h \ + QNote.C QNote.h \ QParagraph.C QParagraph.h \ QPrefs.C QPrefs.h \ - QRefDialog.C QRefDialog.h \ + QRef.C QRef.h \ QSearch.C QSearch.h \ - QSendtoDialog.C QSendtoDialog.h \ + QSendto.C QSendto.h \ qsetborder.C qsetborder.h \ QShowFile.C QShowFile.h \ QSpellchecker.C QSpellchecker.h \ diff --git a/src/frontends/qt4/QBibtexDialog.C b/src/frontends/qt4/QBibtexDialog.C deleted file mode 100644 index ac93f96222..0000000000 --- a/src/frontends/qt4/QBibtexDialog.C +++ /dev/null @@ -1,240 +0,0 @@ -/** - * \file QBibtexDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QBibtexDialog.h" -#include "QBibtex.h" - -#include - -#include "checkedwidgets.h" -#include "Qt2BC.h" -#include "qt_helpers.h" -#include "validators.h" - -#include "controllers/ControlBibtex.h" -#include "controllers/ButtonPolicies.h" - -#include "debug.h" -#include "support/filetools.h" -#include "support/lstrings.h" - -#include -#include -#include - -using lyx::support::changeExtension; -using lyx::support::trim; - -using std::string; - -namespace lyx { -namespace frontend { - - -QBibtexDialog::QBibtexDialog(QBibtex * form) - : form_(form) -{ - setupUi(this); - QDialog::setModal(true); - - connect(okPB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - connect(stylePB, SIGNAL( clicked() ), - this, SLOT( browsePressed() ) ); - connect(deletePB, SIGNAL( clicked() ), - this, SLOT( deletePressed() ) ); - connect(styleCB, SIGNAL( editTextChanged (const QString&) ), - this, SLOT( change_adaptor() ) ); - connect(databaseLW, SIGNAL( itemSelectionChanged() ), - this, SLOT( databaseChanged() ) ); - connect(bibtocCB, SIGNAL( clicked() ), - this, SLOT( change_adaptor() ) ); - connect(btPrintCO, SIGNAL( activated(int) ), - this, SLOT( change_adaptor() ) ); - connect(addBibPB, SIGNAL( clicked() ), - this, SLOT( addPressed() ) ); - - add_ = new UiDialog(this, true); - - Qt2BC * bcview = new Qt2BC(add_bc_); - add_bc_.view(bcview); - add_bc_.bp(new OkCancelPolicy); - - bcview->setOK(add_->addPB); - bcview->setCancel(add_->closePB); - - add_->bibED->setValidator(new PathValidator(true, add_->bibED)); - addCheckedLineEdit(add_bc_.view(), add_->bibED, 0); - - connect(add_->bibED, SIGNAL(textChanged(const QString&)), - this, SLOT(bibEDChanged())); - connect(add_->addPB, SIGNAL(clicked()), - this, SLOT(addDatabase())); - connect(add_->addPB, SIGNAL(clicked()), - add_, SLOT(accept()) ); - connect(add_->bibLW, SIGNAL(itemActivated(QListWidgetItem *)), - this, SLOT(addDatabase())); - connect(add_->bibLW, SIGNAL(itemActivated(QListWidgetItem *)), - add_, SLOT(accept())); - connect(add_->bibLW, SIGNAL(itemSelectionChanged()), - this, SLOT(availableChanged())); - connect(add_->browsePB, SIGNAL(clicked()), - this, SLOT(browseBibPressed())); - connect(add_->closePB, SIGNAL( clicked() ), - add_, SLOT( reject() ) ); - -} - - -QBibtexDialog::~QBibtexDialog() -{} - - -void QBibtexDialog::bibEDChanged() -{ - // Indicate to the button controller that the contents have - // changed. The actual test of validity is carried out by - // the checkedLineEdit. - add_bc_.valid(true); -} - - -void QBibtexDialog::change_adaptor() -{ - form_->changed(); -} - - -void QBibtexDialog::browsePressed() -{ - docstring const file = form_->controller().browseBst(docstring()); - - if (!file.empty()) { - // FIXME UNICODE - docstring const filen = from_utf8(changeExtension(to_utf8(file), "")); - bool present = false; - unsigned int pres = 0; - - for (int i = 0; i != styleCB->count(); ++i) { - if (qstring_to_ucs4(styleCB->itemText(i)) == filen) { - present = true; - pres = i; - } - } - - if (!present) - styleCB->insertItem(0, toqstr(filen)); - - styleCB->setCurrentIndex(pres); - form_->changed(); - } -} - - -void QBibtexDialog::browseBibPressed() -{ - docstring const file = trim(form_->controller().browseBib(docstring())); - - if (!file.empty()) { - // FIXME UNICODE - QString const f = toqstr(changeExtension(to_utf8(file), "")); - bool present = false; - - for (int i = 0; i < add_->bibLW->count(); ++i) { - if (add_->bibLW->item(i)->text() == f) - present = true; - } - - if (!present) { - add_->bibLW->addItem(f); - form_->changed(); - } - - add_->bibED->setText(f); - } -} - - -void QBibtexDialog::addPressed() -{ - add_bc_.valid(false); - add_->exec(); -} - - -void QBibtexDialog::addDatabase() -{ - int const sel = add_->bibLW->currentRow(); - docstring const file = trim(qstring_to_ucs4(add_->bibED->text())); - - if (sel < 0 && file.empty()) - return; - - // Add the selected browser_bib keys to browser_database - // multiple selections are possible - for (int i = 0; i != add_->bibLW->count(); ++i) { - QListWidgetItem * const item = add_->bibLW->item(i); - if (add_->bibLW->isItemSelected(item)) { - add_->bibLW->setItemSelected(item, false); - QList matches = - databaseLW->findItems(item->text(), Qt::MatchExactly); - if (matches.empty()) - databaseLW->addItem(item->text()); - } - } - - if (!file.empty()) { - add_->bibED->clear(); - QString const f = toqstr(from_utf8(changeExtension(to_utf8(file), ""))); - QList matches = - databaseLW->findItems(f, Qt::MatchExactly); - if (matches.empty()) - databaseLW->addItem(f); - } - - form_->changed(); -} - - -void QBibtexDialog::deletePressed() -{ - databaseLW->takeItem(databaseLW->currentRow()); - form_->changed(); -} - - - -void QBibtexDialog::databaseChanged() -{ - deletePB->setEnabled(!form_->readOnly() && databaseLW->currentRow() != -1); -} - - -void QBibtexDialog::availableChanged() -{ - add_bc_.valid(true); -} - - -void QBibtexDialog::closeEvent(QCloseEvent *e) -{ - form_->slotWMHide(); - e->accept(); -} - - -} // namespace frontend -} // namespace lyx - -#include "QBibtexDialog_moc.cpp" diff --git a/src/frontends/qt4/QBibtexDialog.h b/src/frontends/qt4/QBibtexDialog.h deleted file mode 100644 index 5f9054e328..0000000000 --- a/src/frontends/qt4/QBibtexDialog.h +++ /dev/null @@ -1,71 +0,0 @@ -// -*- C++ -*- -/** - * \file QBibtexDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QBIBTEXDIALOG_H -#define QBIBTEXDIALOG_H - -#include "ui/BibtexUi.h" -#include "ui/BibtexAddUi.h" - -#include "ButtonController.h" - -#include -#include - -namespace lyx { -namespace frontend { - -class QBibtex; - -template - class UiDialog: public QDialog, public UI - { - public: - UiDialog(QWidget * parent=0, bool modal=false, Qt::WFlags f=0) - : QDialog(parent, f) - { - UI::setupUi(this); - QDialog::setModal(modal); - } - }; - -class QBibtexDialog : public QDialog, public Ui::QBibtexUi { - Q_OBJECT - -public: - QBibtexDialog(QBibtex * form); - ~QBibtexDialog(); - - UiDialog * add_; - -protected Q_SLOTS: - virtual void change_adaptor(); - virtual void browsePressed(); - virtual void browseBibPressed(); - virtual void addPressed(); - virtual void addDatabase(); - virtual void deletePressed(); - virtual void databaseChanged(); - virtual void availableChanged(); - void bibEDChanged(); - -protected: - virtual void closeEvent(QCloseEvent * e); - -private: - QBibtex * form_; - ButtonController add_bc_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QBIBTEXDIALOG_H diff --git a/src/frontends/qt4/QBranchDialog.C b/src/frontends/qt4/QBranchDialog.C deleted file mode 100644 index b4e0725536..0000000000 --- a/src/frontends/qt4/QBranchDialog.C +++ /dev/null @@ -1,50 +0,0 @@ -/** - * \file QBranchDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QBranchDialog.h" -#include "QBranch.h" - -#include -#include - -namespace lyx { -namespace frontend { - -QBranchDialog::QBranchDialog(QBranch * form) - : form_(form) -{ - setupUi(this); - connect(okPB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - connect(branchCO, SIGNAL( activated(int) ), - this, SLOT( change_adaptor() ) ); -} - - -void QBranchDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - - -void QBranchDialog::change_adaptor() -{ - form_->changed(); -} - -} // namespace frontend -} // namespace lyx - -#include "QBranchDialog_moc.cpp" diff --git a/src/frontends/qt4/QBranchDialog.h b/src/frontends/qt4/QBranchDialog.h deleted file mode 100644 index 7981d98183..0000000000 --- a/src/frontends/qt4/QBranchDialog.h +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -/** - * \file QBranchDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QBRANCHDIALOG_H -#define QBRANCHDIALOG_H - -#include "ui/BranchUi.h" - -#include -#include - -namespace lyx { -namespace frontend { - -class QBranch; - -class QBranchDialog : public QDialog, public Ui::QBranchUi { - Q_OBJECT -public: - QBranchDialog(QBranch * form); -protected Q_SLOTS: - virtual void change_adaptor(); -protected: - virtual void closeEvent(QCloseEvent * e); -private: - QBranch * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QBRANCHDIALOG_H diff --git a/src/frontends/qt4/QCharacter.C b/src/frontends/qt4/QCharacter.C index 90477a47fe..bf4244222b 100644 --- a/src/frontends/qt4/QCharacter.C +++ b/src/frontends/qt4/QCharacter.C @@ -13,25 +13,83 @@ #include "QCharacter.h" #include "ControlCharacter.h" -#include "QCharacterDialog.h" #include "Qt2BC.h" #include "qt_helpers.h" #include "LColor.h" -#include -#include + +#include using std::vector; namespace lyx { namespace frontend { -typedef QController > character_base_class; +///////////////////////////////////////////////////////////////////// +// +// QCharacterDialog +// +///////////////////////////////////////////////////////////////////// +QCharacterDialog::QCharacterDialog(QCharacter * form) + : form_(form) +{ + setupUi(this); + connect(okPB, SIGNAL(clicked()), form_, SLOT(slotOK())); + connect(applyPB, SIGNAL(clicked()), form_, SLOT(slotApply())); + connect(closePB, SIGNAL(clicked()), form_, SLOT(slotClose())); + + connect(miscCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(sizeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(familyCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(seriesCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(shapeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(colorCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(langCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(toggleallCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); +} + + +void QCharacterDialog::change_adaptor() +{ + form_->changed(); + + if (!autoapplyCB->isChecked()) + return; + + // to be really good here, we should set the combos to the values of + // the current text, and make it appear as "no change" if the values + // stay the same between applys. Might be difficult though wrt to a + // moved cursor - jbl + form_->slotApply(); + familyCO->setCurrentIndex(0); + seriesCO->setCurrentIndex(0); + sizeCO->setCurrentIndex(0); + shapeCO->setCurrentIndex(0); + miscCO->setCurrentIndex(0); + langCO->setCurrentIndex(0); + colorCO->setCurrentIndex(0); +} + + +void QCharacterDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QCharacter +// +///////////////////////////////////////////////////////////////////// + +typedef QController > CharacterBase; QCharacter::QCharacter(Dialog & parent) - : character_base_class(parent, _("Text Style")) + : CharacterBase(parent, _("Text Style")) { } @@ -155,3 +213,5 @@ void QCharacter::apply() } // namespace frontend } // namespace lyx + +#include "QCharacter_moc.cpp" diff --git a/src/frontends/qt4/QCharacter.h b/src/frontends/qt4/QCharacter.h index 2c69b59847..b9fb020c26 100644 --- a/src/frontends/qt4/QCharacter.h +++ b/src/frontends/qt4/QCharacter.h @@ -13,8 +13,9 @@ #ifndef QCHARACTER_H_CONTROLLER #define QCHARACTER_H_CONTROLLER -#include "QCharacterDialog.h" #include "QDialogView.h" +#include "ui/CharacterUi.h" +#include #include "controllers/character.h" #include "controllers/frnt_lang.h" @@ -22,8 +23,26 @@ #include namespace lyx { + +class LyXFont; + namespace frontend { +class QCharacter; + +class QCharacterDialog : public QDialog, public Ui::QCharacterUi { + Q_OBJECT +public: + QCharacterDialog(QCharacter * form); +protected: + void closeEvent(QCloseEvent * e); +private: + QCharacter * form_; +protected Q_SLOTS: + void change_adaptor(); +}; + + class ControlCharacter; class QCharacter diff --git a/src/frontends/qt4/QCharacterDialog.C b/src/frontends/qt4/QCharacterDialog.C deleted file mode 100644 index 26d0901556..0000000000 --- a/src/frontends/qt4/QCharacterDialog.C +++ /dev/null @@ -1,77 +0,0 @@ -/** - * \file QCharacterDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Edwin Leuven - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QCharacterDialog.h" - -#include "QCharacter.h" - -#include -#include -#include - -namespace lyx { -namespace frontend { - -QCharacterDialog::QCharacterDialog(QCharacter * form) - : form_(form) -{ - setupUi(this); - connect(okPB, SIGNAL(clicked()), - form_, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), - form_, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), - form_, SLOT(slotClose())); - - connect( miscCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( sizeCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( familyCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( seriesCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( shapeCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( colorCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( langCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( toggleallCB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); -} - - -void QCharacterDialog::change_adaptor() -{ - form_->changed(); - - if (!autoapplyCB->isChecked()) - return; - - // to be really good here, we should set the combos to the values of - // the current text, and make it appear as "no change" if the values - // stay the same between applys. Might be difficult though wrt to a - // moved cursor - jbl - form_->slotApply(); - familyCO->setCurrentIndex(0); - seriesCO->setCurrentIndex(0); - sizeCO->setCurrentIndex(0); - shapeCO->setCurrentIndex(0); - miscCO->setCurrentIndex(0); - langCO->setCurrentIndex(0); - colorCO->setCurrentIndex(0); -} - - -void QCharacterDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - -} // namespace frontend -} // namespace lyx - -#include "QCharacterDialog_moc.cpp" diff --git a/src/frontends/qt4/QCharacterDialog.h b/src/frontends/qt4/QCharacterDialog.h deleted file mode 100644 index 11520b19b9..0000000000 --- a/src/frontends/qt4/QCharacterDialog.h +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- -/** - * \file QCharacterDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Edwin Leuven - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QCHARACTERDIALOG_H -#define QCHARACTERDIALOG_H - -#include "ui/CharacterUi.h" -#include -#include - -namespace lyx { - -class LyXFont; - -namespace frontend { - -class QCharacter; - -class QCharacterDialog : public QDialog, public Ui::QCharacterUi { - Q_OBJECT -public: - QCharacterDialog(QCharacter * form); -protected: - void closeEvent(QCloseEvent * e); -private: - QCharacter * form_; -protected Q_SLOTS: - void change_adaptor(); -}; - -} // namespace frontend -} // namespace lyx - -#endif // QCHARACTERDIALOG_H diff --git a/src/frontends/qt4/QErrorListDialog.C b/src/frontends/qt4/QErrorListDialog.C deleted file mode 100644 index b7adf553b2..0000000000 --- a/src/frontends/qt4/QErrorListDialog.C +++ /dev/null @@ -1,64 +0,0 @@ -/** - * \file QErrorListDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Alfredo Braunstein - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QErrorListDialog.h" -#include "QErrorList.h" - -#include -#include -#include - -namespace lyx { -namespace frontend { - -QErrorListDialog::QErrorListDialog(QErrorList * form) - : form_(form) -{ - setupUi(this); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - connect(errorsLW, SIGNAL( itemActivated(QListWidgetItem *)), - form, SLOT(slotClose())); - connect( errorsLW, SIGNAL( itemClicked(QListWidgetItem *) ), - this, SLOT( select_adaptor(QListWidgetItem *) ) ); -} - - -QErrorListDialog::~QErrorListDialog() -{} - - -void QErrorListDialog::select_adaptor(QListWidgetItem * item) -{ - form_->select(item); -} - - -void QErrorListDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - - -void QErrorListDialog::showEvent(QShowEvent *e) -{ - errorsLW->setCurrentRow(0); - form_->select(errorsLW->item(0)); - e->accept(); -} - - -} // namespace frontend -} // namespace lyx - -#include "QErrorListDialog_moc.cpp" diff --git a/src/frontends/qt4/QErrorListDialog.h b/src/frontends/qt4/QErrorListDialog.h deleted file mode 100644 index 8ded9c6787..0000000000 --- a/src/frontends/qt4/QErrorListDialog.h +++ /dev/null @@ -1,45 +0,0 @@ -// -*- C++ -*- -/** - * \file QErrorListDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Alfredo Braunstein - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QERRORLISTDIALOG_H -#define QERRORLISTDIALOG_H - -#include "ui/ErrorListUi.h" - -#include -#include - -class QListWidgetItem; - -namespace lyx { -namespace frontend { - -class QErrorList; - -class QErrorListDialog : public QDialog, public Ui::QErrorListUi { - Q_OBJECT -public: - QErrorListDialog(QErrorList * form); - ~QErrorListDialog(); - -public Q_SLOTS: - void select_adaptor(QListWidgetItem *); -protected: - void closeEvent(QCloseEvent *); - void showEvent(QShowEvent *); -private: - QErrorList * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QTOCERRORLIST_H diff --git a/src/frontends/qt4/QInclude.C b/src/frontends/qt4/QInclude.C index 162fb183b3..7beb3fa720 100644 --- a/src/frontends/qt4/QInclude.C +++ b/src/frontends/qt4/QInclude.C @@ -12,7 +12,6 @@ #include "support/os.h" -#include "QIncludeDialog.h" #include "QInclude.h" #include "checkedwidgets.h" @@ -24,22 +23,115 @@ #include "controllers/ControlInclude.h" -#include -#include -#include +#include +#include +#include +#include using std::string; using lyx::support::os::internal_path; + namespace lyx { namespace frontend { -typedef QController > include_base_class; +///////////////////////////////////////////////////////////////////// +// +// QIncludeDialog +// +///////////////////////////////////////////////////////////////////// + +QIncludeDialog::QIncludeDialog(QInclude * form) + : form_(form) +{ + setupUi(this); + connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); + connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); + + connect(visiblespaceCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(filenameED, SIGNAL(textChanged(const QString &)), + this, SLOT(change_adaptor())); + connect(loadPB, SIGNAL(clicked()), this, SLOT(loadClicked())); + connect(browsePB, SIGNAL(clicked()), this, SLOT(browseClicked())); + connect(typeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); + connect(typeCO, SIGNAL(activated(int)), this, SLOT(typeChanged(int))); + connect(previewCB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + + filenameED->setValidator(new PathValidator(true, filenameED)); + setFocusProxy(filenameED); +} + + +void QIncludeDialog::show() +{ + QDialog::show(); +} + + +void QIncludeDialog::change_adaptor() +{ + form_->changed(); +} + + +void QIncludeDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +void QIncludeDialog::typeChanged(int v) +{ + switch (v) { + //case Include + case 0: + visiblespaceCB->setEnabled(false); + visiblespaceCB->setChecked(false); + previewCB->setEnabled(false); + previewCB->setChecked(false); + break; + //case Input + case 1: + visiblespaceCB->setEnabled(false); + visiblespaceCB->setChecked(false); + previewCB->setEnabled(true); + break; + //case Verbatim + default: + visiblespaceCB->setEnabled(true); + previewCB->setEnabled(false); + previewCB->setChecked(false); + break; + } +} + + +void QIncludeDialog::loadClicked() +{ + form_->load(); +} + + +void QIncludeDialog::browseClicked() +{ + form_->browse(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QInclude +// +///////////////////////////////////////////////////////////////////// + + +typedef QController > IncludeBase; QInclude::QInclude(Dialog & parent) - : include_base_class(parent, _("Child Document")) + : IncludeBase(parent, _("Child Document")) {} @@ -143,7 +235,7 @@ void QInclude::browse() void QInclude::load() { if (isValid()) { - string const file(fromqstr(dialog_->filenameED->text())); + string const file = fromqstr(dialog_->filenameED->text()); slotOK(); controller().load(file); } @@ -157,3 +249,5 @@ bool QInclude::isValid() } // namespace frontend } // namespace lyx + +#include "QInclude_moc.cpp" diff --git a/src/frontends/qt4/QInclude.h b/src/frontends/qt4/QInclude.h index 0bd0bca06e..dd68e7584d 100644 --- a/src/frontends/qt4/QInclude.h +++ b/src/frontends/qt4/QInclude.h @@ -13,11 +13,36 @@ #define QINCLUDE_H #include "QDialogView.h" -#include "QIncludeDialog.h" + +#include "ui/IncludeUi.h" + +#include namespace lyx { namespace frontend { +class QInclude; + +class QIncludeDialog : public QDialog, public Ui::QIncludeUi { + Q_OBJECT +public: + QIncludeDialog(QInclude * form); + + void updateLists(); + + virtual void show(); +protected Q_SLOTS: + virtual void change_adaptor(); + virtual void loadClicked(); + virtual void browseClicked(); + virtual void typeChanged(int v); +protected: + virtual void closeEvent(QCloseEvent * e); +private: + QInclude * form_; +}; + + class ControlInclude; /// diff --git a/src/frontends/qt4/QIncludeDialog.C b/src/frontends/qt4/QIncludeDialog.C deleted file mode 100644 index ead23ac6b4..0000000000 --- a/src/frontends/qt4/QIncludeDialog.C +++ /dev/null @@ -1,108 +0,0 @@ -/** - * \file QIncludeDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QIncludeDialog.h" -#include "QInclude.h" -//Added by qt3to4: -#include -#include "validators.h" - -#include -#include -#include - - -namespace lyx { -namespace frontend { - -QIncludeDialog::QIncludeDialog(QInclude * form) - : form_(form) -{ - setupUi(this); - connect(okPB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - - connect( visiblespaceCB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - connect( filenameED, SIGNAL( textChanged(const QString&) ), this, SLOT( change_adaptor() ) ); - connect( loadPB, SIGNAL( clicked() ), this, SLOT( loadClicked() ) ); - connect( browsePB, SIGNAL( clicked() ), this, SLOT( browseClicked() ) ); - connect( typeCO, SIGNAL( activated(int) ), this, SLOT( change_adaptor() ) ); - connect( typeCO, SIGNAL( activated(int) ), this, SLOT( typeChanged(int) ) ); - connect( previewCB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - - filenameED->setValidator(new PathValidator(true, filenameED)); - setFocusProxy(filenameED); -} - - -void QIncludeDialog::show() -{ - QDialog::show(); -} - - -void QIncludeDialog::change_adaptor() -{ - form_->changed(); -} - - -void QIncludeDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - - -void QIncludeDialog::typeChanged(int v) -{ - switch (v) { - //case Include - case 0: - visiblespaceCB->setEnabled(false); - visiblespaceCB->setChecked(false); - previewCB->setEnabled(false); - previewCB->setChecked(false); - break; - //case Input - case 1: - visiblespaceCB->setEnabled(false); - visiblespaceCB->setChecked(false); - previewCB->setEnabled(true); - break; - //case Verbatim - default: - visiblespaceCB->setEnabled(true); - previewCB->setEnabled(false); - previewCB->setChecked(false); - break; - } -} - - -void QIncludeDialog::loadClicked() -{ - form_->load(); -} - - -void QIncludeDialog::browseClicked() -{ - form_->browse(); -} - -} // namespace frontend -} // namespace lyx - -#include "QIncludeDialog_moc.cpp" diff --git a/src/frontends/qt4/QIncludeDialog.h b/src/frontends/qt4/QIncludeDialog.h deleted file mode 100644 index 5640b846a7..0000000000 --- a/src/frontends/qt4/QIncludeDialog.h +++ /dev/null @@ -1,47 +0,0 @@ -// -*- C++ -*- -/** - * \file QIncludeDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QINCLUDEDIALOG_H -#define QINCLUDEDIALOG_H - -#include "ui/IncludeUi.h" - -#include -#include - -namespace lyx { -namespace frontend { - -class QInclude; - -class QIncludeDialog : public QDialog, public Ui::QIncludeUi { - Q_OBJECT -public: - QIncludeDialog(QInclude * form); - - void updateLists(); - - virtual void show(); -protected Q_SLOTS: - virtual void change_adaptor(); - virtual void loadClicked(); - virtual void browseClicked(); - virtual void typeChanged(int v); -protected: - virtual void closeEvent(QCloseEvent * e); -private: - QInclude * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QINCLUDEDIALOG_H diff --git a/src/frontends/qt4/QNomencl.C b/src/frontends/qt4/QNomencl.C index 8a50ecbbe3..010ec89c8b 100644 --- a/src/frontends/qt4/QNomencl.C +++ b/src/frontends/qt4/QNomencl.C @@ -15,7 +15,6 @@ #include "ControlCommand.h" #include "qt_helpers.h" -#include "QNomenclDialog.h" #include "QNomencl.h" #include "Qt2BC.h" #include "ButtonController.h" @@ -23,17 +22,73 @@ #include #include #include +#include +#include using std::string; namespace lyx { namespace frontend { -typedef QController > nomencl_base_class; +///////////////////////////////////////////////////////////////////// +// +// QNomenclDialog +// +///////////////////////////////////////////////////////////////////// + +QNomenclDialog::QNomenclDialog(QNomencl * form) + : form_(form) +{ + setupUi(this); + + connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); + connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); + connect(symbolED, SIGNAL(textChanged(const QString&)), + this, SLOT(change_adaptor())); + connect(descriptionTE, SIGNAL(textChanged()), + this, SLOT(change_adaptor())); + + setFocusProxy(descriptionTE); +} + + +void QNomenclDialog::show() +{ + QDialog::show(); +} + + +void QNomenclDialog::change_adaptor() +{ + form_->changed(); +} + + +void QNomenclDialog::reject() +{ + form_->slotClose(); +} + + +void QNomenclDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QNomencl +// +///////////////////////////////////////////////////////////////////// + + +typedef QController > NomenBase; QNomencl::QNomencl(Dialog & parent, docstring const & title) - : nomencl_base_class(parent, title) + : NomenBase(parent, title) { } @@ -80,3 +135,5 @@ bool QNomencl::isValid() } // namespace frontend } // namespace lyx + +#include "QNomencl_moc.cpp" diff --git a/src/frontends/qt4/QNomencl.h b/src/frontends/qt4/QNomencl.h index c8b6d8cf64..fd7bc9ae37 100644 --- a/src/frontends/qt4/QNomencl.h +++ b/src/frontends/qt4/QNomencl.h @@ -15,11 +15,33 @@ #define QNOMENCL_H #include "QDialogView.h" -#include "QNomenclDialog.h" +#include "ui/NomenclUi.h" + +#include + +class QCloseEvent; + namespace lyx { namespace frontend { +class QNomencl; + +class QNomenclDialog : public QDialog, public Ui::QNomenclUi { + Q_OBJECT +public: + QNomenclDialog(QNomencl * form); + virtual void show(); +protected Q_SLOTS: + virtual void change_adaptor(); + virtual void reject(); +protected: + virtual void closeEvent(QCloseEvent * e); +private: + QNomencl * form_; +}; + + class ControlCommand; class QNomencl : diff --git a/src/frontends/qt4/QNomenclDialog.C b/src/frontends/qt4/QNomenclDialog.C deleted file mode 100644 index 7e1ce53132..0000000000 --- a/src/frontends/qt4/QNomenclDialog.C +++ /dev/null @@ -1,71 +0,0 @@ -/** - * \file QNomenclDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * \author O. U. Baran - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "qt_helpers.h" - -#include "QNomencl.h" -#include "QNomenclDialog.h" - -#include -#include -#include -#include -#include - -namespace lyx { -namespace frontend { - -QNomenclDialog::QNomenclDialog(QNomencl * form) - : form_(form) -{ - setupUi(this); - - connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); - connect(symbolED, SIGNAL(textChanged(const QString&)), - this, SLOT(change_adaptor())); - connect(descriptionTE, SIGNAL(textChanged()), - this, SLOT(change_adaptor())); - - setFocusProxy(descriptionTE); -} - - -void QNomenclDialog::show() -{ - QDialog::show(); -} - - -void QNomenclDialog::change_adaptor() -{ - form_->changed(); -} - - -void QNomenclDialog::reject() -{ - form_->slotClose(); -} - - -void QNomenclDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - -} // namespace frontend -} // namespace lyx - -#include "QNomenclDialog_moc.cpp" diff --git a/src/frontends/qt4/QNomenclDialog.h b/src/frontends/qt4/QNomenclDialog.h deleted file mode 100644 index 79b20f4d83..0000000000 --- a/src/frontends/qt4/QNomenclDialog.h +++ /dev/null @@ -1,43 +0,0 @@ -// -*- C++ -*- -/** - * \file QNomenclDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * \author O. U. Baran - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QNOMENCLDIALOG_H -#define QNOMENCLDIALOG_H - -#include "ui/NomenclUi.h" - -#include -#include - -namespace lyx { -namespace frontend { - -class QNomencl; - -class QNomenclDialog : public QDialog, public Ui::QNomenclUi { - Q_OBJECT -public: - QNomenclDialog(QNomencl * form); - virtual void show(); -protected Q_SLOTS: - virtual void change_adaptor(); - virtual void reject(); -protected: - virtual void closeEvent(QCloseEvent * e); -private: - QNomencl * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QNOMENCLDIALOG_H diff --git a/src/frontends/qt4/QNote.C b/src/frontends/qt4/QNote.C index f7d9e19d01..5ad76b77f9 100644 --- a/src/frontends/qt4/QNote.C +++ b/src/frontends/qt4/QNote.C @@ -11,27 +11,63 @@ #include #include "QNote.h" -#include "QNoteDialog.h" #include "Qt2BC.h" #include "controllers/ControlNote.h" #include "insets/InsetNote.h" -#include -#include - - -using std::string; +#include namespace lyx { namespace frontend { -typedef QController > note_base_class; +///////////////////////////////////////////////////////////////////// +// +// QNoteDialog +// +///////////////////////////////////////////////////////////////////// + +QNoteDialog::QNoteDialog(QNote * form) + : form_(form) +{ + setupUi(this); + + connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); + connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); + + connect(noteRB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(greyedoutRB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(commentRB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(framedRB, SIGNAL(clicked()), this, SLOT(change_adaptor())); + connect(shadedRB, SIGNAL(clicked()), this, SLOT(change_adaptor())); +} + + +void QNoteDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +void QNoteDialog::change_adaptor() +{ + form_->changed(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QNote +// +///////////////////////////////////////////////////////////////////// + +typedef QController > NoteBase; QNote::QNote(Dialog & parent) - : note_base_class(parent, _("Note Settings")) + : NoteBase(parent, _("Note Settings")) {} @@ -90,3 +126,5 @@ void QNote::apply() } // namespace frontend } // namespace lyx + +#include "QNote_moc.cpp" diff --git a/src/frontends/qt4/QNote.h b/src/frontends/qt4/QNote.h index 2a901d6fb8..4c2b75a56c 100644 --- a/src/frontends/qt4/QNote.h +++ b/src/frontends/qt4/QNote.h @@ -13,11 +13,29 @@ #define QNOTE_H #include "QDialogView.h" -#include "QNoteDialog.h" +#include "ui/NoteUi.h" + +#include +class QCloseEvent; namespace lyx { namespace frontend { +class QNote; + +class QNoteDialog : public QDialog, public Ui::QNoteUi { + Q_OBJECT +public: + QNoteDialog(QNote * form); +protected Q_SLOTS: + virtual void change_adaptor(); +protected: + virtual void closeEvent(QCloseEvent * e); +private: + QNote * form_; +}; + + class ControlNote; /** This class provides a QT implementation of the Note Dialog. diff --git a/src/frontends/qt4/QNoteDialog.C b/src/frontends/qt4/QNoteDialog.C deleted file mode 100644 index b0303481dd..0000000000 --- a/src/frontends/qt4/QNoteDialog.C +++ /dev/null @@ -1,56 +0,0 @@ -/** - * \file QNoteDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QNoteDialog.h" -#include "QNote.h" - -#include -//Added by qt3to4: -#include - -namespace lyx { -namespace frontend { - -QNoteDialog::QNoteDialog(QNote * form) - : form_(form) -{ - setupUi(this); - - connect(okPB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - - connect( noteRB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - connect( greyedoutRB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - connect( commentRB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - connect( framedRB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); - connect( shadedRB, SIGNAL( clicked() ), this, SLOT( change_adaptor() ) ); -} - - -void QNoteDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - - -void QNoteDialog::change_adaptor() -{ - form_->changed(); -} - -} // namespace frontend -} // namespace lyx - -#include "QNoteDialog_moc.cpp" diff --git a/src/frontends/qt4/QNoteDialog.h b/src/frontends/qt4/QNoteDialog.h deleted file mode 100644 index 166ad48e8b..0000000000 --- a/src/frontends/qt4/QNoteDialog.h +++ /dev/null @@ -1,40 +0,0 @@ -// -*- C++ -*- -/** - * \file QNoteDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QNOTEDIALOG_H -#define QNOTEDIALOG_H - -#include "ui/NoteUi.h" - -#include -#include - -namespace lyx { -namespace frontend { - -class QNote; - -class QNoteDialog : public QDialog, public Ui::QNoteUi { - Q_OBJECT -public: - QNoteDialog(QNote * form); -protected Q_SLOTS: - virtual void change_adaptor(); -protected: - virtual void closeEvent(QCloseEvent * e); -private: - QNote * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QNOTEDIALOG_H diff --git a/src/frontends/qt4/QPrefs.h b/src/frontends/qt4/QPrefs.h index e4b2c02b9e..a71d5ceaf9 100644 --- a/src/frontends/qt4/QPrefs.h +++ b/src/frontends/qt4/QPrefs.h @@ -56,25 +56,20 @@ class PrefModule : public QWidget { Q_OBJECT public: - PrefModule(lyx::docstring const & cat, lyx::docstring const & t, QPrefs * form = 0, QWidget * parent = 0) + PrefModule(docstring const & cat, docstring const & t, + QPrefs * form = 0, QWidget * parent = 0) : QWidget(parent), category_(cat), title_(t), form_(form) - { - } + {} virtual void apply(LyXRC & rc) const = 0; virtual void update(LyXRC const & rc) = 0; - lyx::docstring const & category() { - return category_; - } - - lyx::docstring const & title() { - return title_; - } + docstring const & category() const { return category_; } + docstring const & title() const { return title_; } protected: - lyx::docstring category_; - lyx::docstring title_; + docstring category_; + docstring title_; QPrefs * form_; Q_SIGNALS: diff --git a/src/frontends/qt4/QPrefsDialog.C b/src/frontends/qt4/QPrefsDialog.C deleted file mode 100644 index 8748e774c1..0000000000 --- a/src/frontends/qt4/QPrefsDialog.C +++ /dev/null @@ -1,1909 +0,0 @@ -/** - * \file QPrefsDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Edwin Leuven - * \author Abdelrazak Younes - * - * Full author contact details are available in file CREDITS. - */ - -#include -#include "debug.h" - -#include "Qt2BC.h" -#include "GuiApplication.h" -#include "qt_helpers.h" - -#include "debug.h" -#include "session.h" -#include "LColor.h" -#include "lyxfont.h" - -#include "support/lstrings.h" -#include "support/os.h" - -#include "controllers/ControlPrefs.h" -#include "controllers/frnt_lang.h" -#include "controllers/helper_funcs.h" - -#include "frontends/Alert.h" -#include "frontends/Application.h" - -#include "QPrefsDialog.h" -#include "QPrefs.h" - -#include "panelstack.h" -#include "qfontexample.h" - -#include "gettext.h" -#include "LColor.h" - -#include "controllers/ControlPrefs.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -using lyx::support::compare_ascii_no_case; -using lyx::support::os::external_path; -using lyx::support::os::external_path_list; -using lyx::support::os::internal_path; -using lyx::support::os::internal_path_list; - -using std::distance; -using std::endl; -using std::setfill; -using std::setw; -using std::string; -using std::ostringstream; -using std::pair; -using std::vector; - - -namespace lyx { -namespace frontend { - -string const LookAndFeel = N_("Look and feel"); -string const LanguageSettings = N_("Language settings"); -string const Outputs = N_("Outputs"); - - -// FIXME: move to helper_funcs.h -namespace { - -template -typename std::vector::size_type -findPos_helper(std::vector const & vec, A const & val) -{ - typedef typename std::vector::const_iterator Cit; - - Cit it = std::find(vec.begin(), vec.end(), val); - if (it == vec.end()) - return 0; - return distance(vec.begin(), it); -} - -void setComboxFont(QComboBox * cb, string const & family, string const & foundry) -{ - string const name = makeFontName(family, foundry); - for (int i = 0; i < cb->count(); ++i) { - if (fromqstr(cb->itemText(i)) == name) { - cb->setCurrentIndex(i); - return; - } - } - - // Try matching without foundry name - - // We count in reverse in order to prefer the Xft foundry - for (int i = cb->count() - 1; i >= 0; --i) { - pair tmp = parseFontName(fromqstr(cb->itemText(i))); - if (compare_ascii_no_case(tmp.first, family) == 0) { - cb->setCurrentIndex(i); - return; - } - } - - // family alone can contain e.g. "Helvetica [Adobe]" - pair tmpfam = parseFontName(family); - - // We count in reverse in order to prefer the Xft foundry - for (int i = cb->count() - 1; i >= 0; --i) { - pair tmp = parseFontName(fromqstr(cb->itemText(i))); - if (compare_ascii_no_case(tmp.first, tmpfam.first) == 0) { - cb->setCurrentIndex(i); - return; - } - } - - // Bleh, default fonts, and the names couldn't be found. Hack - // for bug 1063. Qt makes baby Jesus cry. - - QFont font; - font.setKerning(false); - - if (family == theApp()->romanFontName()) { - font.setStyleHint(QFont::Serif); - font.setFamily(family.c_str()); - } else if (family == theApp()->sansFontName()) { - font.setStyleHint(QFont::SansSerif); - font.setFamily(family.c_str()); - } else if (family == theApp()->typewriterFontName()) { - font.setStyleHint(QFont::TypeWriter); - font.setFamily(family.c_str()); - } else { - lyxerr << "FAILED to find the default font: '" - << foundry << "', '" << family << '\''<< endl; - return; - } - - QFontInfo info(font); - pair tmp = parseFontName(fromqstr(info.family())); - string const & default_font_name = tmp.first; - lyxerr << "Apparent font is " << default_font_name << endl; - - for (int i = 0; i < cb->count(); ++i) { - lyxerr << "Looking at " << fromqstr(cb->itemText(i)) << endl; - if (compare_ascii_no_case(fromqstr(cb->itemText(i)), - default_font_name) == 0) { - cb->setCurrentIndex(i); - return; - } - } - - lyxerr << "FAILED to find the font: '" - << foundry << "', '" << family << '\'' <value(); - rc.plaintext_roff_command = fromqstr(plaintextRoffED->text()); -} - - -void PrefPlaintext::update(LyXRC const & rc) -{ - plaintextLinelengthSB->setValue(rc.plaintext_linelen); - plaintextRoffED->setText(toqstr(rc.plaintext_roff_command)); -} - - -PrefDate::PrefDate(QWidget * parent) -: PrefModule(_(Outputs), _("Date format"), 0, parent) -{ - setupUi(this); - connect(DateED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); -} - - -void PrefDate::apply(LyXRC & rc) const -{ - rc.date_insert_format = fromqstr(DateED->text()); -} - - -void PrefDate::update(LyXRC const & rc) -{ - DateED->setText(toqstr(rc.date_insert_format)); -} - - -PrefKeyboard::PrefKeyboard(QPrefs * form, QWidget * parent) -: PrefModule(_(LookAndFeel), _("Keyboard"), form, parent) -{ - setupUi(this); - - connect(keymapCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(firstKeymapED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(secondKeymapED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); -} - - -void PrefKeyboard::apply(LyXRC & rc) const -{ - // FIXME: can derive CB from the two EDs - rc.use_kbmap = keymapCB->isChecked(); - rc.primary_kbmap = internal_path(fromqstr(firstKeymapED->text())); - rc.secondary_kbmap = internal_path(fromqstr(secondKeymapED->text())); -} - - -void PrefKeyboard::update(LyXRC const & rc) -{ - // FIXME: can derive CB from the two EDs - keymapCB->setChecked(rc.use_kbmap); - firstKeymapED->setText(toqstr(external_path(rc.primary_kbmap))); - secondKeymapED->setText(toqstr(external_path(rc.secondary_kbmap))); -} - - -QString PrefKeyboard::testKeymap(QString keymap) -{ - return toqstr(form_->controller().browsekbmap(from_utf8(internal_path(fromqstr(keymap))))); -} - - -void PrefKeyboard::on_firstKeymapPB_clicked(bool) -{ - QString const file = testKeymap(firstKeymapED->text()); - if (!file.isEmpty()) - firstKeymapED->setText(file); -} - - -void PrefKeyboard::on_secondKeymapPB_clicked(bool) -{ - QString const file = testKeymap(secondKeymapED->text()); - if (!file.isEmpty()) - secondKeymapED->setText(file); -} - - -void PrefKeyboard::on_keymapCB_toggled(bool keymap) -{ - firstKeymapLA->setEnabled(keymap); - secondKeymapLA->setEnabled(keymap); - firstKeymapED->setEnabled(keymap); - secondKeymapED->setEnabled(keymap); - firstKeymapPB->setEnabled(keymap); - secondKeymapPB->setEnabled(keymap); -} - - -PrefLatex::PrefLatex(QPrefs * form, QWidget * parent) -: PrefModule(_(Outputs), _("LaTeX"), form, parent) -{ - setupUi(this); - connect(latexEncodingED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(latexChecktexED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(latexBibtexED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(latexIndexED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(latexAutoresetCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(latexDviPaperED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(latexPaperSizeCO, SIGNAL(activated(int)), - this, SIGNAL(changed())); -} - - -void PrefLatex::apply(LyXRC & rc) const -{ - rc.fontenc = fromqstr(latexEncodingED->text()); - rc.chktex_command = fromqstr(latexChecktexED->text()); - rc.bibtex_command = fromqstr(latexBibtexED->text()); - rc.index_command = fromqstr(latexIndexED->text()); - rc.auto_reset_options = latexAutoresetCB->isChecked(); - rc.view_dvi_paper_option = fromqstr(latexDviPaperED->text()); - rc.default_papersize = - form_->controller().toPaperSize(latexPaperSizeCO->currentIndex()); -} - - -void PrefLatex::update(LyXRC const & rc) -{ - latexEncodingED->setText(toqstr(rc.fontenc)); - latexChecktexED->setText(toqstr(rc.chktex_command)); - latexBibtexED->setText(toqstr(rc.bibtex_command)); - latexIndexED->setText(toqstr(rc.index_command)); - latexAutoresetCB->setChecked(rc.auto_reset_options); - latexDviPaperED->setText(toqstr(rc.view_dvi_paper_option)); - latexPaperSizeCO->setCurrentIndex( - form_->controller().fromPaperSize(rc.default_papersize)); -} - - -PrefScreenFonts::PrefScreenFonts(QPrefs * form, QWidget * parent) -: PrefModule(_(LookAndFeel), _("Screen fonts"), form, parent) -{ - setupUi(this); - - connect(screenRomanCO, SIGNAL(activated(const QString&)), - this, SLOT(select_roman(const QString&))); - connect(screenSansCO, SIGNAL(activated(const QString&)), - this, SLOT(select_sans(const QString&))); - connect(screenTypewriterCO, SIGNAL(activated(const QString&)), - this, SLOT(select_typewriter(const QString&))); - - QFontDatabase fontdb; - QStringList families(fontdb.families()); - for (QStringList::Iterator it = families.begin(); it != families.end(); ++it) { - screenRomanCO->addItem(*it); - screenSansCO->addItem(*it); - screenTypewriterCO->addItem(*it); - } - connect(screenRomanCO, SIGNAL(activated(const QString&)), - this, SIGNAL(changed())); - connect(screenSansCO, SIGNAL(activated(const QString&)), - this, SIGNAL(changed())); - connect(screenTypewriterCO, SIGNAL(activated(const QString&)), - this, SIGNAL(changed())); - connect(screenZoomSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - connect(screenDpiSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - connect(screenTinyED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenSmallestED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenSmallerED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenSmallED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenNormalED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenLargeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenLargerED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenLargestED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenHugeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(screenHugerED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - - screenTinyED->setValidator(new QDoubleValidator( - screenTinyED)); - screenSmallestED->setValidator(new QDoubleValidator( - screenSmallestED)); - screenSmallerED->setValidator(new QDoubleValidator( - screenSmallerED)); - screenSmallED->setValidator(new QDoubleValidator( - screenSmallED)); - screenNormalED->setValidator(new QDoubleValidator( - screenNormalED)); - screenLargeED->setValidator(new QDoubleValidator( - screenLargeED)); - screenLargerED->setValidator(new QDoubleValidator( - screenLargerED)); - screenLargestED->setValidator(new QDoubleValidator( - screenLargestED)); - screenHugeED->setValidator(new QDoubleValidator( - screenHugeED)); - screenHugerED->setValidator(new QDoubleValidator( - screenHugerED)); -} - - -void PrefScreenFonts::apply(LyXRC & rc) const -{ - LyXRC const oldrc(rc); - - boost::tie(rc.roman_font_name, rc.roman_font_foundry) - = parseFontName(fromqstr(screenRomanCO->currentText())); - boost::tie(rc.sans_font_name, rc.sans_font_foundry) = - parseFontName(fromqstr(screenSansCO->currentText())); - boost::tie(rc.typewriter_font_name, rc.typewriter_font_foundry) = - parseFontName(fromqstr(screenTypewriterCO->currentText())); - - rc.zoom = screenZoomSB->value(); - rc.dpi = screenDpiSB->value(); - rc.font_sizes[LyXFont::SIZE_TINY] = fromqstr(screenTinyED->text()); - rc.font_sizes[LyXFont::SIZE_SCRIPT] = fromqstr(screenSmallestED->text()); - rc.font_sizes[LyXFont::SIZE_FOOTNOTE] = fromqstr(screenSmallerED->text()); - rc.font_sizes[LyXFont::SIZE_SMALL] = fromqstr(screenSmallED->text()); - rc.font_sizes[LyXFont::SIZE_NORMAL] = fromqstr(screenNormalED->text()); - rc.font_sizes[LyXFont::SIZE_LARGE] = fromqstr(screenLargeED->text()); - rc.font_sizes[LyXFont::SIZE_LARGER] = fromqstr(screenLargerED->text()); - rc.font_sizes[LyXFont::SIZE_LARGEST] = fromqstr(screenLargestED->text()); - rc.font_sizes[LyXFont::SIZE_HUGE] = fromqstr(screenHugeED->text()); - rc.font_sizes[LyXFont::SIZE_HUGER] = fromqstr(screenHugerED->text()); - - if (rc.font_sizes != oldrc.font_sizes - || rc.roman_font_name != oldrc.roman_font_name - || rc.sans_font_name != oldrc.sans_font_name - || rc.typewriter_font_name != oldrc.typewriter_font_name - || rc.zoom != oldrc.zoom || rc.dpi != oldrc.dpi) { - form_->controller().updateScreenFonts(); - } -} - - -void PrefScreenFonts::update(LyXRC const & rc) -{ - setComboxFont(screenRomanCO, rc.roman_font_name, - rc.roman_font_foundry); - setComboxFont(screenSansCO, rc.sans_font_name, - rc.sans_font_foundry); - setComboxFont(screenTypewriterCO, rc.typewriter_font_name, - rc.typewriter_font_foundry); - - select_roman(screenRomanCO->currentText()); - select_sans(screenSansCO->currentText()); - select_typewriter(screenTypewriterCO->currentText()); - - screenZoomSB->setValue(rc.zoom); - screenDpiSB->setValue(rc.dpi); - screenTinyED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_TINY])); - screenSmallestED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_SCRIPT])); - screenSmallerED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_FOOTNOTE])); - screenSmallED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_SMALL])); - screenNormalED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_NORMAL])); - screenLargeED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_LARGE])); - screenLargerED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_LARGER])); - screenLargestED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_LARGEST])); - screenHugeED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_HUGE])); - screenHugerED->setText(toqstr(rc.font_sizes[LyXFont::SIZE_HUGER])); -} - -void PrefScreenFonts::select_roman(const QString& name) -{ - screenRomanFE->set(QFont(name), name); -} - - -void PrefScreenFonts::select_sans(const QString& name) -{ - screenSansFE->set(QFont(name), name); -} - - -void PrefScreenFonts::select_typewriter(const QString& name) -{ - screenTypewriterFE->set(QFont(name), name); -} - - -PrefColors::PrefColors(QPrefs * form, QWidget * parent) -: PrefModule(_(LookAndFeel), _("Colors"), form, parent) -{ - setupUi(this); - - // FIXME: all of this initialization should be put into the controller. - // See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg113301.html - // for some discussion of why that is not trivial. - for (int i = 0; i < LColor::ignore; ++i) { - LColor::color lc = static_cast(i); - if (lc == LColor::none - || lc == LColor::black - || lc == LColor::white - || lc == LColor::red - || lc == LColor::green - || lc == LColor::blue - || lc == LColor::cyan - || lc == LColor::magenta - || lc == LColor::yellow - || lc == LColor::inherit - || lc == LColor::ignore) continue; - - lcolors_.push_back(lc); - QColor color = QColor(guiApp->colorCache().get(lc)); - curcolors_.push_back(color.name()); - QPixmap coloritem(32, 32); - coloritem.fill(color); - // This is not a memory leak: - /*QListWidgetItem * newItem =*/ new QListWidgetItem(QIcon(coloritem), - toqstr(lcolor.getGUIName(lc)), lyxObjectsLW); - } - newcolors_ = curcolors_; - // End initialization - - connect(colorChangePB, SIGNAL(clicked()), - this, SLOT(change_color())); - connect(lyxObjectsLW, SIGNAL(itemActivated(QListWidgetItem*)), - this, SLOT(change_color())); -} - - -void PrefColors::apply(LyXRC & /*rc*/) const -{ - for (unsigned int i = 0; i < lcolors_.size(); ++i) { - if (curcolors_[i]!=newcolors_[i]) - form_->controller().setColor(lcolors_[i], fromqstr(newcolors_[i])); - } - // HACK The following line is needed because the values are not - // re-initialized in ControlPrefs::initialiseParams but are only - // initialized in the constructor. But the constructor is only called - // once, when the dialog if first created, and is not called again when - // Tools > Preferences is selected a second time: It's just called up - // from memory. [See QDialogView::show(): if (!form) { build(); }.] - curcolors_ = newcolors_; -} - - -// FIXME The fact that this method is empty is also a symptom of the -// problem here. -void PrefColors::update(LyXRC const & /*rc*/) -{ -} - -void PrefColors::change_color() -{ - int const row = lyxObjectsLW->currentRow(); - QString color = newcolors_[row]; - QColor c(QColorDialog::getColor(QColor(color), - qApp->focusWidget())); - - if (c.name()!=color) { - newcolors_[row] = c.name(); - QPixmap coloritem(32, 32); - coloritem.fill(c); - lyxObjectsLW->currentItem()->setIcon(QIcon(coloritem)); - // emit signal - changed(); - } -} - - -PrefCygwinPath::PrefCygwinPath(QWidget * parent) -: PrefModule(_(Outputs), _("Paths"), 0, parent) -{ - setupUi(this); - connect(pathCB, SIGNAL(clicked()), - this, SIGNAL(changed())); -} - - -void PrefCygwinPath::apply(LyXRC & rc) const -{ - rc.windows_style_tex_paths = pathCB->isChecked(); -} - - -void PrefCygwinPath::update(LyXRC const & rc) -{ - pathCB->setChecked(rc.windows_style_tex_paths); -} - - -PrefDisplay::PrefDisplay(QWidget * parent) -: PrefModule(_(LookAndFeel), _("Graphics"), 0, parent) -{ - setupUi(this); - connect(instantPreviewCO, SIGNAL(activated(int)), - this, SIGNAL(changed())); - connect(displayGraphicsCO, SIGNAL(activated(int)), - this, SIGNAL(changed())); -} - - -void PrefDisplay::apply(LyXRC & rc) const -{ - switch (instantPreviewCO->currentIndex()) { - case 0: rc.preview = LyXRC::PREVIEW_OFF; break; - case 1: rc.preview = LyXRC::PREVIEW_NO_MATH; break; - case 2: rc.preview = LyXRC::PREVIEW_ON; break; - } - - lyx::graphics::DisplayType dtype; - switch (displayGraphicsCO->currentIndex()) { - case 3: dtype = lyx::graphics::NoDisplay; break; - case 2: dtype = lyx::graphics::ColorDisplay; break; - case 1: dtype = lyx::graphics::GrayscaleDisplay; break; - case 0: dtype = lyx::graphics::MonochromeDisplay; break; - default: dtype = lyx::graphics::GrayscaleDisplay; - } - rc.display_graphics = dtype; - -#ifdef WITH_WARNINGS -#warning FIXME!! The graphics cache no longer has a changeDisplay method. -#endif -#if 0 - if (old_value != rc.display_graphics) { - lyx::graphics::GCache & gc = lyx::graphics::GCache::get(); - gc.changeDisplay(); - } -#endif -} - - -void PrefDisplay::update(LyXRC const & rc) -{ - switch (rc.preview) { - case LyXRC::PREVIEW_OFF: - instantPreviewCO->setCurrentIndex(0); - break; - case LyXRC::PREVIEW_NO_MATH : - instantPreviewCO->setCurrentIndex(1); - break; - case LyXRC::PREVIEW_ON : - instantPreviewCO->setCurrentIndex(2); - break; - } - - int item = 2; - switch (rc.display_graphics) { - case lyx::graphics::NoDisplay: item = 3; break; - case lyx::graphics::ColorDisplay: item = 2; break; - case lyx::graphics::GrayscaleDisplay: item = 1; break; - case lyx::graphics::MonochromeDisplay: item = 0; break; - default: break; - } - displayGraphicsCO->setCurrentIndex(item); -} - - -PrefPaths::PrefPaths(QPrefs * form, QWidget * parent) -: PrefModule(docstring(), _("Paths"), form, parent) -{ - setupUi(this); - connect(templateDirPB, SIGNAL(clicked()), this, SLOT(select_templatedir())); - connect(tempDirPB, SIGNAL(clicked()), this, SLOT(select_tempdir())); - connect(backupDirPB, SIGNAL(clicked()), this, SLOT(select_backupdir())); - connect(workingDirPB, SIGNAL(clicked()), this, SLOT(select_workingdir())); - connect(lyxserverDirPB, SIGNAL(clicked()), this, SLOT(select_lyxpipe())); - connect(workingDirED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(templateDirED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(backupDirED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(tempDirED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(lyxserverDirED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(pathPrefixED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); -} - - -void PrefPaths::apply(LyXRC & rc) const -{ - rc.document_path = internal_path(fromqstr(workingDirED->text())); - rc.template_path = internal_path(fromqstr(templateDirED->text())); - rc.backupdir_path = internal_path(fromqstr(backupDirED->text())); - rc.tempdir_path = internal_path(fromqstr(tempDirED->text())); - rc.path_prefix = internal_path_list(fromqstr(pathPrefixED->text())); - // FIXME: should be a checkbox only - rc.lyxpipes = internal_path(fromqstr(lyxserverDirED->text())); -} - - -void PrefPaths::update(LyXRC const & rc) -{ - workingDirED->setText(toqstr(external_path(rc.document_path))); - templateDirED->setText(toqstr(external_path(rc.template_path))); - backupDirED->setText(toqstr(external_path(rc.backupdir_path))); - tempDirED->setText(toqstr(external_path(rc.tempdir_path))); - pathPrefixED->setText(toqstr(external_path_list(rc.path_prefix))); - // FIXME: should be a checkbox only - lyxserverDirED->setText(toqstr(external_path(rc.lyxpipes))); -} - - -void PrefPaths::select_templatedir() -{ - docstring file(form_->controller().browsedir( - from_utf8(internal_path(fromqstr(templateDirED->text()))), - _("Select a document templates directory"))); - if (!file.empty()) - templateDirED->setText(toqstr(file)); -} - - -void PrefPaths::select_tempdir() -{ - docstring file(form_->controller().browsedir( - from_utf8(internal_path(fromqstr(tempDirED->text()))), - _("Select a temporary directory"))); - if (!file.empty()) - tempDirED->setText(toqstr(file)); -} - - -void PrefPaths::select_backupdir() -{ - docstring file(form_->controller().browsedir( - from_utf8(internal_path(fromqstr(backupDirED->text()))), - _("Select a backups directory"))); - if (!file.empty()) - backupDirED->setText(toqstr(file)); -} - - -void PrefPaths::select_workingdir() -{ - docstring file(form_->controller().browsedir( - from_utf8(internal_path(fromqstr(workingDirED->text()))), - _("Select a document directory"))); - if (!file.empty()) - workingDirED->setText(toqstr(file)); -} - - -void PrefPaths::select_lyxpipe() -{ - docstring file(form_->controller().browse( - from_utf8(internal_path(fromqstr(lyxserverDirED->text()))), - _("Give a filename for the LyX server pipe"))); - if (!file.empty()) - lyxserverDirED->setText(toqstr(file)); -} - - -PrefSpellchecker::PrefSpellchecker(QPrefs * form, QWidget * parent) -: PrefModule(_(LanguageSettings), _("Spellchecker"), form, parent) -{ - setupUi(this); - - connect(persDictionaryPB, SIGNAL(clicked()), this, SLOT(select_dict())); -#if defined (USE_ISPELL) - connect(spellCommandCO, SIGNAL(activated(int)), - this, SIGNAL(changed())); -#else - spellCommandCO->setEnabled(false); -#endif - connect(altLanguageED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(escapeCharactersED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(persDictionaryED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(compoundWordCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(inputEncodingCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - - spellCommandCO->addItem(qt_("ispell")); - spellCommandCO->addItem(qt_("aspell")); - spellCommandCO->addItem(qt_("hspell")); -#ifdef USE_PSPELL - spellCommandCO->addItem(qt_("pspell (library)")); -#else -#ifdef USE_ASPELL - spellCommandCO->addItem(qt_("aspell (library)")); -#endif -#endif -} - - -void PrefSpellchecker::apply(LyXRC & rc) const -{ - switch (spellCommandCO->currentIndex()) { - case 0: - case 1: - case 2: - rc.use_spell_lib = false; - rc.isp_command = fromqstr(spellCommandCO->currentText()); - break; - case 3: - rc.use_spell_lib = true; - break; - } - - // FIXME: remove isp_use_alt_lang - rc.isp_alt_lang = fromqstr(altLanguageED->text()); - rc.isp_use_alt_lang = !rc.isp_alt_lang.empty(); - // FIXME: remove isp_use_esc_chars - rc.isp_esc_chars = fromqstr(escapeCharactersED->text()); - rc.isp_use_esc_chars = !rc.isp_esc_chars.empty(); - // FIXME: remove isp_use_pers_dict - rc.isp_pers_dict = internal_path(fromqstr(persDictionaryED->text())); - rc.isp_use_pers_dict = !rc.isp_pers_dict.empty(); - rc.isp_accept_compound = compoundWordCB->isChecked(); - rc.isp_use_input_encoding = inputEncodingCB->isChecked(); -} - - -void PrefSpellchecker::update(LyXRC const & rc) -{ - spellCommandCO->setCurrentIndex(0); - - if (rc.isp_command == "ispell") { - spellCommandCO->setCurrentIndex(0); - } else if (rc.isp_command == "aspell") { - spellCommandCO->setCurrentIndex(1); - } else if (rc.isp_command == "hspell") { - spellCommandCO->setCurrentIndex(2); - } - - if (rc.use_spell_lib) { -#if defined(USE_ASPELL) || defined(USE_PSPELL) - spellCommandCO->setCurrentIndex(3); -#endif - } - - // FIXME: remove isp_use_alt_lang - altLanguageED->setText(toqstr(rc.isp_alt_lang)); - // FIXME: remove isp_use_esc_chars - escapeCharactersED->setText(toqstr(rc.isp_esc_chars)); - // FIXME: remove isp_use_pers_dict - persDictionaryED->setText(toqstr(external_path(rc.isp_pers_dict))); - compoundWordCB->setChecked(rc.isp_accept_compound); - inputEncodingCB->setChecked(rc.isp_use_input_encoding); -} - - -void PrefSpellchecker::select_dict() -{ - docstring file(form_->controller().browsedict( - from_utf8(internal_path(fromqstr(persDictionaryED->text()))))); - if (!file.empty()) - persDictionaryED->setText(toqstr(file)); -} - - -PrefConverters::PrefConverters(QPrefs * form, QWidget * parent) -: PrefModule(docstring(), _("Converters"), form, parent) -{ - setupUi(this); - - connect(converterNewPB, SIGNAL(clicked()), - this, SLOT(update_converter())); - connect(converterRemovePB, SIGNAL(clicked()), - this, SLOT(remove_converter())); - connect(converterModifyPB, SIGNAL(clicked()), - this, SLOT(update_converter())); - connect(convertersLW, SIGNAL(currentRowChanged(int)), - this, SLOT(switch_converter())); - connect(converterFromCO, SIGNAL(activated(const QString&)), - this, SLOT(converter_changed())); - connect(converterToCO, SIGNAL(activated(const QString&)), - this, SLOT(converter_changed())); - connect(converterED, SIGNAL(textChanged(const QString&)), - this, SLOT(converter_changed())); - connect(converterFlagED, SIGNAL(textChanged(const QString&)), - this, SLOT(converter_changed())); - connect(converterNewPB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(converterRemovePB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(converterModifyPB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(maxAgeLE, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - - maxAgeLE->setValidator(new QDoubleValidator(maxAgeLE)); - converterDefGB->setFocusProxy(convertersLW); -} - - -void PrefConverters::apply(LyXRC & rc) const -{ - rc.use_converter_cache = cacheCB->isChecked(); - rc.converter_cache_maxage = int(maxAgeLE->text().toDouble() * 86400.0); -} - - -void PrefConverters::update(LyXRC const & rc) -{ - cacheCB->setChecked(rc.use_converter_cache); - QString max_age; - max_age.setNum(double(rc.converter_cache_maxage) / 86400.0, 'g', 6); - maxAgeLE->setText(max_age); - updateGui(); -} - - -void PrefConverters::updateGui() -{ - // save current selection - QString current = converterFromCO->currentText() - + " -> " + converterToCO->currentText(); - - converterFromCO->clear(); - converterToCO->clear(); - - Formats::const_iterator cit = form_->formats().begin(); - Formats::const_iterator end = form_->formats().end(); - for (; cit != end; ++cit) { - converterFromCO->addItem(toqstr(cit->prettyname())); - converterToCO->addItem(toqstr(cit->prettyname())); - } - - // currentRowChanged(int) is also triggered when updating the listwidget - // block signals to avoid unnecessary calls to switch_converter() - convertersLW->blockSignals(true); - convertersLW->clear(); - - Converters::const_iterator ccit = form_->converters().begin(); - Converters::const_iterator cend = form_->converters().end(); - for (; ccit != cend; ++ccit) { - std::string const name = - ccit->From->prettyname() + " -> " + ccit->To->prettyname(); - int type = form_->converters().getNumber(ccit->From->name(), ccit->To->name()); - new QListWidgetItem(toqstr(name), convertersLW, type); - } - convertersLW->sortItems(Qt::AscendingOrder); - convertersLW->blockSignals(false); - - // restore selection - if (!current.isEmpty()) { - QList const item = - convertersLW->findItems(current, Qt::MatchExactly); - if (item.size()>0) - convertersLW->setCurrentItem(item.at(0)); - } - - // select first element if restoring failed - if (convertersLW->currentRow() == -1) - convertersLW->setCurrentRow(0); - - updateButtons(); -} - - -void PrefConverters::switch_converter() -{ - int const cnr = convertersLW->currentItem()->type(); - Converter const & c(form_->converters().get(cnr)); - converterFromCO->setCurrentIndex(form_->formats().getNumber(c.from)); - converterToCO->setCurrentIndex(form_->formats().getNumber(c.to)); - converterED->setText(toqstr(c.command)); - converterFlagED->setText(toqstr(c.flags)); - - updateButtons(); -} - - -void PrefConverters::converter_changed() -{ - updateButtons(); -} - - -void PrefConverters::updateButtons() -{ - Format const & from(form_->formats().get(converterFromCO->currentIndex())); - Format const & to(form_->formats().get(converterToCO->currentIndex())); - int const sel = form_->converters().getNumber(from.name(), to.name()); - bool const known = !(sel < 0); - bool const valid = !(converterED->text().isEmpty() - || from.name() == to.name()); - - int const cnr = convertersLW->currentItem()->type(); - Converter const & c(form_->converters().get(cnr)); - string const old_command = c.command; - string const old_flag = c.flags; - string const new_command(fromqstr(converterED->text())); - string const new_flag(fromqstr(converterFlagED->text())); - - bool modified = ((old_command != new_command) || (old_flag != new_flag)); - - converterModifyPB->setEnabled(valid && known && modified); - converterNewPB->setEnabled(valid && !known); - converterRemovePB->setEnabled(known); - - maxAgeLE->setEnabled(cacheCB->isChecked()); - maxAgeLA->setEnabled(cacheCB->isChecked()); -} - - -// FIXME: user must -// specify unique from/to or it doesn't appear. This is really bad UI -// this is why we can use the same function for both new and modify -void PrefConverters::update_converter() -{ - Format const & from(form_->formats().get(converterFromCO->currentIndex())); - Format const & to(form_->formats().get(converterToCO->currentIndex())); - string const flags = fromqstr(converterFlagED->text()); - string const command = fromqstr(converterED->text()); - - Converter const * old = form_->converters().getConverter(from.name(), to.name()); - form_->converters().add(from.name(), to.name(), command, flags); - if (!old) { - form_->converters().updateLast(form_->formats()); - } - - updateGui(); -} - - -void PrefConverters::remove_converter() -{ - Format const & from(form_->formats().get(converterFromCO->currentIndex())); - Format const & to(form_->formats().get(converterToCO->currentIndex())); - form_->converters().erase(from.name(), to.name()); - - updateGui(); -} - - -void PrefConverters::on_cacheCB_stateChanged(int state) -{ - maxAgeLE->setEnabled(state == Qt::Checked); - maxAgeLA->setEnabled(state == Qt::Checked); - changed(); -} - - -PrefCopiers::PrefCopiers(QPrefs * form, QWidget * parent) -: PrefModule(docstring(), _("Copiers"), form, parent) -{ - setupUi(this); - - connect(copierNewPB, SIGNAL(clicked()), this, SLOT(new_copier())); - connect(copierRemovePB, SIGNAL(clicked()), this, SLOT(remove_copier())); - connect(copierModifyPB, SIGNAL(clicked()), this, SLOT(modify_copier())); - connect(AllCopiersLW, SIGNAL(currentRowChanged(int)), - this, SLOT(switch_copierLB(int))); - connect(copierFormatCO, SIGNAL(activated(int)), this, SLOT(switch_copierCO(int))); - connect(copierNewPB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(copierRemovePB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(copierModifyPB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(copierFormatCO, SIGNAL(activated(const QString&)), this, SLOT(copiers_changed())); - connect(copierED, SIGNAL(textChanged(const QString&)), this, SLOT(copiers_changed())); -} - - -void PrefCopiers::apply(LyXRC & /*rc*/) const -{ -} - - -void PrefCopiers::update(LyXRC const & /*rc*/) -{ - update(); -} - - -void PrefCopiers::update() -{ - // The choice widget - // save current selection - QString current = copierFormatCO->currentText(); - copierFormatCO->clear(); - - for (Formats::const_iterator it = form_->formats().begin(), - end = form_->formats().end(); - it != end; ++it) { - copierFormatCO->addItem(toqstr(it->prettyname())); - } - - // The browser widget - AllCopiersLW->clear(); - - for (Movers::const_iterator it = form_->movers().begin(), - end = form_->movers().end(); - it != end; ++it) { - std::string const & command = it->second.command(); - if (command.empty()) - continue; - QString const pretty = toqstr(form_->formats().prettyName(it->first)); - AllCopiersLW->addItem(pretty); - } - AllCopiersLW->sortItems(Qt::AscendingOrder); - - // restore selection - if (!current.isEmpty()) { - QList item = - AllCopiersLW->findItems(current, Qt::MatchExactly); - if (item.size()>0) - AllCopiersLW->setCurrentItem(item.at(0)); - } - // select first element if restoring failed - if (AllCopiersLW->currentRow() == -1) - AllCopiersLW->setCurrentRow(0); -} - - -namespace { - -class SamePrettyName { -public: - SamePrettyName(string const & n) : pretty_name_(n) {} - - bool operator()(lyx::Format const & fmt) const { - return fmt.prettyname() == pretty_name_; - } - -private: - string const pretty_name_; -}; - - -Format const * getFormat(std::string const & prettyname) -{ - Formats::const_iterator it = lyx::formats.begin(); - Formats::const_iterator const end = lyx::formats.end(); - it = std::find_if(it, end, SamePrettyName(prettyname)); - return it == end ? 0 : &*it; -} - -} // namespace anon - - -void PrefCopiers::switch_copierLB(int row) -{ - if (row < 0) - return; - - // FIXME UNICODE? - std::string const browser_text = - fromqstr(AllCopiersLW->currentItem()->text()); - Format const * fmt = getFormat(browser_text); - if (fmt == 0) - return; - - QString const gui_name = toqstr(fmt->prettyname()); - QString const command = toqstr(form_->movers().command(fmt->name())); - - copierED->clear(); - int const combo_size = copierFormatCO->count(); - for (int i = 0; i < combo_size; ++i) { - QString const text = copierFormatCO->itemText(i); - if (text == gui_name) { - copierFormatCO->setCurrentIndex(i); - copierED->setText(command); - break; - } - } - updateButtons(); -} - - -void PrefCopiers::switch_copierCO(int row) -{ - if (row<0) - return; - - std::string const combo_text = - fromqstr(copierFormatCO->currentText()); - Format const * fmt = getFormat(combo_text); - if (fmt == 0) - return; - - QString const command = toqstr(form_->movers().command(fmt->name())); - copierED->setText(command); - - QListWidgetItem * const index = AllCopiersLW->currentItem(); - if (index >= 0) - AllCopiersLW->setItemSelected(index, false); - - QString const gui_name = toqstr(fmt->prettyname()); - int const browser_size = AllCopiersLW->count(); - for (int i = 0; i < browser_size; ++i) { - QString const text = AllCopiersLW->item(i)->text(); - if (text == gui_name) { - QListWidgetItem * item = AllCopiersLW->item(i); - AllCopiersLW->setItemSelected(item, true); - break; - } - } -} - - -void PrefCopiers::copiers_changed() -{ - updateButtons(); -} - - -void PrefCopiers::updateButtons() -{ - QString selected = copierFormatCO->currentText(); - - bool known = false; - for (int i = 0; i < AllCopiersLW->count(); ++i) { - if (AllCopiersLW->item(i)->text() == selected) - known = true; - } - - bool const valid = !copierED->text().isEmpty(); - - Format const * fmt = getFormat(fromqstr(selected)); - string const old_command = form_->movers().command(fmt->name()); - string const new_command(fromqstr(copierED->text())); - - bool modified = (old_command != new_command); - - copierModifyPB->setEnabled(valid && known && modified); - copierNewPB->setEnabled(valid && !known); - copierRemovePB->setEnabled(known); -} - - -void PrefCopiers::new_copier() -{ - std::string const combo_text = - fromqstr(copierFormatCO->currentText()); - Format const * fmt = getFormat(combo_text); - if (fmt == 0) - return; - - string const command = fromqstr(copierED->text()); - if (command.empty()) - return; - - form_->movers().set(fmt->name(), command); - - update(); - int const last = AllCopiersLW->count() - 1; - AllCopiersLW->setCurrentRow(last); - - updateButtons(); -} - - -void PrefCopiers::modify_copier() -{ - std::string const combo_text = - fromqstr(copierFormatCO->currentText()); - Format const * fmt = getFormat(combo_text); - if (fmt == 0) - return; - - string const command = fromqstr(copierED->text()); - form_->movers().set(fmt->name(), command); - - update(); - updateButtons(); -} - - -void PrefCopiers::remove_copier() -{ - std::string const combo_text = - fromqstr(copierFormatCO->currentText()); - Format const * fmt = getFormat(combo_text); - if (fmt == 0) - return; - - string const & fmt_name = fmt->name(); - form_->movers().set(fmt_name, string()); - - update(); - updateButtons(); -} - - - -PrefFileformats::PrefFileformats(QPrefs * form, QWidget * parent) -: PrefModule(docstring(), _("File formats"), form, parent) -{ - setupUi(this); - - connect(formatNewPB, SIGNAL(clicked()), - this, SLOT(new_format())); - connect(formatRemovePB, SIGNAL(clicked()), - this, SLOT(remove_format())); - connect(formatModifyPB, SIGNAL(clicked()), - this, SLOT(modify_format())); - connect(formatsLW, SIGNAL(currentRowChanged(int)), - this, SLOT(switch_format(int))); - connect(formatED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(guiNameED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(shortcutED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(extensionED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(viewerED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(editorED, SIGNAL(textChanged(const QString&)), - this, SLOT(fileformat_changed())); - connect(documentCB, SIGNAL(clicked()), - this, SLOT(fileformat_changed())); - connect(vectorCB, SIGNAL(clicked()), - this, SLOT(fileformat_changed())); - connect(formatNewPB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(formatRemovePB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(formatModifyPB, SIGNAL(clicked()), - this, SIGNAL(changed())); -} - - -void PrefFileformats::apply(LyXRC & /*rc*/) const -{ -} - - -void PrefFileformats::update(LyXRC const & /*rc*/) -{ - update(); -} - - -void PrefFileformats::update() -{ - // save current selection - QString current = guiNameED->text(); - - // update listwidget with formats - formatsLW->blockSignals(true); - formatsLW->clear(); - Formats::const_iterator cit = form_->formats().begin(); - Formats::const_iterator end = form_->formats().end(); - for (; cit != end; ++cit) { - new QListWidgetItem(toqstr(cit->prettyname()), - formatsLW, - form_->formats().getNumber(cit->name()) ); - } - formatsLW->sortItems(Qt::AscendingOrder); - formatsLW->blockSignals(false); - - // restore selection - if (!current.isEmpty()) { - QList item = formatsLW->findItems(current, Qt::MatchExactly); - if (item.size()>0) - formatsLW->setCurrentItem(item.at(0)); - } - // select first element if restoring failed - if (formatsLW->currentRow() == -1) - formatsLW->setCurrentRow(0); -} - - -void PrefFileformats::switch_format(int nr) -{ - int const ftype = formatsLW->item(nr)->type(); - Format const f = form_->formats().get(ftype); - - formatED->setText(toqstr(f.name())); - guiNameED->setText(toqstr(f.prettyname())); - extensionED->setText(toqstr(f.extension())); - shortcutED->setText(toqstr(f.shortcut())); - viewerED->setText(toqstr(f.viewer())); - editorED->setText(toqstr(f.editor())); - documentCB->setChecked((f.documentFormat())); - vectorCB->setChecked((f.vectorFormat())); - - updateButtons(); -} - - -void PrefFileformats::fileformat_changed() -{ - updateButtons(); -} - - -void PrefFileformats::updateButtons() -{ - QString const format = formatED->text(); - QString const gui_name = guiNameED->text(); - int const sel = form_->formats().getNumber(fromqstr(format)); - bool gui_name_known = false; - int where = sel; - for (int i = 0; i < formatsLW->count(); ++i) { - if (formatsLW->item(i)->text() == gui_name) { - gui_name_known = true; - where = formatsLW->item(i)->type(); - } - } - - // assure that a gui name cannot be chosen twice - bool const known_otherwise = gui_name_known && (where != sel); - - bool const known = !(sel < 0); - bool const valid = (!formatED->text().isEmpty() - && !guiNameED->text().isEmpty()); - - int const ftype = formatsLW->currentItem()->type(); - Format const & f(form_->formats().get(ftype)); - string const old_pretty(f.prettyname()); - string const old_shortcut(f.shortcut()); - string const old_extension(f.extension()); - string const old_viewer(f.viewer()); - string const old_editor(f.editor()); - bool const old_document(f.documentFormat()); - bool const old_vector(f.vectorFormat()); - - string const new_pretty(fromqstr(gui_name)); - string const new_shortcut(fromqstr(shortcutED->text())); - string const new_extension(fromqstr(extensionED->text())); - string const new_viewer(fromqstr(viewerED->text())); - string const new_editor(fromqstr(editorED->text())); - bool const new_document(documentCB->isChecked()); - bool const new_vector(vectorCB->isChecked()); - - bool modified = ((old_pretty != new_pretty) || (old_shortcut != new_shortcut) - || (old_extension != new_extension) || (old_viewer != new_viewer) - || old_editor != new_editor || old_document != new_document - || old_vector != new_vector); - - formatModifyPB->setEnabled(valid && known && modified && !known_otherwise); - formatNewPB->setEnabled(valid && !known && !gui_name_known); - formatRemovePB->setEnabled(known); -} - - -void PrefFileformats::new_format() -{ - string const name = fromqstr(formatED->text()); - string const prettyname = fromqstr(guiNameED->text()); - string const extension = fromqstr(extensionED->text()); - string const shortcut = fromqstr(shortcutED->text()); - string const viewer = fromqstr(viewerED->text()); - string const editor = fromqstr(editorED->text()); - int flags = Format::none; - if (documentCB->isChecked()) - flags |= Format::document; - if (vectorCB->isChecked()) - flags |= Format::vector; - - form_->formats().add(name, extension, prettyname, shortcut, viewer, - editor, flags); - form_->formats().sort(); - form_->converters().update(form_->formats()); - - update(); - updateButtons(); - formatsChanged(); -} - - -void PrefFileformats::modify_format() -{ - int const current_item = formatsLW->currentItem()->type(); - Format const & oldformat = form_->formats().get(current_item); - form_->formats().erase(oldformat.name()); - - new_format(); -} - - -void PrefFileformats::remove_format() -{ - int const nr = formatsLW->currentItem()->type(); - string const current_text = form_->formats().get(nr).name(); - if (form_->converters().formatIsUsed(current_text)) { - Alert::error(_("Format in use"), - _("Cannot remove a Format used by a Converter. " - "Remove the converter first.")); - return; - } - - form_->formats().erase(current_text); - form_->converters().update(form_->formats()); - - update(); - updateButtons(); - formatsChanged(); -} - - - -PrefLanguage::PrefLanguage(QWidget * parent) -: PrefModule(_(LanguageSettings), _("Language"), 0, parent) -{ - setupUi(this); - - connect(rtlCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(markForeignCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(autoBeginCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(autoEndCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(useBabelCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(globalCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(languagePackageED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(startCommandED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(endCommandED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(defaultLanguageCO, SIGNAL(activated(int)), - this, SIGNAL(changed())); - - defaultLanguageCO->clear(); - - // store the lang identifiers for later - std::vector const langs = - lyx::frontend::getLanguageData(false); - lang_ = getSecond(langs); - - std::vector::const_iterator lit = langs.begin(); - std::vector::const_iterator lend = langs.end(); - for (; lit != lend; ++lit) { - defaultLanguageCO->addItem(toqstr(lit->first)); - } -} - - -void PrefLanguage::apply(LyXRC & rc) const -{ - // FIXME: remove rtl_support bool - rc.rtl_support = rtlCB->isChecked(); - rc.mark_foreign_language = markForeignCB->isChecked(); - rc.language_auto_begin = autoBeginCB->isChecked(); - rc.language_auto_end = autoEndCB->isChecked(); - rc.language_use_babel = useBabelCB->isChecked(); - rc.language_global_options = globalCB->isChecked(); - rc.language_package = fromqstr(languagePackageED->text()); - rc.language_command_begin = fromqstr(startCommandED->text()); - rc.language_command_end = fromqstr(endCommandED->text()); - rc.default_language = lang_[defaultLanguageCO->currentIndex()]; -} - - -void PrefLanguage::update(LyXRC const & rc) -{ - // FIXME: remove rtl_support bool - rtlCB->setChecked(rc.rtl_support); - markForeignCB->setChecked(rc.mark_foreign_language); - autoBeginCB->setChecked(rc.language_auto_begin); - autoEndCB->setChecked(rc.language_auto_end); - useBabelCB->setChecked(rc.language_use_babel); - globalCB->setChecked(rc.language_global_options); - languagePackageED->setText(toqstr(rc.language_package)); - startCommandED->setText(toqstr(rc.language_command_begin)); - endCommandED->setText(toqstr(rc.language_command_end)); - - int const pos = int(findPos_helper(lang_, rc.default_language)); - defaultLanguageCO->setCurrentIndex(pos); -} - - -PrefPrinter::PrefPrinter(QWidget * parent) -: PrefModule(_(Outputs), _("Printer"), 0, parent) -{ - setupUi(this); - - connect(printerAdaptCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(printerCommandED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerNameED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerPageRangeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerCopiesED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerReverseED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerToPrinterED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerExtensionED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerSpoolCommandED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerPaperTypeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerEvenED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerOddED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerCollatedED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerLandscapeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerToFileED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerExtraED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerSpoolPrefixED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(printerPaperSizeED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); -} - - -void PrefPrinter::apply(LyXRC & rc) const -{ - rc.print_adapt_output = printerAdaptCB->isChecked(); - rc.print_command = fromqstr(printerCommandED->text()); - rc.printer = fromqstr(printerNameED->text()); - - rc.print_pagerange_flag = fromqstr(printerPageRangeED->text()); - rc.print_copies_flag = fromqstr(printerCopiesED->text()); - rc.print_reverse_flag = fromqstr(printerReverseED->text()); - rc.print_to_printer = fromqstr(printerToPrinterED->text()); - rc.print_file_extension = fromqstr(printerExtensionED->text()); - rc.print_spool_command = fromqstr(printerSpoolCommandED->text()); - rc.print_paper_flag = fromqstr(printerPaperTypeED->text()); - rc.print_evenpage_flag = fromqstr(printerEvenED->text()); - rc.print_oddpage_flag = fromqstr(printerOddED->text()); - rc.print_collcopies_flag = fromqstr(printerCollatedED->text()); - rc.print_landscape_flag = fromqstr(printerLandscapeED->text()); - rc.print_to_file = internal_path(fromqstr(printerToFileED->text())); - rc.print_extra_options = fromqstr(printerExtraED->text()); - rc.print_spool_printerprefix = fromqstr(printerSpoolPrefixED->text()); - rc.print_paper_dimension_flag = fromqstr(printerPaperSizeED->text()); -} - - -void PrefPrinter::update(LyXRC const & rc) -{ - printerAdaptCB->setChecked(rc.print_adapt_output); - printerCommandED->setText(toqstr(rc.print_command)); - printerNameED->setText(toqstr(rc.printer)); - - printerPageRangeED->setText(toqstr(rc.print_pagerange_flag)); - printerCopiesED->setText(toqstr(rc.print_copies_flag)); - printerReverseED->setText(toqstr(rc.print_reverse_flag)); - printerToPrinterED->setText(toqstr(rc.print_to_printer)); - printerExtensionED->setText(toqstr(rc.print_file_extension)); - printerSpoolCommandED->setText(toqstr(rc.print_spool_command)); - printerPaperTypeED->setText(toqstr(rc.print_paper_flag)); - printerEvenED->setText(toqstr(rc.print_evenpage_flag)); - printerOddED->setText(toqstr(rc.print_oddpage_flag)); - printerCollatedED->setText(toqstr(rc.print_collcopies_flag)); - printerLandscapeED->setText(toqstr(rc.print_landscape_flag)); - printerToFileED->setText(toqstr(external_path(rc.print_to_file))); - printerExtraED->setText(toqstr(rc.print_extra_options)); - printerSpoolPrefixED->setText(toqstr(rc.print_spool_printerprefix)); - printerPaperSizeED->setText(toqstr(rc.print_paper_dimension_flag)); -} - - -PrefUserInterface::PrefUserInterface(QPrefs * form, QWidget * parent) -: PrefModule(_(LookAndFeel), _("User interface"), form, parent) -{ - setupUi(this); - - connect(autoSaveCB, SIGNAL( toggled(bool) ), autoSaveLA, SLOT( setEnabled(bool) ) ); - connect(autoSaveCB, SIGNAL( toggled(bool) ), autoSaveSB, SLOT( setEnabled(bool) ) ); - connect(autoSaveCB, SIGNAL( toggled(bool) ), TextLabel1, SLOT( setEnabled(bool) ) ); - connect(uiFilePB, SIGNAL(clicked()), this, SLOT(select_ui())); - connect(bindFilePB, SIGNAL(clicked()), this, SLOT(select_bind())); - connect(uiFileED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(bindFileED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(restoreCursorCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(loadSessionCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(loadWindowSizeCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(loadWindowLocationCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(windowWidthSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - connect(windowHeightSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - connect(cursorFollowsCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(autoSaveSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - connect(autoSaveCB, SIGNAL(clicked()), - this, SIGNAL(changed())); - connect(lastfilesSB, SIGNAL(valueChanged(int)), - this, SIGNAL(changed())); - lastfilesSB->setMaximum(maxlastfiles); -} - - -void PrefUserInterface::apply(LyXRC & rc) const -{ - rc.ui_file = internal_path(fromqstr(uiFileED->text())); - rc.bind_file = internal_path(fromqstr(bindFileED->text())); - rc.use_lastfilepos = restoreCursorCB->isChecked(); - rc.load_session = loadSessionCB->isChecked(); - if (loadWindowSizeCB->isChecked()) { - rc.geometry_width = 0; - rc.geometry_height = 0; - } else { - rc.geometry_width = windowWidthSB->value(); - rc.geometry_height = windowHeightSB->value(); - } - rc.geometry_xysaved = loadWindowLocationCB->isChecked(); - rc.cursor_follows_scrollbar = cursorFollowsCB->isChecked(); - rc.autosave = autoSaveSB->value() * 60; - rc.make_backup = autoSaveCB->isChecked(); - rc.num_lastfiles = lastfilesSB->value(); -} - - -void PrefUserInterface::update(LyXRC const & rc) -{ - uiFileED->setText(toqstr(external_path(rc.ui_file))); - bindFileED->setText(toqstr(external_path(rc.bind_file))); - restoreCursorCB->setChecked(rc.use_lastfilepos); - loadSessionCB->setChecked(rc.load_session); - bool loadWindowSize = rc.geometry_width == 0 && rc.geometry_height == 0; - loadWindowSizeCB->setChecked(loadWindowSize); - if (!loadWindowSize) { - windowWidthSB->setValue(rc.geometry_width); - windowHeightSB->setValue(rc.geometry_height); - } - loadWindowLocationCB->setChecked(rc.geometry_xysaved); - cursorFollowsCB->setChecked(rc.cursor_follows_scrollbar); - // convert to minutes - int mins(rc.autosave / 60); - if (rc.autosave && !mins) - mins = 1; - autoSaveSB->setValue(mins); - autoSaveCB->setChecked(rc.make_backup); - lastfilesSB->setValue(rc.num_lastfiles); -} - - - -void PrefUserInterface::select_ui() -{ - docstring const name = - from_utf8(internal_path(fromqstr(uiFileED->text()))); - docstring file(form_->controller().browseUI(name)); - if (!file.empty()) - uiFileED->setText(toqstr(file)); -} - - -void PrefUserInterface::select_bind() -{ - docstring const name = - from_utf8(internal_path(fromqstr(bindFileED->text()))); - docstring file(form_->controller().browsebind(name)); - if (!file.empty()) - bindFileED->setText(toqstr(file)); -} - - -void PrefUserInterface::on_loadWindowSizeCB_toggled(bool loadwindowsize) -{ - windowWidthLA->setDisabled(loadwindowsize); - windowHeightLA->setDisabled(loadwindowsize); - windowWidthSB->setDisabled(loadwindowsize); - windowHeightSB->setDisabled(loadwindowsize); -} - - -PrefIdentity::PrefIdentity(QWidget * parent) -: PrefModule(docstring(), _("Identity"), 0, parent) -{ - setupUi(this); - - connect(nameED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); - connect(emailED, SIGNAL(textChanged(const QString&)), - this, SIGNAL(changed())); -} - - -void PrefIdentity::apply(LyXRC & rc) const -{ - rc.user_name = fromqstr(nameED->text()); - rc.user_email = fromqstr(emailED->text()); -} - - -void PrefIdentity::update(LyXRC const & rc) -{ - nameED->setText(toqstr(rc.user_name)); - emailED->setText(toqstr(rc.user_email)); -} - - - -QPrefsDialog::QPrefsDialog(QPrefs * form) - : form_(form) -{ - setupUi(this); - QDialog::setModal(false); - - connect(savePB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), - form, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - connect(restorePB, SIGNAL(clicked()), - form, SLOT(slotRestore())); - - add(new PrefUserInterface(form_)); - add(new PrefScreenFonts(form_)); - add(new PrefColors(form_)); - add(new PrefDisplay); - add(new PrefKeyboard(form_)); - - add(new PrefPaths(form_)); - - add(new PrefIdentity); - - add(new PrefLanguage); - add(new PrefSpellchecker(form_)); - - add(new PrefPrinter); - add(new PrefDate); - add(new PrefPlaintext); - add(new PrefLatex(form_)); - -#if defined(__CYGWIN__) || defined(_WIN32) - add(new PrefCygwinPath); -#endif - - - PrefConverters * converters = new PrefConverters(form_); - PrefFileformats * formats = new PrefFileformats(form_); - connect(formats, SIGNAL(formatsChanged()), - converters, SLOT(updateGui())); - add(converters); - add(formats); - - add(new PrefCopiers(form_)); - - - prefsPS->setCurrentPanel(_("User interface")); -// FIXME: hack to work around resizing bug in Qt >= 4.2 -// bug verified with Qt 4.2.{0-3} (JSpitzm) -#if QT_VERSION >= 0x040200 - prefsPS->updateGeometry(); -#endif - - form_->bcview().setOK(savePB); - form_->bcview().setApply(applyPB); - form_->bcview().setCancel(closePB); - form_->bcview().setRestore(restorePB); -} - - -QPrefsDialog::~QPrefsDialog() -{ -} - - -void QPrefsDialog::add(PrefModule * module) -{ - BOOST_ASSERT(module); - -// if (module->category().empty()) -// prefsPS->addPanel(module, module->title()); -// else - prefsPS->addPanel(module, module->title(), module->category()); - - connect(module, SIGNAL(changed()), this, SLOT(change_adaptor())); - - modules_.push_back(module); -} - -void QPrefsDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - - -void QPrefsDialog::change_adaptor() -{ - form_->changed(); -} - - -void QPrefsDialog::apply(LyXRC & rc) const -{ - size_t end = modules_.size(); - for (size_t i = 0; i != end; ++i) - modules_[i]->apply(rc); -} - - -void QPrefsDialog::updateRc(LyXRC const & rc) -{ - size_t end = modules_.size(); - for (size_t i = 0; i != end; ++i) - modules_[i]->update(rc); -} - - -} // namespace frontend -} // namespace lyx - -#include "QPrefsDialog_moc.cpp" diff --git a/src/frontends/qt4/QPrefsDialog.h b/src/frontends/qt4/QPrefsDialog.h deleted file mode 100644 index a6693fd24c..0000000000 --- a/src/frontends/qt4/QPrefsDialog.h +++ /dev/null @@ -1,397 +0,0 @@ -// -*- C++ -*- -/** - * \file QPrefsDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author John Levon - * \author Abdelrazak Younes - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QPREFSDIALOG_H -#define QPREFSDIALOG_H - -#include "LColor.h" -#include "lyxrc.h" - -#include "ui/PrefsUi.h" - -#include - -#include -#include - -#include "ui/PrefPlaintextUi.h" -#include "ui/PrefDateUi.h" -#include "ui/PrefKeyboardUi.h" -#include "ui/PrefLatexUi.h" -#include "ui/PrefScreenFontsUi.h" -#include "ui/PrefColorsUi.h" -#include "ui/PrefCygwinPathUi.h" -#include "ui/PrefDisplayUi.h" -#include "ui/PrefPathsUi.h" -#include "ui/PrefSpellcheckerUi.h" -#include "ui/PrefConvertersUi.h" -#include "ui/PrefCopiersUi.h" -#include "ui/PrefFileformatsUi.h" -#include "ui/PrefLanguageUi.h" -#include "ui/PrefPrinterUi.h" -#include "ui/PrefUi.h" -#include "ui/PrefIdentityUi.h" - -namespace lyx { -namespace frontend { - -class QPrefs; - -class PrefModule : public QWidget -{ - Q_OBJECT -public: - PrefModule(lyx::docstring const & cat, lyx::docstring const & t, QPrefs * form = 0, QWidget * parent = 0) - : QWidget(parent), category_(cat), title_(t), form_(form) - { - } - virtual ~PrefModule() {} - - virtual void apply(LyXRC & rc) const = 0; - virtual void update(LyXRC const & rc) = 0; - - lyx::docstring const & category() { - return category_; - } - - lyx::docstring const & title() { - return title_; - } - -protected: - lyx::docstring category_; - lyx::docstring title_; - QPrefs * form_; - -Q_SIGNALS: - void changed(); -}; - - -class PrefPlaintext : public PrefModule, public Ui::QPrefPlaintextUi -{ - Q_OBJECT -public: - PrefPlaintext(QWidget * parent = 0); - ~PrefPlaintext() {} - - virtual void apply(LyXRC & rc) const; - virtual void update(LyXRC const & rc); -}; - - -class PrefDate : public PrefModule, public Ui::QPrefDateUi -{ - Q_OBJECT -public: - PrefDate(QWidget * parent = 0); - ~PrefDate() {} - - virtual void apply(LyXRC & rc) const; - virtual void update(LyXRC const & rc); -}; - - -class PrefKeyboard : public PrefModule, public Ui::QPrefKeyboardUi -{ - Q_OBJECT -public: - PrefKeyboard(QPrefs * form, QWidget * parent = 0); - ~PrefKeyboard() {} - - virtual void apply(LyXRC & rc) const; - virtual void update(LyXRC const & rc); - -private Q_SLOTS: - void on_firstKeymapPB_clicked(bool); - void on_secondKeymapPB_clicked(bool); - void on_keymapCB_toggled(bool); - -private: - QString testKeymap(QString keymap); -}; - - -class PrefLatex : public PrefModule, public Ui::QPrefLatexUi -{ - Q_OBJECT -public: - PrefLatex(QPrefs * form, QWidget * parent = 0); - ~PrefLatex() {} - - virtual void apply(LyXRC & rc) const; - virtual void update(LyXRC const & rc); -}; - - -class PrefScreenFonts : public PrefModule, public Ui::QPrefScreenFontsUi -{ - Q_OBJECT -public: - PrefScreenFonts(QPrefs * form, QWidget * parent = 0); - ~PrefScreenFonts() {} - - virtual void apply(LyXRC & rc) const; - virtual void update(LyXRC const & rc); - -private Q_SLOTS: - void select_roman(const QString&); - void select_sans(const QString&); - void select_typewriter(const QString&); -}; - - -class PrefColors : public PrefModule, public Ui::QPrefColorsUi -{ - Q_OBJECT -public: - PrefColors(QPrefs * form, QWidget * parent = 0); - ~PrefColors() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -private Q_SLOTS: - void change_color(); - -private: - std::vector lcolors_; - // FIXME the use of mutable here is required due to the - // fact that initialization is not done in the controller - // but in the constructor. - mutable std::vector curcolors_; - std::vector newcolors_; - -}; - - -class PrefCygwinPath : public PrefModule, public Ui::QPrefCygwinPathUi -{ - Q_OBJECT -public: - PrefCygwinPath(QWidget * parent = 0); - ~PrefCygwinPath() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); -}; - - -class PrefDisplay : public PrefModule, public Ui::QPrefDisplayUi -{ - Q_OBJECT -public: - PrefDisplay(QWidget * parent = 0); - ~PrefDisplay() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); -}; - - -class PrefPaths : public PrefModule, public Ui::QPrefPathsUi -{ - Q_OBJECT -public: - PrefPaths(QPrefs * form, QWidget * parent = 0); - ~PrefPaths() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -private Q_SLOTS: - void select_templatedir(); - void select_tempdir(); - void select_backupdir(); - void select_workingdir(); - void select_lyxpipe(); - -}; - - -class PrefSpellchecker : public PrefModule, public Ui::QPrefSpellcheckerUi -{ - Q_OBJECT -public: - PrefSpellchecker(QPrefs * form, QWidget * parent = 0); - ~PrefSpellchecker() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -private Q_SLOTS: - void select_dict(); -}; - - -class PrefConverters : public PrefModule, public Ui::QPrefConvertersUi -{ - Q_OBJECT -public: - PrefConverters(QPrefs * form, QWidget * parent = 0); - ~PrefConverters() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -public Q_SLOTS: - void updateGui(); - -private Q_SLOTS: - void update_converter(); - void switch_converter(); - void converter_changed(); - void remove_converter(); - void on_cacheCB_stateChanged(int state); - -private: - void updateButtons(); -}; - - -class PrefCopiers : public PrefModule, public Ui::QPrefCopiersUi -{ - Q_OBJECT -public: - PrefCopiers(QPrefs * form, QWidget * parent = 0); - ~PrefCopiers() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - - void update(); - -private Q_SLOTS: - void switch_copierLB(int nr); - void switch_copierCO(int nr); - void copiers_changed(); - void new_copier(); - void modify_copier(); - void remove_copier(); - -private: - void updateButtons(); -}; - - -class PrefFileformats : public PrefModule, public Ui::QPrefFileformatsUi -{ - Q_OBJECT -public: - PrefFileformats(QPrefs * form, QWidget * parent = 0); - ~PrefFileformats() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - - void update(); -Q_SIGNALS: - void formatsChanged(); -private: - void updateButtons(); - -private Q_SLOTS: - void switch_format(int); - void fileformat_changed(); - void new_format(); - void modify_format(); - void remove_format(); -}; - - -class PrefLanguage : public PrefModule, public Ui::QPrefLanguageUi -{ - Q_OBJECT -public: - PrefLanguage(QWidget * parent = 0); - ~PrefLanguage() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -private: - std::vector lang_; - -}; - - -class PrefPrinter : public PrefModule, public Ui::QPrefPrinterUi -{ - Q_OBJECT -public: - PrefPrinter(QWidget * parent = 0); - ~PrefPrinter() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); -}; - - -class PrefUserInterface : public PrefModule, public Ui::QPrefUi -{ - Q_OBJECT -public: - PrefUserInterface(QPrefs * form, QWidget * parent = 0); - ~PrefUserInterface() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); - -public Q_SLOTS: - void select_ui(); - void select_bind(); - void on_loadWindowSizeCB_toggled(bool); - -}; - - -class PrefIdentity : public PrefModule, public Ui::QPrefIdentityUi -{ - Q_OBJECT -public: - PrefIdentity(QWidget * parent = 0); - ~PrefIdentity() {} - - void apply(LyXRC & rc) const; - void update(LyXRC const & rc); -}; - -/// -class QPrefsDialog : public QDialog, public Ui::QPrefsUi -{ - Q_OBJECT -public: - QPrefsDialog(QPrefs *); - - ~QPrefsDialog(); - - void apply(LyXRC & rc) const; - void updateRc(LyXRC const & rc); - -public Q_SLOTS: - void change_adaptor(); - -protected: - void closeEvent(QCloseEvent * e); - -private: - void add(PrefModule * module); - -private: - QPrefs * form_; - std::vector modules_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // PREFSDIALOG_H diff --git a/src/frontends/qt4/QRef.C b/src/frontends/qt4/QRef.C index 4d3aa39ae7..75229f744b 100644 --- a/src/frontends/qt4/QRef.C +++ b/src/frontends/qt4/QRef.C @@ -12,7 +12,6 @@ #include #include "QRef.h" -#include "QRefDialog.h" #include "Qt2BC.h" #include "qt_helpers.h" @@ -27,22 +26,166 @@ #include #include #include +#include -using lyx::docstring; - using std::vector; using std::string; + namespace lyx { namespace frontend { +///////////////////////////////////////////////////////////////////// +// +// QRefDialog +// +///////////////////////////////////////////////////////////////////// + +QRefDialog::QRefDialog(QRef * form) + : form_(form) +{ + setupUi(this); + + connect(okPB, SIGNAL(clicked()), form_, SLOT(slotOK())); + connect(applyPB, SIGNAL(clicked()), form_, SLOT(slotApply())); + connect(closePB, SIGNAL(clicked()), form_, SLOT(slotClose())); + connect(closePB, SIGNAL(clicked()), this, SLOT(reset_dialog())); + + connect(typeCO, SIGNAL(activated(int)), + this, SLOT(changed_adaptor())); + connect(referenceED, SIGNAL(textChanged(const QString &)), + this, SLOT(changed_adaptor())); + connect(nameED, SIGNAL(textChanged(const QString &)), + this, SLOT(changed_adaptor())); + connect(refsLW, SIGNAL(itemClicked(QListWidgetItem *)), + this, SLOT(refHighlighted(QListWidgetItem *))); + connect(refsLW, SIGNAL(itemSelectionChanged()), + this, SLOT(selectionChanged())); + connect(refsLW, SIGNAL(itemActivated(QListWidgetItem *)), + this, SLOT(refSelected(QListWidgetItem *))); + connect(sortCB, SIGNAL(clicked(bool)), + this, SLOT(sortToggled(bool))); + connect(gotoPB, SIGNAL(clicked()), + this, SLOT(gotoClicked())); + connect(updatePB, SIGNAL(clicked()), + this, SLOT(updateClicked())); + connect(bufferCO, SIGNAL(activated(int)), + this, SLOT(updateClicked())); + + setFocusProxy(refsLW); +} + +void QRefDialog::show() +{ + QDialog::show(); +} + + +void QRefDialog::changed_adaptor() +{ + form_->changed(); +} + + +void QRefDialog::gotoClicked() +{ + form_->gotoRef(); +} + +void QRefDialog::selectionChanged() +{ + if (form_->readOnly()) + return; + + QList selections = refsLW->selectedItems(); + if (selections.isEmpty()) + return; + QListWidgetItem * sel = selections.first(); + refHighlighted(sel); + return; +} + + +void QRefDialog::refHighlighted(QListWidgetItem * sel) +{ + if (form_->readOnly()) + return; + +/* int const cur_item = refsLW->currentRow(); + bool const cur_item_selected = cur_item >= 0 ? + refsLB->isSelected(cur_item) : false;*/ + bool const cur_item_selected = refsLW->isItemSelected(sel); + + if (cur_item_selected) + referenceED->setText(sel->text()); + + if (form_->at_ref_) + form_->gotoRef(); + gotoPB->setEnabled(true); + if (form_->typeAllowed()) + typeCO->setEnabled(true); + if (form_->nameAllowed()) + nameED->setEnabled(true); +} + + +void QRefDialog::refSelected(QListWidgetItem * sel) +{ + if (form_->readOnly()) + return; + +/* int const cur_item = refsLW->currentRow(); + bool const cur_item_selected = cur_item >= 0 ? + refsLB->isSelected(cur_item) : false;*/ + bool const cur_item_selected = refsLW->isItemSelected(sel); + + if (cur_item_selected) + referenceED->setText(sel->text()); + // or double click, inserts ref and closes dialog + form_->slotOK(); +} + + +void QRefDialog::sortToggled(bool on) +{ + form_->sort_ = on; + form_->redoRefs(); +} + + +void QRefDialog::updateClicked() +{ + form_->updateRefs(); +} + + +void QRefDialog::reset_dialog() { + form_->at_ref_ = false; + form_->setGotoRef(); +} + + +void QRefDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + reset_dialog(); + e->accept(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QRef +// +///////////////////////////////////////////////////////////////////// + // full qualification because qt4 has also a ControlRef type -typedef QController > ref_base_class; +typedef QController > RefBase; QRef::QRef(Dialog & parent) - : ref_base_class(parent, _("Cross-reference")), + : RefBase(parent, _("Cross-reference")), sort_(false), at_ref_(false) { } @@ -240,3 +383,5 @@ bool QRef::isValid() } // namespace frontend } // namespace lyx + +#include "QRef_moc.cpp" diff --git a/src/frontends/qt4/QRef.h b/src/frontends/qt4/QRef.h index 4bf7c961dd..19c006db07 100644 --- a/src/frontends/qt4/QRef.h +++ b/src/frontends/qt4/QRef.h @@ -13,13 +13,46 @@ #define QREF_H #include "QDialogView.h" -#include "QRefDialog.h" + +#include "ui/RefUi.h" + +#include #include +class QListWidgetItem; +class QCloseEvent; + namespace lyx { namespace frontend { +class QRef; + +class QRefDialog : public QDialog, public Ui::QRefUi { + Q_OBJECT +public: + QRefDialog(QRef * form); + + virtual void show(); + +public Q_SLOTS: + void changed_adaptor(); + void gotoClicked(); + void refHighlighted(QListWidgetItem *); + void selectionChanged(); + void refSelected(QListWidgetItem *); + void sortToggled(bool); + void updateClicked(); + +protected Q_SLOTS: + void reset_dialog(); +protected: + void closeEvent(QCloseEvent * e); +private: + QRef * form_; +}; + + class ControlRef; // full qualification because qt4 has also a ControlRef type diff --git a/src/frontends/qt4/QRefDialog.C b/src/frontends/qt4/QRefDialog.C deleted file mode 100644 index e95e823a1a..0000000000 --- a/src/frontends/qt4/QRefDialog.C +++ /dev/null @@ -1,162 +0,0 @@ -/** - * \file QRefDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Kalle Dalheimer - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QRefDialog.h" -#include "QRef.h" - -#include -#include -#include -#include - -namespace lyx { -namespace frontend { - -QRefDialog::QRefDialog(QRef * form) - : form_(form) -{ - setupUi(this); - - connect(okPB, SIGNAL(clicked()), - form_, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), - form_, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), - form_, SLOT(slotClose())); - connect(closePB, SIGNAL(clicked()), - this, SLOT( reset_dialog() ) ); - - connect( typeCO, SIGNAL( activated(int) ), - this, SLOT( changed_adaptor() ) ); - connect( referenceED, SIGNAL( textChanged(const QString&) ), - this, SLOT( changed_adaptor() ) ); - connect( nameED, SIGNAL( textChanged(const QString&) ), - this, SLOT( changed_adaptor() ) ); - connect( refsLW, SIGNAL( itemClicked(QListWidgetItem *) ), - this, SLOT( refHighlighted(QListWidgetItem *) ) ); - connect( refsLW, SIGNAL( itemSelectionChanged() ), - this, SLOT( selectionChanged() ) ); - connect( refsLW, SIGNAL( itemActivated(QListWidgetItem *) ), - this, SLOT( refSelected(QListWidgetItem *) ) ); - connect( sortCB, SIGNAL( clicked(bool) ), - this, SLOT( sortToggled(bool) ) ); - connect( gotoPB, SIGNAL( clicked() ), - this, SLOT( gotoClicked() ) ); - connect( updatePB, SIGNAL( clicked() ), - this, SLOT( updateClicked() ) ); - connect( bufferCO, SIGNAL( activated(int) ), - this, SLOT( updateClicked() ) ); - - setFocusProxy(refsLW); -} - -void QRefDialog::show() -{ - QDialog::show(); -} - - -void QRefDialog::changed_adaptor() -{ - form_->changed(); -} - - -void QRefDialog::gotoClicked() -{ - form_->gotoRef(); -} - -void QRefDialog::selectionChanged() -{ - if (form_->readOnly()) - return; - - QList selections = refsLW->selectedItems(); - if (selections.isEmpty()) - return; - QListWidgetItem * sel = selections.first(); - refHighlighted(sel); - return; -} - -void QRefDialog::refHighlighted(QListWidgetItem * sel) -{ - if (form_->readOnly()) - return; - -/* int const cur_item = refsLW->currentRow(); - bool const cur_item_selected = cur_item >= 0 ? - refsLB->isSelected(cur_item) : false;*/ - bool const cur_item_selected = refsLW->isItemSelected(sel); - - if (cur_item_selected) - referenceED->setText(sel->text()); - - if (form_->at_ref_) - form_->gotoRef(); - gotoPB->setEnabled(true); - if (form_->typeAllowed()) - typeCO->setEnabled(true); - if (form_->nameAllowed()) - nameED->setEnabled(true); -} - - -void QRefDialog::refSelected(QListWidgetItem * sel) -{ - if (form_->readOnly()) - return; - -/* int const cur_item = refsLW->currentRow(); - bool const cur_item_selected = cur_item >= 0 ? - refsLB->isSelected(cur_item) : false;*/ - bool const cur_item_selected = refsLW->isItemSelected(sel); - - if (cur_item_selected) - referenceED->setText(sel->text()); - // or double click, inserts ref and closes dialog - form_->slotOK(); -} - - -void QRefDialog::sortToggled(bool on) -{ - form_->sort_ = on; - form_->redoRefs(); -} - - -void QRefDialog::updateClicked() -{ - form_->updateRefs(); -} - - -void QRefDialog::reset_dialog() { - form_->at_ref_ = false; - form_->setGotoRef(); -} - - -void QRefDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - reset_dialog(); - e->accept(); -} - -} // namespace frontend -} // namespace lyx - -#include "QRefDialog_moc.cpp" diff --git a/src/frontends/qt4/QRefDialog.h b/src/frontends/qt4/QRefDialog.h deleted file mode 100644 index 21c83baeab..0000000000 --- a/src/frontends/qt4/QRefDialog.h +++ /dev/null @@ -1,55 +0,0 @@ -// -*- C++ -*- -/** - * \file QRefDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Kalle Dalheimer - * \author John Levon - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QREFDIALOG_H -#define QREFDIALOG_H - -#include "ui/RefUi.h" - -#include -#include - -class QListWidgetItem; - -namespace lyx { -namespace frontend { - -class QRef; - -class QRefDialog : public QDialog, public Ui::QRefUi { - Q_OBJECT -public: - QRefDialog(QRef * form); - - virtual void show(); - -public Q_SLOTS: - void changed_adaptor(); - void gotoClicked(); - void refHighlighted(QListWidgetItem *); - void selectionChanged(); - void refSelected(QListWidgetItem *); - void sortToggled(bool); - void updateClicked(); - -protected Q_SLOTS: - void reset_dialog(); -protected: - void closeEvent(QCloseEvent * e); -private: - QRef * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QREFDIALOG_H diff --git a/src/frontends/qt4/QSendto.C b/src/frontends/qt4/QSendto.C index 9cf5a2a951..2ea03f603b 100644 --- a/src/frontends/qt4/QSendto.C +++ b/src/frontends/qt4/QSendto.C @@ -11,7 +11,6 @@ #include #include "QSendto.h" -#include "QSendtoDialog.h" #include "Qt2BC.h" #include "qt_helpers.h" @@ -21,18 +20,68 @@ #include #include +#include using std::vector; using std::string; + namespace lyx { namespace frontend { -typedef QController > sendto_base_class; +///////////////////////////////////////////////////////////////////// +// +// QSendtoDialog +// +///////////////////////////////////////////////////////////////////// + +QSendtoDialog::QSendtoDialog(QSendto * form) + : form_(form) +{ + setupUi(this); + + connect(okPB, SIGNAL(clicked()), + form, SLOT(slotOK())); + connect(applyPB, SIGNAL(clicked()), + form, SLOT(slotApply())); + connect(closePB, SIGNAL(clicked()), + form, SLOT(slotClose())); + + connect( formatLW, SIGNAL( itemClicked(QListWidgetItem *) ), + this, SLOT( slotFormatHighlighted(QListWidgetItem *) ) ); + connect( formatLW, SIGNAL( itemActivated(QListWidgetItem *) ), + this, SLOT( slotFormatSelected(QListWidgetItem *) ) ); + connect( formatLW, SIGNAL( itemClicked(QListWidgetItem *) ), + this, SLOT( changed_adaptor() ) ); + connect( commandCO, SIGNAL( textChanged(const QString&) ), + this, SLOT( changed_adaptor() ) ); +} + + +void QSendtoDialog::changed_adaptor() +{ + form_->changed(); +} + + +void QSendtoDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +///////////////////////////////////////////////////////////////////// +// +// QSendto +// +///////////////////////////////////////////////////////////////////// + +typedef QController > SendtoBase; QSendto::QSendto(Dialog & parent) - : sendto_base_class(parent, _("Send Document to Command")) + : SendtoBase(parent, _("Send Document to Command")) { } @@ -103,3 +152,5 @@ bool QSendto::isValid() } // namespace frontend } // namespace lyx + +#include "QSendto_moc.cpp" diff --git a/src/frontends/qt4/QSendto.h b/src/frontends/qt4/QSendto.h index 35761eace3..d53b3a3051 100644 --- a/src/frontends/qt4/QSendto.h +++ b/src/frontends/qt4/QSendto.h @@ -13,16 +13,38 @@ #define QSENDTO_H #include "QDialogView.h" -#include "QSendtoDialog.h" +#include "ui/SendtoUi.h" + +#include #include +class QCloseEvent; +class QListWidgetItem; + namespace lyx { class Format; namespace frontend { +class QSendto; + +class QSendtoDialog : public QDialog, public Ui::QSendtoUi { + Q_OBJECT +public: + QSendtoDialog(QSendto * form); +protected Q_SLOTS: + virtual void changed_adaptor(); + virtual void slotFormatHighlighted(QListWidgetItem *) {} + virtual void slotFormatSelected(QListWidgetItem *) {} +protected: + virtual void closeEvent(QCloseEvent * e); +private: + QSendto * form_; +}; + + class ControlSendto; /** This class provides a Qt implementation of the Custom Export Dialog. diff --git a/src/frontends/qt4/QSendtoDialog.C b/src/frontends/qt4/QSendtoDialog.C deleted file mode 100644 index fabe956b09..0000000000 --- a/src/frontends/qt4/QSendtoDialog.C +++ /dev/null @@ -1,61 +0,0 @@ -/** - * \file QSendtoDialog.C - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#include - -#include "QSendtoDialog.h" -#include "QSendto.h" - -#include -#include - - -namespace lyx { -namespace frontend { - -QSendtoDialog::QSendtoDialog(QSendto * form) - : form_(form) -{ - setupUi(this); - - connect(okPB, SIGNAL(clicked()), - form, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), - form, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), - form, SLOT(slotClose())); - - connect( formatLW, SIGNAL( itemClicked(QListWidgetItem *) ), - this, SLOT( slotFormatHighlighted(QListWidgetItem *) ) ); - connect( formatLW, SIGNAL( itemActivated(QListWidgetItem *) ), - this, SLOT( slotFormatSelected(QListWidgetItem *) ) ); - connect( formatLW, SIGNAL( itemClicked(QListWidgetItem *) ), - this, SLOT( changed_adaptor() ) ); - connect( commandCO, SIGNAL( textChanged(const QString&) ), - this, SLOT( changed_adaptor() ) ); -} - - -void QSendtoDialog::changed_adaptor() -{ - form_->changed(); -} - - -void QSendtoDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} - -} // namespace frontend -} // namespace lyx - -#include "QSendtoDialog_moc.cpp" diff --git a/src/frontends/qt4/QSendtoDialog.h b/src/frontends/qt4/QSendtoDialog.h deleted file mode 100644 index 3958894816..0000000000 --- a/src/frontends/qt4/QSendtoDialog.h +++ /dev/null @@ -1,44 +0,0 @@ -// -*- C++ -*- -/** - * \file QSendtoDialog.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Jürgen Spitzmüller - * - * Full author contact details are available in file CREDITS. - */ - -#ifndef QSENDTODIALOG_H -#define QSENDTODIALOG_H - -#include "ui/SendtoUi.h" - -#include -#include - -class QListWidgetItem; - -namespace lyx { -namespace frontend { - -class QSendto; - -class QSendtoDialog : public QDialog, public Ui::QSendtoUi { - Q_OBJECT -public: - QSendtoDialog(QSendto * form); -protected Q_SLOTS: - virtual void changed_adaptor(); - virtual void slotFormatHighlighted(QListWidgetItem *) {} - virtual void slotFormatSelected(QListWidgetItem *) {} -protected: - virtual void closeEvent(QCloseEvent * e); -private: - QSendto * form_; -}; - -} // namespace frontend -} // namespace lyx - -#endif // QSENDTODIALOG_H