]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/xforms/FormCitation.C
Swap two printer related help messages.
[lyx.git] / src / frontends / xforms / FormCitation.C
index 8cdcfac7e690dc659cdedc504e3bbd45aef04df6..a6694383f272e928eb4baab8a1cf597709f84cd8 100644 (file)
 #include "lyxfunc.h"
 #include "support/filetools.h"
 
-using std::vector;
-using std::pair;
+using std::find;
 using std::max;
 using std::min;
-using std::find;
+using std::pair;
+using std::sort;
+using std::vector;
 
 
 FormCitation::FormCitation(LyXView * lv, Dialogs * d)
-       : FormCommand(lv, d, _("Citation"), new OkApplyCancelReadOnlyPolicy),
+       : FormCommand(lv, d, _("Citation"), new NoRepeatedApplyReadOnlyPolicy),
          dialog_(0)
 {
        // let the dialog be shown
@@ -59,7 +60,7 @@ FL_FORM * FormCitation::form() const
 
 void FormCitation::connect()
 {
-       fl_set_form_maxsize( dialog_->form, 3*minw_, minh_ );
+       //fl_set_form_maxsize( dialog_->form, 3*minw_, minh_ );
        FormCommand::connect();
 }
 
@@ -82,12 +83,19 @@ void FormCitation::build()
        minw_ = form()->w;
        minh_ = form()->h;
 
-        // manage the ok, apply and cancel/close buttons
+        // Manage the ok, apply, restore and cancel/close buttons
        bc_.setOK(dialog_->button_ok);
        bc_.setApply(dialog_->button_apply);
        bc_.setCancel(dialog_->button_cancel);
        bc_.setUndoAll(dialog_->button_restore);
        bc_.refresh();
+
+       bc_.addReadOnly(dialog_->addBtn);
+       bc_.addReadOnly(dialog_->delBtn);
+       bc_.addReadOnly(dialog_->upBtn);
+       bc_.addReadOnly(dialog_->downBtn);
+       bc_.addReadOnly(dialog_->textBefore);
+       bc_.addReadOnly(dialog_->textAftr);
 }
 
 
@@ -98,6 +106,7 @@ void FormCitation::update()
 
        vector<pair<string,string> > blist =
                lv_->buffer()->getBibkeyList();
+       sort(blist.begin(), blist.end());
 
        for (unsigned int i = 0; i < blist.size(); ++i) {
                bibkeys.push_back(blist[i].first);
@@ -132,6 +141,8 @@ void FormCitation::update()
        setSize( size, bibPresent );
 
        fl_set_input( dialog_->textAftr, params.getOptions().c_str());
+
+       bc_.readOnly(lv_->buffer()->isReadonly());
 }