4 * John Levon, moz@compsoc.man.ac.uk
7 /***************************************************************************
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
14 ***************************************************************************/
16 #include "formrefdialog.h"
18 FormRefDialog::FormRefDialog(FormRef *form, QWidget *parent, const char *name, bool, WFlags)
19 : QDialog(parent,name,false), form_(form)
25 refs = new QListBox(this);
26 refs->setMinimumSize(200,200);
28 labelrefs = new QLabel(this);
29 labelrefs->setText(_("Available References"));
30 labelrefs->setMargin(5);
31 labelrefs->setMinimumSize(labelrefs->sizeHint());
32 labelrefs->setMaximumSize(labelrefs->sizeHint());
34 refname = new QLineEdit(this);
35 refname->setMinimumSize(refname->sizeHint());
36 // FIXME: should user be able to edit this ? what's it for ? - jbl
37 refname->setFocusPolicy(QWidget::NoFocus);
39 reference = new QLineEdit(this);
40 reference->setMinimumSize(reference->sizeHint());
41 reference->setFocusPolicy(QWidget::NoFocus);
43 labelrefname = new QLabel(this);
44 labelrefname->setText(_("Name :"));
45 labelrefname->setMargin(5);
46 labelrefname->setMinimumSize(labelrefname->sizeHint());
47 labelrefname->setMaximumSize(labelrefname->sizeHint());
49 labelreference = new QLabel(this);
50 labelreference->setText(_("Reference :"));
51 labelreference->setMargin(5);
52 labelreference->setMinimumSize(labelreference->sizeHint());
53 labelreference->setMaximumSize(labelreference->sizeHint());
55 sort = new QCheckBox(this);
56 sort->setText(_("Sort"));
57 sort->setMinimumSize(sort->sizeHint());
58 sort->setMaximumSize(sort->sizeHint());
60 type = new QComboBox(this);
61 type->insertItem(_("Reference"));
62 type->insertItem(_("Page number"));
63 type->insertItem(_("Ref on page xxx"));
64 type->insertItem(_("on page xxx"));
65 type->insertItem(_("Pretty reference"));
66 type->setMinimumSize(type->sizeHint());
68 labeltype = new QLabel(this);
69 labeltype->setText(_("Reference Type"));
70 labeltype->setMargin(5);
71 labeltype->setMinimumSize(labeltype->sizeHint());
72 labeltype->setMaximumSize(labeltype->sizeHint());
74 buttonGoto = new QPushButton(this);
75 buttonGoto->setText(_("&Goto reference"));
76 buttonGoto->setMinimumSize(buttonGoto->sizeHint());
77 buttonGoto->setMaximumSize(buttonGoto->sizeHint());
79 buttonUpdate = new QPushButton(this);
80 buttonUpdate->setText(_("&Update"));
81 buttonUpdate->setMinimumSize(buttonUpdate->sizeHint());
82 buttonUpdate->setMaximumSize(buttonUpdate->sizeHint());
84 buttonOk = new QPushButton(this);
85 buttonOk->setText(_("&OK"));
86 buttonOk->setMinimumSize(buttonOk->sizeHint());
87 buttonOk->setMaximumSize(buttonOk->sizeHint());
88 buttonOk->setDefault(true);
90 buttonCancel = new QPushButton(this);
91 buttonCancel->setText(_("&Cancel"));
92 buttonCancel->setMinimumSize(buttonCancel->sizeHint());
93 buttonCancel->setMaximumSize(buttonCancel->sizeHint());
97 QToolTip::add(type,_("Reference as it appears in output"));
98 QToolTip::add(sort,_("Sort references in alphabetical order ?"));
102 topLayout = new QHBoxLayout(this,10);
104 layout = new QVBoxLayout();
105 topLayout->addLayout(layout);
106 layout->addSpacing(10);
108 upperLayout = new QHBoxLayout();
109 layout->addLayout(upperLayout, 1);
111 browserLayout = new QVBoxLayout();
112 upperLayout->addLayout(browserLayout, 1);
114 browserLayout->addWidget(labelrefs, 0);
115 browserLayout->addWidget(refs, 1);
117 rightLayout = new QVBoxLayout();
118 upperLayout->addLayout(rightLayout, 1);
120 nameLayout = new QHBoxLayout();
121 rightLayout->addLayout(nameLayout, 0);
123 nameLayout->addWidget(labelrefname, 0);
124 nameLayout->addWidget(refname, 1);
126 rightLayout->addStretch(1);
128 referenceLayout = new QHBoxLayout();
129 rightLayout->addLayout(referenceLayout, 0);
131 referenceLayout->addWidget(labelreference, 0);
132 referenceLayout->addWidget(reference, 1);
134 rightLayout->addStretch(1);
136 rightLayout->addWidget(labeltype, 0);
137 rightLayout->addWidget(type, 0);
139 rightLayout->addStretch(1);
141 rightLayout->addWidget(buttonGoto, 1);
143 rightLayout->addStretch(1);
145 buttonLayout = new QHBoxLayout();
146 layout->addLayout(buttonLayout);
147 buttonLayout->addWidget(sort, 1);
148 buttonLayout->addStretch(1);
149 buttonLayout->addWidget(buttonUpdate, 1);
150 buttonLayout->addStretch(1);
151 buttonLayout->addWidget(buttonOk, 1);
152 buttonLayout->addStretch(2);
153 buttonLayout->addWidget(buttonCancel, 1);
154 buttonLayout->addStretch(1);
158 connect(refs, SIGNAL(highlighted(const char *)), this, SLOT(highlight_adaptor(const char *)));
159 connect(refs, SIGNAL(selected(const char *)), this, SLOT(select_adaptor(const char *)));
160 connect(sort, SIGNAL(toggled(bool)), this, SLOT(sort_adaptor(bool)));
161 connect(buttonOk, SIGNAL(clicked()), this, SLOT(apply_adaptor()));
162 connect(buttonUpdate, SIGNAL(clicked()), this, SLOT(update_adaptor()));
163 connect(buttonGoto, SIGNAL(clicked()), this, SLOT(goto_adaptor()));
164 connect(buttonCancel, SIGNAL(clicked()), this, SLOT(close_adaptor()));
167 void FormRefDialog::closeEvent(QCloseEvent *e)
173 FormRefDialog::~FormRefDialog()