Kaydet (Commit) 844c9279 authored tarafından Gulsah Kose's avatar Gulsah Kose Kaydeden (comit) Gülşah Köse

[Pardus] tdf#108989 Add contextual validity command.

When cursor is in a cell has following validity attributes
SC_VALID_WHOLE, SC_VALID_DECIMAL, SC_VALID_DATE,
SC_VALID_TIME,SC_VALID_TEXTLEN, SC_VALID_LIST,
SC_VALID_CUSTOM, Validity command appears on context
menu.

This patch is sponsored by ULAKBIM/Pardus project.

Change-Id: I47c0de7b62befdf02c343c1419cf32441d8f4df2
Signed-off-by: 's avatarGulsah Kose <gulsah.1004@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/48067Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarHeiko Tietze <tietze.heiko@gmail.com>
Tested-by: 's avatarHeiko Tietze <tietze.heiko@gmail.com>
üst 2adf8113
...@@ -893,6 +893,11 @@ ...@@ -893,6 +893,11 @@
<value xml:lang="en-US">~Validity...</value> <value xml:lang="en-US">~Validity...</value>
</prop> </prop>
</node> </node>
<node oor:name=".uno:CurrentValidation" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Data ~Validation...</value>
</prop>
</node>
<node oor:name=".uno:DeleteRows" oor:op="replace"> <node oor:name=".uno:DeleteRows" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string"> <prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Delete Rows</value> <value xml:lang="en-US">Delete Rows</value>
......
...@@ -1135,6 +1135,7 @@ public: ...@@ -1135,6 +1135,7 @@ public:
/** Returns true, if there is any data to create a selection list for rPos. */ /** Returns true, if there is any data to create a selection list for rPos. */
bool HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const; bool HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
bool HasValidationData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
/** /**
* Check if the specified range contains either: 1) one non-empty cell, 2) * Check if the specified range contains either: 1) one non-empty cell, 2)
......
...@@ -549,6 +549,7 @@ ...@@ -549,6 +549,7 @@
#define SID_OLE_SELECT (SID_NEW_SLOTS+50) #define SID_OLE_SELECT (SID_NEW_SLOTS+50)
#define FID_CURRENTVALIDATION (SID_NEW_SLOTS+51)
#define SID_RANGE_NOTETEXT (SID_NEW_SLOTS+52) #define SID_RANGE_NOTETEXT (SID_NEW_SLOTS+52)
#define FID_INSERT_FILE (SID_NEW_SLOTS+53) #define FID_INSERT_FILE (SID_NEW_SLOTS+53)
......
...@@ -60,6 +60,7 @@ interface CellSelection ...@@ -60,6 +60,7 @@ interface CellSelection
SID_SUBTOTALS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ] SID_SUBTOTALS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
SID_PIVOT_TABLE [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ] SID_PIVOT_TABLE [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
FID_VALIDATION [ ExecMethod = ExecuteDB; StateMethod = GetBlockState; ] FID_VALIDATION [ ExecMethod = ExecuteDB; StateMethod = GetBlockState; ]
FID_CURRENTVALIDATION [ ExecMethod = ExecuteDB; StateMethod = GetState; ]
SID_TEXT_TO_COLUMNS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ] SID_TEXT_TO_COLUMNS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
// } database operations // } database operations
......
...@@ -5618,6 +5618,24 @@ SfxVoidItem Validation FID_VALIDATION ...@@ -5618,6 +5618,24 @@ SfxVoidItem Validation FID_VALIDATION
] ]
SfxVoidItem CurrentValidation FID_CURRENTVALIDATION
()
[
AutoUpdate = FALSE,
FastCall = FALSE,
ReadOnlyDoc = TRUE,
Toggle = FALSE,
Container = FALSE,
RecordAbsolute = FALSE,
RecordPerSet;
AccelConfig = TRUE,
MenuConfig = TRUE,
ToolBoxConfig = TRUE,
GroupId = SfxGroupId::Data;
]
ScDoubleItem Value SID_RANGE_VALUE ScDoubleItem Value SID_RANGE_VALUE
[ [
......
...@@ -3820,6 +3820,18 @@ bool ScDocument::HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const ...@@ -3820,6 +3820,18 @@ bool ScDocument::HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const
return HasStringCells( ScRange( nCol, 0, nTab, nCol, MAXROW, nTab ) ); return HasStringCells( ScRange( nCol, 0, nTab, nCol, MAXROW, nTab ) );
} }
bool ScDocument::HasValidationData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const
{
sal_uInt32 nValidation = static_cast< const SfxUInt32Item* >( GetAttr( nCol, nRow, nTab, ATTR_VALIDDATA ) )->GetValue();
if( nValidation )
{
const ScValidationData* pData = GetValidationEntry( nValidation );
if( pData && pData->GetDataMode() != ScValidationMode::SC_VALID_ANY )
return true;
}
return false;
}
void ScDocument::CheckVectorizationState() void ScDocument::CheckVectorizationState()
{ {
bool bOldAutoCalc = GetAutoCalc(); bool bOldAutoCalc = GetAutoCalc();
......
...@@ -301,7 +301,6 @@ void ScCellShell::GetBlockState( SfxItemSet& rSet ) ...@@ -301,7 +301,6 @@ void ScCellShell::GetBlockState( SfxItemSet& rSet )
} }
} }
break; break;
case SID_TRANSLITERATE_HALFWIDTH: case SID_TRANSLITERATE_HALFWIDTH:
case SID_TRANSLITERATE_FULLWIDTH: case SID_TRANSLITERATE_FULLWIDTH:
case SID_TRANSLITERATE_HIRAGANA: case SID_TRANSLITERATE_HIRAGANA:
...@@ -836,6 +835,11 @@ void ScCellShell::GetState(SfxItemSet &rSet) ...@@ -836,6 +835,11 @@ void ScCellShell::GetState(SfxItemSet &rSet)
rSet.DisableItem( nWhich ); rSet.DisableItem( nWhich );
break; break;
case FID_CURRENTVALIDATION:
if ( !pDoc->HasValidationData( nPosX, nPosY, nTab ))
rSet.DisableItem( nWhich );
break;
case SID_STATUS_SUM: case SID_STATUS_SUM:
{ {
OUString aFuncStr; OUString aFuncStr;
......
...@@ -806,6 +806,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq ) ...@@ -806,6 +806,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
ExecuteXMLSourceDialog(); ExecuteXMLSourceDialog();
break; break;
case FID_VALIDATION: case FID_VALIDATION:
case FID_CURRENTVALIDATION:
{ {
const SfxPoolItem* pItem; const SfxPoolItem* pItem;
const SfxItemSet* pArgs = rReq.GetArgs(); const SfxItemSet* pArgs = rReq.GetArgs();
......
...@@ -39,4 +39,5 @@ ...@@ -39,4 +39,5 @@
<menu:menuitem menu:id=".uno:HideNote"/> <menu:menuitem menu:id=".uno:HideNote"/>
<menu:menuseparator/> <menu:menuseparator/>
<menu:menuitem menu:id=".uno:DataSelect"/> <menu:menuitem menu:id=".uno:DataSelect"/>
<menu:menuitem menu:id=".uno:CurrentValidation"/>
</menu:menupopup> </menu:menupopup>
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