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 ***************************************************************************/
19 RefDialog::RefDialog(FormRef *form, QWidget *parent, const char *name, bool, WFlags)
20 : QDialog(parent,name,false), form_(form)
26 refs = new QListBox(this);
27 refs->setMinimumSize(200,200);
29 labelrefs = new QLabel(this);
30 labelrefs->setText(_("Available References"));
31 labelrefs->setMargin(5);
32 labelrefs->setMinimumSize(labelrefs->sizeHint());
33 labelrefs->setMaximumSize(labelrefs->sizeHint());
35 refname = new QLineEdit(this);
36 refname->setMinimumSize(refname->sizeHint());
37 // FIXME: should user be able to edit this ? what's it for ? - jbl
38 refname->setFocusPolicy(QWidget::NoFocus);
40 reference = new QLineEdit(this);
41 reference->setMinimumSize(reference->sizeHint());
42 reference->setFocusPolicy(QWidget::NoFocus);
44 labelrefname = new QLabel(this);
45 labelrefname->setText(_("Name :"));
46 labelrefname->setMargin(5);
47 labelrefname->setMinimumSize(labelrefname->sizeHint());
48 labelrefname->setMaximumSize(labelrefname->sizeHint());
50 labelreference = new QLabel(this);
51 labelreference->setText(_("Reference :"));
52 labelreference->setMargin(5);
53 labelreference->setMinimumSize(labelreference->sizeHint());
54 labelreference->setMaximumSize(labelreference->sizeHint());
56 sort = new QCheckBox(this);
57 sort->setText(_("Sort"));
58 sort->setMinimumSize(sort->sizeHint());
59 sort->setMaximumSize(sort->sizeHint());
61 type = new QComboBox(this);
62 type->insertItem(_("Reference"));
63 type->insertItem(_("Page number"));
64 type->insertItem(_("Ref on page xxx"));
65 type->insertItem(_("on page xxx"));
66 type->insertItem(_("Pretty reference"));
67 type->setMinimumSize(type->sizeHint());
69 labeltype = new QLabel(this);
70 labeltype->setText(_("Reference Type"));
71 labeltype->setMargin(5);
72 labeltype->setMinimumSize(labeltype->sizeHint());
73 labeltype->setMaximumSize(labeltype->sizeHint());
75 buttonGoto = new QPushButton(this);
76 buttonGoto->setText(_("&Goto reference"));
77 buttonGoto->setMinimumSize(buttonGoto->sizeHint());
78 buttonGoto->setMaximumSize(buttonGoto->sizeHint());
80 buttonUpdate = new QPushButton(this);
81 buttonUpdate->setText(_("&Update"));
82 buttonUpdate->setMinimumSize(buttonUpdate->sizeHint());
83 buttonUpdate->setMaximumSize(buttonUpdate->sizeHint());
85 buttonOk = new QPushButton(this);
86 buttonOk->setText(_("&OK"));
87 buttonOk->setMinimumSize(buttonOk->sizeHint());
88 buttonOk->setMaximumSize(buttonOk->sizeHint());
89 buttonOk->setDefault(true);
91 buttonCancel = new QPushButton(this);
92 buttonCancel->setText(_("&Cancel"));
93 buttonCancel->setMinimumSize(buttonCancel->sizeHint());
94 buttonCancel->setMaximumSize(buttonCancel->sizeHint());
98 QToolTip::add(type,_("Reference as it appears in output"));
99 QToolTip::add(sort,_("Sort references in alphabetical order ?"));
103 topLayout = new QHBoxLayout(this,10);
105 layout = new QVBoxLayout();
106 topLayout->addLayout(layout);
107 layout->addSpacing(10);
109 upperLayout = new QHBoxLayout();
110 layout->addLayout(upperLayout, 1);
112 browserLayout = new QVBoxLayout();
113 upperLayout->addLayout(browserLayout, 1);
115 browserLayout->addWidget(labelrefs, 0);
116 browserLayout->addWidget(refs, 1);
118 rightLayout = new QVBoxLayout();
119 upperLayout->addLayout(rightLayout, 1);
121 nameLayout = new QHBoxLayout();
122 rightLayout->addLayout(nameLayout, 0);
124 nameLayout->addWidget(labelrefname, 0);
125 nameLayout->addWidget(refname, 1);
127 rightLayout->addStretch(1);
129 referenceLayout = new QHBoxLayout();
130 rightLayout->addLayout(referenceLayout, 0);
132 referenceLayout->addWidget(labelreference, 0);
133 referenceLayout->addWidget(reference, 1);
135 rightLayout->addStretch(1);
137 rightLayout->addWidget(labeltype, 0);
138 rightLayout->addWidget(type, 0);
140 rightLayout->addStretch(1);
142 rightLayout->addWidget(buttonGoto, 1);
144 rightLayout->addStretch(1);
146 buttonLayout = new QHBoxLayout();
147 layout->addLayout(buttonLayout);
148 buttonLayout->addWidget(sort, 1);
149 buttonLayout->addStretch(1);
150 buttonLayout->addWidget(buttonUpdate, 1);
151 buttonLayout->addStretch(1);
152 buttonLayout->addWidget(buttonOk, 1);
153 buttonLayout->addStretch(2);
154 buttonLayout->addWidget(buttonCancel, 1);
155 buttonLayout->addStretch(1);
159 connect(refs, SIGNAL(highlighted(const char *)), this, SLOT(highlight_adaptor(const char *)));
160 connect(refs, SIGNAL(selected(const char *)), this, SLOT(select_adaptor(const char *)));
161 connect(sort, SIGNAL(toggled(bool)), this, SLOT(sort_adaptor(bool)));
162 connect(buttonOk, SIGNAL(clicked()), this, SLOT(apply_adaptor()));
163 connect(buttonUpdate, SIGNAL(clicked()), this, SLOT(update_adaptor()));
164 connect(buttonGoto, SIGNAL(clicked()), this, SLOT(goto_adaptor()));
165 connect(buttonCancel, SIGNAL(clicked()), this, SLOT(close_adaptor()));
168 RefDialog::~RefDialog()
172 void RefDialog::closeEvent(QCloseEvent *e)