| 503 | |
| 504 | BASIC_SHARED_D_READER_IMPL(Spreadsheet, const Spreadsheet*, linkedSpreadsheet, linking.linkedSpreadsheet) |
| 505 | void Spreadsheet::setLinkedSpreadsheet(const Spreadsheet* linkedSpreadsheet, bool skipUndo) { |
| 506 | Q_D(Spreadsheet); |
| 507 | if (!d->linking.linking) |
| 508 | return; // Do not allow setting a spreadsheet when linking is disabled |
| 509 | |
| 510 | if (linkedSpreadsheet != d->linking.linkedSpreadsheet) { |
| 511 | if (skipUndo) { |
| 512 | d->linking.linkedSpreadsheet = linkedSpreadsheet; |
| 513 | initConnectionsLinking(linkedSpreadsheet, this); |
| 514 | } else { |
| 515 | Linking l = d->linking; |
| 516 | l.linkedSpreadsheet = linkedSpreadsheet; |
| 517 | if (d->linking.linking && linkedSpreadsheet) { |
| 518 | beginMacro(i18n("%1: set linked spreadsheet", name())); |
| 519 | setRowCount(linkedSpreadsheet->rowCount()); |
| 520 | exec(new SpreadsheetSetLinkingCmd(d, l, ki18n("%1: set linked spreadsheet"))); |
| 521 | endMacro(); |
| 522 | } else |
| 523 | exec(new SpreadsheetSetLinkingCmd(d, l, ki18n("%1: set linked spreadsheet"))); |
| 524 | } |
| 525 | } |
| 526 | } |
| 527 | |
| 528 | QString Spreadsheet::linkedSpreadsheetPath() const { |
| 529 | Q_D(const Spreadsheet); |