+2000-10-04 John Levon <moz@compsoc.man.ac.uk>
+
+ * src/frontends/kde/FormCitation.C: make the dialog
+ behave more sensibly
+
2000-10-03 John Levon <moz@compsoc.man.ac.uk>
* config/kde.m4: fix consecutive ./configure runs,
2000-10-03 John Levon <moz@compsoc.man.ac.uk>
* config/kde.m4: fix consecutive ./configure runs,
void FormCitation::updateButtons()
{
void FormCitation::updateButtons()
{
- bool iskey,ischosenkey;
-
- iskey = !selectedKey.empty();
- ischosenkey = !selectedChosenKey.empty();
+ bool ischosenkey = !selectedChosenKey.empty();
+ vector<string>::const_iterator iter =
+ find(chosenkeys.begin(), chosenkeys.end(), selectedKey);
+
+ dialog_->add->setEnabled(!selectedKey.empty() && iter == chosenkeys.end());
dialog_->remove->setEnabled(ischosenkey);
dialog_->remove->setEnabled(ischosenkey);
- dialog_->add->setEnabled(iskey);
dialog_->up->setEnabled(ischosenkey);
dialog_->down->setEnabled(ischosenkey);
}
dialog_->up->setEnabled(ischosenkey);
dialog_->down->setEnabled(ischosenkey);
}
dialog_->chosen->setFocusPolicy(QWidget::NoFocus);
dialog_->after->setFocusPolicy(QWidget::NoFocus);
dialog_->buttonOk->setEnabled(false);
dialog_->chosen->setFocusPolicy(QWidget::NoFocus);
dialog_->after->setFocusPolicy(QWidget::NoFocus);
dialog_->buttonOk->setEnabled(false);
- dialog_->buttonCancel->setText(_("Close"));
+ dialog_->buttonCancel->setText(_("&Close"));
} else {
dialog_->keys->setFocusPolicy(QWidget::StrongFocus);
dialog_->chosen->setFocusPolicy(QWidget::StrongFocus);
dialog_->after->setFocusPolicy(QWidget::StrongFocus);
dialog_->buttonOk->setEnabled(true);
} else {
dialog_->keys->setFocusPolicy(QWidget::StrongFocus);
dialog_->chosen->setFocusPolicy(QWidget::StrongFocus);
dialog_->after->setFocusPolicy(QWidget::StrongFocus);
dialog_->buttonOk->setEnabled(true);
- dialog_->buttonCancel->setText(_("Cancel"));
+ dialog_->buttonCancel->setText(_("&Cancel"));
void FormCitation::select_key(const char *key)
{
void FormCitation::select_key(const char *key)
{
+ vector<string>::const_iterator iter =
+ find(chosenkeys.begin(), chosenkeys.end(), key);
+
+ if (iter!=chosenkeys.end())
+ return;
+
selectedKey.erase();
selectedKey = key;
selectedKey.erase();
selectedKey = key;
for (unsigned int i=0; i < keys.size(); i++) {
if (keys[i].first==key) {
dialog_->entry->setText(keys[i].second.c_str());
for (unsigned int i=0; i < keys.size(); i++) {
if (keys[i].first==key) {
dialog_->entry->setText(keys[i].second.c_str());
+ dialog_->chosen->clearFocus();
+ dialog_->chosen->clearSelection();
+ dialog_->up->setEnabled(false);
+ dialog_->down->setEnabled(false);
+ dialog_->remove->setEnabled(false);
+ selectedChosenKey.erase();
if (keys[i].first==key) {
if (keys[i].second.compare(dialog_->entry->text()))
dialog_->entry->setText(keys[i].second.c_str());
if (keys[i].first==key) {
if (keys[i].second.compare(dialog_->entry->text()))
dialog_->entry->setText(keys[i].second.c_str());
+ dialog_->keys->clearFocus();
+ dialog_->keys->clearSelection();
+ dialog_->add->setEnabled(false);
+ selectedKey.erase();