Remove InsetMathXYArrow

This was dead code that did never work, and most of it was boilerplate that
you can steel in 15 minutes from any existing math inset. Apart from that it
did contain a pointer to InsetXYMatrix which would create the same problems
we saw with the macros.
This commit is contained in:
Georg Baum 2016-06-16 20:39:32 +02:00
parent 8e9321dec2
commit c737f1cddf
7 changed files with 4 additions and 269 deletions

View File

@ -195,7 +195,6 @@ SET(CPACK_SOURCE_IGNORE_FILES
"/attic/" "/attic/"
"/HTML/" "/HTML/"
"/lyx-2\\\\." "/lyx-2\\\\."
"/InsetMathXYArrow\\\\..*$"
"/expectedTestFailures$" "/expectedTestFailures$"
"/MergedManuals.lyx$" "/MergedManuals.lyx$"
) )

View File

@ -172,7 +172,6 @@ static void build_translator()
insetnames[MATH_UNDERSET_CODE] = InsetName("mathunderset"); insetnames[MATH_UNDERSET_CODE] = InsetName("mathunderset");
insetnames[MATH_UNKNOWN_CODE] = InsetName("mathunknown"); insetnames[MATH_UNKNOWN_CODE] = InsetName("mathunknown");
insetnames[MATH_XARROW_CODE] = InsetName("mathxarrow"); insetnames[MATH_XARROW_CODE] = InsetName("mathxarrow");
insetnames[MATH_XYARROW_CODE] = InsetName("mathxyarrow");
insetnames[MATH_XYMATRIX_CODE] = InsetName("mathxymatrix"); insetnames[MATH_XYMATRIX_CODE] = InsetName("mathxymatrix");
insetnames[MATH_DIAGRAM_CODE] = InsetName("mathdiagram"); insetnames[MATH_DIAGRAM_CODE] = InsetName("mathdiagram");
insetnames[MATH_MACRO_CODE] = InsetName("mathmacro"); insetnames[MATH_MACRO_CODE] = InsetName("mathmacro");

View File

