X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiDocument.cpp;h=0a96469935b7f29f82ae6c92a6cb962ae837c754;hb=bbfc419c10010c1ebf6ab59adf2eaf6f63104a9e;hp=8e47d9ed2481a658c0862bf141087386d738aecf;hpb=7ba2bfb81d5318a010d2f3d34e084d8c68efd42d;p=features.git diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index 8e47d9ed24..0a96469935 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -871,7 +871,7 @@ GuiDocument::GuiDocument(GuiView & lv) biblioModule->bibtexCO->clear(); biblioModule->bibtexCO->addItem(qt_("Default"), QString("default")); - for (vector::const_iterator it = lyxrc.bibtex_alternatives.begin(); + for (set::const_iterator it = lyxrc.bibtex_alternatives.begin(); it != lyxrc.bibtex_alternatives.end(); ++it) { QString const command = toqstr(*it).left(toqstr(*it).indexOf(" ")); biblioModule->bibtexCO->addItem(command, command); @@ -946,6 +946,9 @@ GuiDocument::GuiDocument(GuiView & lv) branchesModule = new GuiBranches; connect(branchesModule, SIGNAL(changed()), this, SLOT(change_adaptor())); + connect(branchesModule, SIGNAL(renameBranches(docstring const &, docstring const &)), + this, SLOT(branchesRename(docstring const &, docstring const &))); + updateUnknownBranches(); // preamble preambleModule = new PreambleModule; @@ -1744,11 +1747,12 @@ void GuiDocument::applyView() string const bibtex_command = fromqstr(biblioModule->bibtexCO->itemData( biblioModule->bibtexCO->currentIndex()).toString()); - if (bibtex_command == "default") + string const bibtex_options = + fromqstr(biblioModule->bibtexOptionsED->text()); + if (bibtex_command == "default" || bibtex_options.empty()) bp_.bibtex_command = bibtex_command; else - bp_.bibtex_command = bibtex_command + " " - + fromqstr(biblioModule->bibtexOptionsED->text()); + bp_.bibtex_command = bibtex_command + " " + bibtex_options; // Indices indicesModule->apply(bp_); @@ -1873,7 +1877,7 @@ void GuiDocument::applyView() break; case 3: bp_.spacing().set(Spacing::Other, - fromqstr(textLayoutModule->lspacingLE->text())); + widgetToDoubleStr(textLayoutModule->lspacingLE)); break; } @@ -2032,6 +2036,7 @@ void GuiDocument::applyView() bp_.footskip = widgetsToLength(m->footskipLE, m->footskipUnit); bp_.columnsep = widgetsToLength(m->columnsepLE, m->columnsepUnit); + // branches branchesModule->apply(bp_); // PDF support @@ -2196,8 +2201,8 @@ void GuiDocument::paramsToDialog() textLayoutModule->lspacingCO->setCurrentIndex(nitem); if (bp_.spacing().getSpace() == Spacing::Other) { - textLayoutModule->lspacingLE->setText( - toqstr(bp_.spacing().getValueAsString())); + doubleToWidget(textLayoutModule->lspacingLE, + bp_.spacing().getValueAsString()); } setLSpacing(nitem); @@ -2412,6 +2417,8 @@ void GuiDocument::paramsToDialog() lengthToWidgets(m->columnsepLE, m->columnsepUnit, bp_.columnsep, defaultUnit); + // branches + updateUnknownBranches(); branchesModule->update(bp_); // PDF support @@ -2446,6 +2453,9 @@ void GuiDocument::paramsToDialog() // Make sure that the bc is in the INITIAL state if (bc().policy().buttonStatus(ButtonPolicy::RESTORE)) bc().restore(); + + // clear changed branches cache + changedBranches_.clear(); } @@ -2676,14 +2686,19 @@ void GuiDocument::dispatchParams() dispatch(FuncRequest(LFUN_ALL_INSETS_TOGGLE, "assign branch")); } + // rename branches in the document + executeBranchRenaming(); + // and clear changed branches cache + changedBranches_.clear(); + // Generate the colours requested by indices. IndicesList & indiceslist = params().indiceslist(); if (!indiceslist.empty()) { IndicesList::const_iterator it = indiceslist.begin(); IndicesList::const_iterator const end = indiceslist.end(); for (; it != end; ++it) { - docstring const & current_index = it->index(); - Index const * index = indiceslist.find(current_index); + docstring const & current_index = it->shortcut(); + Index const * index = indiceslist.findShortcut(current_index); string const x11hexname = X11hexname(index->color()); // display the new color docstring const str = current_index + ' ' + from_ascii(x11hexname); @@ -2794,6 +2809,45 @@ void GuiDocument::loadModuleInfo() } +void GuiDocument::updateUnknownBranches() +{ + list used_branches; + buffer().getUsedBranches(used_branches); + list::const_iterator it = used_branches.begin(); + QStringList unknown_branches; + for (; it != used_branches.end() ; ++it) { + if (!buffer().params().branchlist().find(*it)) + unknown_branches.append(toqstr(*it)); + } + branchesModule->setUnknownBranches(unknown_branches); +} + + +void GuiDocument::branchesRename(docstring const & oldname, docstring const & newname) +{ + map::iterator it = changedBranches_.begin(); + for (; it != changedBranches_.end() ; ++it) { + if (it->second == oldname) { + // branch has already been renamed + it->second = newname; + return; + } + } + // store new name + changedBranches_[oldname] = newname; +} + + +void GuiDocument::executeBranchRenaming() const +{ + map::const_iterator it = changedBranches_.begin(); + for (; it != changedBranches_.end() ; ++it) { + docstring const arg = '"' + it->first + '"' + " " + '"' + it->second + '"'; + dispatch(FuncRequest(LFUN_BRANCHES_RENAME, arg)); + } +} + + Dialog * createGuiDocument(GuiView & lv) { return new GuiDocument(lv); }