Lines 1168-1173
void ScCellShell::ExecuteEdit( SfxReques
Link Here
|
1168 |
WaitObject aWait( GetViewData()->GetDialogParent() ); |
1178 |
WaitObject aWait( GetViewData()->GetDialogParent() ); |
1169 |
pTabViewShell->CopyToClip( NULL, FALSE, FALSE, TRUE ); |
1179 |
pTabViewShell->CopyToClip( NULL, FALSE, FALSE, TRUE ); |
1170 |
rReq.Done(); |
1180 |
rReq.Done(); |
|
|
1181 |
GetViewData()->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) ); |
1182 |
pTabViewShell->ShowCursor(); |
1171 |
} |
1183 |
} |
1172 |
break; |
1184 |
break; |
1173 |
|
1185 |
|
Lines 1176-1221
void ScCellShell::ExecuteEdit( SfxReques
Link Here
|
1176 |
WaitObject aWait( GetViewData()->GetDialogParent() ); |
1188 |
WaitObject aWait( GetViewData()->GetDialogParent() ); |
1177 |
pTabViewShell->CutToClip( NULL, TRUE ); |
1189 |
pTabViewShell->CutToClip( NULL, TRUE ); |
1178 |
rReq.Done(); |
1190 |
rReq.Done(); |
|
|
1191 |
GetViewData()->SetPasteMode( SC_PASTE_MODE ); |
1179 |
} |
1192 |
} |
1180 |
break; |
1193 |
break; |
1181 |
|
1194 |
|
1182 |
case SID_PASTE: |
1195 |
case SID_PASTE: |
1183 |
{ |
1196 |
{ |
1184 |
Window* pWin = GetViewData()->GetActiveWin(); |
1197 |
PasteFromClipboard ( GetViewData(), pTabViewShell, TRUE ); |
1185 |
ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pWin ); |
|
|
1186 |
ScDocument* pThisDoc = GetViewData()->GetDocument(); |
1187 |
ScDPObject* pDPObj = pThisDoc->GetDPAtCursor( GetViewData()->GetCurX(), |
1188 |
GetViewData()->GetCurY(), GetViewData()->GetTabNo() ); |
1189 |
if ( pOwnClip && pDPObj ) |
1190 |
{ |
1191 |
// paste from Calc into DataPilot table: sort (similar to drag & drop) |
1192 |
|
1193 |
ScDocument* pClipDoc = pOwnClip->GetDocument(); |
1194 |
SCTAB nSourceTab = pOwnClip->GetVisibleTab(); |
1195 |
|
1196 |
SCCOL nClipStartX; |
1197 |
SCROW nClipStartY; |
1198 |
SCCOL nClipEndX; |
1199 |
SCROW nClipEndY; |
1200 |
pClipDoc->GetClipStart( nClipStartX, nClipStartY ); |
1201 |
pClipDoc->GetClipArea( nClipEndX, nClipEndY, TRUE ); |
1202 |
nClipEndX = nClipEndX + nClipStartX; |
1203 |
nClipEndY = nClipEndY + nClipStartY; // GetClipArea returns the difference |
1204 |
|
1205 |
ScRange aSource( nClipStartX, nClipStartY, nSourceTab, nClipEndX, nClipEndY, nSourceTab ); |
1206 |
BOOL bDone = pTabViewShell->DataPilotMove( aSource, GetViewData()->GetCurPos() ); |
1207 |
if ( !bDone ) |
1208 |
pTabViewShell->ErrorMessage( STR_ERR_DATAPILOT_INPUT ); |
1209 |
} |
1210 |
else |
1211 |
{ |
1212 |
// normal paste |
1213 |
WaitObject aWait( GetViewData()->GetDialogParent() ); |
1214 |
pTabViewShell->PasteFromSystem(); |
1215 |
} |
1216 |
rReq.Done(); |
1198 |
rReq.Done(); |
1217 |
} |
1199 |
} |
1218 |
pTabViewShell->CellContentChanged(); // => PasteFromSystem() ??? |
|
|
1219 |
break; |
1200 |
break; |
1220 |
|
1201 |
|
1221 |
case SID_CLIPBOARD_FORMAT_ITEMS: |
1202 |
case SID_CLIPBOARD_FORMAT_ITEMS: |
Lines 2264-2266
IMPL_LINK( ScCellShell, DialogClosed, Ab
Link Here
|
2264 |
return 0; |
2245 |
return 0; |
2265 |
} |
2246 |
} |
2266 |
|
2247 |
|
|
|
2248 |
void ScCellShell::PasteFromClipboard( ScViewData* pViewData, ScTabViewShell* pTabViewShell, BOOL bShowDialog ) |
2249 |
{ |
2250 |
Window* pWin = pViewData->GetActiveWin(); |
2251 |
ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard( pWin ); |
2252 |
ScDocument* pThisDoc = pViewData->GetDocument(); |
2253 |
ScDPObject* pDPObj = pThisDoc->GetDPAtCursor( pViewData->GetCurX(), |
2254 |
pViewData->GetCurY(), pViewData->GetTabNo() ); |
2255 |
if ( pOwnClip && pDPObj ) |
2256 |
{ |
2257 |
// paste from Calc into DataPilot table: sort (similar to drag & drop) |
2258 |
|
2259 |
ScDocument* pClipDoc = pOwnClip->GetDocument(); |
2260 |
SCTAB nSourceTab = pOwnClip->GetVisibleTab(); |
2261 |
|
2262 |
SCCOL nClipStartX; |
2263 |
SCROW nClipStartY; |
2264 |
SCCOL nClipEndX; |
2265 |
SCROW nClipEndY; |
2266 |
pClipDoc->GetClipStart( nClipStartX, nClipStartY ); |
2267 |
pClipDoc->GetClipArea( nClipEndX, nClipEndY, TRUE ); |
2268 |
nClipEndX = nClipEndX + nClipStartX; |
2269 |
nClipEndY = nClipEndY + nClipStartY; // GetClipArea returns the difference |
2270 |
|
2271 |
ScRange aSource( nClipStartX, nClipStartY, nSourceTab, nClipEndX, nClipEndY, nSourceTab ); |
2272 |
BOOL bDone = pTabViewShell->DataPilotMove( aSource, pViewData->GetCurPos() ); |
2273 |
if ( !bDone ) |
2274 |
pTabViewShell->ErrorMessage( STR_ERR_DATAPILOT_INPUT ); |
2275 |
} |
2276 |
else |
2277 |
{ |
2278 |
// normal paste |
2279 |
WaitObject aWait( pViewData->GetDialogParent() ); |
2280 |
if (!pOwnClip) |
2281 |
pTabViewShell->PasteFromSystem(); |
2282 |
else |
2283 |
{ |
2284 |
pTabViewShell->PasteFromClip( IDF_ALL, pOwnClip->GetDocument(), |
2285 |
PASTE_NOFUNC, FALSE, FALSE, FALSE, INS_NONE, IDF_NONE, |
2286 |
bShowDialog ); // allow warning dialog |
2287 |
} |
2288 |
} |
2289 |
pTabViewShell->CellContentChanged(); // => PasteFromSystem() ??? |
2290 |
} |
2291 |
|