If I add the hasDialog() function, then I should/could remove the
editable() function, right ?

Yes. And you could maybe rename the function to hasSettings()?

Is the attached ok ?

It removes the EDITABLE enum, and makes the editable() function return a bool.

A lot of editable() functions were not necessary anymore when they have a hasSettings() functions.

JMarc
Vincent
Index: src/BufferView.cpp
===================================================================
--- src/BufferView.cpp  (revision 29316)
+++ src/BufferView.cpp  (working copy)
@@ -729,7 +729,7 @@
                        // insets.
                        size_t const n = dit.depth();
                        for (size_t i = 0; i < n; ++i)
-                               if (dit[i].inset().editable() != 
Inset::HIGHLY_EDITABLE) {
+                               if (!dit[i].inset().editable()) {
                                        dit.resize(i);
                                        break;
                                }
@@ -1565,8 +1565,7 @@
                return 0;
 
        if (!inset->descendable())
-               // No need to go further down if the inset is not
-               // descendable.
+               // No need to go further down if the inset is not descendable.
                return inset;
 
        size_t cell_number = inset->nargs();
Index: src/DocIterator.cpp
===================================================================
--- src/DocIterator.cpp (revision 29316)
+++ src/DocIterator.cpp (working copy)
@@ -315,7 +315,7 @@
        // FIXME: the check for asInsetMath() shouldn't be necessary
        // but math insets do not return a sensible editable() state yet.
        if (nextinset && !nextinset->asInsetMath()
-           && nextinset->editable() != Inset::HIGHLY_EDITABLE) {
+           && !nextinset->editable()) {
                ++top().pos();
                return;
        }
Index: src/insets/Inset.cpp
===================================================================
--- src/insets/Inset.cpp        (revision 29316)
+++ src/insets/Inset.cpp        (working copy)
@@ -223,15 +223,19 @@
        case LFUN_MOUSE_RELEASE:
                // if the derived inset did not explicitly handle mouse_release,
                // we assume we request the settings dialog
-               if (!cur.selection() && cmd.button() == mouse_button::button1) {
+               if (!cur.selection() && cmd.button() == mouse_button::button1
+                         && hasSettings()) {
                        FuncRequest tmpcmd(LFUN_INSET_SETTINGS);
                        dispatch(cur, tmpcmd);
                }
                break;
 
        case LFUN_INSET_SETTINGS:
-               showInsetDialog(&cur.bv());
-               cur.dispatched();
+               if (cmd.argument().empty() || cmd.getArg(0) == 
insetName(lyxCode())) {
+                       showInsetDialog(&cur.bv());
+                       cur.dispatched();
+               } else
+                       cur.undispatched();
                break;
 
        default:
@@ -269,8 +273,14 @@
                return true;
 
        case LFUN_INSET_SETTINGS:
-               flag.setEnabled(false);
-               return true;
+               if (cmd.argument().empty() || cmd.getArg(0) == 
insetName(lyxCode())) {
+                       bool const enable = hasSettings();
+                       flag.setEnabled(enable);
+                       return true;
+               } else {
+                       flag.setEnabled(false);
+                       return false;
+               }
 
        default:
                break;
@@ -326,12 +336,19 @@
 }
 
 
-Inset::EDITABLE Inset::editable() const
+bool Inset::editable() const
 {
-       return NOT_EDITABLE;
+       return false;
 }
 
 
+bool Inset::hasSettings() const
+{
+       return false;
+}
+
+
+
 bool Inset::autoDelete() const
 {
        return false;
Index: src/insets/Inset.h
===================================================================
--- src/insets/Inset.h  (revision 29316)
+++ src/insets/Inset.h  (working copy)
@@ -213,9 +213,6 @@
        /// Force inset into LTR environment if surroundings are RTL?
        virtual bool forceLTR() const { return false; }
 
-       /// is this an inset that can be moved into?
-       /// FIXME: merge with editable()
-       virtual bool isActive() const { return nargs() > 0; }
        /// Where should we go when we press the up or down cursor key?
        virtual bool idxUpDown(Cursor & cur, bool up) const;
        /// Move one cell backwards
@@ -301,27 +298,21 @@
        /// the string that is passed to the TOC
        virtual void tocString(odocstream &) const {}
 
-       /** This enum indicates by which means the inset can be modified:
-       - NOT_EDITABLE: the inset's content cannot be modified at all
-         (e.g. printindex, insetspecialchar)
-       - IS_EDITABLE: content can be edited via dialog (e.g. bibtex, index, 
href)
-       - HIGHLY_EDITABLE: content can be edited on screen (normally means that
-         insettext is contained, e.g. collapsables, tabular) */
-       // FIXME: This has not yet been fully implemented to math insets
-       enum EDITABLE {
-               ///
-               NOT_EDITABLE = 0,
-               ///
-               IS_EDITABLE,
-               ///
-               HIGHLY_EDITABLE
-       };
        /// what appears in the minibuffer when opening
        virtual docstring editMessage() const;
-       ///
-       virtual EDITABLE editable() const;
+       /// can the contents of the inset be edited on screen ?
+       // true for InsetCollapsables (not ButtonOnly) (not InsetInfo), 
InsetText
+       virtual bool editable() const;
+       /// has the Inset settings that can be modified in a dialog ?
+       virtual bool hasSettings() const;
        /// can we go further down on mouse click?
+       // true for InsetCaption, InsetCollapsables (not ButtonOnly), 
InsetTabular
        virtual bool descendable() const { return false; }
+       /// is this an inset that can be moved into?
+       /// FIXME: merge with editable()
+       // true for InsetTabular & InsetText
+       virtual bool isActive() const { return nargs() > 0; }
+
        /// does this contain text that can be change track marked in DVI?
        virtual bool canTrackChanges() const { return false; }
        /// return true if the inset should be removed automatically
Index: src/insets/InsetBibitem.h
===================================================================
--- src/insets/InsetBibitem.h   (revision 29316)
+++ src/insets/InsetBibitem.h   (working copy)
@@ -53,7 +53,7 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        InsetCode lyxCode() const { return BIBITEM_CODE; }
        ///
Index: src/insets/InsetBibtex.h
===================================================================
--- src/insets/InsetBibtex.h    (revision 29316)
+++ src/insets/InsetBibtex.h    (working copy)
@@ -34,7 +34,7 @@
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        InsetCode lyxCode() const { return BIBTEX_CODE; }
        ///
Index: src/insets/InsetBox.cpp
===================================================================
--- src/insets/InsetBox.cpp     (revision 29316)
+++ src/insets/InsetBox.cpp     (working copy)
@@ -239,7 +239,6 @@
                return true;
 
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                return true;
 
Index: src/insets/InsetBranch.cpp
===================================================================
--- src/insets/InsetBranch.cpp  (revision 29316)
+++ src/insets/InsetBranch.cpp  (working copy)
@@ -176,7 +176,6 @@
        switch (cmd.action) {
        case LFUN_INSET_MODIFY:
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                break;
 
Index: src/insets/InsetCitation.h
===================================================================
--- src/insets/InsetCitation.h  (revision 29316)
+++ src/insets/InsetCitation.h  (working copy)
@@ -38,7 +38,7 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///
Index: src/insets/InsetCollapsable.cpp
===================================================================
--- src/insets/InsetCollapsable.cpp     (revision 29316)
+++ src/insets/InsetCollapsable.cpp     (working copy)
@@ -437,9 +437,9 @@
 }
 
 
-Inset::EDITABLE InsetCollapsable::editable() const
+bool InsetCollapsable::editable() const
 {
-       return geometry() != ButtonOnly ? HIGHLY_EDITABLE : IS_EDITABLE;
+       return geometry() != ButtonOnly;
 }
 
 
Index: src/insets/InsetCollapsable.h
===================================================================
--- src/insets/InsetCollapsable.h       (revision 29316)
+++ src/insets/InsetCollapsable.h       (working copy)
@@ -74,7 +74,9 @@
        ///
        docstring const getNewLabel(docstring const & l) const;
        ///
-       EDITABLE editable() const;
+       bool editable() const;
+       ///
+       bool hasSettings() const { return true; }
        /// can we go further down on mouse click?
        bool descendable() const;
        ///
Index: src/insets/InsetCommand.cpp
===================================================================
--- src/insets/InsetCommand.cpp (revision 29316)
+++ src/insets/InsetCommand.cpp (working copy)
@@ -52,7 +52,7 @@
 
 void InsetCommand::metrics(MetricsInfo & mi, Dimension & dim) const
 {
-       button_.update(screenLabel(), editable() != NOT_EDITABLE);
+       button_.update(screenLabel(), editable() || hasSettings());
        button_.metrics(mi, dim);
 }
 
@@ -163,7 +163,6 @@
                status.setEnabled(true);
                return true;
        
-       case LFUN_INSET_SETTINGS:
        case LFUN_INSET_DIALOG_UPDATE:
                status.setEnabled(true);
                return true;
Index: src/insets/InsetERT.cpp
===================================================================
--- src/insets/InsetERT.cpp     (revision 29316)
+++ src/insets/InsetERT.cpp     (working copy)
@@ -137,7 +137,6 @@
                case LFUN_PASTE:
                case LFUN_PRIMARY_SELECTION_PASTE:
                case LFUN_QUOTE_INSERT:
-               case LFUN_INSET_SETTINGS:
                        status.setEnabled(true);
                        return true;
 
Index: src/insets/InsetExternal.cpp
===================================================================
--- src/insets/InsetExternal.cpp        (revision 29316)
+++ src/insets/InsetExternal.cpp        (working copy)
@@ -428,7 +428,6 @@
        case LFUN_INSET_EDIT:
        case LFUN_INSET_MODIFY:
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                return true;
 
Index: src/insets/InsetExternal.h
===================================================================
--- src/insets/InsetExternal.h  (revision 29316)
+++ src/insets/InsetExternal.h  (working copy)
@@ -120,7 +120,7 @@
        ///
        InsetCode lyxCode() const { return EXTERNAL_CODE; }
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        void metrics(MetricsInfo &, Dimension &) const;
        ///
Index: src/insets/InsetFlex.h
===================================================================
--- src/insets/InsetFlex.h      (revision 29316)
+++ src/insets/InsetFlex.h      (working copy)
@@ -34,6 +34,8 @@
        void write(std::ostream &) const;
        /// should paragraph indendation be ommitted in any case?
        bool neverIndent() const { return true; }
+       ///
+       bool hasSettings() const { return false; }
 
 protected:
        InsetFlex(InsetFlex const &);
Index: src/insets/InsetFloat.cpp
===================================================================
--- src/insets/InsetFloat.cpp   (revision 29316)
+++ src/insets/InsetFloat.cpp   (working copy)
@@ -183,7 +183,6 @@
 
        case LFUN_INSET_MODIFY:
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                return true;
 
Index: src/insets/InsetFloatList.h
===================================================================
--- src/insets/InsetFloatList.h (revision 29316)
+++ src/insets/InsetFloatList.h (working copy)
@@ -29,8 +29,6 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return NOT_EDITABLE; }
-       ///
        InsetCode lyxCode() const { return FLOAT_LIST_CODE; }
        ///
        DisplayType display() const { return AlignCenter; }
Index: src/insets/InsetFootlike.h
===================================================================
--- src/insets/InsetFootlike.h  (revision 29316)
+++ src/insets/InsetFootlike.h  (working copy)
@@ -24,6 +24,8 @@
 public:
        ///
        InsetFootlike(Buffer const &);
+       ///
+       bool hasSettings() const { return false; }
 private:
        ///
        void metrics(MetricsInfo &, Dimension &) const;
Index: src/insets/InsetGraphics.cpp
===================================================================
--- src/insets/InsetGraphics.cpp        (revision 29316)
+++ src/insets/InsetGraphics.cpp        (working copy)
@@ -230,7 +230,6 @@
        case LFUN_INSET_EDIT:
        case LFUN_INSET_MODIFY:
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                return true;
 
@@ -261,12 +260,6 @@
 }
 
 
