move anonymous namespace to .cxx
Change-Id: I52d2ed4b0454233da21e9040dd324772247113c1
This commit is contained in:
@@ -32,8 +32,226 @@
|
||||
#include "docsh.hxx"
|
||||
#include "docfunc.hxx"
|
||||
#include "sccollaboration.hxx"
|
||||
#include <editeng/editobj.hxx>
|
||||
#include <tubes/manager.hxx>
|
||||
|
||||
namespace {
|
||||
|
||||
OUString formulaCellToString( ScFormulaCell *pCell )
|
||||
{
|
||||
(void)pCell; // FIXME: implement me
|
||||
return OUString();
|
||||
}
|
||||
|
||||
OUString editToString( const EditTextObject& /*rEditText*/ )
|
||||
{
|
||||
// FIXME: implement me.
|
||||
return OUString();
|
||||
}
|
||||
|
||||
EditTextObject stringToEdit( const OUString& rStr )
|
||||
{
|
||||
// FIXME: implement me.
|
||||
return EditTextObject();
|
||||
}
|
||||
|
||||
ScFormulaCell* stringToFormulaCell( const OUString &rString )
|
||||
{
|
||||
(void)rString; // FIXME: implement me
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct ProtocolError {
|
||||
const char *message;
|
||||
};
|
||||
|
||||
class ScChangeOpReader {
|
||||
std::vector< rtl::OUString > maArgs;
|
||||
|
||||
public:
|
||||
ScChangeOpReader( const rtl::OUString &rString)
|
||||
{
|
||||
// will need to handle escaping etc.
|
||||
// Surely someone else wrote this before ! [!?]
|
||||
enum {
|
||||
IN_TEXT, CHECK_QUOTE, FIND_LAST_QUOTE, SKIP_SEMI
|
||||
} eState = CHECK_QUOTE;
|
||||
|
||||
sal_Int32 nStart = 0;
|
||||
for (sal_Int32 n = 0; n < rString.getLength(); n++)
|
||||
{
|
||||
if (rString[n] == '\\')
|
||||
{
|
||||
n++; // skip next char
|
||||
continue;
|
||||
}
|
||||
switch (eState) {
|
||||
case CHECK_QUOTE:
|
||||
if (rString[n] == '"')
|
||||
{
|
||||
nStart = n + 1;
|
||||
eState = FIND_LAST_QUOTE;
|
||||
break;
|
||||
}
|
||||
// else drop through
|
||||
case IN_TEXT:
|
||||
if (rString[n] == ';')
|
||||
{
|
||||
maArgs.push_back( rString.copy( nStart, n - nStart ) );
|
||||
nStart = n + 1;
|
||||
eState = CHECK_QUOTE;
|
||||
}
|
||||
break;
|
||||
case FIND_LAST_QUOTE:
|
||||
if (rString[n] == '"')
|
||||
{
|
||||
maArgs.push_back( rString.copy( nStart, n - nStart ) );
|
||||
eState = SKIP_SEMI;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SKIP_SEMI:
|
||||
if (rString[n] == ';')
|
||||
{
|
||||
nStart = n + 1;
|
||||
eState = CHECK_QUOTE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( nStart < rString.getLength())
|
||||
maArgs.push_back( rString.copy( nStart, rString.getLength() - nStart ) );
|
||||
}
|
||||
~ScChangeOpReader() {}
|
||||
|
||||
rtl::OUString getMethod()
|
||||
{
|
||||
return maArgs[0];
|
||||
}
|
||||
|
||||
size_t getArgCount() { return maArgs.size(); }
|
||||
|
||||
rtl::OUString getString( sal_Int32 n )
|
||||
{
|
||||
if (n > 0 && (size_t)n < getArgCount() )
|
||||
{
|
||||
rtl::OUString aUStr( maArgs[ n ] );
|
||||
ScGlobal::EraseQuotes( aUStr );
|
||||
return aUStr;
|
||||
} else
|
||||
return rtl::OUString();
|
||||
}
|
||||
|
||||
ScAddress getAddress( sal_Int32 n )
|
||||
{
|
||||
ScAddress aAddr;
|
||||
rtl::OUString aToken( getString( n ) );
|
||||
aAddr.Parse( aToken );
|
||||
return aAddr;
|
||||
}
|
||||
|
||||
sal_Int32 getInt( sal_Int32 n )
|
||||
{
|
||||
return getString( n ).toInt32();
|
||||
}
|
||||
|
||||
bool getBool( sal_Int32 n )
|
||||
{
|
||||
return getString( n ).equalsIgnoreAsciiCase( "true" );
|
||||
}
|
||||
|
||||
ScFormulaCell* getFormulaCell( sal_Int32 n )
|
||||
{
|
||||
return stringToFormulaCell( getString( n ) );
|
||||
}
|
||||
|
||||
double getDouble( sal_Int32 n )
|
||||
{
|
||||
return getString(n).toDouble();
|
||||
}
|
||||
|
||||
EditTextObject getEdit( sal_Int32 n )
|
||||
{
|
||||
return stringToEdit(getString(n));
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
// Ye noddy mangling - needs improvement ...
|
||||
// method name ';' then arguments ; separated
|
||||
class ScChangeOpWriter
|
||||
{
|
||||
rtl::OUStringBuffer aMessage;
|
||||
void appendSeparator()
|
||||
{
|
||||
aMessage.append( sal_Unicode( ';' ) );
|
||||
}
|
||||
|
||||
public:
|
||||
ScChangeOpWriter( const char *pName )
|
||||
{
|
||||
aMessage.appendAscii( pName );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendString( const rtl::OUString &rStr )
|
||||
{
|
||||
if ( rStr.indexOf( sal_Unicode( '"' ) ) >= 0 ||
|
||||
rStr.indexOf( sal_Unicode( ';' ) ) >= 0 )
|
||||
{
|
||||
rtl::OUString aQuoted( rStr );
|
||||
ScGlobal::AddQuotes( aQuoted, sal_Unicode( '"' ) );
|
||||
aMessage.append( aQuoted );
|
||||
}
|
||||
else
|
||||
aMessage.append( rStr );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendAddress( const ScAddress &rPos )
|
||||
{
|
||||
rtl::OUString aStr;
|
||||
rPos.Format( aStr, SCA_VALID );
|
||||
aMessage.append( aStr );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendInt( sal_Int32 i )
|
||||
{
|
||||
aMessage.append( i );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendBool( sal_Bool b )
|
||||
{
|
||||
aMessage.appendAscii( b ? "true" : "false" );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendFormulaCell( ScFormulaCell *pCell )
|
||||
{
|
||||
appendString( formulaCellToString( pCell ) );
|
||||
}
|
||||
|
||||
void appendEditText( const EditTextObject& rStr )
|
||||
{
|
||||
appendString( editToString(rStr) );
|
||||
}
|
||||
|
||||
void appendDouble( double fVal )
|
||||
{
|
||||
aMessage.append(fVal);
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
rtl::OString toString()
|
||||
{
|
||||
return rtl::OUStringToOString( aMessage.toString(), RTL_TEXTENCODING_UTF8 );
|
||||
}
|
||||
};
|
||||
|
||||
void ScDocFuncSend::RecvMessage( const rtl::OString &rString )
|
||||
{
|
||||
try {
|
||||
|
@@ -14,223 +14,7 @@
|
||||
|
||||
#include "docfunc.hxx"
|
||||
class ScCollaboration;
|
||||
|
||||
namespace {
|
||||
|
||||
OUString formulaCellToString( ScFormulaCell *pCell )
|
||||
{
|
||||
(void)pCell; // FIXME: implement me
|
||||
return OUString();
|
||||
}
|
||||
|
||||
OUString editToString( const EditTextObject& /*rEditText*/ )
|
||||
{
|
||||
// FIXME: implement me.
|
||||
return OUString();
|
||||
}
|
||||
|
||||
EditTextObject stringToEdit( const OUString& rStr )
|
||||
{
|
||||
// FIXME: implement me.
|
||||
return EditTextObject();
|
||||
}
|
||||
|
||||
ScFormulaCell* stringToFormulaCell( const OUString &rString )
|
||||
{
|
||||
(void)rString; // FIXME: implement me
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Ye noddy mangling - needs improvement ...
|
||||
// method name ';' then arguments ; separated
|
||||
class ScChangeOpWriter
|
||||
{
|
||||
rtl::OUStringBuffer aMessage;
|
||||
void appendSeparator()
|
||||
{
|
||||
aMessage.append( sal_Unicode( ';' ) );
|
||||
}
|
||||
|
||||
public:
|
||||
ScChangeOpWriter( const char *pName )
|
||||
{
|
||||
aMessage.appendAscii( pName );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendString( const rtl::OUString &rStr )
|
||||
{
|
||||
if ( rStr.indexOf( sal_Unicode( '"' ) ) >= 0 ||
|
||||
rStr.indexOf( sal_Unicode( ';' ) ) >= 0 )
|
||||
{
|
||||
rtl::OUString aQuoted( rStr );
|
||||
ScGlobal::AddQuotes( aQuoted, sal_Unicode( '"' ) );
|
||||
aMessage.append( aQuoted );
|
||||
}
|
||||
else
|
||||
aMessage.append( rStr );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendAddress( const ScAddress &rPos )
|
||||
{
|
||||
rtl::OUString aStr;
|
||||
rPos.Format( aStr, SCA_VALID );
|
||||
aMessage.append( aStr );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendInt( sal_Int32 i )
|
||||
{
|
||||
aMessage.append( i );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendBool( sal_Bool b )
|
||||
{
|
||||
aMessage.appendAscii( b ? "true" : "false" );
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
void appendFormulaCell( ScFormulaCell *pCell )
|
||||
{
|
||||
appendString( formulaCellToString( pCell ) );
|
||||
}
|
||||
|
||||
void appendEditText( const EditTextObject& rStr )
|
||||
{
|
||||
appendString( editToString(rStr) );
|
||||
}
|
||||
|
||||
void appendDouble( double fVal )
|
||||
{
|
||||
aMessage.append(fVal);
|
||||
appendSeparator();
|
||||
}
|
||||
|
||||
rtl::OString toString()
|
||||
{
|
||||
return rtl::OUStringToOString( aMessage.toString(), RTL_TEXTENCODING_UTF8 );
|
||||
}
|
||||
};
|
||||
|
||||
struct ProtocolError {
|
||||
const char *message;
|
||||
};
|
||||
|
||||
class ScChangeOpReader {
|
||||
std::vector< rtl::OUString > maArgs;
|
||||
|
||||
public:
|
||||
ScChangeOpReader( const rtl::OUString &rString)
|
||||
{
|
||||
// will need to handle escaping etc.
|
||||
// Surely someone else wrote this before ! [!?]
|
||||
enum {
|
||||
IN_TEXT, CHECK_QUOTE, FIND_LAST_QUOTE, SKIP_SEMI
|
||||
} eState = CHECK_QUOTE;
|
||||
|
||||
sal_Int32 nStart = 0;
|
||||
for (sal_Int32 n = 0; n < rString.getLength(); n++)
|
||||
{
|
||||
if (rString[n] == '\\')
|
||||
{
|
||||
n++; // skip next char
|
||||
continue;
|
||||
}
|
||||
switch (eState) {
|
||||
case CHECK_QUOTE:
|
||||
if (rString[n] == '"')
|
||||
{
|
||||
nStart = n + 1;
|
||||
eState = FIND_LAST_QUOTE;
|
||||
break;
|
||||
}
|
||||
// else drop through
|
||||
case IN_TEXT:
|
||||
if (rString[n] == ';')
|
||||
{
|
||||
maArgs.push_back( rString.copy( nStart, n - nStart ) );
|
||||
nStart = n + 1;
|
||||
eState = CHECK_QUOTE;
|
||||
}
|
||||
break;
|
||||
case FIND_LAST_QUOTE:
|
||||
if (rString[n] == '"')
|
||||
{
|
||||
maArgs.push_back( rString.copy( nStart, n - nStart ) );
|
||||
eState = SKIP_SEMI;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SKIP_SEMI:
|
||||
if (rString[n] == ';')
|
||||
{
|
||||
nStart = n + 1;
|
||||
eState = CHECK_QUOTE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( nStart < rString.getLength())
|
||||
maArgs.push_back( rString.copy( nStart, rString.getLength() - nStart ) );
|
||||
}
|
||||
~ScChangeOpReader() {}
|
||||
|
||||
rtl::OUString getMethod()
|
||||
{
|
||||
return maArgs[0];
|
||||
}
|
||||
|
||||
size_t getArgCount() { return maArgs.size(); }
|
||||
|
||||
rtl::OUString getString( sal_Int32 n )
|
||||
{
|
||||
if (n > 0 && (size_t)n < getArgCount() )
|
||||
{
|
||||
rtl::OUString aUStr( maArgs[ n ] );
|
||||
ScGlobal::EraseQuotes( aUStr );
|
||||
return aUStr;
|
||||
} else
|
||||
return rtl::OUString();
|
||||
}
|
||||
|
||||
ScAddress getAddress( sal_Int32 n )
|
||||
{
|
||||
ScAddress aAddr;
|
||||
rtl::OUString aToken( getString( n ) );
|
||||
aAddr.Parse( aToken );
|
||||
return aAddr;
|
||||
}
|
||||
|
||||
sal_Int32 getInt( sal_Int32 n )
|
||||
{
|
||||
return getString( n ).toInt32();
|
||||
}
|
||||
|
||||
bool getBool( sal_Int32 n )
|
||||
{
|
||||
return getString( n ).equalsIgnoreAsciiCase( "true" );
|
||||
}
|
||||
|
||||
ScFormulaCell* getFormulaCell( sal_Int32 n )
|
||||
{
|
||||
return stringToFormulaCell( getString( n ) );
|
||||
}
|
||||
|
||||
double getDouble( sal_Int32 n )
|
||||
{
|
||||
return getString(n).toDouble();
|
||||
}
|
||||
|
||||
EditTextObject getEdit( sal_Int32 n )
|
||||
{
|
||||
return stringToEdit(getString(n));
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
} // anonymous namespace
|
||||
class ScChangeOpWriter;
|
||||
|
||||
class ScDocFuncSend : public ScDocFunc
|
||||
{
|
||||
|
Reference in New Issue
Block a user