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 ***************************************************************************/
18 #include "dlg/helpers.h"
19 #include "insets/insetref.h"
22 #ifdef CXX_WORKING_NAMESPACES
23 using kde_helpers::setSizeHint;
26 RefDialog::RefDialog(FormRef *form, QWidget *parent, const char *name, bool, WFlags)
27 : QWidget(parent,name,0), form_(form)
33 refs = new QListBox(this);
34 refs->setMinimumSize(200,200);
36 labelrefs = new QLabel(this);
37 labelrefs->setText(_("Available References"));
38 labelrefs->setMargin(5);
39 setSizeHint(labelrefs);
40 labelrefs->setMaximumSize(labelrefs->sizeHint());
42 refname = new QLineEdit(this);
44 // FIXME: should user be able to edit this ? what's it for ? - jbl
45 refname->setFocusPolicy(QWidget::NoFocus);
47 reference = new QLineEdit(this);
48 setSizeHint(reference);
49 reference->setFocusPolicy(QWidget::NoFocus);
51 labelrefname = new QLabel(this);
52 labelrefname->setText(_("Name :"));
53 labelrefname->setMargin(5);
54 setSizeHint(labelrefname);
55 labelrefname->setMaximumSize(labelrefname->sizeHint());
57 labelreference = new QLabel(this);
58 labelreference->setText(_("Reference :"));
59 labelreference->setMargin(5);
60 setSizeHint(labelreference);
61 labelreference->setMaximumSize(labelreference->sizeHint());
63 sort = new QCheckBox(this);
64 sort->setText(_("Sort"));
66 sort->setMaximumSize(sort->sizeHint());
68 type = new QComboBox(this);
69 for (int i = 0; !InsetRef::types[i].latex_name.empty(); ++i)
70 type->insertItem(_(InsetRef::types[i].gui_name.c_str()));
73 labeltype = new QLabel(this);
74 labeltype->setText(_("Reference Type"));
75 labeltype->setMargin(5);
76 setSizeHint(labeltype);
77 labeltype->setMaximumSize(labeltype->sizeHint());
79 buttonGoto = new QPushButton(this);
80 buttonGoto->setText(_("&Goto reference"));
81 setSizeHint(buttonGoto);
82 buttonGoto->setMaximumSize(buttonGoto->sizeHint());
84 buttonUpdate = new QPushButton(this);
85 buttonUpdate->setText(_("&Update"));
86 setSizeHint(buttonUpdate);
87 buttonUpdate->setMaximumSize(buttonUpdate->sizeHint());
89 buttonOk = new QPushButton(this);
90 buttonOk->setText(_("&OK"));
91 setSizeHint(buttonOk);
92 buttonOk->setMaximumSize(buttonOk->sizeHint());
93 buttonOk->setDefault(true);
95 buttonCancel = new QPushButton(this);
96 buttonCancel->setText(_("&Cancel"));
97 setSizeHint(buttonCancel);
98 buttonCancel->setMaximumSize(buttonCancel->sizeHint());
102 QToolTip::add(type,_("Reference as it appears in output"));
103 QToolTip::add(sort,_("Sort references in alphabetical order ?"));
104 QToolTip::add(buttonUpdate,_("Update list of references shown"));
105 QToolTip::add(buttonGoto,_("Jump to reference in document"));
106 QToolTip::add(refname,_("FIXME please !"));
110 topLayout = new QHBoxLayout(this,10);
112 layout = new QVBoxLayout();
113 topLayout->addLayout(layout);
114 layout->addSpacing(10);
116 upperLayout = new QHBoxLayout();
117 layout->addLayout(upperLayout, 1);
119 browserLayout = new QVBoxLayout();
120 upperLayout->addLayout(browserLayout, 1);
122 browserLayout->addWidget(labelrefs, 0);
123 browserLayout->addWidget(refs, 1);
125 rightLayout = new QVBoxLayout();
126 upperLayout->addLayout(rightLayout, 1);
128 nameLayout = new QHBoxLayout();
129 rightLayout->addLayout(nameLayout, 0);
131 nameLayout->addWidget(labelrefname, 0);
132 nameLayout->addWidget(refname, 1);
134 rightLayout->addStretch(1);
136 referenceLayout = new QHBoxLayout();
137 rightLayout->addLayout(referenceLayout, 0);
139 referenceLayout->addWidget(labelreference, 0);
140 referenceLayout->addWidget(reference, 1);
142 rightLayout->addStretch(1);
144 rightLayout->addWidget(labeltype, 0);
145 rightLayout->addWidget(type, 0);
147 rightLayout->addStretch(1);
149 rightLayout->addWidget(buttonGoto, 1);
151 rightLayout->addStretch(1);
153 buttonLayout = new QHBoxLayout();
154 layout->addLayout(buttonLayout);
155 buttonLayout->addWidget(sort, 1);
156 buttonLayout->addStretch(1);
157 buttonLayout->addWidget(buttonUpdate, 1);
158 buttonLayout->addStretch(1);
159 buttonLayout->addWidget(buttonOk, 1);
160 buttonLayout->addStretch(2);
161 buttonLayout->addWidget(buttonCancel, 1);
162 buttonLayout->addStretch(1);
166 connect(refs, SIGNAL(highlighted(const char *)), this, SLOT(highlight_adaptor(const char *)));
167 connect(refs, SIGNAL(selected(const char *)), this, SLOT(select_adaptor(const char *)));
168 connect(sort, SIGNAL(toggled(bool)), this, SLOT(sort_adaptor(bool)));
169 connect(buttonOk, SIGNAL(clicked()), this, SLOT(apply_adaptor()));
170 connect(buttonUpdate, SIGNAL(clicked()), this, SLOT(update_adaptor()));
171 connect(buttonGoto, SIGNAL(clicked()), this, SLOT(goto_adaptor()));
172 connect(buttonCancel, SIGNAL(clicked()), this, SLOT(close_adaptor()));
177 RefDialog::~RefDialog()
181 void RefDialog::closeEvent(QCloseEvent *e)