mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
John's KDE FormRef patch
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@1015 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
dda41e40d3
commit
5cbcb0eddd
@ -8,6 +8,15 @@
|
|||||||
(via an open call) are not requested to be named again on the
|
(via an open call) are not requested to be named again on the
|
||||||
first save!
|
first save!
|
||||||
|
|
||||||
|
2000-09-13 John Levon <moz@compsoc.man.ac.uk>
|
||||||
|
|
||||||
|
* src/frontends/kde/Makefile.am
|
||||||
|
* src/frontends/kde/FormRef.C
|
||||||
|
* src/frontends/kde/FormRef.h
|
||||||
|
* src/frontends/kde/formrefdialog.C
|
||||||
|
* src/frontends/kde/formrefdialog.h: implement
|
||||||
|
cross-ref dialog
|
||||||
|
|
||||||
2000-09-13 John Levon <moz@compsoc.man.ac.uk>
|
2000-09-13 John Levon <moz@compsoc.man.ac.uk>
|
||||||
|
|
||||||
* src/frontends/kde/formtocdialog.C
|
* src/frontends/kde/formtocdialog.C
|
||||||
|
259
src/frontends/kde/FormRef.C
Normal file
259
src/frontends/kde/FormRef.C
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
/*
|
||||||
|
* FormRef.C
|
||||||
|
* (C) 2000 LyX Team
|
||||||
|
* John Levon, moz@compsoc.man.ac.uk
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "Dialogs.h"
|
||||||
|
#include "FormRef.h"
|
||||||
|
#include "gettext.h"
|
||||||
|
#include "buffer.h"
|
||||||
|
#include "LyXView.h"
|
||||||
|
#include "lyxfunc.h"
|
||||||
|
#include "formrefdialog.h"
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
FormRef::FormRef(LyXView *v, Dialogs *d)
|
||||||
|
: dialog_(0), lv_(v), d_(d), inset_(0), h_(0), u_(0), ih_(0),
|
||||||
|
sort(0), gotowhere(GOTOREF), type(REF), refs(0)
|
||||||
|
{
|
||||||
|
// let the dialog be shown
|
||||||
|
// This is a permanent connection so we won't bother
|
||||||
|
// storing a copy because we won't be disconnecting.
|
||||||
|
d->showRef.connect(slot(this, &FormRef::showRef));
|
||||||
|
d->createRef.connect(slot(this, &FormRef::createRef));
|
||||||
|
}
|
||||||
|
|
||||||
|
FormRef::~FormRef()
|
||||||
|
{
|
||||||
|
delete dialog_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::showRef(InsetCommand * const inset)
|
||||||
|
{
|
||||||
|
// FIXME: when could inset be 0 here ?
|
||||||
|
if (inset==0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
inset_ = inset;
|
||||||
|
readonly = lv_->buffer()->isReadonly();
|
||||||
|
ih_ = inset_->hide.connect(slot(this,&FormRef::hide));
|
||||||
|
params = inset->params();
|
||||||
|
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::createRef(string const & arg)
|
||||||
|
{
|
||||||
|
if (inset_)
|
||||||
|
close();
|
||||||
|
|
||||||
|
readonly = lv_->buffer()->isReadonly();
|
||||||
|
params.setFromString(arg);
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::select(const char *text)
|
||||||
|
{
|
||||||
|
params.setContents(text);
|
||||||
|
lv_->getLyXFunc()->Dispatch(LFUN_REF_BACK);
|
||||||
|
gotowhere = GOTOREF;
|
||||||
|
dialog_->buttonGoto->setText(_("&Goto reference"));
|
||||||
|
dialog_->buttonGoto->setEnabled(true);
|
||||||
|
if (!readonly) {
|
||||||
|
dialog_->type->setEnabled(true);
|
||||||
|
dialog_->reference->setText(text);
|
||||||
|
dialog_->buttonOk->setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::set_sort(bool on)
|
||||||
|
{
|
||||||
|
if (on!=sort) {
|
||||||
|
sort=on;
|
||||||
|
dialog_->refs->clear();
|
||||||
|
updateRefs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::goto_ref()
|
||||||
|
{
|
||||||
|
switch (gotowhere) {
|
||||||
|
case GOTOREF:
|
||||||
|
lv_->getLyXFunc()->Dispatch(LFUN_REF_GOTO, params.getContents().c_str());
|
||||||
|
gotowhere=GOTOBACK;
|
||||||
|
dialog_->buttonGoto->setText(_("&Go back"));
|
||||||
|
break;
|
||||||
|
case GOTOBACK:
|
||||||
|
lv_->getLyXFunc()->Dispatch(LFUN_REF_BACK, params.getContents().c_str());
|
||||||
|
gotowhere=GOTOREF;
|
||||||
|
dialog_->buttonGoto->setText(_("&Goto reference"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::updateRefs()
|
||||||
|
{
|
||||||
|
dialog_->refs->setAutoUpdate(false);
|
||||||
|
|
||||||
|
for (vector< string >::const_iterator iter = refs.begin();
|
||||||
|
iter != refs.end(); ++iter) {
|
||||||
|
if (sort)
|
||||||
|
dialog_->refs->inSort(iter->c_str());
|
||||||
|
else
|
||||||
|
dialog_->refs->insertItem(iter->c_str());
|
||||||
|
}
|
||||||
|
dialog_->refs->setAutoUpdate(true);
|
||||||
|
dialog_->refs->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::update()
|
||||||
|
{
|
||||||
|
dialog_->reference->setText(params.getContents().c_str());
|
||||||
|
dialog_->refname->setText(params.getOptions().c_str());
|
||||||
|
|
||||||
|
if (params.getCmdName()=="prettyref") {
|
||||||
|
type = PRETTYREF;
|
||||||
|
dialog_->type->setCurrentItem(4);
|
||||||
|
} else if (params.getCmdName()=="pageref") {
|
||||||
|
type = PAGEREF;
|
||||||
|
dialog_->type->setCurrentItem(1);
|
||||||
|
} else if (params.getCmdName()=="vref") {
|
||||||
|
type = VREF;
|
||||||
|
dialog_->type->setCurrentItem(2);
|
||||||
|
} else if (params.getCmdName()=="vpageref") {
|
||||||
|
type = VPAGEREF;
|
||||||
|
dialog_->type->setCurrentItem(3);
|
||||||
|
} else {
|
||||||
|
type = REF;
|
||||||
|
dialog_->type->setCurrentItem(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog_->buttonGoto->setText(_("&Goto reference"));
|
||||||
|
|
||||||
|
gotowhere = GOTOREF;
|
||||||
|
|
||||||
|
dialog_->sort->setChecked(sort);
|
||||||
|
|
||||||
|
dialog_->refs->clear();
|
||||||
|
dialog_->type->setEnabled(false);
|
||||||
|
|
||||||
|
if (inset_) {
|
||||||
|
// FIXME: should totally remove and re-size dialog,
|
||||||
|
// but doesn't seem easily possible
|
||||||
|
dialog_->refs->hide();
|
||||||
|
dialog_->labelrefs->hide();
|
||||||
|
dialog_->sort->hide();
|
||||||
|
dialog_->buttonUpdate->hide();
|
||||||
|
dialog_->buttonGoto->setEnabled(true);
|
||||||
|
} else {
|
||||||
|
dialog_->refs->show();
|
||||||
|
dialog_->labelrefs->show();
|
||||||
|
dialog_->sort->show();
|
||||||
|
dialog_->buttonUpdate->show();
|
||||||
|
refs = lv_->buffer()->getLabelList();
|
||||||
|
if (!refs.empty())
|
||||||
|
dialog_->sort->setEnabled(true);
|
||||||
|
updateRefs();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (params.getContents()=="") {
|
||||||
|
dialog_->buttonGoto->setEnabled(false);
|
||||||
|
dialog_->buttonOk->setEnabled(false);
|
||||||
|
} else {
|
||||||
|
dialog_->buttonGoto->setEnabled(true);
|
||||||
|
dialog_->buttonOk->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (readonly) {
|
||||||
|
dialog_->type->setEnabled(false);
|
||||||
|
dialog_->buttonOk->setEnabled(false);
|
||||||
|
dialog_->buttonUpdate->setEnabled(false);
|
||||||
|
dialog_->buttonCancel->setText(_("&Close"));
|
||||||
|
} else {
|
||||||
|
dialog_->type->setEnabled(true);
|
||||||
|
dialog_->buttonUpdate->setEnabled(true);
|
||||||
|
dialog_->buttonCancel->setText(_("&Cancel"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::apply()
|
||||||
|
{
|
||||||
|
if (readonly)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!lv_->view()->available())
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (dialog_->type->currentItem()) {
|
||||||
|
case 0:
|
||||||
|
params.setCmdName("ref");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
params.setCmdName("pageref");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
params.setCmdName("vref");
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
params.setCmdName("vpageref");
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
params.setCmdName("prettyref");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
lyxerr[Debug::GUI] << "Unknown Ref Type" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
params.setOptions(dialog_->refname->text());
|
||||||
|
|
||||||
|
if (inset_ != 0) {
|
||||||
|
if (params != inset_->params()) {
|
||||||
|
inset_->setParams(params);
|
||||||
|
lv_->view()->updateInset(inset_, true);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
lv_->getLyXFunc()->Dispatch(LFUN_REF_INSERT, params.getAsString().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::show()
|
||||||
|
{
|
||||||
|
if (!dialog_)
|
||||||
|
dialog_ = new FormRefDialog(this, 0, _("LyX: Cross Reference"), false);
|
||||||
|
|
||||||
|
if (!dialog_->isVisible()) {
|
||||||
|
h_ = d_->hideBufferDependent.connect(slot(this, &FormRef::hide));
|
||||||
|
u_ = d_->updateBufferDependent.connect(slot(this, &FormRef::update));
|
||||||
|
}
|
||||||
|
|
||||||
|
dialog_->raise();
|
||||||
|
dialog_->setActiveWindow();
|
||||||
|
|
||||||
|
update();
|
||||||
|
dialog_->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::close()
|
||||||
|
{
|
||||||
|
h_.disconnect();
|
||||||
|
u_.disconnect();
|
||||||
|
ih_.disconnect();
|
||||||
|
inset_ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRef::hide()
|
||||||
|
{
|
||||||
|
dialog_->hide();
|
||||||
|
close();
|
||||||
|
}
|
109
src/frontends/kde/FormRef.h
Normal file
109
src/frontends/kde/FormRef.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/* FormRef.h
|
||||||
|
* (C) 2000 LyX Team
|
||||||
|
* John Levon, moz@compsoc.man.ac.uk
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef FORMREF_H
|
||||||
|
#define FORMREF_H
|
||||||
|
|
||||||
|
#include "DialogBase.h"
|
||||||
|
#include "LString.h"
|
||||||
|
#include "support/utility.hpp"
|
||||||
|
#include "insets/insetcommand.h"
|
||||||
|
|
||||||
|
class Dialogs;
|
||||||
|
class LyXView;
|
||||||
|
class FormRefDialog;
|
||||||
|
|
||||||
|
class FormRef : public DialogBase, public noncopyable {
|
||||||
|
public:
|
||||||
|
/**@name Constructors and Destructors */
|
||||||
|
//@{
|
||||||
|
///
|
||||||
|
FormRef(LyXView *, Dialogs *);
|
||||||
|
///
|
||||||
|
~FormRef();
|
||||||
|
//@}
|
||||||
|
|
||||||
|
/// select a ref
|
||||||
|
void select(const char *);
|
||||||
|
/// set sort
|
||||||
|
void set_sort(bool);
|
||||||
|
/// goto a ref (or back)
|
||||||
|
void goto_ref();
|
||||||
|
/// update dialog
|
||||||
|
void update();
|
||||||
|
/// Apply changes
|
||||||
|
void apply();
|
||||||
|
/// close the connections
|
||||||
|
void close();
|
||||||
|
|
||||||
|
private:
|
||||||
|
enum Type {
|
||||||
|
REF, PAGEREF, VREF, VPAGEREF, PRETTYREF,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum GotoType {
|
||||||
|
GOTOREF, GOTOBACK,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Create the dialog if necessary, update it and display it.
|
||||||
|
void show();
|
||||||
|
/// Hide the dialog.
|
||||||
|
void hide();
|
||||||
|
|
||||||
|
/// create a Reference inset
|
||||||
|
void createRef(string const &);
|
||||||
|
/// edit a Reference inset
|
||||||
|
void showRef(InsetCommand * const);
|
||||||
|
|
||||||
|
/// update the keys list
|
||||||
|
void updateRefs(void);
|
||||||
|
|
||||||
|
/// Real GUI implementation.
|
||||||
|
FormRefDialog * dialog_;
|
||||||
|
|
||||||
|
/// the LyXView we belong to
|
||||||
|
LyXView * lv_;
|
||||||
|
|
||||||
|
/** Which Dialogs do we belong to?
|
||||||
|
Used so we can get at the signals we have to connect to.
|
||||||
|
*/
|
||||||
|
Dialogs * d_;
|
||||||
|
/// pointer to the inset if any
|
||||||
|
InsetCommand * inset_;
|
||||||
|
/// insets params
|
||||||
|
InsetCommandParams params;
|
||||||
|
/// is the inset we are reading from a readonly buffer ?
|
||||||
|
bool readonly;
|
||||||
|
|
||||||
|
/// Hide connection.
|
||||||
|
Connection h_;
|
||||||
|
/// Update connection.
|
||||||
|
Connection u_;
|
||||||
|
/// Inset hide connection.
|
||||||
|
Connection ih_;
|
||||||
|
|
||||||
|
/// to sort or not to sort
|
||||||
|
bool sort;
|
||||||
|
|
||||||
|
/// where to go
|
||||||
|
GotoType gotowhere;
|
||||||
|
|
||||||
|
/// current type
|
||||||
|
Type type;
|
||||||
|
|
||||||
|
/// available references
|
||||||
|
std::vector< string > refs;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -10,7 +10,8 @@ BUILTSOURCES = formcopyrightdialog_moc.C \
|
|||||||
formurldialog_moc.C \
|
formurldialog_moc.C \
|
||||||
formindexdialog_moc.C \
|
formindexdialog_moc.C \
|
||||||
formcitationdialog_moc.C \
|
formcitationdialog_moc.C \
|
||||||
formtocdialog_moc.C
|
formtocdialog_moc.C \
|
||||||
|
formrefdialog_moc.C
|
||||||
|
|
||||||
DISTCLEANFILES = $(BUILTSOURCES) *.orig *.rej *~ *.bak core
|
DISTCLEANFILES = $(BUILTSOURCES) *.orig *.rej *~ *.bak core
|
||||||
|
|
||||||
@ -24,8 +25,6 @@ libkde_la_OBJADD = \
|
|||||||
../xforms/form_preferences.lo \
|
../xforms/form_preferences.lo \
|
||||||
../xforms/FormPrint.lo \
|
../xforms/FormPrint.lo \
|
||||||
../xforms/form_print.lo \
|
../xforms/form_print.lo \
|
||||||
../xforms/FormRef.lo \
|
|
||||||
../xforms/form_ref.lo \
|
|
||||||
../xforms/FormTabular.lo \
|
../xforms/FormTabular.lo \
|
||||||
../xforms/form_tabular.lo \
|
../xforms/form_tabular.lo \
|
||||||
../xforms/input_validators.lo \
|
../xforms/input_validators.lo \
|
||||||
@ -61,6 +60,10 @@ libkde_la_SOURCES = \
|
|||||||
FormToc.h \
|
FormToc.h \
|
||||||
formtocdialog.C \
|
formtocdialog.C \
|
||||||
formtocdialog.h \
|
formtocdialog.h \
|
||||||
|
FormRef.C \
|
||||||
|
FormRef.h \
|
||||||
|
formrefdialog.C \
|
||||||
|
formrefdialog.h \
|
||||||
$(BUILTSOURCES)
|
$(BUILTSOURCES)
|
||||||
|
|
||||||
# These still have to be added. Sooner or later. ARRae-20000129
|
# These still have to be added. Sooner or later. ARRae-20000129
|
||||||
@ -106,3 +109,7 @@ formcitationdialog_moc.C: formcitationdialog.h
|
|||||||
formtocdialog.C: formtocdialog_moc.C
|
formtocdialog.C: formtocdialog_moc.C
|
||||||
formtocdialog_moc.C: formtocdialog.h
|
formtocdialog_moc.C: formtocdialog.h
|
||||||
$(MOC) formtocdialog.h -o formtocdialog_moc.C
|
$(MOC) formtocdialog.h -o formtocdialog_moc.C
|
||||||
|
|
||||||
|
formrefdialog.C: formrefdialog_moc.C
|
||||||
|
formrefdialog_moc.C: formrefdialog.h
|
||||||
|
$(MOC) formrefdialog.h -o formrefdialog_moc.C
|
||||||
|
174
src/frontends/kde/formrefdialog.C
Normal file
174
src/frontends/kde/formrefdialog.C
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
/*
|
||||||
|
* formrefdialog.C
|
||||||
|
* (C) 2000 LyX Team
|
||||||
|
* John Levon, moz@compsoc.man.ac.uk
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "formrefdialog.h"
|
||||||
|
|
||||||
|
FormRefDialog::FormRefDialog(FormRef *form, QWidget *parent, const char *name, bool, WFlags)
|
||||||
|
: QDialog(parent,name,false), form_(form)
|
||||||
|
{
|
||||||
|
setCaption(name);
|
||||||
|
|
||||||
|
// widgets
|
||||||
|
|
||||||
|
refs = new QListBox(this);
|
||||||
|
refs->setMinimumSize(200,200);
|
||||||
|
|
||||||
|
labelrefs = new QLabel(this);
|
||||||
|
labelrefs->setText(_("Available References"));
|
||||||
|
labelrefs->setMargin(5);
|
||||||
|
labelrefs->setMinimumSize(labelrefs->sizeHint());
|
||||||
|
labelrefs->setMaximumSize(labelrefs->sizeHint());
|
||||||
|
|
||||||
|
refname = new QLineEdit(this);
|
||||||
|
refname->setMinimumSize(refname->sizeHint());
|
||||||
|
// FIXME: should user be able to edit this ? what's it for ? - jbl
|
||||||
|
refname->setFocusPolicy(QWidget::NoFocus);
|
||||||
|
|
||||||
|
reference = new QLineEdit(this);
|
||||||
|
reference->setMinimumSize(reference->sizeHint());
|
||||||
|
reference->setFocusPolicy(QWidget::NoFocus);
|
||||||
|
|
||||||
|
labelrefname = new QLabel(this);
|
||||||
|
labelrefname->setText(_("Name :"));
|
||||||
|
labelrefname->setMargin(5);
|
||||||
|
labelrefname->setMinimumSize(labelrefname->sizeHint());
|
||||||
|
labelrefname->setMaximumSize(labelrefname->sizeHint());
|
||||||
|
|
||||||
|
labelreference = new QLabel(this);
|
||||||
|
labelreference->setText(_("Reference :"));
|
||||||
|
labelreference->setMargin(5);
|
||||||
|
labelreference->setMinimumSize(labelreference->sizeHint());
|
||||||
|
labelreference->setMaximumSize(labelreference->sizeHint());
|
||||||
|
|
||||||
|
sort = new QCheckBox(this);
|
||||||
|
sort->setText(_("Sort"));
|
||||||
|
sort->setMinimumSize(sort->sizeHint());
|
||||||
|
sort->setMaximumSize(sort->sizeHint());
|
||||||
|
|
||||||
|
type = new QComboBox(this);
|
||||||
|
type->insertItem(_("Reference"));
|
||||||
|
type->insertItem(_("Page number"));
|
||||||
|
type->insertItem(_("Ref on page xxx"));
|
||||||
|
type->insertItem(_("on page xxx"));
|
||||||
|
type->insertItem(_("Pretty reference"));
|
||||||
|
type->setMinimumSize(type->sizeHint());
|
||||||
|
|
||||||
|
labeltype = new QLabel(this);
|
||||||
|
labeltype->setText(_("Reference Type"));
|
||||||
|
labeltype->setMargin(5);
|
||||||
|
labeltype->setMinimumSize(labeltype->sizeHint());
|
||||||
|
labeltype->setMaximumSize(labeltype->sizeHint());
|
||||||
|
|
||||||
|
buttonGoto = new QPushButton(this);
|
||||||
|
buttonGoto->setText(_("&Goto reference"));
|
||||||
|
buttonGoto->setMinimumSize(buttonGoto->sizeHint());
|
||||||
|
buttonGoto->setMaximumSize(buttonGoto->sizeHint());
|
||||||
|
|
||||||
|
buttonUpdate = new QPushButton(this);
|
||||||
|
buttonUpdate->setText(_("&Update"));
|
||||||
|
buttonUpdate->setMinimumSize(buttonUpdate->sizeHint());
|
||||||
|
buttonUpdate->setMaximumSize(buttonUpdate->sizeHint());
|
||||||
|
|
||||||
|
buttonOk = new QPushButton(this);
|
||||||
|
buttonOk->setText(_("&OK"));
|
||||||
|
buttonOk->setMinimumSize(buttonOk->sizeHint());
|
||||||
|
buttonOk->setMaximumSize(buttonOk->sizeHint());
|
||||||
|
buttonOk->setDefault(true);
|
||||||
|
|
||||||
|
buttonCancel = new QPushButton(this);
|
||||||
|
buttonCancel->setText(_("&Cancel"));
|
||||||
|
buttonCancel->setMinimumSize(buttonCancel->sizeHint());
|
||||||
|
buttonCancel->setMaximumSize(buttonCancel->sizeHint());
|
||||||
|
|
||||||
|
// tooltips
|
||||||
|
|
||||||
|
QToolTip::add(type,_("Reference as it appears in output"));
|
||||||
|
QToolTip::add(sort,_("Sort references in alphabetical order ?"));
|
||||||
|
|
||||||
|
// layouts
|
||||||
|
|
||||||
|
topLayout = new QHBoxLayout(this,10);
|
||||||
|
|
||||||
|
layout = new QVBoxLayout();
|
||||||
|
topLayout->addLayout(layout);
|
||||||
|
layout->addSpacing(10);
|
||||||
|
|
||||||
|
upperLayout = new QHBoxLayout();
|
||||||
|
layout->addLayout(upperLayout, 1);
|
||||||
|
|
||||||
|
browserLayout = new QVBoxLayout();
|
||||||
|
upperLayout->addLayout(browserLayout, 1);
|
||||||
|
|
||||||
|
browserLayout->addWidget(labelrefs, 0);
|
||||||
|
browserLayout->addWidget(refs, 1);
|
||||||
|
|
||||||
|
rightLayout = new QVBoxLayout();
|
||||||
|
upperLayout->addLayout(rightLayout, 1);
|
||||||
|
|
||||||
|
nameLayout = new QHBoxLayout();
|
||||||
|
rightLayout->addLayout(nameLayout, 0);
|
||||||
|
|
||||||
|
nameLayout->addWidget(labelrefname, 0);
|
||||||
|
nameLayout->addWidget(refname, 1);
|
||||||
|
|
||||||
|
rightLayout->addStretch(1);
|
||||||
|
|
||||||
|
referenceLayout = new QHBoxLayout();
|
||||||
|
rightLayout->addLayout(referenceLayout, 0);
|
||||||
|
|
||||||
|
referenceLayout->addWidget(labelreference, 0);
|
||||||
|
referenceLayout->addWidget(reference, 1);
|
||||||
|
|
||||||
|
rightLayout->addStretch(1);
|
||||||
|
|
||||||
|
rightLayout->addWidget(labeltype, 0);
|
||||||
|
rightLayout->addWidget(type, 0);
|
||||||
|
|
||||||
|
rightLayout->addStretch(1);
|
||||||
|
|
||||||
|
rightLayout->addWidget(buttonGoto, 1);
|
||||||
|
|
||||||
|
rightLayout->addStretch(1);
|
||||||
|
|
||||||
|
buttonLayout = new QHBoxLayout();
|
||||||
|
layout->addLayout(buttonLayout);
|
||||||
|
buttonLayout->addWidget(sort, 1);
|
||||||
|
buttonLayout->addStretch(1);
|
||||||
|
buttonLayout->addWidget(buttonUpdate, 1);
|
||||||
|
buttonLayout->addStretch(1);
|
||||||
|
buttonLayout->addWidget(buttonOk, 1);
|
||||||
|
buttonLayout->addStretch(2);
|
||||||
|
buttonLayout->addWidget(buttonCancel, 1);
|
||||||
|
buttonLayout->addStretch(1);
|
||||||
|
|
||||||
|
// connections
|
||||||
|
|
||||||
|
connect(refs, SIGNAL(highlighted(const char *)), this, SLOT(highlight_adaptor(const char *)));
|
||||||
|
connect(sort, SIGNAL(toggled(bool)), this, SLOT(sort_adaptor(bool)));
|
||||||
|
connect(buttonOk, SIGNAL(clicked()), this, SLOT(apply_adaptor()));
|
||||||
|
connect(buttonUpdate, SIGNAL(clicked()), this, SLOT(update_adaptor()));
|
||||||
|
connect(buttonGoto, SIGNAL(clicked()), this, SLOT(goto_adaptor()));
|
||||||
|
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(close_adaptor()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void FormRefDialog::closeEvent(QCloseEvent *e)
|
||||||
|
{
|
||||||
|
form_->close();
|
||||||
|
e->accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
FormRefDialog::~FormRefDialog()
|
||||||
|
{
|
||||||
|
}
|
109
src/frontends/kde/formrefdialog.h
Normal file
109
src/frontends/kde/formrefdialog.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
* formrefdialog.h
|
||||||
|
* (C) 2000 LyX Team
|
||||||
|
* John Levon, moz@compsoc.man.ac.uk
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or modify *
|
||||||
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef FORMREFDIALOG_H
|
||||||
|
#define FORMREFDIALOG_H
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <gettext.h>
|
||||||
|
|
||||||
|
#include "FormRef.h"
|
||||||
|
|
||||||
|
#include <qdialog.h>
|
||||||
|
#include <qlayout.h>
|
||||||
|
#include <qcombobox.h>
|
||||||
|
#include <qcheckbox.h>
|
||||||
|
#include <qlistbox.h>
|
||||||
|
#include <qlabel.h>
|
||||||
|
#include <qtooltip.h>
|
||||||
|
#include <qlineedit.h>
|
||||||
|
#include <qpushbutton.h>
|
||||||
|
|
||||||
|
class FormRefDialog : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
FormRefDialog(FormRef *form, QWidget *parent=0, const char *name=0,
|
||||||
|
bool modal=false, WFlags f=0);
|
||||||
|
~FormRefDialog();
|
||||||
|
|
||||||
|
// widgets
|
||||||
|
|
||||||
|
QListBox *refs;
|
||||||
|
QLabel *labelrefs;
|
||||||
|
QLineEdit *refname;
|
||||||
|
QLineEdit *reference;
|
||||||
|
QLabel *labelrefname;
|
||||||
|
QLabel *labelreference;
|
||||||
|
QCheckBox *sort;
|
||||||
|
QComboBox *type;
|
||||||
|
QLabel *labeltype;
|
||||||
|
QPushButton *buttonGoto;
|
||||||
|
QPushButton *buttonUpdate;
|
||||||
|
QPushButton *buttonOk;
|
||||||
|
QPushButton *buttonCancel;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void closeEvent(QCloseEvent *e);
|
||||||
|
|
||||||
|
private:
|
||||||
|
FormRef *form_;
|
||||||
|
|
||||||
|
// layouts
|
||||||
|
|
||||||
|
QHBoxLayout *topLayout;
|
||||||
|
QVBoxLayout *layout;
|
||||||
|
QHBoxLayout *upperLayout;
|
||||||
|
QVBoxLayout *browserLayout;
|
||||||
|
QVBoxLayout *rightLayout;
|
||||||
|
QHBoxLayout *nameLayout;
|
||||||
|
QHBoxLayout *referenceLayout;
|
||||||
|
QHBoxLayout *buttonLayout;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
/// adaptor to FormRef::select
|
||||||
|
void highlight_adaptor(const char *sel) {
|
||||||
|
form_->select(sel);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// adaptor to FormRef::set_sort
|
||||||
|
void sort_adaptor(bool sort) {
|
||||||
|
form_->set_sort(sort);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// adaptor to FormRef::gotoRef
|
||||||
|
void goto_adaptor(void) {
|
||||||
|
form_->goto_ref();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// adaptor to FormRef::update
|
||||||
|
void update_adaptor(void) {
|
||||||
|
form_->update();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// adaptor to FormRef::apply
|
||||||
|
void apply_adaptor(void) {
|
||||||
|
form_->apply();
|
||||||
|
form_->close();
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// adaptor to FormRef::close
|
||||||
|
void close_adaptor(void) {
|
||||||
|
form_->close();
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user