-Inset::EDITABLE InsetGraphics::editable() const
-{
-       return IS_EDITABLE;
-}
-
-
 void InsetGraphics::write(ostream & os) const
 {
        os << "Graphics\n";
Index: src/insets/InsetGraphics.h
===================================================================
--- src/insets/InsetGraphics.h  (revision 29316)
+++ src/insets/InsetGraphics.h  (working copy)
@@ -60,7 +60,7 @@
        bool isLabeled() const { return true; }
        void metrics(MetricsInfo &, Dimension &) const;
        ///
-       EDITABLE editable() const;
+       bool hasSettings() const { return true; }
        ///
        void write(std::ostream &) const;
        ///
Index: src/insets/InsetHyperlink.h
===================================================================
--- src/insets/InsetHyperlink.h (revision 29316)
+++ src/insets/InsetHyperlink.h (working copy)
@@ -31,7 +31,7 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        DisplayType display() const { return Inline; }
        ///
Index: src/insets/InsetInclude.h
===================================================================
--- src/insets/InsetInclude.h   (revision 29316)
+++ src/insets/InsetInclude.h   (working copy)
@@ -72,7 +72,7 @@
        support::FileNameList const &
                getBibfilesCache() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        int latex(odocstream &, OutputParams const &) const;
        ///
Index: src/insets/InsetIndex.cpp
===================================================================
--- src/insets/InsetIndex.cpp   (revision 29316)
+++ src/insets/InsetIndex.cpp   (working copy)
@@ -226,8 +226,7 @@
                flag.setEnabled(true);
                return true;
 
-       case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS: {
+       case LFUN_INSET_DIALOG_UPDATE: {
                Buffer const & realbuffer = *buffer().masterBuffer();
                flag.setEnabled(realbuffer.params().use_indices);
                return true;
@@ -446,8 +445,7 @@
                        return InsetCommand::getStatus(cur, cmd, status);
        }
        
-       case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS: {
+       case LFUN_INSET_DIALOG_UPDATE: {
                Buffer const & realbuffer = *buffer().masterBuffer();
                status.setEnabled(realbuffer.params().use_indices);
                return true;
@@ -486,11 +484,9 @@
 }
 
 
-Inset::EDITABLE InsetPrintIndex::editable() const
+bool InsetPrintIndex::hasSettings() const
 {
-       return buffer().masterBuffer()->params().use_indices ?
-               IS_EDITABLE : NOT_EDITABLE;
+       return buffer().masterBuffer()->params().use_indices;
 }
 
-
 } // namespace lyx
Index: src/insets/InsetIndex.h
===================================================================
--- src/insets/InsetIndex.h     (revision 29316)
+++ src/insets/InsetIndex.h     (working copy)
@@ -45,7 +45,7 @@
        static void string2params(std::string const &, InsetIndexParams &);
 private:
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool hasSettings() const { return false; }
        ///
        InsetCode lyxCode() const { return INDEX_CODE; }
        ///
@@ -112,7 +112,8 @@
        /// Updates needed features for this inset.
        void validate(LaTeXFeatures & features) const;
        ///
-       EDITABLE editable() const;
+       bool hasSettings() const;
+
        ///
        DisplayType display() const { return AlignCenter; }
        ///
Index: src/insets/InsetInfo.h
===================================================================
--- src/insets/InsetInfo.h      (revision 29316)
+++ src/insets/InsetInfo.h      (working copy)
@@ -100,8 +100,10 @@
        ///
        Inset * editXY(Cursor & cur, int x, int y);
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool editable() const { return false; }
        ///
+       bool hasSettings() const { return true; }
+       ///
        void read(Lexer & lex);
        ///
        void write(std::ostream & os) const;
Index: src/insets/InsetLabel.h
===================================================================
--- src/insets/InsetLabel.h     (revision 29316)
+++ src/insets/InsetLabel.h     (working copy)
@@ -34,7 +34,7 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        InsetCode lyxCode() const { return LABEL_CODE; }
        ///
Index: src/insets/InsetListings.cpp
===================================================================
--- src/insets/InsetListings.cpp        (revision 29316)
+++ src/insets/InsetListings.cpp        (working copy)
@@ -387,7 +387,6 @@
        switch (cmd.action) {
                case LFUN_INSET_MODIFY:
                case LFUN_INSET_DIALOG_UPDATE:
-               case LFUN_INSET_SETTINGS:
                        status.setEnabled(true);
                        return true;
                case LFUN_CAPTION_INSERT:
Index: src/insets/InsetNomencl.h
===================================================================
--- src/insets/InsetNomencl.h   (revision 29316)
+++ src/insets/InsetNomencl.h   (working copy)
@@ -32,7 +32,7 @@
        ///
        docstring toolTip(BufferView const & bv, int x, int y) const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        /// Updates needed features for this inset.
        void validate(LaTeXFeatures & features) const;
        ///
@@ -66,8 +66,6 @@
        // Currently the width can be read from file and written, but not
        // changed.
        ///
-       EDITABLE editable() const { return NOT_EDITABLE; }
-       ///
        int docbook(odocstream &, OutputParams const &) const;
        ///
        InsetCode lyxCode() const;
Index: src/insets/InsetNote.cpp
===================================================================
--- src/insets/InsetNote.cpp    (revision 29316)
+++ src/insets/InsetNote.cpp    (working copy)
@@ -211,7 +211,6 @@
                }
                return true;
 
-       case LFUN_INSET_SETTINGS:
        case LFUN_INSET_DIALOG_UPDATE:
                flag.setEnabled(true);
                return true;
Index: src/insets/InsetOptArg.h
===================================================================
--- src/insets/InsetOptArg.h    (revision 29316)
+++ src/insets/InsetOptArg.h    (working copy)
@@ -31,6 +31,8 @@
 
        /// Outputting the optional parameter of a LaTeX command
        int latexOptional(odocstream &, OutputParams const &) const;
+       ///
+       bool hasSettings() const { return false; }
 
 private:
        /// code of the inset
Index: src/insets/InsetPhantom.cpp
===================================================================
--- src/insets/InsetPhantom.cpp (revision 29316)
+++ src/insets/InsetPhantom.cpp (working copy)
@@ -293,7 +293,6 @@
                flag.setEnabled(true);
                return true;
 
-       case LFUN_INSET_SETTINGS:
        case LFUN_INSET_DIALOG_UPDATE:
                flag.setEnabled(true);
                return true;
Index: src/insets/InsetRef.h
===================================================================
--- src/insets/InsetRef.h       (revision 29316)
+++ src/insets/InsetRef.h       (working copy)
@@ -43,7 +43,7 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        InsetCode lyxCode() const { return REF_CODE; }
        ///
Index: src/insets/InsetSpace.cpp
===================================================================
--- src/insets/InsetSpace.cpp   (revision 29316)
+++ src/insets/InsetSpace.cpp   (working copy)
@@ -172,7 +172,6 @@
                        status.setOnOff(params_.kind == params.kind);
                }
                // fall through
-       case LFUN_INSET_SETTINGS:
        case LFUN_INSET_DIALOG_UPDATE:
                status.setEnabled(true);
                return true;
Index: src/insets/InsetSpace.h
===================================================================
--- src/insets/InsetSpace.h     (revision 29316)
+++ src/insets/InsetSpace.h     (working copy)
@@ -133,7 +133,7 @@
        /// the string that is passed to the TOC
        void tocString(odocstream &) const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        InsetCode lyxCode() const { return SPACE_CODE; }
        /// is this an expandible space (rubber length)?
Index: src/insets/InsetTabular.cpp
===================================================================
--- src/insets/InsetTabular.cpp (revision 29316)
+++ src/insets/InsetTabular.cpp (working copy)
@@ -4075,6 +4075,9 @@
                return cell(cur.idx())->getStatus(cur, cmd, status);
 
        case LFUN_INSET_SETTINGS:
+               // relay this lfun to Inset, not to the cell.
+               return Inset::getStatus(cur, cmd, status);
+
        case LFUN_INSET_MODIFY:
                if (insetCode(cmd.getArg(0)) == TABULAR_CODE) {
                        status.setEnabled(true);
Index: src/insets/InsetTabular.h
===================================================================
--- src/insets/InsetTabular.h   (revision 29316)
+++ src/insets/InsetTabular.h   (working copy)
@@ -736,8 +736,10 @@
        ///
        docstring editMessage() const;
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool editable() const { return true; }
        ///
+       bool hasSettings() const { return true; }
+       ///
        bool insetAllowed(InsetCode code) const;
        ///
        bool allowSpellCheck() const { return true; }
Index: src/insets/InsetText.h
===================================================================
--- src/insets/InsetText.h      (revision 29316)
+++ src/insets/InsetText.h      (working copy)
@@ -64,7 +64,7 @@
        ///
        docstring editMessage() const;
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool editable() const { return true; }
        ///
        bool canTrackChanges() const { return true; }
        ///
Index: src/insets/InsetTOC.h
===================================================================
--- src/insets/InsetTOC.h       (revision 29316)
+++ src/insets/InsetTOC.h       (working copy)
@@ -26,8 +26,6 @@
        ///
        docstring screenLabel() const;
        ///
-       EDITABLE editable() const { return NOT_EDITABLE; }
-       ///
        InsetCode lyxCode() const { return TOC_CODE; }
        ///
        DisplayType display() const { return AlignCenter; }
Index: src/insets/InsetVSpace.cpp
===================================================================
--- src/insets/InsetVSpace.cpp  (revision 29316)
+++ src/insets/InsetVSpace.cpp  (working copy)
@@ -87,10 +87,6 @@
                status.setEnabled(true);
                return true;
        
-       case LFUN_INSET_SETTINGS:
-               status.setEnabled(true);
-               return true;
-
        default:
                return Inset::getStatus(cur, cmd, status);
        }
Index: src/insets/InsetVSpace.h
===================================================================
--- src/insets/InsetVSpace.h    (revision 29316)
+++ src/insets/InsetVSpace.h    (working copy)
@@ -32,7 +32,7 @@
        ///
        InsetCode lyxCode() const { return VSPACE_CODE; }
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        docstring contextMenu(BufferView const & bv, int x, int y) const;
        ///
Index: src/insets/InsetWrap.cpp
===================================================================
--- src/insets/InsetWrap.cpp    (revision 29316)
+++ src/insets/InsetWrap.cpp    (working copy)
@@ -107,7 +107,6 @@
        switch (cmd.action) {
        case LFUN_INSET_MODIFY:
        case LFUN_INSET_DIALOG_UPDATE:
-       case LFUN_INSET_SETTINGS:
                flag.setEnabled(true);
                return true;
 
Index: src/mathed/InsetFormulaMacro.h
===================================================================
--- src/mathed/InsetFormulaMacro.h      (revision 29316)
+++ src/mathed/InsetFormulaMacro.h      (working copy)
@@ -55,7 +55,7 @@
        ///
        docstring const & getInsetName() const { return name_; }
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool editable() const { return true; }
 private:
        ///
        MathAtom & tmpl() const;
Index: src/mathed/InsetMathHull.h
===================================================================
--- src/mathed/InsetMathHull.h  (revision 29316)
+++ src/mathed/InsetMathHull.h  (working copy)
@@ -212,7 +212,7 @@
        ///
        virtual void revealCodes(Cursor & cur) const;
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool editable() const { return true; }
        ///
        void edit(Cursor & cur, bool front, 
                EntryDirection entry_from = ENTRY_DIRECTION_IGNORE);
Index: src/mathed/InsetMathSpace.h
===================================================================
--- src/mathed/InsetMathSpace.h (revision 29316)
+++ src/mathed/InsetMathSpace.h (working copy)
@@ -56,7 +56,7 @@
        /// generate something that will be understood by the Dialogs.
        std::string const createDialogStr() const;
        ///
-       EDITABLE editable() const { return IS_EDITABLE; }
+       bool hasSettings() const { return true; }
        ///
        docstring contextMenu(BufferView const &, int, int) const;
        ///
Index: src/mathed/MathMacroTemplate.h
===================================================================
--- src/mathed/MathMacroTemplate.h      (revision 29316)
+++ src/mathed/MathMacroTemplate.h      (working copy)
@@ -36,7 +36,7 @@
        ///
        explicit MathMacroTemplate(const docstring & str);
        ///
-       EDITABLE editable() const { return HIGHLY_EDITABLE; }
+       bool editable() const { return true; }
        ///
        void edit(Cursor & cur, bool front, EntryDirection entry_from);
        ///
Index: src/rowpainter.cpp
===================================================================
--- src/rowpainter.cpp  (revision 29316)
+++ src/rowpainter.cpp  (working copy)
@@ -772,7 +772,7 @@
 
                Inset const * inset = par_.getInset(pos);
                bool const highly_editable_inset = inset
-                       && inset->editable() == Inset::HIGHLY_EDITABLE;
+                       && inset->editable();
 
                // If we reach the end of a change or if the author changes, 
paint it.
                // We also don't paint across things like tables
Index: src/Text2.cpp
===================================================================
--- src/Text2.cpp       (revision 29316)
+++ src/Text2.cpp       (working copy)
@@ -573,7 +573,7 @@
        if (!front && cur.pos() == 0)
                return false;
        Inset * inset = front ? cur.nextInset() : cur.prevInset();
-       if (!inset || inset->editable() != Inset::HIGHLY_EDITABLE)
+       if (!inset || !inset->editable())
                return false;
        /*
         * Apparently, when entering an inset we are expected to be positioned
@@ -599,7 +599,7 @@
                return false;
        Paragraph & par = cur.paragraph();
        Inset * inset = par.isInset(cur.pos()) ? par.getInset(cur.pos()) : 0;
-       if (!inset || inset->editable() != Inset::HIGHLY_EDITABLE)
+       if (!inset || !inset->editable())
                return false;
        inset->edit(cur, movingForward, 
                movingLeft ? Inset::ENTRY_DIRECTION_RIGHT : 
Inset::ENTRY_DIRECTION_LEFT);

Reply via email to