InsetListingsParams new_params(to_utf8(p["lstparams"]));
docstring const new_label =
from_utf8(new_params.getParamValue("label"));
- docstring old_label;
- if (label_)
- old_label = label_->getParam("name");
+
if (new_label.empty()) {
delete label_;
label_ = 0;
- } else if (label_ && old_label != new_label) {
- label_->updateCommand(new_label);
- // the label might have been adapted (duplicate)
- if (new_label != label_->getParam("name")) {
- new_params.addParam("label",
- "{" + to_utf8(label_->getParam("name")) + "}");
- p["lstparams"] = from_utf8(new_params.params());
+ } else {
+ docstring old_label;
+ if (label_)
+ old_label = label_->getParam("name");
+ else {
+ label_ = createLabel(new_label);
+ label_->setBuffer(buffer());
+ }
+
+ if (new_label != old_label) {
+ label_->updateCommand(new_label);
+ // the label might have been adapted (duplicate)
+ if (new_label != label_->getParam("name")) {
+ new_params.addParam("label", "{" +
+ to_utf8(label_->getParam("name")) + "}", true);
+ p["lstparams"] = from_utf8(new_params.params());
+ }
}
- } else if (old_label != new_label) {
- label_ = createLabel(new_label);
- label_->setBuffer(buffer());
- label_->initView();
}
}
setParams(p);