Kaydet (Commit) 058dea3b authored tarafından Markus Mohrhard's avatar Markus Mohrhard

Revert "Time wraparound validation feature"

This reverts commit c01bcbc8.

It still needs to be determined if this really was a good idea or a
brain fart from me.

There are some serious interop issues around the issue.
üst 2ec813b4
...@@ -154,12 +154,10 @@ public: ...@@ -154,12 +154,10 @@ public:
class SC_DLLPUBLIC ScConditionEntry : public ScFormatEntry class SC_DLLPUBLIC ScConditionEntry : public ScFormatEntry
{ {
// stored data: // stored data:
protected:
ScConditionMode eOp; ScConditionMode eOp;
sal_uInt16 nOptions; sal_uInt16 nOptions;
double nVal1; // input or calculated double nVal1; // input or calculated
double nVal2; double nVal2;
private:
OUString aStrVal1; // input or calculated OUString aStrVal1; // input or calculated
OUString aStrVal2; OUString aStrVal2;
OUString aStrNmsp1; // namespace to be used on (re)compilation, e.g. in XML import OUString aStrNmsp1; // namespace to be used on (re)compilation, e.g. in XML import
......
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
#include "interpre.hxx" #include "interpre.hxx"
#include "columniterator.hxx" #include "columniterator.hxx"
#include "types.hxx" #include "types.hxx"
#include "validat.hxx"
#include "conditio.hxx" #include "conditio.hxx"
#include "colorscale.hxx" #include "colorscale.hxx"
#include "fillinfo.hxx" #include "fillinfo.hxx"
...@@ -5691,31 +5690,6 @@ void Test::testCondFormatInsertRow() ...@@ -5691,31 +5690,6 @@ void Test::testCondFormatInsertRow()
m_pDoc->DeleteTab(0); m_pDoc->DeleteTab(0);
} }
void Test::testValidity()
{
m_pDoc->InsertTab(0, "Test");
m_pDoc->SetValue( 0, 0, 0, 22.0/24.0 );
m_pDoc->SetValue( 2, 0, 0, 23.0/24.0 );
m_pDoc->SetValue( 4, 0, 0, 24.0/24.0 );
// invalid between 2300-0100 hrs
ScValidationData* pData0 = new ScValidationData( SC_VALID_TIME, SC_COND_NOTBETWEEN,
OUString::number(23.0/24.0), OUString::number(1.0/24.0), m_pDoc, ScAddress(0,0,0) );
ScValidationData* pData1 = new ScValidationData( SC_VALID_TIME, SC_COND_NOTBETWEEN,
OUString::number(23.0/24.0), OUString::number(1.0/24.0), m_pDoc, ScAddress(2,0,0) );
ScValidationData* pData2 = new ScValidationData( SC_VALID_TIME, SC_COND_NOTBETWEEN,
OUString::number(23.0/24.0), OUString::number(1.0/24.0), m_pDoc, ScAddress(4,0,0) );
ScRefCellValue aCell;
aCell.assign(*m_pDoc, ScAddress(0,0,0));
CPPUNIT_ASSERT( pData0->IsDataValid( aCell, ScAddress(0,0,0) ) );
aCell.assign(*m_pDoc, ScAddress(2,0,0));
CPPUNIT_ASSERT( !pData1->IsDataValid( aCell, ScAddress(2,0,0) ) );
aCell.assign(*m_pDoc, ScAddress(4,0,0));
CPPUNIT_ASSERT( !pData2->IsDataValid( aCell, ScAddress(4,0,0) ) );
}
void Test::testCondFormatInsertDeleteSheets() void Test::testCondFormatInsertDeleteSheets()
{ {
m_pDoc->InsertTab(0, "Test"); m_pDoc->InsertTab(0, "Test");
......
...@@ -433,7 +433,6 @@ public: ...@@ -433,7 +433,6 @@ public:
void testCondFormatINSDEL(); void testCondFormatINSDEL();
void testCondFormatInsertRow(); void testCondFormatInsertRow();
void testCondFormatInsertCol(); void testCondFormatInsertCol();
void testValidity();
void testCondFormatInsertDeleteSheets(); void testCondFormatInsertDeleteSheets();
void testCondCopyPaste(); void testCondCopyPaste();
void testCondCopyPasteSingleCell(); //e.g. fdo#82503 void testCondCopyPasteSingleCell(); //e.g. fdo#82503
...@@ -670,7 +669,6 @@ public: ...@@ -670,7 +669,6 @@ public:
CPPUNIT_TEST(testCondFormatINSDEL); CPPUNIT_TEST(testCondFormatINSDEL);
CPPUNIT_TEST(testCondFormatInsertRow); CPPUNIT_TEST(testCondFormatInsertRow);
CPPUNIT_TEST(testCondFormatInsertCol); CPPUNIT_TEST(testCondFormatInsertCol);
CPPUNIT_TEST(testValidity);
CPPUNIT_TEST(testCondFormatInsertDeleteSheets); CPPUNIT_TEST(testCondFormatInsertDeleteSheets);
CPPUNIT_TEST(testCondCopyPaste); CPPUNIT_TEST(testCondCopyPaste);
CPPUNIT_TEST(testCondCopyPasteSingleCell); CPPUNIT_TEST(testCondCopyPasteSingleCell);
......
...@@ -543,54 +543,7 @@ bool ScValidationData::IsDataValid( ScRefCellValue& rCell, const ScAddress& rPos ...@@ -543,54 +543,7 @@ bool ScValidationData::IsDataValid( ScRefCellValue& rCell, const ScAddress& rPos
OSL_FAIL("not yet done"); OSL_FAIL("not yet done");
break; break;
} }
if (eDataMode == SC_VALID_TIME) {
// consider only time portion (i.e. decimal)
double nComp1 = (nVal1 - floor(nVal1));
double nComp2 = (nVal2 - floor(nVal2));
double nInVal = (nVal - floor(nVal ));
switch (eOp)
{
case SC_COND_NONE:
break; // Always sal_False
case SC_COND_EQUAL:
bOk = ::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_NOTEQUAL:
bOk = !::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_GREATER:
bOk = ( nInVal > nComp1 ) && !::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_EQGREATER:
bOk = ( nInVal >= nComp1 ) || ::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_LESS:
bOk = ( nInVal < nComp1 ) && !::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_EQLESS:
bOk = ( nInVal <= nComp1 ) || ::rtl::math::approxEqual( nInVal, nComp1 );
break;
case SC_COND_BETWEEN:
if (nComp2 < nComp1) // time wraparound
bOk = ( nInVal >= nComp1 || nInVal <= nComp2 ) ||
::rtl::math::approxEqual( nInVal, nComp1 ) || ::rtl::math::approxEqual( nInVal, nComp2 );
else
bOk = ( nInVal >= nComp1 && nInVal <= nComp2 ) ||
::rtl::math::approxEqual( nInVal, nComp1 ) || ::rtl::math::approxEqual( nInVal, nComp2 );
break;
case SC_COND_NOTBETWEEN:
if (nComp2 < nComp1) // time wraparound
bOk = ( nInVal < nComp1 && nInVal > nComp2 ) &&
!::rtl::math::approxEqual( nInVal, nComp1 ) && !::rtl::math::approxEqual( nInVal, nComp2 );
else
bOk = ( nInVal < nComp1 || nInVal > nComp2 ) &&
!::rtl::math::approxEqual( nInVal, nComp1 ) && !::rtl::math::approxEqual( nInVal, nComp2 );
break;
default:
SAL_WARN("sc", "unknown operation at ScValidationData::IsDataValid()");
break;
}
}
return bOk; return bOk;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment