Revert prior attempted optimisation. Gridding the land pays in some situations, but not all. Restricting to an upper bound might help, but overall, seems too fuzzy to be worth it. On one side is increased cost of Add/Delete + extra test on collision check, on the other is skipping the list iteration. Perhaps for large lists.
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>editor</class>
<widget class="QMainWindow" name="editor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>419</width>
<height>476</height>
</rect>
</property>
<property name="windowTitle">
<string>editor</string>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>2</number>
</property>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Mission</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leName"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Description</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QTextEdit" name="teDescription"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Map</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Theme</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="leMap"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="leTheme"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Options</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QCheckBox" name="cbInvulnerable">
<property name="text">
<string>Invulnerable</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbArtillery">
<property name="text">
<string>Artillery</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbSolidLand">
<property name="text">
<string>SolidLand</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbVampiric">
<property name="text">
<string>Vampiric</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbOneClanMode">
<property name="text">
<string>OneClanMode</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbKarma">
<property name="text">
<string>Karma</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbLaserSight">
<property name="text">
<string>LaserSight</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbBorder">
<property name="text">
<string>Border</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbLowGravity">
<property name="text">
<string>LowGravity</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbMines">
<property name="text">
<string>Mines</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbDivideTeams">
<property name="text">
<string>DivideTeams</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbMultiWeapon">
<property name="text">
<string>MultiWeapon</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbForts">
<property name="text">
<string>Forts</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="labelSeed">
<property name="text">
<string>Seed</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leSeed">
<property name="text">
<string>foobar</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Damage Modifier</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Turn Time</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Crate Drops</string>
</property>
</widget>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="sbDamageModifier">
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>300</number>
</property>
<property name="singleStep">
<number>15</number>
</property>
<property name="value">
<number>100</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="sbTurnTime">
<property name="minimum">
<number>1000</number>
</property>
<property name="maximum">
<number>100000</number>
</property>
<property name="singleStep">
<number>5000</number>
</property>
<property name="value">
<number>45000</number>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="sbCrateDrops">
<property name="maximum">
<number>3</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>Teams</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QPushButton" name="pbAddTeam">
<property name="text">
<string>Add Team</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="2">
<widget class="QTabWidget" name="twTeams">
<property name="enabled">
<bool>true</bool>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="TeamEdit" name="tab_5">
<attribute name="title">
<string>Team 1</string>
</attribute>
</widget>
<widget class="TeamEdit" name="tab_6">
<attribute name="title">
<string>Team 2</string>
</attribute>
</widget>
<widget class="TeamEdit" name="tab_7">
<attribute name="title">
<string>Team 3</string>
</attribute>
</widget>
<widget class="TeamEdit" name="tab_8">
<attribute name="title">
<string>Team 4</string>
</attribute>
</widget>
<widget class="TeamEdit" name="tab_9">
<attribute name="title">
<string>Team 5</string>
</attribute>
</widget>
<widget class="TeamEdit" name="tab_10">
<attribute name="title">
<string>Team 6</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Triggers</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>419</width>
<height>28</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>&File</string>
</property>
<addaction name="actionLoad"/>
<addaction name="actionSave"/>
<addaction name="separator"/>
<addaction name="actionQuit"/>
</widget>
<addaction name="menuFile"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionLoad">
<property name="text">
<string>&Load...</string>
</property>
</action>
<action name="actionSave">
<property name="text">
<string>&Save</string>
</property>
</action>
<action name="actionQuit">
<property name="text">
<string>&Quit</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>TeamEdit</class>
<extends>QWidget</extends>
<header>teamedit.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>