| 2021 | } |
| 2022 | |
| 2023 | void Map::removePart(std::size_t index) |
| 2024 | { |
| 2025 | Q_ASSERT(index < parts.size()); |
| 2026 | Q_ASSERT(parts.size() > 1); |
| 2027 | |
| 2028 | if (current_part_index == index) |
| 2029 | // First switch to another part when removing the current part |
| 2030 | setCurrentPartIndex((index == parts.size() - 1) ? (parts.size() - 2) : (index + 1)); |
| 2031 | |
| 2032 | MapPart* part = parts[index]; |
| 2033 | |
| 2034 | // FIXME: This loop should move to MapPart. |
| 2035 | while(part->getNumObjects()) |
| 2036 | part->deleteObject(0); |
| 2037 | |
| 2038 | parts.erase(parts.begin() + index); |
| 2039 | if (current_part_index >= index) |
| 2040 | setCurrentPartIndex((index == parts.size()) ? (parts.size() - 1) : index); |
| 2041 | |
| 2042 | emit mapPartDeleted(index, part); |
| 2043 | |
| 2044 | delete part; |
| 2045 | |
| 2046 | setOtherDirty(); |
| 2047 | updateAllMapWidgets(); |
| 2048 | } |
| 2049 | |
| 2050 | int Map::findPartIndex(const MapPart* part) const |
| 2051 | { |
no test coverage detected