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 @@
<value xml:lang="en-US">~Validity...</value>
</prop>
</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">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Delete Rows</value>
......
......@@ -1135,6 +1135,7 @@ public:
/** Returns true, if there is any data to create a selection list for rPos. */
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)
......
......@@ -549,6 +549,7 @@
#define SID_OLE_SELECT (SID_NEW_SLOTS+50)
#define FID_CURRENTVALIDATION (SID_NEW_SLOTS+51)
#define SID_RANGE_NOTETEXT (SID_NEW_SLOTS+52)
#define FID_INSERT_FILE (SID_NEW_SLOTS+53)
......
......@@ -60,6 +60,7 @@ interface CellSelection
SID_SUBTOTALS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
SID_PIVOT_TABLE [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
FID_VALIDATION [ ExecMethod = ExecuteDB; StateMethod = GetBlockState; ]
FID_CURRENTVALIDATION [ ExecMethod = ExecuteDB; StateMethod = GetState; ]
SID_TEXT_TO_COLUMNS [ ExecMethod = ExecuteDB; StateMethod = GetDBState; ]
// } database operations
......
......@@ -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
[
......
......@@ -3820,6 +3820,18 @@ bool ScDocument::HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const
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()
{
bool bOldAutoCalc = GetAutoCalc();
......
......@@ -301,7 +301,6 @@ void ScCellShell::GetBlockState( SfxItemSet& rSet )
}
}
break;
case SID_TRANSLITERATE_HALFWIDTH:
case SID_TRANSLITERATE_FULLWIDTH:
case SID_TRANSLITERATE_HIRAGANA:
......@@ -836,6 +835,11 @@ void ScCellShell::GetState(SfxItemSet &rSet)
rSet.DisableItem( nWhich );
break;
case FID_CURRENTVALIDATION:
if ( !pDoc->HasValidationData( nPosX, nPosY, nTab ))
rSet.DisableItem( nWhich );
break;
case SID_STATUS_SUM:
{
OUString aFuncStr;
......
......@@ -806,6 +806,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
ExecuteXMLSourceDialog();
break;
case FID_VALIDATION:
case FID_CURRENTVALIDATION:
{
const SfxPoolItem* pItem;
const SfxItemSet* pArgs = rReq.GetArgs();
......
......@@ -39,4 +39,5 @@
<menu:menuitem menu:id=".uno:HideNote"/>
<menu:menuseparator/>
<menu:menuitem menu:id=".uno:DataSelect"/>
<menu:menuitem menu:id=".uno:CurrentValidation"/>
</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