@ -217,11 +217,9 @@ enum InsetCode {
/// ///
MATH_XARROW_CODE, MATH_XARROW_CODE,
/// ///
MATH_XYARROW_CODE, MATH_XYMATRIX_CODE,
/// ///
MATH_XYMATRIX_CODE, // 100 MATH_MACRO_CODE, // 100
///
MATH_MACRO_CODE,
/// ///
ARGUMENT_PROXY_CODE, ARGUMENT_PROXY_CODE,
/// ///
@ -229,9 +227,9 @@ enum InsetCode {
/// ///
MATH_DIAGRAM_CODE, MATH_DIAGRAM_CODE,
/// ///
SCRIPT_CODE, // 105 SCRIPT_CODE,
/// ///
IPA_CODE, IPA_CODE, // 105
/// ///
IPACHAR_CODE, IPACHAR_CODE,
/// ///

View File

@ -9,9 +9,6 @@ project(mathed)
file(GLOB mathed_sources ${TOP_SRC_DIR}/src/mathed/${LYX_CPP_FILES}) file(GLOB mathed_sources ${TOP_SRC_DIR}/src/mathed/${LYX_CPP_FILES})
file(GLOB mathed_headers ${TOP_SRC_DIR}/src/mathed/${LYX_HPP_FILES}) file(GLOB mathed_headers ${TOP_SRC_DIR}/src/mathed/${LYX_HPP_FILES})
list(REMOVE_ITEM mathed_sources
${TOP_SRC_DIR}/src/mathed/InsetMathXYArrow.cpp)
lyx_add_msvc_pch(mathed) lyx_add_msvc_pch(mathed)
include_directories(${TOP_SRC_DIR}/src/mathed ${QT_INCLUDES}) include_directories(${TOP_SRC_DIR}/src/mathed ${QT_INCLUDES})

View File

@ -1,172 +0,0 @@
/**
* \file InsetMathXYArrow.cpp
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "InsetMathXYArrow.h"
#include "MathStream.h"
#include "MathSupport.h"
#include "frontends/Painter.h"
#include "support/debug.h"
using namespace std;
namespace lyx {
InsetMathXYArrow::InsetMathXYArrow()
: InsetMathNest(2), up_(false), target_(0)
{}
Inset * InsetMathXYArrow::clone() const
{
return new InsetMathXYArrow(*this);
}
InsetMathXYMatrix const * InsetMathXYArrow::targetMatrix() const
{
return target_;
}
MathData const & InsetMathXYArrow::targetCell() const
{
#if 0
InsetMathXYMatrix const * p = targetMatrix();
int x = 0;
int y = 0;
MathData const & t = cell(0);
for (MathData::const_iterator it = t.begin(); it != t.end(); ++it) {
switch ((*it)->getChar()) {
case 'l': --x; break;
case 'r': ++x; break;
case 'u': --y; break;
case 'd': ++y; break;
}
}
//lyxerr << "target: x: " << x << " y: " << y << endl;
InsetMath::idx_type n = mi_.idx + p->ncols() * y + x;
if (n >= p->nargs()) {
lyxerr << "source: n: " << mi_.idx << "\n"
<< "target: n: " << n << " out of range" << endl;
n = 0;
}
return p->cell(n);
#else
static MathData dummy;
return dummy;
#endif
}
MathData const & InsetMathXYArrow::sourceCell() const
{
#if 0
return targetMatrix()->cell(mi_.idx);
#else
static MathData dummy;
return dummy;
#endif
}
bool InsetMathXYArrow::metrics(MetricsInfo & mi) const
{
InsetMathNest::metrics(mi);
mi_ = mi;
Changer dummy = mi.base.changeFontSet(mi.base, "textrm");
#if 0
target_ = mi.inset ? mi.inset->asXYMatrixInset() : 0;
if (editing()) {
int w = mathed_string_width(mi.base.font, from_ascii("target: "));
width_ = w + max(dim0.width(), dim1.wid);
ascent_ = dim0.asc;
descent_ = dim0.des + dim1.height() + 10;
} else {
width_ = 0;
ascent_ = 0;
descent_ = 0;
//mathed_string_dim(font_, "X", ascent_, descent_, width_);
}
#endif
}
void InsetMathXYArrow::draw(PainterInfo & pi, int x, int y) const
{
metrics(mi_);
Changer dummy = pi.base.changeFontSet(pi.base, "textrm");
if (editing()) {
#if 0
int lasc;
int ldes;
int lwid;
mathed_string_dim(pi.base.font, "target: ", lasc, ldes, lwid);
cell(0).draw(pi, x + lwid, y);
pi.base.text(x + 3, y, "target");
y += max(dim0.des, ldes) + 5;
y += max(dim1.asc, lasc) + 5;
cell(1).draw(pi, x + lwid, y);
pi.base.text(x + 3, y, "label");
#endif
} else {
pi.pain.text(x, y, "X");
MathData const & s = sourceCell();
MathData const & t = targetCell();
pi.pain.line(s.xm(), s.ym(), t.xm(), t.ym(), Color_math);
cell(1).draw(pi, (s.xm() + t.xm())/2, (s.ym() + t.ym())/2);
}
}
void InsetMathXYArrow::write(WriteStream & os) const
{
MathEnsurer ensurer(os);
os << "\\ar";
if (!cell(0).empty())
os << '[' << cell(0) << ']';
if (!cell(1).empty())
os << (up_ ? '^' : '_') << '{' << cell(1) << '}';
os << " ";
}
void InsetMathXYArrow::normalize(NormalStream & os) const
{
os << "[xyarrow ";
InsetMathNest::normalize(os);
os << ']';
}
void InsetMathXYArrow::mathmlize(MathStream &) const
{
throw MathExportException();
}
void InsetMathXYArrow::htmlize(HtmlStream &) const
{
throw MathExportException();
}
} // namespace lyx

View File

@ -1,69 +0,0 @@
// -*- C++ -*-
/**
* \file InsetMathXYArrow.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#ifndef MATH_XYARROWINSET_H
#define MATH_ARROWINSET_H
#include "InsetMathNest.h"
#include "MetricsInfo.h"
namespace lyx {
// for the \ar stuff in \xymatrix
class InsetMathXYMatrix;
class InsetMathXYArrow : public InsetMathNest {
public:
///
InsetMathXYArrow();
///
virtual Inset * clone() const;
///
bool metrics(MetricsInfo & mi) const;
///
void draw(PainterInfo & pi, int x, int y) const;
///
InsetMathXYArrow * asXYArrowInset() { return this; }
///
void write(WriteStream & os) const;
///
void normalize(NormalStream &) const;
///
InsetMathXYMatrix const * targetMatrix() const;
///
MathData const & targetCell() const;
///
MathData const & sourceCell() const;
///
InsetCode lyxCode() const { return MATH_XYARROW_CODE; }
///
void mathmlize(MathStream &) const;
///
void htmlize(HtmlStream &) const;
///
bool up_;
///
mutable MetricsInfo mi_;
///
mutable Font font_;
///
mutable InsetMathXYMatrix const * target_;
};
} // namespace lyx
#endif

View File

@ -1943,23 +1943,6 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
cell->push_back(createInsetMath(t.cs(), buf)); cell->push_back(createInsetMath(t.cs(), buf));
parse2(cell->back(), FLAG_ITEM, mode, false); parse2(cell->back(), FLAG_ITEM, mode, false);
} }
// Disabled
else if (1 && t.cs() == "ar") {
auto p = make_unique<InsetMathXYArrow>();
// try to read target
parse(p->cell(0), FLAG_OTPTION, mode);
// try to read label
if (nextToken().cat() == catSuper || nextToken().cat() == catSub) {
p->up_ = nextToken().cat() == catSuper;
getToken();
parse(p->cell(1), FLAG_ITEM, mode);
//lyxerr << "read label: " << p->cell(1) << endl;
}
cell->push_back(MathAtom(p.release()));
//lyxerr << "read cell: " << cell << endl;
}
#endif #endif
else if (t.cs() == "lyxmathsym") { else if (t.cs() == "lyxmathsym") {