]> git.lyx.org Git - features.git/blobdiff - src/frontends/qt4/GuiDocument.cpp
Finally make the label color of multiple index entries work.
[features.git] / src / frontends / qt4 / GuiDocument.cpp
index a77a32cb92b6a94b61ebbeecf466f2b86a224926..0a96469935b7f29f82ae6c92a6cb962ae837c754 100644 (file)
@@ -1877,7 +1877,7 @@ void GuiDocument::applyView()
                break;
        case 3:
                bp_.spacing().set(Spacing::Other,
-                       fromqstr(textLayoutModule->lspacingLE->text()));
+                       widgetToDoubleStr(textLayoutModule->lspacingLE));
                break;
        }
 
@@ -2036,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
@@ -2200,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);
 
@@ -2452,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();
 }
 
 
@@ -2682,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);
@@ -2816,8 +2825,26 @@ void GuiDocument::updateUnknownBranches()
 
 void GuiDocument::branchesRename(docstring const & oldname, docstring const & newname)
 {
-       docstring const arg = '"' + oldname + '"' + " " + '"' + newname + '"';
-       dispatch(FuncRequest(LFUN_BRANCHES_RENAME, arg));
+       map<docstring, docstring>::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<docstring, docstring>::const_iterator it = changedBranches_.begin();
+       for (; it != changedBranches_.end() ; ++it) {
+               docstring const arg = '"' + it->first + '"' + " " + '"' + it->second + '"';
+               dispatch(FuncRequest(LFUN_BRANCHES_RENAME, arg));
+       }
 }