Spreadsheet: Removed 'using namespace App'; preparation for moving Expression

classes to App.
This commit is contained in:
Eivind Kvedalen 2015-08-29 18:06:12 +02:00 committed by wmayer
parent 98700edbca
commit 61cbad8a12
19 changed files with 289 additions and 195 deletions

View File

@ -17,7 +17,7 @@
#include <Base/Console.h>
#include "Sheet.h"
#include "Expression.h"
#include "SpreadsheetExpression.h"
/* registration table */

View File

@ -17,8 +17,8 @@ set(Spreadsheet_LIBS
)
set(Spreadsheet_SRCS
Expression.cpp
Expression.h
SpreadsheetExpression.cpp
SpreadsheetExpression.h
Cell.cpp
Cell.h
DisplayUnit.h

View File

@ -30,7 +30,7 @@
#include <boost/tokenizer.hpp>
#include <Base/Reader.h>
#include <Base/Writer.h>
#include "Expression.h"
#include "SpreadsheetExpression.h"
#include "Sheet.h"
#include <iomanip>
@ -38,7 +38,7 @@
#define __func__ __FUNCTION__
#endif
using namespace App;
using namespace Base;
using namespace Spreadsheet;
const int Cell::EXPRESSION_SET = 1;
@ -183,7 +183,7 @@ const Expression *Cell::getExpression() const
bool Cell::getStringContent(std::string & s) const
{
if (expression) {
if (Spreadsheet::freecad_dynamic_cast<StringExpression>(expression)) {
if (freecad_dynamic_cast<StringExpression>(expression)) {
s = static_cast<StringExpression*>(expression)->getText();
char * end;
errno = 0;
@ -192,9 +192,9 @@ bool Cell::getStringContent(std::string & s) const
if (!*end && errno == 0)
s = "'" + s;
}
else if (Spreadsheet::freecad_dynamic_cast<ConstantExpression>(expression))
else if (freecad_dynamic_cast<ConstantExpression>(expression))
s = "=" + expression->toString();
else if (Spreadsheet::freecad_dynamic_cast<NumberExpression>(expression))
else if (freecad_dynamic_cast<NumberExpression>(expression))
s = expression->toString();
else
s = "=" + expression->toString();
@ -307,7 +307,7 @@ bool Cell::getStyle(std::set<std::string> & _style) const
*
*/
void Cell::setForeground(const Color &color)
void Cell::setForeground(const App::Color &color)
{
if (color != foregroundColor) {
PropertySheet::Signaller signaller(*owner);
@ -322,7 +322,7 @@ void Cell::setForeground(const Color &color)
*
*/
bool Cell::getForeground(Color &color) const
bool Cell::getForeground(App::Color &color) const
{
color = foregroundColor;
return isUsed(FOREGROUND_COLOR_SET);
@ -333,7 +333,7 @@ bool Cell::getForeground(Color &color) const
*
*/
void Cell::setBackground(const Color &color)
void Cell::setBackground(const App::Color &color)
{
if (color != backgroundColor) {
PropertySheet::Signaller signaller(*owner);
@ -350,7 +350,7 @@ void Cell::setBackground(const Color &color)
*
*/
bool Cell::getBackground(Color &color) const
bool Cell::getBackground(App::Color &color) const
{
color = backgroundColor;
return isUsed(BACKGROUND_COLOR_SET);
@ -569,12 +569,12 @@ void Cell::restore(Base::XMLReader &reader)
setAlignment(alignmentCode);
}
if (foregroundColor) {
Color color = decodeColor(foregroundColor, Color(0, 0, 0, 1));
App::Color color = decodeColor(foregroundColor, App::Color(0, 0, 0, 1));
setForeground(color);
}
if (backgroundColor) {
Color color = decodeColor(backgroundColor, Color(1, 1, 1, 1));
App::Color color = decodeColor(backgroundColor, App::Color(1, 1, 1, 1));
setBackground(color);
}
@ -609,7 +609,7 @@ void Cell::save(Base::Writer &writer) const
std::string content;
getStringContent(content);
writer.Stream() << "content=\"" << Property::encodeAttribute(content) << "\" ";
writer.Stream() << "content=\"" << App::Property::encodeAttribute(content) << "\" ";
}
if (isUsed(ALIGNMENT_SET))
@ -625,10 +625,10 @@ void Cell::save(Base::Writer &writer) const
writer.Stream() << "backgroundColor=\"" << encodeColor(backgroundColor) << "\" ";
if (isUsed(DISPLAY_UNIT_SET))
writer.Stream() << "displayUnit=\"" << Property::encodeAttribute(displayUnit.stringRep) << "\" ";
writer.Stream() << "displayUnit=\"" << App::Property::encodeAttribute(displayUnit.stringRep) << "\" ";
if (isUsed(ALIAS_SET))
writer.Stream() << "alias=\"" << Property::encodeAttribute(alias) << "\" ";
writer.Stream() << "alias=\"" << App::Property::encodeAttribute(alias) << "\" ";
if (isUsed(SPANS_SET)) {
writer.Stream() << "rowSpan=\"" << rowSpan<< "\" ";
@ -759,7 +759,7 @@ std::string Cell::encodeAlignment(int alignment)
*
*/
std::string Cell::encodeColor(const Color & color)
std::string Cell::encodeColor(const App::Color & color)
{
std::stringstream tmp;
@ -807,10 +807,10 @@ std::string Cell::encodeStyle(const std::set<std::string> & style)
*
*/
Color Cell::decodeColor(const std::string & color, const Color & defaultColor)
App::Color Cell::decodeColor(const std::string & color, const App::Color & defaultColor)
{
if (color.size() == 7 || color.size() == 9) {
Color c;
App::Color c;
if (color[0] != '#')
return defaultColor;

View File

@ -0,0 +1,74 @@
/* A Bison parser, made by GNU Bison 2.5. */
/* Bison interface for Yacc-like parsers in C
Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
under terms of your choice, so long as that work isn't itself a
parser generator using the skeleton or a modified version thereof
as a parser skeleton. Alternatively, if you modify or redistribute
the parser skeleton itself, you may (at your option) remove this
special exception, which will cause the skeleton and the resulting
Bison output files to be licensed under the GNU General Public
License without this special exception.
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
FUNC = 258,
NUM = 259,
IDENTIFIER = 260,
UNIT = 261,
INTEGER = 262,
CONSTANT = 263,
CELLADDRESS = 264,
EQ = 265,
NEQ = 266,
LT = 267,
GT = 268,
GTE = 269,
LTE = 270,
STRING = 271,
MINUSSIGN = 272,
PROPERTY_REF = 273,
DOCUMENT = 274,
OBJECT = 275,
EXPONENT = 276,
NEG = 277,
POS = 278
};
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif
extern YYSTYPE yylval;

View File

@ -1,5 +1,6 @@
/***************************************************************************
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2002 *
* Copyright (c) Eivind Kvedalen (eivind@kvedalen.name) 2015 *
* *
* This file is part of the FreeCAD CAx development system. *
* *
@ -21,41 +22,58 @@
***************************************************************************/
#ifndef __PRECOMPILED__
#define __PRECOMPILED__
#ifndef SPREADSHEET_PRECOMPILED_H
#define SPREADSHEET_PRECOMPILED_H
#include <FCConfig.h>
// Exporting of App classes
// Importing of App classes
#ifdef FC_OS_WIN32
# define SpreadsheetExport __declspec(dllexport)
# define SpreadsheetGuiExport __declspec(dllexport)
#else // for Linux
# define SpreadsheetExport
# define SpreadsheetGuiExport
#endif
/// here get the warnings of to long specifieres disabled (needed for VC6)
// here get the warnings of too long specifiers disabled (needed for VC6)
#ifdef _MSC_VER
# pragma warning( disable : 4251 )
# pragma warning( disable : 4275 )
# pragma warning( disable : 4503 )
# pragma warning( disable : 4786 ) // specifier longer then 255 chars
# pragma warning( disable : 4251 )
# pragma warning( disable : 4503 )
# pragma warning( disable : 4786 ) // specifier longer then 255 chars
#endif
#ifdef _PreComp_
// standard
#include <iostream>
#include <sstream>
#include <stdio.h>
#include <assert.h>
#include <string>
#include <map>
#include <vector>
#include <set>
#include <bitset>
// Python
#include <Python.h>
#endif // _PreComp_
// standard
#include <iostream>
#include <assert.h>
#include <math.h>
// STL
#include <vector>
#include <map>
#include <string>
#include <list>
#include <set>
#include <algorithm>
#include <stack>
#include <queue>
#include <bitset>
#ifdef FC_OS_WIN32
# include <windows.h>
#endif
// Qt Toolkit
#ifndef __Qt4All__
# include <Gui/Qt4All.h>
#endif
#endif //_PreComp_
#endif // SPREADSHEET_PRECOMPILED_H

View File

@ -31,7 +31,6 @@
#include "Utils.h"
#include <PropertyColumnWidthsPy.h>
using namespace App;
using namespace Spreadsheet;
const int PropertyColumnWidths::defaultWidth = 100;

View File

@ -31,7 +31,6 @@
#include "Utils.h"
#include <PropertyRowHeightsPy.h>
using namespace App;
using namespace Spreadsheet;
const int PropertyRowHeights::defaultHeight = 20;
@ -46,7 +45,7 @@ PropertyRowHeights::PropertyRowHeights(const PropertyRowHeights &other)
{
}
Property *PropertyRowHeights::Copy() const
App::Property *PropertyRowHeights::Copy() const
{
PropertyRowHeights * prop = new PropertyRowHeights(*this);

View File

@ -38,18 +38,20 @@
#include <Base/PyObjectBase.h>
#include "PropertySheet.h"
#include "Sheet.h"
#include "Expression.h"
#include "SpreadsheetExpression.h"
#include "Utils.h"
#include <PropertySheetPy.h>
using namespace App;
using namespace Base;
using namespace Spreadsheet;
namespace Spreadsheet {
class ResolveExpressionVisitor : public ExpressionVisitor {
public:
void visit(Expression * node) {
VariableExpression *expr = Spreadsheet::freecad_dynamic_cast<VariableExpression>(node);
VariableExpression *expr = freecad_dynamic_cast<VariableExpression>(node);
if (expr)
expr->resolve();
@ -66,7 +68,7 @@ public:
}
void visit(Expression * node) {
VariableExpression *expr = Spreadsheet::freecad_dynamic_cast<VariableExpression>(node);
VariableExpression *expr = freecad_dynamic_cast<VariableExpression>(node);
if (expr)
expr->renameDocumentObject(oldName, newName);
@ -80,19 +82,19 @@ private:
class BuildDocDepsExpressionVisitor : public ExpressionVisitor {
public:
BuildDocDepsExpressionVisitor(std::set<DocumentObject*> & _docDeps)
BuildDocDepsExpressionVisitor(std::set<App::DocumentObject*> & _docDeps)
: docDeps(_docDeps)
{
}
void visit(Expression * node) {
VariableExpression *expr = Spreadsheet::freecad_dynamic_cast<VariableExpression>(node);
VariableExpression *expr = freecad_dynamic_cast<VariableExpression>(node);
if (expr) {
try {
const App::Property * prop = expr->getProperty();
App::DocumentObject * docObj = Spreadsheet::freecad_dynamic_cast<DocumentObject>(prop->getContainer());
App::DocumentObject * docObj = freecad_dynamic_cast<App::DocumentObject>(prop->getContainer());
if (docObj)
docDeps.insert(docObj);
@ -117,7 +119,7 @@ public:
}
void visit(Expression * node) {
VariableExpression *expr = Spreadsheet::freecad_dynamic_cast<VariableExpression>(node);
VariableExpression *expr = freecad_dynamic_cast<VariableExpression>(node);
if (expr)
expr->renameDocument(oldName, newName);
@ -128,6 +130,8 @@ private:
std::string newName;
};
}
TYPESYSTEM_SOURCE(Spreadsheet::PropertySheet , App::Property);
void PropertySheet::clear()
@ -224,7 +228,7 @@ PropertySheet::~PropertySheet()
clear();
}
Property *PropertySheet::Copy(void) const
App::Property *PropertySheet::Copy(void) const
{
return new PropertySheet(*this);
}
@ -410,13 +414,13 @@ void PropertySheet::setStyle(CellAddress address, const std::set<std::string> &_
nonNullCellAt(address)->setStyle(_style);
}
void PropertySheet::setForeground(CellAddress address, const Color &color)
void PropertySheet::setForeground(CellAddress address, const App::Color &color)
{
assert(nonNullCellAt(address) != 0);
nonNullCellAt(address)->setForeground(color);
}
void PropertySheet::setBackground(CellAddress address, const Color &color)
void PropertySheet::setBackground(CellAddress address, const App::Color &color)
{
assert(nonNullCellAt(address) != 0);
nonNullCellAt(address)->setBackground(color);
@ -555,8 +559,8 @@ public:
bool changed() const { return mChanged; }
void visit(Expression * node) {
VariableExpression *varExpr = Spreadsheet::freecad_dynamic_cast<VariableExpression>(node);
RangeExpression *rangeExpr = Spreadsheet::freecad_dynamic_cast<RangeExpression>(node);
VariableExpression *varExpr = freecad_dynamic_cast<VariableExpression>(node);
RangeExpression *rangeExpr = freecad_dynamic_cast<RangeExpression>(node);
if (varExpr) {
@ -880,8 +884,8 @@ void PropertySheet::addDependencies(CellAddress key)
std::set<Path>::const_iterator i = expressionDeps.begin();
while (i != expressionDeps.end()) {
const Property * prop = i->getProperty();
const DocumentObject * docObj = i->getDocumentObject();
Document * doc = i->getDocument();
const App::DocumentObject * docObj = i->getDocumentObject();
App::Document * doc = i->getDocument();
std::string docName = doc ? doc->Label.getValue() : i->getDocumentName().getString();
std::string docObjName = docName + "#" + (docObj ? docObj->getNameInDocument() : i->getDocumentObjectName().getString());
@ -890,7 +894,7 @@ void PropertySheet::addDependencies(CellAddress key)
if (!prop)
cell->setResolveException("Unresolved dependency");
else {
DocumentObject * docObject = Spreadsheet::freecad_dynamic_cast<DocumentObject>(prop->getContainer());
App::DocumentObject * docObject = freecad_dynamic_cast<App::DocumentObject>(prop->getContainer());
documentObjectName[docObject] = docObject->Label.getValue();
documentName[docObject->getDocument()] = docObject->getDocument()->Label.getValue();
@ -986,7 +990,7 @@ void PropertySheet::removeDependencies(CellAddress key)
void PropertySheet::recomputeDependants(const Property *prop)
{
DocumentObject * owner = Spreadsheet::freecad_dynamic_cast<DocumentObject>(prop->getContainer());
App::DocumentObject * owner = freecad_dynamic_cast<App::DocumentObject>(prop->getContainer());
const char * name = owner->getPropertyName(prop);
assert(name != 0);
@ -1014,7 +1018,7 @@ void PropertySheet::recomputeDependants(const Property *prop)
}
}
void PropertySheet::invalidateDependants(const DocumentObject *docObj)
void PropertySheet::invalidateDependants(const App::DocumentObject *docObj)
{
const char * docName = docObj->getDocument()->Label.getValue();
const char * docObjName = docObj->getNameInDocument();
@ -1042,7 +1046,7 @@ void PropertySheet::invalidateDependants(const DocumentObject *docObj)
}
}
void PropertySheet::renamedDocumentObject(const DocumentObject * docObj)
void PropertySheet::renamedDocumentObject(const App::DocumentObject * docObj)
{
// Touch to force recompute
touch();
@ -1063,7 +1067,7 @@ void PropertySheet::renamedDocumentObject(const DocumentObject * docObj)
}
}
void PropertySheet::renamedDocument(const Document * doc)
void PropertySheet::renamedDocument(const App::Document * doc)
{
// Touch to force recompute
touch();
@ -1090,7 +1094,7 @@ void PropertySheet::documentSet()
documentName[owner->getDocument()] = owner->getDocument()->Label.getValue();
}
void PropertySheet::recomputeDependants(const DocumentObject *docObj)
void PropertySheet::recomputeDependants(const App::DocumentObject *docObj)
{
const char * docName = docObj->getDocument()->Label.getValue();
const char * docObjName = docObj->getNameInDocument();

View File

@ -37,7 +37,7 @@
#include <Base/Placement.h>
#include <Base/Reader.h>
#include <Base/Writer.h>
#include "Expression.h"
#include "SpreadsheetExpression.h"
#include "Sheet.h"
#include "SheetObserver.h"
#include "Utils.h"
@ -51,8 +51,8 @@
#include <boost/bind.hpp>
#include <deque>
using namespace Base;
using namespace Spreadsheet;
using namespace App;
PROPERTY_SOURCE(Spreadsheet::Sheet, App::DocumentObject)
@ -229,7 +229,7 @@ bool Sheet::exportToFile(const std::string &filename, char delimiter, char quote
std::set<CellAddress>::const_iterator i = usedCells.begin();
while (i != usedCells.end()) {
Property * prop = getProperty(*i);
App::Property * prop = getProperty(*i);
if (prevRow != -1 && prevRow != i->row()) {
for (int j = prevRow; j < i->row(); ++j)
@ -243,12 +243,12 @@ bool Sheet::exportToFile(const std::string &filename, char delimiter, char quote
std::stringstream field;
if (prop->isDerivedFrom((PropertyQuantity::getClassTypeId())))
field << static_cast<PropertyQuantity*>(prop)->getValue();
else if (prop->isDerivedFrom((PropertyFloat::getClassTypeId())))
field << static_cast<PropertyFloat*>(prop)->getValue();
else if (prop->isDerivedFrom((PropertyString::getClassTypeId())))
field << static_cast<PropertyString*>(prop)->getValue();
if (prop->isDerivedFrom((App::PropertyQuantity::getClassTypeId())))
field << static_cast<App::PropertyQuantity*>(prop)->getValue();
else if (prop->isDerivedFrom((App::PropertyFloat::getClassTypeId())))
field << static_cast<App::PropertyFloat*>(prop)->getValue();
else if (prop->isDerivedFrom((App::PropertyString::getClassTypeId())))
field << static_cast<App::PropertyString*>(prop)->getValue();
else
assert(0);
@ -391,12 +391,12 @@ PyObject *Sheet::getPyObject(void)
*
*/
Property * Sheet::getProperty(CellAddress key) const
App::Property * Sheet::getProperty(CellAddress key) const
{
return props.getDynamicPropertyByName(key.toString().c_str());
}
Property * Sheet::getProperty(const char * addr) const
App::Property * Sheet::getProperty(const char * addr) const
{
return props.getDynamicPropertyByName(addr);
}
@ -407,7 +407,7 @@ Property * Sheet::getProperty(const char * addr) const
*
*/
void Sheet::getCellAddress(const Property *prop, CellAddress & address)
void Sheet::getCellAddress(const App::Property *prop, CellAddress & address)
{
std::map<const App::Property*, CellAddress >::const_iterator i = propAddress.find(prop);
@ -460,21 +460,21 @@ void Sheet::onSettingDocument()
*
*/
Property * Sheet::setFloatProperty(CellAddress key, double value)
App::Property * Sheet::setFloatProperty(CellAddress key, double value)
{
Property * prop = props.getPropertyByName(key.toString().c_str());
PropertyFloat * floatProp;
App::Property * prop = props.getPropertyByName(key.toString().c_str());
App::PropertyFloat * floatProp;
if (!prop || prop->getTypeId() != PropertyFloat::getClassTypeId()) {
if (!prop || prop->getTypeId() != App::PropertyFloat::getClassTypeId()) {
if (prop) {
props.removeDynamicProperty(key.toString().c_str());
propAddress.erase(prop);
}
floatProp = Spreadsheet::freecad_dynamic_cast<PropertyFloat>(props.addDynamicProperty("App::PropertyFloat", key.toString().c_str(), 0, 0, Prop_ReadOnly | Prop_Transient, true, true));
floatProp = freecad_dynamic_cast<App::PropertyFloat>(props.addDynamicProperty("App::PropertyFloat", key.toString().c_str(), 0, 0, App::Prop_ReadOnly | App::Prop_Transient, true, true));
floatProp->StatusBits.set(3);
}
else
floatProp = static_cast<PropertyFloat*>(prop);
floatProp = static_cast<App::PropertyFloat*>(prop);
propAddress[floatProp] = key;
floatProp->setValue(value);
@ -492,9 +492,9 @@ Property * Sheet::setFloatProperty(CellAddress key, double value)
*
*/
Property * Sheet::setQuantityProperty(CellAddress key, double value, const Base::Unit & unit)
App::Property * Sheet::setQuantityProperty(CellAddress key, double value, const Base::Unit & unit)
{
Property * prop = props.getPropertyByName(key.toString().c_str());
App::Property * prop = props.getPropertyByName(key.toString().c_str());
PropertySpreadsheetQuantity * quantityProp;
if (!prop || prop->getTypeId() != PropertySpreadsheetQuantity::getClassTypeId()) {
@ -502,8 +502,8 @@ Property * Sheet::setQuantityProperty(CellAddress key, double value, const Base:
props.removeDynamicProperty(key.toString().c_str());
propAddress.erase(prop);
}
Property * p = props.addDynamicProperty("Spreadsheet::PropertySpreadsheetQuantity", key.toString().c_str(), 0, 0, Prop_ReadOnly | Prop_Transient, true, true);
quantityProp = Spreadsheet::freecad_dynamic_cast<PropertySpreadsheetQuantity>(p);
App::Property * p = props.addDynamicProperty("Spreadsheet::PropertySpreadsheetQuantity", key.toString().c_str(), 0, 0, App::Prop_ReadOnly | App::Prop_Transient, true, true);
quantityProp = freecad_dynamic_cast<PropertySpreadsheetQuantity>(p);
quantityProp->StatusBits.set(3);
}
else
@ -527,17 +527,17 @@ Property * Sheet::setQuantityProperty(CellAddress key, double value, const Base:
*
*/
Property * Sheet::setStringProperty(CellAddress key, const std::string & value)
App::Property * Sheet::setStringProperty(CellAddress key, const std::string & value)
{
Property * prop = props.getPropertyByName(key.toString().c_str());
PropertyString * stringProp = Spreadsheet::freecad_dynamic_cast<PropertyString>(prop);
App::Property * prop = props.getPropertyByName(key.toString().c_str());
App::PropertyString * stringProp = freecad_dynamic_cast<App::PropertyString>(prop);
if (!stringProp) {
if (prop) {
props.removeDynamicProperty(key.toString().c_str());
propAddress.erase(prop);
}
stringProp = Spreadsheet::freecad_dynamic_cast<PropertyString>(props.addDynamicProperty("App::PropertyString", key.toString().c_str(), 0, 0, Prop_ReadOnly | Prop_Transient, true, true));
stringProp = freecad_dynamic_cast<App::PropertyString>(props.addDynamicProperty("App::PropertyString", key.toString().c_str(), 0, 0, App::Prop_ReadOnly | App::Prop_Transient, true, true));
stringProp->StatusBits.set(3);
}
@ -550,7 +550,7 @@ Property * Sheet::setStringProperty(CellAddress key, const std::string & value)
void Sheet::updateAlias(CellAddress key)
{
std::string alias;
Property * prop = props.getDynamicPropertyByName(key.toString().c_str());
App::Property * prop = props.getDynamicPropertyByName(key.toString().c_str());
if (!prop)
return;
@ -570,7 +570,7 @@ void Sheet::updateAlias(CellAddress key)
}
if (!aliasProp)
aliasProp = props.addDynamicProperty(prop->getTypeId().getName(), alias.c_str(), 0, 0, Prop_ReadOnly | Prop_Transient, true, true);
aliasProp = props.addDynamicProperty(prop->getTypeId().getName(), alias.c_str(), 0, 0, App::Prop_ReadOnly | App::Prop_Transient, true, true);
aliasProp->Paste(*prop);
}
@ -604,7 +604,7 @@ void Sheet::updateProperty(CellAddress key)
}
/* Eval returns either NumberExpression or StringExpression objects */
if (Spreadsheet::freecad_dynamic_cast<NumberExpression>(output)) {
if (freecad_dynamic_cast<NumberExpression>(output)) {
NumberExpression * number = static_cast<NumberExpression*>(output);
if (number->getUnit().isEmpty())
setFloatProperty(key, number->getValue());
@ -612,7 +612,7 @@ void Sheet::updateProperty(CellAddress key)
setQuantityProperty(key, number->getValue(), number->getUnit());
}
else
setStringProperty(key, Spreadsheet::freecad_dynamic_cast<StringExpression>(output)->getText().c_str());
setStringProperty(key, freecad_dynamic_cast<StringExpression>(output)->getText().c_str());
delete output;
}
@ -631,9 +631,9 @@ void Sheet::updateProperty(CellAddress key)
*
*/
Property *Sheet::getPropertyByName(const char* name) const
App::Property *Sheet::getPropertyByName(const char* name) const
{
Property * prop = getProperty(name);
App::Property * prop = getProperty(name);
if (prop)
return prop;
@ -641,7 +641,7 @@ Property *Sheet::getPropertyByName(const char* name) const
return DocumentObject::getPropertyByName(name);
}
const char *Sheet::getPropertyName(const Property *prop) const
const char *Sheet::getPropertyName(const App::Property *prop) const
{
const char * name = props.getPropertyName(prop);
@ -811,7 +811,7 @@ App::DocumentObjectExecReturn *Sheet::execute(void)
if (cellErrors.size() == 0)
return App::DocumentObject::StdReturn;
else
return new DocumentObjectExecReturn("One or more cells failed contains errors.", this);
return new App::DocumentObjectExecReturn("One or more cells failed contains errors.", this);
}
/**
@ -845,7 +845,7 @@ void Sheet::clear(CellAddress address, bool all)
{
Cell * cell = getCell(address);
std::string addr = address.toString();
Property * prop = props.getDynamicPropertyByName(addr.c_str());
App::Property * prop = props.getDynamicPropertyByName(addr.c_str());
// Remove alias, if defined
std::string aliasStr;
@ -1005,12 +1005,12 @@ void Sheet::setStyle(CellAddress address, const std::set<std::string> &_style)
cells.setStyle(address, _style);
}
void Sheet::setForeground(CellAddress address, const Color &color)
void Sheet::setForeground(CellAddress address, const App::Color &color)
{
cells.setForeground(address, color);
}
void Sheet::setBackground(CellAddress address, const Color &color)
void Sheet::setBackground(CellAddress address, const App::Color &color)
{
cells.setBackground(address, color);
}
@ -1087,17 +1087,17 @@ void Sheet::onDocumentRestored()
execute();
}
void Sheet::onRelabledDocument(const Document &document)
void Sheet::onRelabledDocument(const App::Document &document)
{
cells.renamedDocument(&document);
cells.purgeTouched();
}
void Sheet::onRenamedDocument(const Document &document)
void Sheet::onRenamedDocument(const App::Document &document)
{
}
void Sheet::observeDocument(Document * document)
void Sheet::observeDocument(App::Document * document)
{
ObserverMap::const_iterator it = observers.find(document->getName());
@ -1115,7 +1115,7 @@ void Sheet::observeDocument(Document * document)
TYPESYSTEM_SOURCE(Spreadsheet::PropertySpreadsheetQuantity, App::PropertyQuantity);
Property *PropertySpreadsheetQuantity::Copy() const
App::Property *PropertySpreadsheetQuantity::Copy() const
{
PropertySpreadsheetQuantity * obj = new PropertySpreadsheetQuantity();

View File

@ -41,7 +41,7 @@
#include <stack>
#include <deque>
#include <algorithm>
#include "Expression.h"
#include "SpreadsheetExpression.h"
#include <Base/Unit.h>
#include <App/PropertyUnits.h>
#include "Utils.h"
@ -65,7 +65,6 @@
#endif
using namespace Base;
using namespace App;
using namespace Spreadsheet;
Path::Path(const App::DocumentObject * _owner, const std::string & property)
@ -141,7 +140,7 @@ int Path::numComponents() const
return components.size();
}
Path Path::parse(const DocumentObject * docObj, const char *expr)
Path Path::parse(const App::DocumentObject * docObj, const char *expr)
{
return Path();
}
@ -173,17 +172,17 @@ std::string Path::toString() const
std::string Path::getPythonAccessor() const
{
const Property * prop = getProperty();
const App::Property * prop = getProperty();
if (!prop)
throw Exception(std::string("Property '") + getPropertyName() + std::string("' not found."));
const DocumentObject * docObj = Spreadsheet::freecad_dynamic_cast<DocumentObject>(prop->getContainer());
const App::DocumentObject * docObj = freecad_dynamic_cast<App::DocumentObject>(prop->getContainer());
if (!docObj)
throw Exception("Document object not found");
const Document * doc = docObj->getDocument();
const App::Document * doc = docObj->getDocument();
return "App.getDocument('" +
std::string(doc->getName()) + "')." +
@ -296,7 +295,7 @@ std::string Path::Component::toString() const
TYPESYSTEM_SOURCE_ABSTRACT(Spreadsheet::Expression, Base::BaseClass);
Expression::Expression(const DocumentObject *_owner)
Expression::Expression(const App::DocumentObject *_owner)
: owner(_owner)
{
@ -306,7 +305,7 @@ Expression::~Expression()
{
}
Expression * Expression::parse(const DocumentObject *owner, const std::string &buffer)
Expression * Expression::parse(const App::DocumentObject *owner, const std::string &buffer)
{
return ExpressionParser::parse(owner, buffer.c_str());
}
@ -317,7 +316,7 @@ Expression * Expression::parse(const DocumentObject *owner, const std::string &b
TYPESYSTEM_SOURCE(Spreadsheet::UnitExpression, Spreadsheet::Expression);
UnitExpression::UnitExpression(const DocumentObject *_owner, const Base::Quantity & _quantity, const std::string &_unitStr)
UnitExpression::UnitExpression(const App::DocumentObject *_owner, const Base::Quantity & _quantity, const std::string &_unitStr)
: Expression(_owner)
, quantity(_quantity)
, unitStr(_unitStr)
@ -386,7 +385,7 @@ Expression *UnitExpression::copy() const
TYPESYSTEM_SOURCE(Spreadsheet::NumberExpression, Spreadsheet::Expression);
NumberExpression::NumberExpression(const DocumentObject *_owner, const Quantity &_quantity)
NumberExpression::NumberExpression(const App::DocumentObject *_owner, const Quantity &_quantity)
: UnitExpression(_owner, _quantity)
{
}
@ -483,8 +482,8 @@ Expression * OperatorExpression::eval() const
NumberExpression * v2;
NumberExpression * output = 0;
v1 = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e1.get());
v2 = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e2.get());
v1 = freecad_dynamic_cast<NumberExpression>(e1.get());
v2 = freecad_dynamic_cast<NumberExpression>(e2.get());
if (v1 == 0 || v2 == 0)
throw Exception("Invalid expression");
@ -567,7 +566,7 @@ Expression *OperatorExpression::simplify() const
Expression * v2 = right->simplify();
// Both arguments reduced to numerics? Then evaluate and return answer
if (Spreadsheet::freecad_dynamic_cast<NumberExpression>(v1) && Spreadsheet::freecad_dynamic_cast<NumberExpression>(v2)) {
if (freecad_dynamic_cast<NumberExpression>(v1) && freecad_dynamic_cast<NumberExpression>(v2)) {
delete v1;
delete v2;
return eval();
@ -718,7 +717,7 @@ void OperatorExpression::visit(ExpressionVisitor &v)
TYPESYSTEM_SOURCE(Spreadsheet::FunctionExpression, Spreadsheet::UnitExpression);
FunctionExpression::FunctionExpression(const DocumentObject *_owner, Function _f, std::vector<Expression *> _args)
FunctionExpression::FunctionExpression(const App::DocumentObject *_owner, Function _f, std::vector<Expression *> _args)
: UnitExpression(_owner)
, f(_f)
, args(_args)
@ -785,7 +784,7 @@ Expression * FunctionExpression::eval() const
case MIN:
case MAX:
{
RangeExpression * v = Spreadsheet::freecad_dynamic_cast<RangeExpression>(args[0]);
RangeExpression * v = freecad_dynamic_cast<RangeExpression>(args[0]);
Quantity q;
Quantity mean;
Quantity M2;
@ -799,17 +798,17 @@ Expression * FunctionExpression::eval() const
Range range(v->getRange());
do {
Property * p = owner->getPropertyByName(range.address().c_str());
PropertyQuantity * qp;
PropertyFloat * fp;
App::Property * p = owner->getPropertyByName(range.address().c_str());
App::PropertyQuantity * qp;
App::PropertyFloat * fp;
Quantity value;
if (!p)
continue;
if ( (qp = Spreadsheet::freecad_dynamic_cast<PropertyQuantity>(p)) )
if ( (qp = freecad_dynamic_cast<App::PropertyQuantity>(p)) )
value = qp->getQuantityValue();
else if ( (fp = Spreadsheet::freecad_dynamic_cast<PropertyFloat>(p)) )
else if ( (fp = freecad_dynamic_cast<App::PropertyFloat>(p)) )
value = fp->getValue();
else
throw Exception("Invalid property type for aggregate");
@ -875,8 +874,8 @@ Expression * FunctionExpression::eval() const
std::auto_ptr<Expression> e1(args[0]->eval());
std::auto_ptr<Expression> e2(args.size() > 1 ? args[1]->eval() : 0);
NumberExpression * v1 = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e1.get());
NumberExpression * v2 = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e2.get());
NumberExpression * v1 = freecad_dynamic_cast<NumberExpression>(e1.get());
NumberExpression * v2 = freecad_dynamic_cast<NumberExpression>(e2.get());
double output = 0;
Unit unit;
double scaler = 1;
@ -1055,7 +1054,7 @@ Expression *FunctionExpression::simplify() const
Expression * v1 = args[0]->simplify();
// Argument simplified to numeric expression? Then return evaluate and return
if (Spreadsheet::freecad_dynamic_cast<NumberExpression>(v1)) {
if (freecad_dynamic_cast<NumberExpression>(v1)) {
switch (f) {
case ATAN2:
case MOD:
@ -1063,7 +1062,7 @@ Expression *FunctionExpression::simplify() const
{
Expression * v2 = args[1]->simplify();
if (Spreadsheet::freecad_dynamic_cast<NumberExpression>(v2)) {
if (freecad_dynamic_cast<NumberExpression>(v2)) {
delete v1;
delete v2;
return eval();
@ -1199,7 +1198,7 @@ void FunctionExpression::visit(ExpressionVisitor &v)
TYPESYSTEM_SOURCE(Spreadsheet::VariableExpression, Spreadsheet::UnitExpression);
VariableExpression::VariableExpression(const DocumentObject *_owner, Path _var)
VariableExpression::VariableExpression(const App::DocumentObject *_owner, Path _var)
: UnitExpression(_owner)
, var(_var)
{
@ -1228,11 +1227,11 @@ bool VariableExpression::isTouched() const
const App::DocumentObject * Path::getDocumentObject(const App::Document * doc, const std::string & name) const
{
DocumentObject * o1 = 0;
DocumentObject * o2 = 0;
std::vector<DocumentObject*> docObjects = doc->getObjects();
App::DocumentObject * o1 = 0;
App::DocumentObject * o2 = 0;
std::vector<App::DocumentObject*> docObjects = doc->getObjects();
for (std::vector<DocumentObject*>::iterator j = docObjects.begin(); j != docObjects.end(); ++j) {
for (std::vector<App::DocumentObject*>::iterator j = docObjects.begin(); j != docObjects.end(); ++j) {
if (strcmp((*j)->Label.getValue(), name.c_str()) == 0) {
// Found object with matching label
if (o1 != 0)
@ -1323,7 +1322,7 @@ void Path::resolve()
}
}
Document * Path::getDocument() const
App::Document * Path::getDocument() const
{
App::Document * doc = 0;
const std::vector<App::Document*> docs = App::GetApplication().getDocuments();
@ -1339,7 +1338,7 @@ Document * Path::getDocument() const
return doc;
}
const DocumentObject *Path::getDocumentObject() const
const App::DocumentObject *Path::getDocumentObject() const
{
const App::Document * doc = getDocument();
@ -1349,7 +1348,7 @@ const DocumentObject *Path::getDocumentObject() const
return getDocumentObject(doc, documentObjectName);
}
const Property *Path::getProperty() const
const App::Property *Path::getProperty() const
{
const App::Document * doc = getDocument();
@ -1376,12 +1375,12 @@ const Property *Path::getProperty() const
* @returns The Property object if it is derived from either PropertyInteger, PropertyFloat, or PropertyString.
*/
const Property * VariableExpression::getProperty() const
const App::Property * VariableExpression::getProperty() const
{
#ifdef FULL_EXPRESSION_SUPPORT
const Property * prop = docObject->getPropertyByPath(var);
#else
const Property * prop = var.getProperty();
const App::Property * prop = var.getProperty();
#endif
if (prop)
return prop;
@ -1523,7 +1522,7 @@ void VariableExpression::renameDocument(const std::string &oldName, const std::s
TYPESYSTEM_SOURCE(Spreadsheet::StringExpression, Spreadsheet::Expression);
StringExpression::StringExpression(const DocumentObject *_owner, const std::string &_text)
StringExpression::StringExpression(const App::DocumentObject *_owner, const std::string &_text)
: Expression(_owner)
, text(_text)
{
@ -1563,7 +1562,7 @@ Expression *StringExpression::copy() const
TYPESYSTEM_SOURCE(Spreadsheet::ConditionalExpression, Spreadsheet::Expression);
ConditionalExpression::ConditionalExpression(const DocumentObject *_owner, Expression *_condition, Expression *_trueExpr, Expression *_falseExpr)
ConditionalExpression::ConditionalExpression(const App::DocumentObject *_owner, Expression *_condition, Expression *_trueExpr, Expression *_falseExpr)
: Expression(_owner)
, condition(_condition)
, trueExpr(_trueExpr)
@ -1586,7 +1585,7 @@ bool ConditionalExpression::isTouched() const
Expression *ConditionalExpression::eval() const
{
std::auto_ptr<Expression> e(condition->eval());
NumberExpression * v = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e.get());
NumberExpression * v = freecad_dynamic_cast<NumberExpression>(e.get());
if (v == 0)
throw Exception("Invalid expression");
@ -1600,7 +1599,7 @@ Expression *ConditionalExpression::eval() const
Expression *ConditionalExpression::simplify() const
{
std::auto_ptr<Expression> e(condition->simplify());
NumberExpression * v = Spreadsheet::freecad_dynamic_cast<NumberExpression>(e.get());
NumberExpression * v = freecad_dynamic_cast<NumberExpression>(e.get());
if (v == 0)
return new ConditionalExpression(owner, condition->simplify(), trueExpr->simplify(), falseExpr->simplify());
@ -1643,7 +1642,7 @@ void ConditionalExpression::visit(ExpressionVisitor &v)
TYPESYSTEM_SOURCE(Spreadsheet::ConstantExpression, Spreadsheet::NumberExpression);
ConstantExpression::ConstantExpression(const DocumentObject *_owner, std::string _name, const Quantity & _quantity)
ConstantExpression::ConstantExpression(const App::DocumentObject *_owner, std::string _name, const Quantity & _quantity)
: NumberExpression(_owner, _quantity)
, name(_name)
{
@ -1702,15 +1701,19 @@ static std::stack<std::string> labels; /**< Label string primitiv
static std::map<std::string, FunctionExpression::Function> registered_functions; /**< Registerd functions */
// show the parser the lexer method
#undef YYTOKENTYPE
#undef YYSTYPE
#undef YYSTYPE_ISDECLARED
#define yylex ExpressionParserlex
int ExpressionParserlex(void);
// Parser, defined in ExpressionParser.y
#include "ExpressionParser.tab.c"
#include <Mod/Spreadsheet/App/ExpressionParser.tab.c>
#include <Mod/Spreadsheet/App/ExpressionParser.tab.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Scanner, defined in ExpressionParser.l
#include "lex.ExpressionParser.c"
#include <Mod/Spreadsheet/App/lex.ExpressionParser.c>
#endif // DOXYGEN_SHOULD_SKIP_THIS
#ifdef _MSC_VER
# define strdup _strdup
@ -1776,7 +1779,7 @@ std::string Path::String::toString() const
TYPESYSTEM_SOURCE(Spreadsheet::RangeExpression, Spreadsheet::Expression);
RangeExpression::RangeExpression(const DocumentObject *_owner, const std::string &begin, const std::string &end)
RangeExpression::RangeExpression(const App::DocumentObject *_owner, const std::string &begin, const std::string &end)
: Expression(_owner)
, range((begin + ":" + end).c_str())
{
@ -1787,7 +1790,7 @@ bool RangeExpression::isTouched() const
Range i(range);
do {
Property * prop = owner->getPropertyByName(i.address().c_str());
App::Property * prop = owner->getPropertyByName(i.address().c_str());
if (prop && prop->isTouched())
return true;
@ -1895,13 +1898,13 @@ UnitExpression * ExpressionParser::parseUnit(const App::DocumentObject *owner, c
delete ScanResult;
if (unitExpression) {
NumberExpression * num = Spreadsheet::freecad_dynamic_cast<NumberExpression>(simplified);
NumberExpression * num = freecad_dynamic_cast<NumberExpression>(simplified);
if (num) {
simplified = new UnitExpression(num->getOwner(), num->getQuantity());
delete num;
}
return Spreadsheet::freecad_dynamic_cast<UnitExpression>(simplified);
return freecad_dynamic_cast<UnitExpression>(simplified);
}
else {
delete simplified;

View File

@ -20,8 +20,8 @@
* *
***************************************************************************/
#ifndef EXPRESSION_H
#define EXPRESSION_H
#ifndef SPREADSHEET_EXPRESSION_H
#define SPREADSHEET_EXPRESSION_H
#include <string>
#include <App/DocumentObject.h>

View File

@ -28,6 +28,7 @@
#include <set>
#include <memory>
#include <Base/BaseClass.h>
#include "PreCompiled.h"
namespace Spreadsheet {
@ -82,14 +83,6 @@ protected:
short _col;
};
template<typename T> T * freecad_dynamic_cast(Base::BaseClass * t)
{
if (t && t->isDerivedFrom(T::getClassTypeId()))
return static_cast<T*>(t);
else
return 0;
}
}
#endif // UTILS_H

View File

@ -43,6 +43,7 @@
using namespace SpreadsheetGui;
using namespace Spreadsheet;
using namespace Base;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ -64,7 +65,7 @@ void CmdSpreadsheetMergeCells::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -91,7 +92,7 @@ bool CmdSpreadsheetMergeCells::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -118,7 +119,7 @@ void CmdSpreadsheetSplitCell::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -140,7 +141,7 @@ bool CmdSpreadsheetSplitCell::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
QModelIndex current = sheetView->currentIndex();
@ -180,7 +181,7 @@ void CmdSpreadsheetImport::activated(int iMsg)
&selectedFilter);
if (!fileName.isEmpty()) {
std::string FeatName = getUniqueObjectName("Spreadsheet");
Sheet * sheet = Spreadsheet::freecad_dynamic_cast<Sheet>(App::GetApplication().getActiveDocument()->addObject("Spreadsheet::Sheet", FeatName.c_str()));
Sheet * sheet = freecad_dynamic_cast<Sheet>(App::GetApplication().getActiveDocument()->addObject("Spreadsheet::Sheet", FeatName.c_str()));
sheet->importFromFile(fileName.toStdString(), '\t', '"', '\\');
sheet->execute();
@ -212,7 +213,7 @@ void CmdSpreadsheetExport::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -233,7 +234,7 @@ bool CmdSpreadsheetExport::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -260,7 +261,7 @@ void CmdSpreadsheetAlignLeft::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -284,7 +285,7 @@ bool CmdSpreadsheetAlignLeft::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -311,7 +312,7 @@ void CmdSpreadsheetAlignCenter::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -335,7 +336,7 @@ bool CmdSpreadsheetAlignCenter::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -362,7 +363,7 @@ void CmdSpreadsheetAlignRight::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -386,7 +387,7 @@ bool CmdSpreadsheetAlignRight::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -413,7 +414,7 @@ void CmdSpreadsheetAlignTop::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -437,7 +438,7 @@ bool CmdSpreadsheetAlignTop::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -464,7 +465,7 @@ void CmdSpreadsheetAlignBottom::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -488,7 +489,7 @@ bool CmdSpreadsheetAlignBottom::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -515,7 +516,7 @@ void CmdSpreadsheetAlignVCenter::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -539,7 +540,7 @@ bool CmdSpreadsheetAlignVCenter::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -566,7 +567,7 @@ void CmdSpreadsheetStyleBold::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -612,7 +613,7 @@ bool CmdSpreadsheetStyleBold::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -639,7 +640,7 @@ void CmdSpreadsheetStyleItalic::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -685,7 +686,7 @@ bool CmdSpreadsheetStyleItalic::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}
@ -712,7 +713,7 @@ void CmdSpreadsheetStyleUnderline::activated(int iMsg)
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -758,7 +759,7 @@ bool CmdSpreadsheetStyleUnderline::isActive()
{
if (getActiveGuiDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
if (activeWindow && Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
if (activeWindow && freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow))
return true;
}

View File

@ -1,5 +1,6 @@
/***************************************************************************
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2002 *
* Copyright (c) Eivind Kvedalen (eivind@kvedalen.name) 2015 *
* *
* This file is part of the FreeCAD CAx development system. *
* *
@ -21,8 +22,8 @@
***************************************************************************/
#ifndef __PRECOMPILED_GUI__
#define __PRECOMPILED_GUI__
#ifndef SPREADSHEET_PRECOMPILED_H
#define SPREADSHEET_PRECOMPILED_H
#include <FCConfig.h>
@ -76,4 +77,4 @@
#endif //_PreComp_
#endif // __PRECOMPILED_GUI__
#endif // SPREADSHEET_PRECOMPILED_H

View File

@ -22,7 +22,7 @@
#include "PropertiesDialog.h"
#include <Base/Tools.h>
#include <Mod/Spreadsheet/App/Expression.h>
#include <Mod/Spreadsheet/App/SpreadsheetExpression.h>
#include <Mod/Spreadsheet/App/Range.h>
#include <Gui/Command.h>
#include "ui_PropertiesDialog.h"

View File

@ -29,7 +29,7 @@
#endif
#include "SheetModel.h"
#include <Mod/Spreadsheet/App/Expression.h>
#include <Mod/Spreadsheet/App/SpreadsheetExpression.h>
#include <Mod/Spreadsheet/App/Utils.h>
#include "../App/Sheet.h"
#include <Gui/Command.h>

View File

@ -37,7 +37,7 @@
#include "SpreadsheetView.h"
#include "SpreadsheetDelegate.h"
#include <Mod/Spreadsheet/App/Expression.h>
#include <Mod/Spreadsheet/App/SpreadsheetExpression.h>
#include <Mod/Spreadsheet/App/Sheet.h>
#include <Mod/Spreadsheet/App/Range.h>
#include <Gui/MainWindow.h>

View File

@ -46,6 +46,7 @@
#include <Base/Console.h>
#include <sstream>
using namespace Base;
using namespace Gui;
using namespace SpreadsheetGui;
using namespace Spreadsheet;
@ -137,7 +138,7 @@ void ViewProviderSheet::setupContextMenu(QMenu * menu, QObject *receiver, const
Sheet *ViewProviderSheet::getSpreadsheetObject() const
{
return Spreadsheet::freecad_dynamic_cast<Sheet>(pcObject);
return freecad_dynamic_cast<Sheet>(pcObject);
}
bool ViewProviderSheet::onDelete(const std::vector<std::string> &)
@ -149,7 +150,7 @@ bool ViewProviderSheet::onDelete(const std::vector<std::string> &)
// View is not closed, delete cell contents instead if it is active
if (Gui::Application::Instance->activeDocument()) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();

View File

@ -40,6 +40,7 @@
#include "Mod/Spreadsheet/App/Range.h"
#include "Mod/Spreadsheet/Gui/SpreadsheetView.h"
using namespace Base;
using namespace SpreadsheetGui;
using namespace Spreadsheet;
@ -107,7 +108,7 @@ void WorkbenchHelper::setForegroundColor(const QColor & color)
if (doc) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();
@ -134,7 +135,7 @@ void WorkbenchHelper::setBackgroundColor(const QColor & color)
if (doc) {
Gui::MDIView* activeWindow = Gui::getMainWindow()->activeWindow();
SpreadsheetGui::SheetView * sheetView = Spreadsheet::freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
SpreadsheetGui::SheetView * sheetView = freecad_dynamic_cast<SpreadsheetGui::SheetView>(activeWindow);
if (sheetView) {
Sheet * sheet = sheetView->getSheet();