]> git.lyx.org Git - lyx.git/commitdiff
Introduce Layout::args() and simplify code
authorVincent van Ravesteijn <vfr@lyx.org>
Sun, 16 Dec 2012 13:10:03 +0000 (14:10 +0100)
committerVincent van Ravesteijn <vfr@lyx.org>
Mon, 17 Dec 2012 21:26:11 +0000 (22:26 +0100)
src/Layout.cpp
src/Layout.h
src/Text3.cpp
src/frontends/qt4/Menus.cpp
src/insets/InsetArgument.cpp
src/insets/InsetText.cpp

index 43a6c185ddc36f5a4d51e5ad27c8f8c86b8c39ac..3914b368435dd8a14afb44e96b39abcc4aaaab9d 100644 (file)
@@ -950,6 +950,15 @@ void Layout::readArgument(Lexer & lex)
 }
 
 
+Layout::LaTeXArgMap Layout::args() const
+{
+       LaTeXArgMap args = latexargs_;
+       if (!itemargs_.empty())
+               args.insert(itemargs_.begin(), itemargs_.end());
+       return args;
+}
+
+
 int Layout::optArgs() const
 {
        int nr = 0;
index 7e5281d5dd87ebeef369750ea7c0338f9cdefbe5..270e4df117d612b549095afb48c0268632ee23af 100644 (file)
@@ -105,6 +105,8 @@ public:
        ///
        typedef std::map<std::string, latexarg> LaTeXArgMap;
        ///
+       LaTeXArgMap args() const;
+       ///
        LaTeXArgMap const & latexargs() const { return latexargs_; }
        ///
        LaTeXArgMap const & itemargs() const { return itemargs_; }
index 22f4b9922d3321fb6c0ab9cb5e22740c79eb017c..6b5b0c778e274998f30c11c44014288a1bc0cec3 100644 (file)
@@ -1374,10 +1374,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (change_layout)
                        setLayout(cur, layout);
 
-               Layout::LaTeXArgMap args = tclass[layout].latexargs();
-               Layout::LaTeXArgMap itemargs = tclass[layout].itemargs();
-               if (!itemargs.empty())
-                       args.insert(itemargs.begin(), itemargs.end());
+               Layout::LaTeXArgMap args = tclass[layout].args();
                Layout::LaTeXArgMap::const_iterator lait = args.begin();
                Layout::LaTeXArgMap::const_iterator const laend = args.end();
                for (; lait != laend; ++lait) {
@@ -2571,10 +2568,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                        break;
                }
                Layout const & lay = cur.paragraph().layout();
-               Layout::LaTeXArgMap args = lay.latexargs();
-               Layout::LaTeXArgMap itemargs = lay.itemargs();
-               if (!itemargs.empty())
-                       args.insert(itemargs.begin(), itemargs.end());
+               Layout::LaTeXArgMap args = lay.args();
                Layout::LaTeXArgMap::const_iterator const lait =
                                args.find(arg);
                if (lait != args.end()) {
index 333e3b51c818cdf97103b11db61f066599a2b06e..2e545c3f305b5a3ad7549fdee0f60850db67e157 100644 (file)
@@ -1554,16 +1554,9 @@ void MenuDefinition::expandArguments(BufferView const * bv, bool switcharg)
                return;
 
        Inset const * inset = &bv->cursor().inset();
-       Layout::LaTeXArgMap args;
-       if (inset && bv->cursor().paragraph().layout().latexargs().empty()
-           && bv->cursor().paragraph().layout().itemargs().empty())
+       Layout::LaTeXArgMap args = bv->cursor().paragraph().layout().args();
+       if (inset && args.empty())
                args = inset->getLayout().latexargs();
-       else {
-               args = bv->cursor().paragraph().layout().latexargs();
-               Layout::LaTeXArgMap itemargs = bv->cursor().paragraph().layout().itemargs();
-               if (!itemargs.empty())
-                       args.insert(itemargs.begin(), itemargs.end());
-       }
        if (args.empty() || (switcharg && args.size() == 1))
                return;
        Layout::LaTeXArgMap::const_iterator lait = args.begin();
index 9081a96ae69d8cbcf34fe02eb7f0613847804793..ca76d08a029a7eeb1636c57f71d5c418fc72eab1 100644 (file)
@@ -57,18 +57,12 @@ void InsetArgument::read(Lexer & lex)
 
 void InsetArgument::updateBuffer(ParIterator const & it, UpdateType utype)
 {
-       Layout::LaTeXArgMap args;
-       bool const insetlayout = &it.inset() && it.paragraph().layout().latexargs().empty()
-             && it.paragraph().layout().itemargs().empty();
+       Layout::LaTeXArgMap args = it.paragraph().layout().args();
+       pass_thru_ = it.paragraph().layout().pass_thru;
+       bool const insetlayout = &it.inset() && args.empty();
        if (insetlayout) {
                args = it.inset().getLayout().latexargs();
                pass_thru_ = it.inset().getLayout().isPassThru();
-       } else {
-               args = it.paragraph().layout().latexargs();
-               Layout::LaTeXArgMap itemargs = it.paragraph().layout().itemargs();
-               if (!itemargs.empty())
-                       args.insert(itemargs.begin(), itemargs.end());
-               pass_thru_ = it.paragraph().layout().pass_thru;
        }
        
        // Handle pre 2.1 ArgInsets (lyx2lyx cannot classify them)
index 8b77149d8d9212e8d3f7e7340ea530f2de6ead04..e2d47241f1f6c1adb3748af3d0ff23ed7127a62a 100644 (file)
@@ -338,8 +338,7 @@ bool InsetText::getStatus(Cursor & cur, FuncRequest const & cmd,
                        status.setEnabled(false);
                        return true;
                }
-               if (&buffer().inset() == this || !cur.paragraph().layout().latexargs().empty()
-                   || !cur.paragraph().layout().itemargs().empty())
+               if (&buffer().inset() == this || !cur.paragraph().layout().args().empty())
                        return text_.getStatus(cur, cmd, status);
 
                Layout::LaTeXArgMap args = getLayout().latexargs();