]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetCollapsable.cpp
Remove LFUN_BIBITEM_INSERT.
[lyx.git] / src / insets / InsetCollapsable.cpp
index 7b8e292bd07ccdd379dc295f4e4b50a59fa71d7a..7cb36e2a9a4fc2406d3a6c7209f62280ee14551b 100644 (file)
 #include "Dimension.h"
 #include "DispatchResult.h"
 #include "FloatList.h"
+#include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "InsetLayout.h"
 #include "Language.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
-#include "FuncRequest.h"
 #include "MetricsInfo.h"
 #include "ParagraphParameters.h"
 #include "TextClass.h"
 #include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
-#include "support/assert.h"
 #include "support/debug.h"
 #include "support/docstream.h"
 #include "support/gettext.h"
+#include "support/lassert.h"
 
 using namespace std;
 
@@ -112,13 +112,26 @@ docstring InsetCollapsable::toolTip(BufferView const & bv, int x, int y) const
        if (x > xo(bv) + dim.wid || y > yo(bv) + dim.des)
                return docstring();
 
+       docstring default_tip;
        switch (status_) {
        case Open:
-               return _("Left-click to collapse the inset");
+               default_tip = _("Left-click to collapse the inset");
+               break;
        case Collapsed:
-               return _("Left-click to open the inset");
+               default_tip = _("Left-click to open the inset");
+               break;
        }
-       return docstring();
+
+       OutputParams rp(&buffer().params().encoding());
+       odocstringstream ods;
+       InsetText::plaintext(ods, rp);
+       docstring content_tip = ods.str();
+       // shorten it if necessary
+       if (content_tip.size() > 200)
+               content_tip = content_tip.substr(0, 200) + "...";
+       if (!isOpen() && !content_tip.empty())
+               return content_tip + '\n' + default_tip;
+       return default_tip;
 }
 
 
@@ -628,33 +641,30 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_ACCENT_HUNGARIAN_UMLAUT:
        case LFUN_ACCENT_MACRON:
        case LFUN_ACCENT_OGONEK:
-       case LFUN_ACCENT_SPECIAL_CARON:
        case LFUN_ACCENT_TIE:
        case LFUN_ACCENT_TILDE:
        case LFUN_ACCENT_UMLAUT:
        case LFUN_ACCENT_UNDERBAR:
        case LFUN_ACCENT_UNDERDOT:
        case LFUN_APPENDIX:
-       case LFUN_BIBITEM_INSERT:
        case LFUN_BOX_INSERT:
        case LFUN_BRANCH_INSERT:
        case LFUN_NEWLINE_INSERT:
        case LFUN_CAPTION_INSERT:
        case LFUN_DEPTH_DECREMENT:
        case LFUN_DEPTH_INCREMENT:
-       case LFUN_ENVIRONMENT_INSERT:
        case LFUN_ERT_INSERT:
        case LFUN_FILE_INSERT:
        case LFUN_FLEX_INSERT:
        case LFUN_FLOAT_INSERT:
-       case LFUN_FLOAT_LIST:
+       case LFUN_FLOAT_LIST_INSERT:
        case LFUN_FLOAT_WIDE_INSERT:
        case LFUN_FONT_BOLD:
        case LFUN_FONT_TYPEWRITER:
        case LFUN_FONT_DEFAULT:
        case LFUN_FONT_EMPH:
-       case LFUN_FONT_FREE_APPLY:
-       case LFUN_FONT_FREE_UPDATE:
+       case LFUN_TEXTSTYLE_APPLY:
+       case LFUN_TEXTSTYLE_UPDATE:
        case LFUN_FONT_NOUN:
        case LFUN_FONT_ROMAN:
        case LFUN_FONT_SANS:
@@ -701,30 +711,29 @@ bool InsetCollapsable::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_TOC_INSERT:
        case LFUN_WRAP_INSERT:
                if (layout_->isPassThru()) {
-                       flag.enabled(false);
+                       flag.setEnabled(false);
                        return true;
                }
                return InsetText::getStatus(cur, cmd, flag);
 
        case LFUN_INSET_TOGGLE:
                if (cmd.argument() == "open")
-                       flag.enabled(status_ != Open);
+                       flag.setEnabled(status_ != Open);
                else if (cmd.argument() == "close")
-                       flag.enabled(status_ == Open);
+                       flag.setEnabled(status_ == Open);
                else if (cmd.argument() == "toggle" || cmd.argument().empty()) {
-                       flag.enabled(true);
+                       flag.setEnabled(true);
                        flag.setOnOff(status_ == Open);
                } else
-                       flag.enabled(false);
+                       flag.setEnabled(false);
                return true;
 
        case LFUN_LANGUAGE:
-               flag.enabled(!layout_->isForceLtr());
+               flag.setEnabled(!layout_->isForceLtr());
                return InsetText::getStatus(cur, cmd, flag);
 
        case LFUN_BREAK_PARAGRAPH:
-       case LFUN_BREAK_PARAGRAPH_SKIP:
-               flag.enabled(layout_->isMultiPar());
+               flag.setEnabled(layout_->isMultiPar());
                return true;
 
        default:
@@ -743,8 +752,10 @@ void InsetCollapsable::setStatus(Cursor & cur, CollapseStatus status)
 {
        status_ = status;
        setButtonLabel();
-       if (status_ == Collapsed)
+       if (status_ == Collapsed) {
                cur.leaveInset(*this);
+               mouse_hover_ = false;
+       }
 }