]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetERT.cpp
Check character encodability with pass-thru in command insets
[lyx.git] / src / insets / InsetERT.cpp
index 25665471038b733c7c063e838b72a380136902f4..e3863ea09df1e244be261d2f92f1e1dd4dafa7b6 100644 (file)
@@ -17,9 +17,7 @@
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "Cursor.h"
-#include "CutAndPaste.h"
 #include "DispatchResult.h"
-#include "Format.h"
 #include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "Language.h"
 #include "OutputParams.h"
 #include "ParagraphParameters.h"
 #include "Paragraph.h"
-#include "TextClass.h"
 
 #include "support/docstream.h"
-#include "support/FileName.h"
 #include "support/gettext.h"
 #include "support/lstrings.h"
 #include "support/TempFile.h"
@@ -51,21 +47,11 @@ InsetERT::InsetERT(Buffer * buf, CollapseStatus status)
 }
 
 
-// Do not copy the temp file on purpose: If a copy of an inset which is
-// currently being edited is made, then we simply copy the current contents.
-InsetERT::InsetERT(InsetERT const & that) : InsetCollapsible(that)
+InsetERT::InsetERT(InsetERT const & old)
+       : InsetCollapsible(old)
 {}
 
 
-InsetERT & InsetERT::operator=(InsetERT const & that)
-{
-       if (&that == this)
-               return *this;
-       tempfile_.reset();
-       return *this;
-}
-
-
 void InsetERT::write(ostream & os) const
 {
        os << "ERT" << "\n";
@@ -129,40 +115,6 @@ int InsetERT::docbook(odocstream & os, OutputParams const &) const
 void InsetERT::doDispatch(Cursor & cur, FuncRequest & cmd)
 {
        switch (cmd.action()) {
-       case LFUN_INSET_EDIT: {
-               cur.push(*this);
-               text().selectAll(cur);
-               string const format =
-                       cur.buffer()->params().documentClass().outputFormat();
-               string const ext = theFormats().extension(format);
-               tempfile_.reset(new TempFile("ert_editXXXXXX." + ext));
-               FileName const tempfilename = tempfile_->name();
-               string const name = tempfilename.toFilesystemEncoding();
-               ofdocstream os(name.c_str());
-               os << cur.selectionAsString(false);
-               os.close();
-               // Since we lock the inset while the external file is edited,
-               // we need to move the cursor outside and clear any selection inside
-               cur.clearSelection();
-               cur.pop();
-               cur.leaveInset(*this);
-               theFormats().edit(buffer(), tempfilename, format);
-               break;
-       }
-       case LFUN_INSET_END_EDIT: {
-               FileName const tempfilename = tempfile_->name();
-               docstring const s = tempfilename.fileContents("UTF-8");
-               cur.recordUndoInset(this);
-               cur.push(*this);
-               text().selectAll(cur);
-               cap::replaceSelection(cur);
-               cur.text()->insertStringAsLines(cur, s, cur.current_font);
-               // FIXME it crashes without this
-               cur.fixIfBroken();
-               tempfile_.reset();
-               cur.pop();
-               break;
-       }
        case LFUN_INSET_MODIFY:
                if (cmd.getArg(0) == "ert") {
                        cur.recordUndoInset(this);
@@ -182,11 +134,8 @@ bool InsetERT::getStatus(Cursor & cur, FuncRequest const & cmd,
        FuncStatus & status) const
 {
        switch (cmd.action()) {
-       case LFUN_INSET_EDIT:
-               status.setEnabled(tempfile_ == 0);
-               return true;
-       case LFUN_INSET_END_EDIT:
-               status.setEnabled(tempfile_ != 0);
+       case LFUN_INSET_INSERT:
+               status.setEnabled(false);
                return true;
        case LFUN_INSET_MODIFY:
                if (cmd.getArg(0) == "ert") {
@@ -201,21 +150,6 @@ bool InsetERT::getStatus(Cursor & cur, FuncRequest const & cmd,
 }
 
 
-bool InsetERT::editable() const
-{
-       if (tempfile_)
-               return false;
-       return InsetCollapsible::editable();
-}
-
-
-bool InsetERT::descendable(BufferView const & bv) const
-{
-       if (tempfile_)
-               return false;
-       return InsetCollapsible::descendable(bv);
-}
-
 
 docstring const InsetERT::buttonLabel(BufferView const & bv) const
 {