From: John Levon Date: Tue, 28 Aug 2001 01:27:35 +0000 (+0000) Subject: include dialog X-Git-Tag: 1.6.10~20745 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=3509e5f1ba9f88149be3e6effcef4cbc0aa38be5;p=features.git include dialog git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2600 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt2/Dialogs.C b/src/frontends/qt2/Dialogs.C index 2fd5c55191..6d57fcd392 100644 --- a/src/frontends/qt2/Dialogs.C +++ b/src/frontends/qt2/Dialogs.C @@ -20,6 +20,7 @@ #include "QErrorDialog.h" #include "QERTDialog.h" #include "QExternalDialog.h" +#include "QIncludeDialog.h" #include "QIndexDialog.h" #include "QRefDialog.h" #include "QThesaurusDialog.h" @@ -33,6 +34,7 @@ #include "QError.h" #include "QERT.h" #include "QExternal.h" +#include "QInclude.h" #include "QIndex.h" #include "QParagraph.h" #include "QPrint.h" @@ -58,6 +60,7 @@ #include "controllers/ControlError.h" #include "controllers/ControlERT.h" #include "controllers/ControlExternal.h" +#include "controllers/ControlInclude.h" #include "controllers/ControlIndex.h" #include "controllers/ControlRef.h" #include "controllers/ControlSplash.h" @@ -68,7 +71,6 @@ #include "controllers/ControlCitation.h" #include "controllers/ControlFloat.h" #include "controllers/ControlGraphics.h" -#include "controllers/ControlInclude.h" #include "controllers/ControlLabel.h" #include "controllers/ControlLog.h" #include "controllers/ControlMinipage.h" @@ -101,6 +103,7 @@ Dialogs::Dialogs(LyXView * lv) add(new GUIError(*lv, *this)); add(new GUIERT(*lv, *this)); add(new GUIExternal(*lv, *this)); + add(new GUIInclude(*lv, *this)); add(new GUIIndex(*lv, *this)); add(new GUIRef(*lv, *this)); add(new GUIThesaurus(*lv, *this)); diff --git a/src/frontends/qt2/Makefile.am b/src/frontends/qt2/Makefile.am index c6665e6b02..20377d436a 100644 --- a/src/frontends/qt2/Makefile.am +++ b/src/frontends/qt2/Makefile.am @@ -26,7 +26,6 @@ libqt2_la_OBJADD = \ ../xforms/FormBrowser.lo \ ../xforms/FormDocument.lo \ ../xforms/FormGraphics.lo \ - ../xforms/FormInclude.lo \ ../xforms/FormIndex.lo \ ../xforms/FormInset.lo \ ../xforms/FormLog.lo \ diff --git a/src/frontends/qt2/Makefile.dialogs b/src/frontends/qt2/Makefile.dialogs index 334860fd0e..1ff2358a10 100644 --- a/src/frontends/qt2/Makefile.dialogs +++ b/src/frontends/qt2/Makefile.dialogs @@ -10,6 +10,7 @@ DIALOGS = \ QError \ QERT \ QExternal \ + QInclude \ QIndex \ QParagraph \ QPrint \ @@ -40,6 +41,8 @@ DIALOGSOURCES = \ QERT.C QERTDialog.C \ QExternal.h QExternalDialog.h \ QExternal.C QExternalDialog.C \ + QInclude.h QIncludeDialog.h \ + QInclude.C QIncludeDialog.C \ QIndex.h QIndexDialog.h \ QIndex.C QIndexDialog.C \ QParagraph.h QParagraphDialog.h \ @@ -71,6 +74,7 @@ MOCDIALOGS = \ QErrorDialog_moc.C \ QERTDialog_moc.C \ QExternalDialog_moc.C \ + QIncludeDialog_moc.C \ QIndexDialog_moc.C \ QParagraphDialog_moc.C \ QPrintDialog_moc.C \ @@ -101,6 +105,8 @@ UIDIALOGS = \ QERTDialogBase.h \ QExternalDialogBase.C \ QExternalDialogBase.h \ + QIncludeDialogBase.h \ + QIncludeDialogBase.C \ QIndexDialogBase.h \ QIndexDialogBase.C \ QParagraphDialogBase.h \ @@ -130,6 +136,7 @@ UIMOCDIALOGS = \ QErrorDialogBase_moc.C \ QERTDialogBase_moc.C \ QExternalDialogBase_moc.C \ + QIncludeDialogBase_moc.C \ QIndexDialogBase_moc.C \ QParagraphDialogBase_moc.C \ QPrintDialogBase_moc.C \ diff --git a/src/frontends/qt2/QInclude.C b/src/frontends/qt2/QInclude.C new file mode 100644 index 0000000000..5c64b41311 --- /dev/null +++ b/src/frontends/qt2/QInclude.C @@ -0,0 +1,137 @@ +/** + * \file QInclude.C + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#include + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include "QIncludeDialog.h" +#include "ControlInclude.h" +#include "QInclude.h" +#include "Qt2BC.h" +#include "gettext.h" +#include "debug.h" + +#include +#include +#include +#include + +typedef Qt2CB > base_class; + +QInclude::QInclude(ControlInclude & c) + : base_class(c, _("Include")) +{ +} + + +void QInclude::build_dialog() +{ + dialog_.reset(new QIncludeDialog(this)); + + bc().setOK(dialog_->okPB); + bc().setCancel(dialog_->closePB); + bc().addReadOnly(dialog_->filenameED); + bc().addReadOnly(dialog_->browsePB); + bc().addReadOnly(dialog_->typesetCB); + bc().addReadOnly(dialog_->visiblespaceCB); + bc().addReadOnly(dialog_->includeRB); + bc().addReadOnly(dialog_->inputRB); + bc().addReadOnly(dialog_->verbatimRB); +} + + +void QInclude::update_contents() +{ + if (controller().params().noload) { + dialog_->filenameED->setText(""); + dialog_->typesetCB->setChecked(false); + dialog_->visiblespaceCB->setChecked(false); + dialog_->visiblespaceCB->setEnabled(false); + dialog_->includeRB->setChecked(true); + return; + } + + dialog_->filenameED->setText(controller().params().cparams.getContents().c_str()); + + string const cmdname = controller().params().cparams.getCmdName(); + + // FIXME: ?? + dialog_->typesetCB->setChecked(controller().params().noload); + + dialog_->visiblespaceCB->setChecked(false); + dialog_->visiblespaceCB->setEnabled(false); + + if (cmdname == "input") + dialog_->inputRB->setChecked(true); + else if (cmdname == "include") + dialog_->includeRB->setChecked(true); + else if (!cmdname.empty()) { + dialog_->verbatimRB->setChecked(true); + dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*"); + dialog_->visiblespaceCB->setEnabled(true); + } + + if (cmdname.empty()) + dialog_->includeRB->setChecked(true); +} + + +void QInclude::apply() +{ + controller().params().noload = dialog_->typesetCB->isChecked(); + + controller().params().cparams. + setContents(dialog_->filenameED->text().latin1()); + + if (dialog_->inputRB->isChecked()) + controller().params().flag = InsetInclude::INPUT; + else if (dialog_->includeRB->isChecked()) + controller().params().flag = InsetInclude::INCLUDE; + else { + if (dialog_->visiblespaceCB->isChecked()) + controller().params().flag = InsetInclude::VERBAST; + else + controller().params().flag = InsetInclude::VERB; + } +} + + +void QInclude::browse() +{ + ControlInclude::Type type; + + if (dialog_->includeRB->isChecked()) + type = ControlInclude::INCLUDE; + else if (dialog_->inputRB->isChecked()) + type = ControlInclude::INPUT; + else + type = ControlInclude::VERBATIM; + + string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type); + if (!name.empty()) + dialog_->filenameED->setText(name.c_str()); +} + + +void QInclude::load() +{ + if (isValid()) { + string const file(dialog_->filenameED->text().latin1()); + slotOK(); + controller().load(file); + } +} + + +bool QInclude::isValid() +{ + return !string(dialog_->filenameED->text().latin1()).empty(); +} diff --git a/src/frontends/qt2/QInclude.h b/src/frontends/qt2/QInclude.h new file mode 100644 index 0000000000..286838a16c --- /dev/null +++ b/src/frontends/qt2/QInclude.h @@ -0,0 +1,50 @@ +// -*- C++ -*- +/** + * \file QInclude.h + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#ifndef QINCLUDE_H +#define QINCLUDE_H + +#ifdef __GNUG__ +#pragma interface +#endif + +#include "Qt2Base.h" + +class ControlInclude; +class QIncludeDialog; + +/// +class QInclude + : public Qt2CB > +{ +public: + /// + friend class QIncludeDialog; + /// + QInclude(ControlInclude &); + +protected: + virtual bool isValid(); + +private: + /// Apply changes + virtual void apply(); + /// update + virtual void update_contents(); + /// build the dialog + virtual void build_dialog(); + + /// load the file + void load(); + + /// browse for a file + void browse(); +}; + +#endif // QINCLUDE_H diff --git a/src/frontends/qt2/QIncludeDialog.C b/src/frontends/qt2/QIncludeDialog.C new file mode 100644 index 0000000000..f8b0d3dbdc --- /dev/null +++ b/src/frontends/qt2/QIncludeDialog.C @@ -0,0 +1,72 @@ +/** + * \file QIncludeDialog.C + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#include +#include + +#include +#include +#include + +#include "LString.h" + +#include "QIncludeDialog.h" +#include "ControlInclude.h" +#include "Dialogs.h" +#include "QInclude.h" +#include "debug.h" + +QIncludeDialog::QIncludeDialog(QInclude * form) + : QIncludeDialogBase(0, 0, false, 0), + form_(form) +{ + connect(okPB, SIGNAL(clicked()), + form, SLOT(slotOK())); + connect(closePB, SIGNAL(clicked()), + form, SLOT(slotClose())); +} + + +void QIncludeDialog::change_adaptor() +{ + form_->changed(); +} + + +void QIncludeDialog::closeEvent(QCloseEvent * e) +{ + form_->slotWMHide(); + e->accept(); +} + + +void QIncludeDialog::typeChanged(int v) +{ + switch (v) { + case 0: + case 1: + visiblespaceCB->setEnabled(false); + visiblespaceCB->setChecked(false); + break; + default: + visiblespaceCB->setEnabled(true); + break; + } +} + + +void QIncludeDialog::loadClicked() +{ + form_->load(); +} + + +void QIncludeDialog::browseClicked() +{ + form_->browse(); +} diff --git a/src/frontends/qt2/QIncludeDialog.h b/src/frontends/qt2/QIncludeDialog.h new file mode 100644 index 0000000000..54d7dbb9b3 --- /dev/null +++ b/src/frontends/qt2/QIncludeDialog.h @@ -0,0 +1,39 @@ +/** + * \file QIncludeDialog.h + * Copyright 2001 the LyX Team + * Read the file COPYING + * + * \author John Levon + */ + +#ifndef QINCLUDEDIALOG_H +#define QINCLUDEDIALOG_H + +#include + +#include "ui/QIncludeDialogBase.h" + +class QInclude; + +class QIncludeDialog : public QIncludeDialogBase +{ Q_OBJECT + +public: + QIncludeDialog(QInclude * form); + + void updateLists(); + +protected 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_; +}; + +#endif // QINCLUDEDIALOG_H diff --git a/src/frontends/qt2/QThesaurus.C b/src/frontends/qt2/QThesaurus.C index c8862e718f..11cb78849c 100644 --- a/src/frontends/qt2/QThesaurus.C +++ b/src/frontends/qt2/QThesaurus.C @@ -44,6 +44,7 @@ void QThesaurus::build_dialog() void QThesaurus::update_contents() { dialog_->entryED->setText(controller().text().c_str()); + dialog_->replaceED->setText(""); dialog_->updateLists(); } diff --git a/src/frontends/qt2/README b/src/frontends/qt2/README index 0e499f3a60..0c89ddedd1 100644 --- a/src/frontends/qt2/README +++ b/src/frontends/qt2/README @@ -1,5 +1,11 @@ This file contains some do's and dont's for the Qt2 frontend. +Random crashes +-------------- + +Both xforms and Qt use X error handlers which collide - if you get +crashes, try lyx -sync, which seems to help. + General rules ------------- diff --git a/src/frontends/qt2/ui/QIncludeDialog.ui b/src/frontends/qt2/ui/QIncludeDialog.ui new file mode 100644 index 0000000000..8a956c1e76 --- /dev/null +++ b/src/frontends/qt2/ui/QIncludeDialog.ui @@ -0,0 +1,649 @@ + +QIncludeDialogBase +config.h +gettext.h + + QDialog + + name + QIncludeDialogBase + + + geometry + + 0 + 0 + 428 + 328 + + + + caption + Include File + + + + margin + 11 + + + spacing + 6 + + + QLayoutWidget + + name + Layout10 + + + + margin + 0 + + + spacing + 6 + + + QLayoutWidget + + name + Layout7 + + + + margin + 0 + + + spacing + 6 + + + QLabel + + name + filenameLA + + + text + &Filename + + + buddy + filenameED + + + toolTip + + + + + QLineEdit + + name + filenameED + + + toolTip + File name to include + + + + + name + Spacer10 + + + orientation + Vertical + + + sizeType + MinimumExpanding + + + sizeHint + + 20 + 20 + + + + + + + QLayoutWidget + + name + Layout9 + + + + margin + 0 + + + spacing + 6 + + + QPushButton + + name + browsePB + + + text + &Browse ... + + + toolTip + Select a file + + + + + name + Spacer2 + + + orientation + Vertical + + + sizeType + MinimumExpanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + loadPB + + + text + &Load + + + toolTip + Load the file + + + + + name + Spacer11 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + + + + name + Spacer12 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QLayoutWidget + + name + Layout3 + + + + margin + 0 + + + spacing + 6 + + + QButtonGroup + + name + includeBG + + + title + Include type + + + sizePolicy + + 5 + 7 + + + + + margin + 11 + + + spacing + 6 + + + + name + Spacer7 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QRadioButton + + name + includeRB + + + text + &Include + + + toolTip + FIXME + + + + + name + Spacer4 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QRadioButton + + name + inputRB + + + text + I&nput + + + toolTip + FIXME + + + + + name + Spacer5 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QRadioButton + + name + verbatimRB + + + text + &Verbatim + + + toolTip + FIXME + + + + + name + Spacer6 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + QButtonGroup + + name + optionsBG + + + title + Options + + + sizePolicy + + 5 + 7 + + + + + margin + 11 + + + spacing + 6 + + + + name + Spacer8 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QCheckBox + + name + typesetCB + + + text + &Don't typeset + + + toolTip + FIXME + + + + + name + Spacer3_2 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QCheckBox + + name + visiblespaceCB + + + text + Visible &Space + + + toolTip + FIXME + + + + + name + Spacer9 + + + orientation + Vertical + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + + + + + QLayoutWidget + + name + Layout27 + + + + margin + 0 + + + spacing + 6 + + + + name + Spacer3 + + + orientation + Horizontal + + + sizeType + Expanding + + + sizeHint + + 20 + 20 + + + + + QPushButton + + name + okPB + + + text + &OK + + + default + true + + + + QPushButton + + name + closePB + + + text + &Close + + + + + + + + + includeRB + toggled(bool) + QIncludeDialogBase + change_adaptor() + + + inputRB + toggled(bool) + QIncludeDialogBase + change_adaptor() + + + verbatimRB + toggled(bool) + QIncludeDialogBase + change_adaptor() + + + typesetCB + toggled(bool) + QIncludeDialogBase + change_adaptor() + + + visiblespaceCB + toggled(bool) + QIncludeDialogBase + change_adaptor() + + + filenameED + textChanged(const QString&) + QIncludeDialogBase + change_adaptor() + + + loadPB + clicked() + QIncludeDialogBase + loadClicked() + + + browsePB + clicked() + QIncludeDialogBase + browseClicked() + + + includeBG + clicked(int) + QIncludeDialogBase + typeChanged(int) + + browseClicked() + change_adaptor() + loadClicked() + typeChanged(int) + +