MapLayouts::MapLayouts( LoadedROM& rom, const RawLevelHeaders& headers) { // Iterate over headers int mapNum = 0; for (AddressRawLevelHeaderMap::const_iterator it = headers.cbegin(); it != headers.cend(); it++) { // Check if this map has been loaded AddressToMapIndexMap::iterator findIt = addressToIndex_.find(it->second.mapLayoutAddress()); // Don't load if map already loaded if (findIt != addressToIndex_.end()) { continue; } // Add new map to storage mapLayouts_.push_back(MapLayout()); MapLayout& map = mapLayouts_.back(); // Read map data map.readFromData(rom, it->second.mapLayoutAddress()); // Add address mapping addressToIndex_.insert(AddressToMapIndexPair( it->second.mapLayoutAddress(), mapNum)); ++mapNum; } }
int MapLayouts::load(const Tbyte* data) { // Count of read bytes int byteCount = 0; // Clear existing data mapLayouts_.clear(); // Read number of maps int numMaps = ByteConversion::fromBytes( data + byteCount, ByteSizes::uint16Size, EndiannessTypes::little, SignednessTypes::nosign); byteCount += ByteSizes::uint16Size; // Read each map for (int i = 0; i < numMaps; i++) { // Add new map to storage mapLayouts_.push_back(MapLayout()); MapLayout& map = mapLayouts_.back(); // Read map data byteCount += map.load(data + byteCount); } return byteCount; }
MapLayout* ObjVectorLayout :: mapLayoutFor(Oop mapOop) { // TODO: Put a pointer to a vtable in the map object, figure out at the right offset for a // pointer so that the vtable is in the place where the C++ compiler expects it, and then // do a simple dispatch. Oop mapTypeOop = MapLayout().mapTypeOopOf(mapOop); BPRef bpRef = ByteVectorLayout().bytesPartRefOf(mapTypeOop); Byte* mapType = BytesPartLayout().addressOfFirstByteInBytesPart(bpRef); int mapTypeSize = BytesPartLayout(). indexableSizeOfBytesPart(bpRef); # include "mapTypeTesters.incl.impl.hh" error("unknown map type"); return NULL; }
void GPSSyncDialog::readSettings() { KConfig config("kipirc"); KConfigGroup group = config.group(QString("GPS Sync 2 Settings")); // -------------------------- // TODO: sanely determine a default backend const KConfigGroup groupMapWidget = KConfigGroup(&group, "Map Widget"); d->mapWidget->readSettingsFromGroup(&groupMapWidget); const KConfigGroup groupCorrelatorWidget = KConfigGroup(&group, "Correlator Widget"); d->correlatorWidget->readSettingsFromGroup(&groupCorrelatorWidget); const KConfigGroup groupTreeView = KConfigGroup(&group, "Tree View"); d->treeView->readSettingsFromGroup(&groupTreeView); const KConfigGroup groupSearchWidget = KConfigGroup(&group, "Search Widget"); d->searchWidget->readSettingsFromGroup(&groupSearchWidget); const KConfigGroup groupRGWidget = KConfigGroup(&group, "Reverse Geocoding Widget"); d->rgWidget->readSettingsFromGroup(&groupRGWidget); const KConfigGroup groupDialog = KConfigGroup(&group, "Dialog"); restoreDialogSize(groupDialog); // -------------------------- setCurrentTab(group.readEntry("Current Tab", 0)); const bool showOldestFirst = group.readEntry("Show oldest images first", false); if (showOldestFirst) { d->sortActionOldestFirst->setChecked(true); d->mapWidget->setSortKey(1); } else { d->sortActionYoungestFirst->setChecked(true); d->mapWidget->setSortKey(0); } d->actionBookmarkVisibility->setChecked(group.readEntry("Bookmarks visible", false)); slotBookmarkVisibilityToggled(); if (group.hasKey("SplitterState V1")) { const QByteArray splitterState = QByteArray::fromBase64(group.readEntry(QString("SplitterState V1"), QByteArray())); if (!splitterState.isEmpty()) { d->VSplitter->restoreState(splitterState); } } if (group.hasKey("SplitterState H1")) { const QByteArray splitterState = QByteArray::fromBase64(group.readEntry(QString("SplitterState H1"), QByteArray())); if (!splitterState.isEmpty()) { d->HSplitter->restoreState(splitterState); } } d->splitterSize = group.readEntry("Splitter H1 CollapsedSize", 0); // ---------------------------------- d->mapLayout = MapLayout(group.readEntry("Map Layout", QVariant::fromValue(int(MapLayoutOne))).value<int>()); d->setupGlobalObject->writeEntry("Map Layout", QVariant::fromValue(d->mapLayout)); adjustMapLayout(false); if (d->mapWidget2) { const KConfigGroup groupMapWidget = KConfigGroup(&group, "Map Widget 2"); d->mapWidget2->readSettingsFromGroup(&groupMapWidget); d->mapWidget2->setActive(true); } }