mirror of
https://github.com/huderlem/porymap.git
synced 2026-04-24 06:48:08 -05:00
Merge branch 'dev' of https://github.com/huderlem/porymap into global-defines
This commit is contained in:
commit
8fc9e05359
|
|
@ -6,7 +6,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>178</width>
|
||||
<width>188</width>
|
||||
<height>157</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
<string notr="true">.ConnectionsListItem { border-width: 1px; }</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
<enum>QFrame::Shape::StyledPanel</enum>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
|
|
@ -65,7 +65,7 @@
|
|||
<item row="3" column="2">
|
||||
<widget class="QToolButton" name="button_Delete">
|
||||
<property name="toolTip">
|
||||
<string>Remove this connection.</string>
|
||||
<string><html><head/><body><p>Remove this connection.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
@ -79,28 +79,28 @@
|
|||
<item row="1" column="1" colspan="2">
|
||||
<widget class="NoScrollComboBox" name="comboBox_Direction">
|
||||
<property name="toolTip">
|
||||
<string>Where the connected map should be positioned relative to the current map.</string>
|
||||
<string><html><head/><body><p>Where the connected map should be positioned relative to the current map.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" colspan="2">
|
||||
<widget class="NoScrollComboBox" name="comboBox_Map">
|
||||
<property name="toolTip">
|
||||
<string>The name of the map to connect to the current map.</string>
|
||||
<string><html><head/><body><p>The name of the map to connect to the current map.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_Offset">
|
||||
<property name="toolTip">
|
||||
<string>The number of spaces to move the connected map perpendicular to its connected direction.</string>
|
||||
<string><html><head/><body><p>The number of spaces to move the connected map perpendicular to its connected direction.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QToolButton" name="button_OpenMap">
|
||||
<property name="toolTip">
|
||||
<string>Open the connected map.</string>
|
||||
<string><html><head/><body><p>Open the connected map.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_Name">
|
||||
<property name="toolTip">
|
||||
<string>The key name for the new JSON field</string>
|
||||
<string><html><head/><body><p>The key name for the new JSON field</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_Type">
|
||||
<property name="toolTip">
|
||||
<string>The data type for the new JSON field</string>
|
||||
<string><html><head/><body><p>The data type for the new JSON field</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -70,7 +70,7 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>The value for the new JSON field</string>
|
||||
<string><html><head/><body><p>The value for the new JSON field</p></body></html></string>
|
||||
</property>
|
||||
<widget class="QWidget" name="page_String">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
<item>
|
||||
<widget class="QPushButton" name="button_CreateNewScript">
|
||||
<property name="toolTip">
|
||||
<string>Create a new Porymap script file with a default template</string>
|
||||
<string><html><head/><body><p>Create a new Porymap script file with a default template</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create New Script...</string>
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
<item>
|
||||
<widget class="QPushButton" name="button_LoadScript">
|
||||
<property name="toolTip">
|
||||
<string>Add an existing script file to the list below</string>
|
||||
<string><html><head/><body><p>Add an existing script file to the list below</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Load Script...</string>
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
<item>
|
||||
<widget class="QPushButton" name="button_RefreshScripts">
|
||||
<property name="toolTip">
|
||||
<string>Refresh all loaded scripts to account for any recent edits</string>
|
||||
<string><html><head/><body><p>Refresh all loaded scripts to account for any recent edits</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Refresh Scripts</string>
|
||||
|
|
|
|||
|
|
@ -260,9 +260,6 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_Map">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
|
|
@ -351,12 +348,6 @@
|
|||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="transformationAnchor">
|
||||
<enum>QGraphicsView::ViewportAnchor::AnchorUnderMouse</enum>
|
||||
</property>
|
||||
<property name="resizeAnchor">
|
||||
<enum>QGraphicsView::ViewportAnchor::AnchorUnderMouse</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
@ -2386,7 +2377,7 @@
|
|||
<item row="0" column="7">
|
||||
<widget class="QCheckBox" name="checkBox_MirrorConnections">
|
||||
<property name="toolTip">
|
||||
<string>If enabled, connections will automatically be updated on the connected map.</string>
|
||||
<string><html><head/><body><p>If enabled, the connected Emerge and/or Dive maps will be displayed with an opacity set using the slider.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Mirror to Connecting Maps</string>
|
||||
|
|
@ -2435,8 +2426,11 @@
|
|||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QToolButton" name="button_OpenDiveMap">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open the selected Dive Map</string>
|
||||
<string><html><head/><body><p>Open the selected Dive Map</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
@ -2450,7 +2444,7 @@
|
|||
<item row="0" column="4" rowspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_DiveMapOpacity">
|
||||
<property name="toolTip">
|
||||
<string>If enabled, the connected Emerge and/or Dive maps will be displayed with an opacity set using the slider.</string>
|
||||
<string><html><head/><body><p>If enabled, the connected Emerge and/or Dive maps will be displayed with an opacity set using the slider.</p></body></html></string>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Show Emerge/Dive Maps</string>
|
||||
|
|
@ -2569,8 +2563,11 @@
|
|||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QToolButton" name="button_OpenEmergeMap">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open the selected Emerge Map</string>
|
||||
<string><html><head/><body><p>Open the selected Emerge Map</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
@ -2589,7 +2586,7 @@
|
|||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QGraphicsView" name="graphicsView_Connections">
|
||||
<widget class="ConnectionsView" name="graphicsView_Connections">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
|
|
@ -3079,45 +3076,6 @@
|
|||
<string>Ctrl+T</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSort_by_Location">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../resources/images.qrc">
|
||||
<normaloff>:/icons/sort_alphabet.ico</normaloff>:/icons/sort_alphabet.ico</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sort by &Location</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSort_by_Group">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../resources/images.qrc">
|
||||
<normaloff>:/icons/sort_number.ico</normaloff>:/icons/sort_number.ico</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sort by &Group</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Sort by Group</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSort_by_Layout">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../resources/images.qrc">
|
||||
<normaloff>:/icons/sort_map.ico</normaloff>:/icons/sort_map.ico</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sort by &Layout</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAbout_Porymap">
|
||||
<property name="text">
|
||||
<string>About Porymap...</string>
|
||||
|
|
@ -3313,9 +3271,14 @@
|
|||
</customwidget>
|
||||
<customwidget>
|
||||
<class>MapView</class>
|
||||
<extends>QWidget</extends>
|
||||
<extends>QGraphicsView</extends>
|
||||
<header>mapview.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ConnectionsView</class>
|
||||
<extends>QGraphicsView</extends>
|
||||
<header>graphicsview.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>MapTree</class>
|
||||
<extends>QTreeView</extends>
|
||||
|
|
@ -3324,7 +3287,7 @@
|
|||
<customwidget>
|
||||
<class>NoScrollGraphicsView</class>
|
||||
<extends>QGraphicsView</extends>
|
||||
<header>mapview.h</header>
|
||||
<header>graphicsview.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>MapListToolBar</class>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
<item>
|
||||
<widget class="QToolButton" name="button_AddFolder">
|
||||
<property name="toolTip">
|
||||
<string>Add a new folder to the list.</string>
|
||||
<string><html><head/><body><p>Add a new folder to the list.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
|
|
@ -73,7 +73,7 @@
|
|||
<item>
|
||||
<widget class="QToolButton" name="button_ExpandAll">
|
||||
<property name="toolTip">
|
||||
<string>Expand all folders in the list.</string>
|
||||
<string><html><head/><body><p>Expand all folders in the list.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
|
|
@ -93,7 +93,7 @@
|
|||
<item>
|
||||
<widget class="QToolButton" name="button_CollapseAll">
|
||||
<property name="toolTip">
|
||||
<string>Collapse all folders in the list.</string>
|
||||
<string><html><head/><body><p>Collapse all folders in the list.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
|
|
@ -113,7 +113,7 @@
|
|||
<item>
|
||||
<widget class="QToolButton" name="button_ToggleEdit">
|
||||
<property name="toolTip">
|
||||
<string>If enabled, folders may be renamed and items in the list may be rearranged.</string>
|
||||
<string><html><head/><body><p>If enabled, folders may be renamed and items in the list may be rearranged.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@
|
|||
<item>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
<enum>QFrame::Shape::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
<enum>QFrame::Shadow::Plain</enum>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<property name="leftMargin">
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_Map">
|
||||
<property name="toolTip">
|
||||
<string>The name of the map to connect to the current map.</string>
|
||||
<string><html><head/><body><p>The name of the map to connect to the current map.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_Direction">
|
||||
<property name="toolTip">
|
||||
<string>Where the connected map should be positioned relative to the current map.</string>
|
||||
<string><html><head/><body><p>Where the connected map should be positioned relative to the current map.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -82,10 +82,10 @@
|
|||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_MonitorProjectFiles">
|
||||
<property name="toolTip">
|
||||
<string>If checked, a prompt to reload your project will appear if relevant project files are edited</string>
|
||||
<string><html><head/><body><p>If checked, a prompt to reload your project will appear if relevant project files are edited</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Monitor project files</string>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_OpenRecentProject">
|
||||
<property name="toolTip">
|
||||
<string>If checked, Porymap will automatically open your most recently opened project on startup</string>
|
||||
<string><html><head/><body><p>If checked, Porymap will automatically open your most recently opened project on startup</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open recent project on launch</string>
|
||||
|
|
@ -60,7 +60,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_CheckForUpdates">
|
||||
<property name="toolTip">
|
||||
<string>If checked, Porymap will automatically alert you on startup if a new release is available</string>
|
||||
<string><html><head/><body><p>If checked, Porymap will automatically alert you on startup if a new release is available</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Automatically check for updates</string>
|
||||
|
|
@ -112,7 +112,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_DisableEventWarning">
|
||||
<property name="toolTip">
|
||||
<string>If checked, no warning will be shown when deleting an event that has an associated #define that may also be deleted.</string>
|
||||
<string><html><head/><body><p>If checked, no warning will be shown when deleting an event that has an associated #define that may also be deleted.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Disable warning when deleting events with IDs</string>
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_OnSprite">
|
||||
<property name="toolTip">
|
||||
<string>If enabled, an event can be selected by clicking directly on the opaque pixels of its sprite. This may be preferable when events are overlapping.</string>
|
||||
<string><html><head/><body><p>If enabled, an event can be selected by clicking directly on the opaque pixels of its sprite. This may be preferable when events are overlapping.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Select by clicking on sprite</string>
|
||||
|
|
@ -148,7 +148,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_WithinRect">
|
||||
<property name="toolTip">
|
||||
<string>If enabled, an event can be selected by clicking anywhere within its sprite dimensions. This may be preferable for events with small or mostly transparent sprites.</string>
|
||||
<string><html><head/><body><p>If enabled, an event can be selected by clicking anywhere within its sprite dimensions. This may be preferable for events with small or mostly transparent sprites.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Select by clicking within bounding rectangle</string>
|
||||
|
|
@ -231,7 +231,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_TextEditorOpenFolder">
|
||||
<property name="toolTip">
|
||||
<string>The shell command for your preferred text editor (possibly an absolute path if the program doesn't exist in your PATH).</string>
|
||||
<string><html><head/><body><p>The shell command for your preferred text editor (possibly an absolute path if the program doesn't exist in your PATH).</p></body></html></string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>e.g. code %D</string>
|
||||
|
|
@ -264,7 +264,7 @@
|
|||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_TextEditorGotoLine">
|
||||
<property name="toolTip">
|
||||
<string>The shell command for your preferred text editor to open a file to a specific line number (possibly an absolute path if the program doesn't exist in your PATH).</string>
|
||||
<string><html><head/><body><p>The shell command for your preferred text editor to open a file to a specific line number (possibly an absolute path if the program doesn't exist in your PATH).</p></body></html></string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>e.g. code --goto %F:%L</string>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_UsePoryscript">
|
||||
<property name="toolTip">
|
||||
<string>Whether map script files should prefer using .pory</string>
|
||||
<string><html><head/><body><p>Whether map script files should prefer using .pory</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use Poryscript</string>
|
||||
|
|
@ -61,6 +61,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_ShowWildEncounterTables">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>If enabled, Porymap will display wild encounter data on the Wild Pokémon tab.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Wild Encounter Tables</string>
|
||||
</property>
|
||||
|
|
@ -99,7 +102,7 @@
|
|||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="button_ImportDefaultPrefabs">
|
||||
<property name="toolTip">
|
||||
<string>Restore the data in the prefabs file to the version defaults. Will create a new file if one doesn't exist.</string>
|
||||
<string><html><head/><body><p>Restore the data in the prefabs file to the version defaults. Will create a new file if one doesn't exist.</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Import Defaults</string>
|
||||
|
|
@ -109,7 +112,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_PrefabsPath">
|
||||
<property name="toolTip">
|
||||
<string>The file that will be used to populate the Prefabs tab</string>
|
||||
<string><html><head/><body><p>The file that will be used to populate the Prefabs tab</p></body></html></string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>prefabs.json</string>
|
||||
|
|
@ -148,7 +151,7 @@
|
|||
<item row="0" column="1" colspan="6">
|
||||
<widget class="QLineEdit" name="lineEdit_CollisionGraphics">
|
||||
<property name="toolTip">
|
||||
<string>The image sheet that will be used to represent elevation and collision on the Collision tab</string>
|
||||
<string><html><head/><body><p>The image sheet that will be used to represent elevation and collision on the Collision tab</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -176,7 +179,7 @@
|
|||
<item row="1" column="5">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_MaxCollision">
|
||||
<property name="toolTip">
|
||||
<string>The maximum collision value represented with an icon on the image sheet</string>
|
||||
<string><html><head/><body><p>The maximum collision value represented with an icon on the image sheet</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -197,7 +200,7 @@
|
|||
<item row="1" column="2">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_MaxElevation">
|
||||
<property name="toolTip">
|
||||
<string>The maximum elevation value represented with an icon on the image sheet</string>
|
||||
<string><html><head/><body><p>The maximum elevation value represented with an icon on the image sheet</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -270,7 +273,7 @@
|
|||
<item row="1" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="lineEdit_PokemonIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be displayed on the Wild Pokémon tab for the above species</string>
|
||||
<string><html><head/><body><p>The icon that will be displayed on the Wild Pokémon tab for the above species</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -304,22 +307,22 @@
|
|||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_PlayerViewDistance_North">
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The distance (in pixels) that a player is able to see North of their character's position in-game. By default this is the distance from the center 16x16 to the edge of the 160 pixel tall GBA screen.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_PlayerViewDistance_South">
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The distance (in pixels) that a player is able to see South of their character's position in-game. By default this is the distance from the center 16x16 to the edge of the 160 pixel tall GBA screen.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
@ -342,22 +345,22 @@
|
|||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_PlayerViewDistance_West">
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The distance (in pixels) that a player is able to see West of their character's position in-game. By default this is the distance from the center 16x16 to the edge of the 240 pixel wide GBA screen.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_PlayerViewDistance_East">
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The distance (in pixels) that a player is able to see East of their character's position in-game. By default this is the distance from the center 16x16 to the edge of the 240 pixel wide GBA screen.</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
@ -463,7 +466,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>561</width>
|
||||
<width>570</width>
|
||||
<height>622</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
@ -491,14 +494,14 @@
|
|||
<item row="5" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_Elevation">
|
||||
<property name="toolTip">
|
||||
<string>The default elevation that will be used to fill new maps</string>
|
||||
<string><html><head/><body><p>The default elevation that will be used to fill new maps</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="checkBox_CreateTextFile">
|
||||
<property name="toolTip">
|
||||
<string>Whether a separate text.inc or text.pory file will be created for new maps, alongside the scripts file</string>
|
||||
<string><html><head/><body><p>Whether a separate text.inc or text.pory file will be created for new maps, alongside the scripts file</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create separate text file</string>
|
||||
|
|
@ -507,6 +510,9 @@
|
|||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_MapWidth">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The default layout width for new maps</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
|
@ -514,6 +520,9 @@
|
|||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_MapHeight">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The default layout height for new maps</p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
|
@ -543,14 +552,14 @@
|
|||
<item row="3" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_FillMetatile">
|
||||
<property name="toolTip">
|
||||
<string>The default metatile value that will be used to fill new maps</string>
|
||||
<string><html><head/><body><p>The default metatile value that will be used to fill new maps</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="NoScrollSpinBox" name="spinBox_Collision">
|
||||
<property name="toolTip">
|
||||
<string>The default collision that will be used to fill new maps</string>
|
||||
<string><html><head/><body><p>The default collision that will be used to fill new maps</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -573,7 +582,7 @@
|
|||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_BorderMetatiles">
|
||||
<property name="toolTip">
|
||||
<string>A comma-separated list of metatile values that will be used to fill new map borders</string>
|
||||
<string><html><head/><body><p>A comma-separated list of metatile values that will be used to fill new map borders</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -596,28 +605,28 @@
|
|||
<item>
|
||||
<widget class="UIntHexSpinBox" name="spinBox_BorderMetatile1">
|
||||
<property name="toolTip">
|
||||
<string>The default metatile value that will be used for the top-left border metatile on new maps.</string>
|
||||
<string><html><head/><body><p>The default metatile value that will be used for the top-left border metatile on new maps.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="UIntHexSpinBox" name="spinBox_BorderMetatile2">
|
||||
<property name="toolTip">
|
||||
<string>The default metatile value that will be used for the top-right border metatile on new maps.</string>
|
||||
<string><html><head/><body><p>The default metatile value that will be used for the top-right border metatile on new maps.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="UIntHexSpinBox" name="spinBox_BorderMetatile3">
|
||||
<property name="toolTip">
|
||||
<string>The default metatile value that will be used for the bottom-left border metatile on new maps.</string>
|
||||
<string><html><head/><body><p>The default metatile value that will be used for the bottom-left border metatile on new maps.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="UIntHexSpinBox" name="spinBox_BorderMetatile4">
|
||||
<property name="toolTip">
|
||||
<string>The default metatile value that will be used for the bottom-right border metatile on new maps.</string>
|
||||
<string><html><head/><body><p>The default metatile value that will be used for the bottom-right border metatile on new maps.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -697,7 +706,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_MetatileIdMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write metatile IDs in map data.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write metatile IDs in map data.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -711,7 +720,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_CollisionMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write collision values in map data.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write collision values in map data.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -725,7 +734,7 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_ElevationMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write elevation values in map data.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write elevation values in map data.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -754,7 +763,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="checkBox_EnableAllowFlags">
|
||||
<property name="toolTip">
|
||||
<string>Whether "Allow Running", "Allow Biking" and "Allow Dig & Escape Rope" are default options for Map Headers</string>
|
||||
<string><html><head/><body><p>Whether &quot;Allow Running&quot;, &quot;Allow Biking&quot; and &quot;Allow Dig &amp; Escape Rope&quot; are default options for Map Headers</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable 'Allow Running/Biking/Escaping'</string>
|
||||
|
|
@ -764,7 +773,7 @@
|
|||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_EnableFloorNumber">
|
||||
<property name="toolTip">
|
||||
<string>Whether "Floor Number" is a default option for Map Headers</string>
|
||||
<string><html><head/><body><p>Whether &quot;Floor Number&quot; is a default option for Map Headers</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable 'Floor Number'</string>
|
||||
|
|
@ -774,7 +783,7 @@
|
|||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_EnableCustomBorderSize">
|
||||
<property name="toolTip">
|
||||
<string>Whether the dimensions of the border can be changed. If not set, all borders are 2x2</string>
|
||||
<string><html><head/><body><p>Whether the dimensions of the border can be changed. If not set, all borders are 2x2</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable Custom Border Size</string>
|
||||
|
|
@ -834,7 +843,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>561</width>
|
||||
<width>570</width>
|
||||
<height>798</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
@ -853,7 +862,11 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_DefaultPrimaryTileset"/>
|
||||
<widget class="NoScrollComboBox" name="comboBox_DefaultPrimaryTileset">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The default primary tileset to use for new maps/layouts.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_SecondaryTileset">
|
||||
|
|
@ -863,7 +876,11 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_DefaultSecondaryTileset"/>
|
||||
<widget class="NoScrollComboBox" name="comboBox_DefaultSecondaryTileset">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The default secondary tileset to use for new maps/layouts.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
|
@ -877,7 +894,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_RenderBlack">
|
||||
<property name="toolTip">
|
||||
<string>Fully transparent pixels will be rendered as black pixels (the Pokémon games do this by default)</string>
|
||||
<string><html><head/><body><p>Fully transparent pixels will be rendered as black pixels (the Pokémon games do this by default)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Render as black</string>
|
||||
|
|
@ -887,7 +904,7 @@
|
|||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_RenderFirstPalColor">
|
||||
<property name="toolTip">
|
||||
<string>Fully transparent pixels will be rendered using the first palette color (this the default behavior for the GBA)</string>
|
||||
<string><html><head/><body><p>Fully transparent pixels will be rendered using the first palette color (this the default behavior for the GBA)</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Render using first palette color</string>
|
||||
|
|
@ -913,7 +930,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_UnusedTileNormal">
|
||||
<property name="toolTip">
|
||||
<string>This raw tile value will be used to fill the unused bottom layer of Normal metatiles</string>
|
||||
<string><html><head/><body><p>This raw tile value will be used to fill the unused bottom layer of Normal metatiles</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -927,7 +944,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_UnusedTileCovered">
|
||||
<property name="toolTip">
|
||||
<string>This raw tile value will be used to fill the unused top layer of Covered metatiles</string>
|
||||
<string><html><head/><body><p>This raw tile value will be used to fill the unused top layer of Covered metatiles</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -941,7 +958,7 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_UnusedTileSplit">
|
||||
<property name="toolTip">
|
||||
<string>This raw tile value will be used to fill the unused middle layer of Split metatiles</string>
|
||||
<string><html><head/><body><p>This raw tile value will be used to fill the unused middle layer of Split metatiles</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -985,22 +1002,19 @@
|
|||
<item row="4" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_LayerTypeMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write Layer Type from the metatile's attributes data. If 0, this attribute is disabled.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write Layer Type from the metatile's attributes data. If 0, this attribute is disabled.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_BehaviorMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write Metatile Behavior from the metatile's attributes data. If 0, this attribute is disabled.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write Metatile Behavior from the metatile's attributes data. If 0, this attribute is disabled.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_AttributesSize">
|
||||
<property name="toolTip">
|
||||
<string>The number of bytes used per metatile for metatile attributes</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Attributes size (in bytes)</string>
|
||||
</property>
|
||||
|
|
@ -1031,6 +1045,9 @@
|
|||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="checkBox_EnableTripleLayerMetatiles">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>If checked, metatiles will be interpreted as having 3 layers of 4 tiles each (12 tiles total) as opposed to the default 2 layers of 4 tiles each (8 total).</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable Triple Layer Metatiles</string>
|
||||
</property>
|
||||
|
|
@ -1039,7 +1056,7 @@
|
|||
<item row="7" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_TerrainTypeMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write Terrain Type from the metatile's attributes data. If 0, this attribute is disabled.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write Terrain Type from the metatile's attributes data. If 0, this attribute is disabled.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -1066,7 +1083,7 @@
|
|||
<item row="5" column="1">
|
||||
<widget class="UIntHexSpinBox" name="spinBox_EncounterTypeMask">
|
||||
<property name="toolTip">
|
||||
<string>The mask used to read/write Encounter Type from the metatile's attributes data. If 0, this attribute is disabled.</string>
|
||||
<string><html><head/><body><p>The mask used to read/write Encounter Type from the metatile's attributes data. If 0, this attribute is disabled.</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -1079,6 +1096,9 @@
|
|||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="NoScrollComboBox" name="comboBox_AttributesSize">
|
||||
<property name="toolTip">
|
||||
<string><html><head/><body><p>The number of bytes each metatile has for metatile attributes. This is the metadata about each metatile like behvior, layer type, etc.</p></body></html></string>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
|
|
@ -1119,7 +1139,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_OutputCallback">
|
||||
<property name="toolTip">
|
||||
<string>Whether the C data outputted for new tilesets will include the "callback" field</string>
|
||||
<string><html><head/><body><p>Whether the C data outputted for new tilesets will include the &quot;callback&quot; field</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Output 'callback' field</string>
|
||||
|
|
@ -1129,7 +1149,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_OutputIsCompressed">
|
||||
<property name="toolTip">
|
||||
<string>Whether the C data outputted for new tilesets will include the "isCompressed" field</string>
|
||||
<string><html><head/><body><p>Whether the C data outputted for new tilesets will include the &quot;isCompressed&quot; field</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Output 'isCompressed' field</string>
|
||||
|
|
@ -1176,7 +1196,7 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>561</width>
|
||||
<width>570</width>
|
||||
<height>840</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
@ -1204,7 +1224,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_WarpsIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be used to represent Warp events</string>
|
||||
<string><html><head/><body><p>The icon that will be used to represent Warp events</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1214,7 +1234,7 @@
|
|||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_HealLocationsIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be used to represent Heal Location events</string>
|
||||
<string><html><head/><body><p>The icon that will be used to represent Heal Location events</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1238,7 +1258,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_ObjectsIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be used to represent Object events that don't have their own sprite</string>
|
||||
<string><html><head/><body><p>The icon that will be used to represent Object events that don't have their own sprite</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1255,7 +1275,7 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_TriggersIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be used to represent Trigger events</string>
|
||||
<string><html><head/><body><p>The icon that will be used to represent Trigger events</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1265,7 +1285,7 @@
|
|||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_BGsIcon">
|
||||
<property name="toolTip">
|
||||
<string>The icon that will be used to represent BG events</string>
|
||||
<string><html><head/><body><p>The icon that will be used to represent BG events</p></body></html></string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1339,7 +1359,7 @@
|
|||
<item row="1" column="2">
|
||||
<widget class="QToolButton" name="button_RemoveWarpBehavior">
|
||||
<property name="toolTip">
|
||||
<string>Remove the current text from the list</string>
|
||||
<string><html><head/><body><p>Remove the current text from the list</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
@ -1363,7 +1383,7 @@
|
|||
<item row="0" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="checkBox_DisableWarning">
|
||||
<property name="toolTip">
|
||||
<string>If checked, Warp Events will not display a warning about incompatible metatile behaviors</string>
|
||||
<string><html><head/><body><p>If checked, Warp Events will not display a warning about incompatible metatile behaviors</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Disable Warning</string>
|
||||
|
|
@ -1374,9 +1394,9 @@
|
|||
<widget class="NoScrollComboBox" name="comboBox_WarpBehaviors"/>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<widget class="QTextEdit" name="textEdit_WarpBehaviors">
|
||||
<widget class="NoScrollTextEdit" name="textEdit_WarpBehaviors">
|
||||
<property name="toolTip">
|
||||
<string>Metatile Behaviors on this list won't trigger warnings for Warp Events</string>
|
||||
<string><html><head/><body><p>Metatile Behaviors on this list won't trigger warnings for Warp Events</p></body></html></string>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
|
|
@ -1392,7 +1412,7 @@
|
|||
<item row="1" column="1">
|
||||
<widget class="QToolButton" name="button_AddWarpBehavior">
|
||||
<property name="toolTip">
|
||||
<string>Add the current text to the list</string>
|
||||
<string><html><head/><body><p>Add the current text to the list</p></body></html></string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
|
|
@ -1558,8 +1578,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>561</width>
|
||||
<height>593</height>
|
||||
<width>570</width>
|
||||
<height>499</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_10">
|
||||
|
|
@ -1605,8 +1625,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>535</width>
|
||||
<height>531</height>
|
||||
<width>544</width>
|
||||
<height>437</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="layout_ProjectPaths">
|
||||
|
|
@ -1647,8 +1667,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>561</width>
|
||||
<height>593</height>
|
||||
<width>570</width>
|
||||
<height>499</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_19">
|
||||
|
|
@ -1694,8 +1714,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>535</width>
|
||||
<height>531</height>
|
||||
<width>544</width>
|
||||
<height>437</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="layout_Identifiers">
|
||||
|
|
@ -1744,6 +1764,11 @@
|
|||
<extends>QSpinBox</extends>
|
||||
<header>noscrollspinbox.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>NoScrollTextEdit</class>
|
||||
<extends>QTextEdit</extends>
|
||||
<header>noscrolltextedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>UIntSpinBox</class>
|
||||
<extends>QAbstractSpinBox</extends>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_4">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||
<enum>QFormLayout::FieldGrowthPolicy::AllNonFixedFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="config_alias">
|
||||
<property name="toolTip">
|
||||
<string>A nickname for this region map that will differentiate it from others (should be unique).</string>
|
||||
<string><html><head/><body><p>A nickname for this region map that will differentiate it from others (should be unique).</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
@ -131,7 +131,7 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>The height of the tilemap</string>
|
||||
<string><html><head/><body><p>The height of the tilemap</p></body></html></string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>255</number>
|
||||
|
|
@ -148,10 +148,10 @@
|
|||
<item row="6" column="1">
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
<enum>QFrame::Shape::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
<enum>QFrame::Shadow::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="leftMargin">
|
||||
|
|
@ -218,10 +218,10 @@
|
|||
<string><html><head/><body><p>Path to the tilemap binary relative to the project root.</p></body></html></string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
<enum>QFrame::Shape::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
<enum>QFrame::Shadow::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="leftMargin">
|
||||
|
|
@ -269,10 +269,10 @@
|
|||
<item row="10" column="1">
|
||||
<widget class="QFrame" name="frame_3">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
<enum>QFrame::Shape::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Plain</enum>
|
||||
<enum>QFrame::Shadow::Plain</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<property name="leftMargin">
|
||||
|
|
@ -392,10 +392,10 @@
|
|||
<item row="2" column="1">
|
||||
<widget class="QFrame" name="frame_5">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
<enum>QFrame::Shape::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
<enum>QFrame::Shadow::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<property name="leftMargin">
|
||||
|
|
@ -487,7 +487,7 @@
|
|||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
@ -517,7 +517,7 @@
|
|||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
@ -590,7 +590,7 @@
|
|||
<item>
|
||||
<spacer name="horizontalSpacer_7">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
@ -617,7 +617,7 @@
|
|||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
@ -646,7 +646,7 @@
|
|||
<item row="9" column="0">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
@ -659,10 +659,10 @@
|
|||
<item row="9" column="1">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ public:
|
|||
|
||||
void deleteConnections();
|
||||
QList<MapConnection*> getConnections() const { return m_connections; }
|
||||
MapConnection* getConnection(const QString &direction) const;
|
||||
void removeConnection(MapConnection *);
|
||||
void addConnection(MapConnection *);
|
||||
void loadConnection(MapConnection *);
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ namespace Util {
|
|||
int roundUp(int numToRound, int multiple);
|
||||
QString toDefineCase(QString input);
|
||||
QString toHexString(uint32_t value, int minLength = 0);
|
||||
QString toHtmlParagraph(const QString &text);
|
||||
Qt::Orientations getOrientation(bool xflip, bool yflip);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,14 +92,16 @@ public:
|
|||
void setConnectionsVisibility(bool visible);
|
||||
void updateDivingMapsVisibility();
|
||||
void renderDivingConnections();
|
||||
void addConnection(MapConnection* connection);
|
||||
void addNewConnection(const QString &mapName, const QString &direction);
|
||||
void replaceConnection(const QString &mapName, const QString &direction);
|
||||
void removeConnection(MapConnection* connection);
|
||||
void removeSelectedConnection();
|
||||
void addNewWildMonGroup(QWidget *window);
|
||||
void deleteWildMonGroup();
|
||||
void configureEncounterJSON(QWidget *);
|
||||
EncounterTableModel* getCurrentWildMonTable();
|
||||
void updateDiveMap(QString mapName);
|
||||
void updateEmergeMap(QString mapName);
|
||||
bool setDivingMapName(const QString &mapName, const QString &direction);
|
||||
QString getDivingMapName(const QString &direction) const;
|
||||
void setSelectedConnection(MapConnection *connection);
|
||||
|
||||
void updatePrimaryTileset(QString tilesetLabel, bool forceLoad = false);
|
||||
|
|
@ -219,8 +221,9 @@ private:
|
|||
void removeConnectionPixmap(MapConnection *connection);
|
||||
void displayConnection(MapConnection *connection);
|
||||
void displayDivingConnection(MapConnection *connection);
|
||||
void setDivingMapName(QString mapName, QString direction);
|
||||
void removeDivingMapPixmap(MapConnection *connection);
|
||||
void onDivingMapEditingFinished(NoScrollComboBox* combo, const QString &direction);
|
||||
void updateDivingMapButton(QToolButton* button, const QString &mapName);
|
||||
void updateEncounterFields(EncounterFields newFields);
|
||||
QString getMovementPermissionText(uint16_t collision, uint16_t elevation);
|
||||
QString getMetatileDisplayMessage(uint16_t metatileId);
|
||||
|
|
|
|||
|
|
@ -243,8 +243,6 @@ private slots:
|
|||
void on_pushButton_AddConnection_clicked();
|
||||
void on_button_OpenDiveMap_clicked();
|
||||
void on_button_OpenEmergeMap_clicked();
|
||||
void on_comboBox_DiveMap_currentTextChanged(const QString &mapName);
|
||||
void on_comboBox_EmergeMap_currentTextChanged(const QString &mapName);
|
||||
void on_comboBox_PrimaryTileset_currentTextChanged(const QString &arg1);
|
||||
void on_comboBox_SecondaryTileset_currentTextChanged(const QString &arg1);
|
||||
void on_pushButton_ChangeDimensions_clicked();
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ protected:
|
|||
virtual void mousePressEvent(QGraphicsSceneMouseEvent*) override;
|
||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent*) override;
|
||||
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) override;
|
||||
virtual void keyPressEvent(QKeyEvent*) override;
|
||||
virtual void focusInEvent(QFocusEvent*) override;
|
||||
|
||||
signals:
|
||||
void connectionItemDoubleClicked(MapConnection*);
|
||||
|
|
|
|||
|
|
@ -36,19 +36,17 @@ private:
|
|||
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent*) override;
|
||||
virtual void focusInEvent(QFocusEvent*) override;
|
||||
virtual void keyPressEvent(QKeyEvent*) override;
|
||||
virtual bool eventFilter(QObject*, QEvent *event) override;
|
||||
|
||||
signals:
|
||||
void selected();
|
||||
void openMapClicked(MapConnection*);
|
||||
|
||||
private slots:
|
||||
void on_comboBox_Direction_currentTextChanged(QString direction);
|
||||
void on_comboBox_Map_currentTextChanged(QString mapName);
|
||||
void on_spinBox_Offset_valueChanged(int offset);
|
||||
void on_button_Delete_clicked();
|
||||
void on_button_OpenMap_clicked();
|
||||
private:
|
||||
void commitDirection();
|
||||
void commitMap(const QString &mapName);
|
||||
void commitMove(int offset);
|
||||
void commitRemove();
|
||||
};
|
||||
|
||||
#endif // CONNECTIONSLISTITEM_H
|
||||
|
|
|
|||
|
|
@ -32,6 +32,19 @@ signals:
|
|||
void clicked(QMouseEvent *event);
|
||||
};
|
||||
|
||||
class ConnectionsView : public QGraphicsView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ConnectionsView(QWidget *parent = nullptr) : QGraphicsView(parent) {}
|
||||
|
||||
signals:
|
||||
void pressedDelete();
|
||||
|
||||
protected:
|
||||
virtual void keyPressEvent(QKeyEvent *event) override;
|
||||
};
|
||||
|
||||
class Editor;
|
||||
|
||||
// TODO: This should just be MapView. It makes map-based assumptions, and no other class inherits GraphicsView.
|
||||
|
|
|
|||
|
|
@ -20,13 +20,16 @@ public:
|
|||
virtual void accept() override;
|
||||
|
||||
signals:
|
||||
void accepted(MapConnection *result);
|
||||
void newConnectionedAdded(const QString &mapName, const QString &direction);
|
||||
void connectionReplaced(const QString &mapName, const QString &direction);
|
||||
|
||||
private:
|
||||
Ui::NewMapConnectionDialog *ui;
|
||||
Map *m_map;
|
||||
|
||||
bool mapNameIsValid();
|
||||
void setWarningVisible(bool visible);
|
||||
bool askReplaceConnection(MapConnection *connection, const QString &newMapName);
|
||||
};
|
||||
|
||||
#endif // NEWMAPCONNECTIONDIALOG_H
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@ public:
|
|||
void setLineEdit(QLineEdit *edit);
|
||||
void setFocusedScrollingEnabled(bool enabled);
|
||||
|
||||
signals:
|
||||
void editingFinished();
|
||||
|
||||
private:
|
||||
void setItem(int index, const QString &text);
|
||||
|
||||
|
|
|
|||
25
include/ui/noscrolltextedit.h
Normal file
25
include/ui/noscrolltextedit.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef NOSCROLLTEXTEDIT_H
|
||||
#define NOSCROLLTEXTEDIT_H
|
||||
|
||||
#include <QTextEdit>
|
||||
#include <QWheelEvent>
|
||||
|
||||
class NoScrollTextEdit : public QTextEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit NoScrollTextEdit(const QString &text, QWidget *parent = nullptr) : QTextEdit(text, parent) {
|
||||
setFocusPolicy(Qt::StrongFocus);
|
||||
};
|
||||
explicit NoScrollTextEdit(QWidget *parent = nullptr) : NoScrollTextEdit(QString(), parent) {};
|
||||
|
||||
virtual void wheelEvent(QWheelEvent *event) override {
|
||||
if (hasFocus()) {
|
||||
QTextEdit::wheelEvent(event);
|
||||
} else {
|
||||
event->ignore();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
#endif // NOSCROLLTEXTEDIT_H
|
||||
|
|
@ -223,6 +223,7 @@ HEADERS += include/core/advancemapparser.h \
|
|||
include/ui/newmapgroupdialog.h \
|
||||
include/ui/noscrollcombobox.h \
|
||||
include/ui/noscrollspinbox.h \
|
||||
include/ui/noscrolltextedit.h \
|
||||
include/ui/montabwidget.h \
|
||||
include/ui/encountertablemodel.h \
|
||||
include/ui/encountertabledelegates.h \
|
||||
|
|
|
|||
|
|
@ -289,6 +289,15 @@ void Map::removeConnection(MapConnection *connection) {
|
|||
emit connectionRemoved(connection);
|
||||
}
|
||||
|
||||
// Return the first map connection that has the given direction.
|
||||
MapConnection* Map::getConnection(const QString &direction) const {
|
||||
for (const auto &connection : m_connections) {
|
||||
if (connection->direction() == direction)
|
||||
return connection;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Map::commit(QUndoCommand *cmd) {
|
||||
m_editHistory->push(cmd);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,10 @@ QString Util::toHexString(uint32_t value, int minLength) {
|
|||
return "0x" + QString("%1").arg(value, minLength, 16, QChar('0')).toUpper();
|
||||
}
|
||||
|
||||
QString Util::toHtmlParagraph(const QString &text) {
|
||||
return QString("<html><head/><body><p>%1</p></body></html>").arg(text);
|
||||
}
|
||||
|
||||
Qt::Orientations Util::getOrientation(bool xflip, bool yflip) {
|
||||
Qt::Orientations flags;
|
||||
if (xflip) flags |= Qt::Orientation::Horizontal;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,19 @@ Editor::Editor(Ui::MainWindow* ui)
|
|||
connect(ui->actionOpen_Project_in_Text_Editor, &QAction::triggered, this, &Editor::openProjectInTextEditor);
|
||||
connect(ui->checkBox_ToggleGrid, &QCheckBox::toggled, this, &Editor::toggleGrid);
|
||||
connect(ui->mapCustomAttributesFrame->table(), &CustomAttributesTable::edited, this, &Editor::updateCustomMapAttributes);
|
||||
|
||||
connect(ui->comboBox_DiveMap, &NoScrollComboBox::editingFinished, [this] {
|
||||
onDivingMapEditingFinished(this->ui->comboBox_DiveMap, "dive");
|
||||
});
|
||||
connect(ui->comboBox_EmergeMap, &NoScrollComboBox::editingFinished, [this] {
|
||||
onDivingMapEditingFinished(this->ui->comboBox_EmergeMap, "emerge");
|
||||
});
|
||||
connect(ui->comboBox_DiveMap, &NoScrollComboBox::currentTextChanged, [this] {
|
||||
updateDivingMapButton(this->ui->button_OpenDiveMap, this->ui->comboBox_DiveMap->currentText());
|
||||
});
|
||||
connect(ui->comboBox_EmergeMap, &NoScrollComboBox::currentTextChanged, [this] {
|
||||
updateDivingMapButton(this->ui->button_OpenEmergeMap, this->ui->comboBox_EmergeMap->currentText());
|
||||
});
|
||||
}
|
||||
|
||||
Editor::~Editor()
|
||||
|
|
@ -807,23 +820,41 @@ void Editor::displayConnection(MapConnection *connection) {
|
|||
}
|
||||
}
|
||||
|
||||
void Editor::addConnection(MapConnection *connection) {
|
||||
if (!connection)
|
||||
void Editor::addNewConnection(const QString &mapName, const QString &direction) {
|
||||
if (!this->map)
|
||||
return;
|
||||
|
||||
MapConnection *connection = new MapConnection(mapName, direction);
|
||||
|
||||
// Mark this connection to be selected once its display elements have been created.
|
||||
// It's possible this is a Dive/Emerge connection, but that's ok (no selection will occur).
|
||||
connection_to_select = connection;
|
||||
this->connection_to_select = connection;
|
||||
|
||||
this->map->commit(new MapConnectionAdd(this->map, connection));
|
||||
}
|
||||
|
||||
void Editor::replaceConnection(const QString &mapName, const QString &direction) {
|
||||
if (!this->map)
|
||||
return;
|
||||
|
||||
MapConnection *connection = this->map->getConnection(direction);
|
||||
if (!connection || connection->targetMapName() == mapName)
|
||||
return;
|
||||
|
||||
this->map->commit(new MapConnectionChangeMap(connection, mapName));
|
||||
}
|
||||
|
||||
void Editor::removeConnection(MapConnection *connection) {
|
||||
if (!connection)
|
||||
if (!this->map || !connection)
|
||||
return;
|
||||
this->map->commit(new MapConnectionRemove(this->map, connection));
|
||||
}
|
||||
|
||||
void Editor::removeSelectedConnection() {
|
||||
if (selected_connection_item)
|
||||
removeConnection(selected_connection_item->connection);
|
||||
}
|
||||
|
||||
void Editor::removeConnectionPixmap(MapConnection *connection) {
|
||||
if (!connection)
|
||||
return;
|
||||
|
|
@ -916,21 +947,18 @@ void Editor::removeDivingMapPixmap(MapConnection *connection) {
|
|||
updateDivingMapsVisibility();
|
||||
}
|
||||
|
||||
void Editor::updateDiveMap(QString mapName) {
|
||||
setDivingMapName(mapName, "dive");
|
||||
}
|
||||
bool Editor::setDivingMapName(const QString &mapName, const QString &direction) {
|
||||
if (!mapName.isEmpty() && !this->project->mapNames.contains(mapName))
|
||||
return false;
|
||||
if (!MapConnection::isDiving(direction))
|
||||
return false;
|
||||
|
||||
void Editor::updateEmergeMap(QString mapName) {
|
||||
setDivingMapName(mapName, "emerge");
|
||||
}
|
||||
|
||||
void Editor::setDivingMapName(QString mapName, QString direction) {
|
||||
auto pixmapItem = diving_map_items.value(direction);
|
||||
MapConnection *connection = pixmapItem ? pixmapItem->connection() : nullptr;
|
||||
|
||||
if (connection) {
|
||||
if (mapName == connection->targetMapName())
|
||||
return; // No change
|
||||
return true; // No change
|
||||
|
||||
// Update existing connection
|
||||
if (mapName.isEmpty()) {
|
||||
|
|
@ -940,8 +968,25 @@ void Editor::setDivingMapName(QString mapName, QString direction) {
|
|||
}
|
||||
} else if (!mapName.isEmpty()) {
|
||||
// Create new connection
|
||||
addConnection(new MapConnection(mapName, direction));
|
||||
addNewConnection(mapName, direction);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
QString Editor::getDivingMapName(const QString &direction) const {
|
||||
auto pixmapItem = diving_map_items.value(direction);
|
||||
return (pixmapItem && pixmapItem->connection()) ? pixmapItem->connection()->targetMapName() : QString();
|
||||
}
|
||||
|
||||
void Editor::onDivingMapEditingFinished(NoScrollComboBox *combo, const QString &direction) {
|
||||
if (!setDivingMapName(combo->currentText(), direction)) {
|
||||
// If user input was invalid, restore the combo to the previously-valid text.
|
||||
combo->setCurrentText(getDivingMapName(direction));
|
||||
}
|
||||
}
|
||||
|
||||
void Editor::updateDivingMapButton(QToolButton* button, const QString &mapName) {
|
||||
if (this->project) button->setDisabled(!this->project->mapNames.contains(mapName));
|
||||
}
|
||||
|
||||
void Editor::updateDivingMapsVisibility() {
|
||||
|
|
@ -1725,8 +1770,6 @@ void Editor::clearMapConnections() {
|
|||
}
|
||||
connection_items.clear();
|
||||
|
||||
const QSignalBlocker blocker1(ui->comboBox_DiveMap);
|
||||
const QSignalBlocker blocker2(ui->comboBox_EmergeMap);
|
||||
ui->comboBox_DiveMap->setCurrentText("");
|
||||
ui->comboBox_EmergeMap->setCurrentText("");
|
||||
|
||||
|
|
|
|||
|
|
@ -261,6 +261,10 @@ void MainWindow::initCustomUI() {
|
|||
// Create map header data widget
|
||||
this->mapHeaderForm = new MapHeaderForm();
|
||||
ui->layout_HeaderData->addWidget(this->mapHeaderForm);
|
||||
|
||||
// Center zooming on the mouse
|
||||
ui->graphicsView_Map->setTransformationAnchor(QGraphicsView::ViewportAnchor::AnchorUnderMouse);
|
||||
ui->graphicsView_Map->setResizeAnchor(QGraphicsView::ViewportAnchor::AnchorUnderMouse);
|
||||
}
|
||||
|
||||
void MainWindow::initExtraSignals() {
|
||||
|
|
@ -348,6 +352,7 @@ void MainWindow::initEditor() {
|
|||
connect(this->editor, &Editor::tilesetUpdated, this, &Scripting::cb_TilesetUpdated);
|
||||
connect(ui->newEventToolButton, &NewEventToolButton::newEventAdded, this->editor, &Editor::addNewEvent);
|
||||
connect(ui->toolButton_deleteEvent, &QAbstractButton::clicked, this->editor, &Editor::deleteSelectedEvents);
|
||||
connect(ui->graphicsView_Connections, &ConnectionsView::pressedDelete, this->editor, &Editor::removeSelectedConnection);
|
||||
|
||||
this->loadUserSettings();
|
||||
|
||||
|
|
@ -1217,10 +1222,7 @@ void MainWindow::clearProjectUI() {
|
|||
const QSignalBlocker b_SecondaryTileset(ui->comboBox_SecondaryTileset);
|
||||
ui->comboBox_SecondaryTileset->clear();
|
||||
|
||||
const QSignalBlocker b_DiveMap(ui->comboBox_DiveMap);
|
||||
ui->comboBox_DiveMap->clear();
|
||||
|
||||
const QSignalBlocker b_EmergeMap(ui->comboBox_EmergeMap);
|
||||
ui->comboBox_EmergeMap->clear();
|
||||
|
||||
const QSignalBlocker b_LayoutSelector(ui->comboBox_LayoutSelector);
|
||||
|
|
@ -1381,8 +1383,6 @@ void MainWindow::onNewMapCreated(Map *newMap, const QString &groupName) {
|
|||
// (other combo boxes like for warp destinations are repopulated when the map changes).
|
||||
int mapIndex = this->editor->project->mapNames.indexOf(newMap->name());
|
||||
if (mapIndex >= 0) {
|
||||
const QSignalBlocker b_DiveMap(ui->comboBox_DiveMap);
|
||||
const QSignalBlocker b_EmergeMap(ui->comboBox_EmergeMap);
|
||||
ui->comboBox_DiveMap->insertItem(mapIndex, newMap->name());
|
||||
ui->comboBox_EmergeMap->insertItem(mapIndex, newMap->name());
|
||||
}
|
||||
|
|
@ -2594,7 +2594,8 @@ void MainWindow::on_pushButton_AddConnection_clicked() {
|
|||
return;
|
||||
|
||||
auto dialog = new NewMapConnectionDialog(this, this->editor->map, this->editor->project->mapNames);
|
||||
connect(dialog, &NewMapConnectionDialog::accepted, this->editor, &Editor::addConnection);
|
||||
connect(dialog, &NewMapConnectionDialog::newConnectionedAdded, this->editor, &Editor::addNewConnection);
|
||||
connect(dialog, &NewMapConnectionDialog::connectionReplaced, this->editor, &Editor::replaceConnection);
|
||||
dialog->open();
|
||||
}
|
||||
|
||||
|
|
@ -2647,17 +2648,6 @@ void MainWindow::on_button_OpenEmergeMap_clicked() {
|
|||
userSetMap(ui->comboBox_EmergeMap->currentText());
|
||||
}
|
||||
|
||||
void MainWindow::on_comboBox_DiveMap_currentTextChanged(const QString &mapName) {
|
||||
// Include empty names as an update (user is deleting the connection)
|
||||
if (mapName.isEmpty() || editor->project->mapNames.contains(mapName))
|
||||
editor->updateDiveMap(mapName);
|
||||
}
|
||||
|
||||
void MainWindow::on_comboBox_EmergeMap_currentTextChanged(const QString &mapName) {
|
||||
if (mapName.isEmpty() || editor->project->mapNames.contains(mapName))
|
||||
editor->updateEmergeMap(mapName);
|
||||
}
|
||||
|
||||
void MainWindow::on_comboBox_PrimaryTileset_currentTextChanged(const QString &tilesetLabel)
|
||||
{
|
||||
if (editor->project->primaryTilesetLabels.contains(tilesetLabel) && editor->layout) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ ConnectionPixmapItem::ConnectionPixmapItem(MapConnection* connection)
|
|||
connection(connection)
|
||||
{
|
||||
this->setEditable(true);
|
||||
setFlag(ItemIsFocusable, true);
|
||||
this->basePixmap = pixmap();
|
||||
updateOrigin();
|
||||
render(false);
|
||||
|
|
@ -118,10 +117,6 @@ bool ConnectionPixmapItem::getEditable() {
|
|||
}
|
||||
|
||||
void ConnectionPixmapItem::setSelected(bool selected) {
|
||||
if (selected && !hasFocus()) {
|
||||
setFocus(Qt::OtherFocusReason);
|
||||
}
|
||||
|
||||
if (this->selected == selected)
|
||||
return;
|
||||
this->selected = selected;
|
||||
|
|
@ -131,7 +126,7 @@ void ConnectionPixmapItem::setSelected(bool selected) {
|
|||
}
|
||||
|
||||
void ConnectionPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *) {
|
||||
setFocus(Qt::MouseFocusReason);
|
||||
this->setSelected(true);
|
||||
}
|
||||
|
||||
void ConnectionPixmapItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
|
||||
|
|
@ -142,18 +137,3 @@ void ConnectionPixmapItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
|
|||
void ConnectionPixmapItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *) {
|
||||
emit connectionItemDoubleClicked(this->connection);
|
||||
}
|
||||
|
||||
void ConnectionPixmapItem::keyPressEvent(QKeyEvent* event) {
|
||||
if (event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace) {
|
||||
emit deleteRequested(this->connection);
|
||||
} else {
|
||||
QGraphicsPixmapItem::keyPressEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
void ConnectionPixmapItem::focusInEvent(QFocusEvent* event) {
|
||||
if (!this->getEditable())
|
||||
return;
|
||||
this->setSelected(true);
|
||||
QGraphicsPixmapItem::focusInEvent(event);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,44 +7,55 @@
|
|||
|
||||
ConnectionsListItem::ConnectionsListItem(QWidget *parent, MapConnection * connection, const QStringList &mapNames) :
|
||||
QFrame(parent),
|
||||
ui(new Ui::ConnectionsListItem)
|
||||
ui(new Ui::ConnectionsListItem),
|
||||
connection(connection),
|
||||
map(connection->parentMap())
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setFocusPolicy(Qt::StrongFocus);
|
||||
|
||||
const QSignalBlocker blocker1(ui->comboBox_Direction);
|
||||
const QSignalBlocker blocker2(ui->comboBox_Map);
|
||||
const QSignalBlocker blocker3(ui->spinBox_Offset);
|
||||
|
||||
ui->comboBox_Direction->setEditable(false);
|
||||
// Direction
|
||||
const QSignalBlocker b_Direction(ui->comboBox_Direction);
|
||||
ui->comboBox_Direction->setMinimumContentsLength(0);
|
||||
ui->comboBox_Direction->addItems(MapConnection::cardinalDirections);
|
||||
ui->comboBox_Direction->installEventFilter(this);
|
||||
|
||||
connect(ui->comboBox_Direction, &NoScrollComboBox::editingFinished, this, &ConnectionsListItem::commitDirection);
|
||||
|
||||
// Map
|
||||
const QSignalBlocker b_Map(ui->comboBox_Map);
|
||||
ui->comboBox_Map->setMinimumContentsLength(6);
|
||||
ui->comboBox_Map->addItems(mapNames);
|
||||
ui->comboBox_Map->setFocusedScrollingEnabled(false); // Scrolling could cause rapid changes to many different maps
|
||||
ui->comboBox_Map->setInsertPolicy(QComboBox::NoInsert);
|
||||
ui->comboBox_Map->installEventFilter(this);
|
||||
|
||||
ui->spinBox_Offset->setMinimum(INT_MIN);
|
||||
ui->spinBox_Offset->setMaximum(INT_MAX);
|
||||
connect(ui->comboBox_Map, &QComboBox::currentTextChanged, this, &ConnectionsListItem::commitMap);
|
||||
|
||||
// Invalid map names are not considered a change. If editing finishes with an invalid name, restore the previous name.
|
||||
connect(ui->comboBox_Map->lineEdit(), &QLineEdit::editingFinished, [this] {
|
||||
const QSignalBlocker blocker(ui->comboBox_Map);
|
||||
if (ui->comboBox_Map->findText(ui->comboBox_Map->currentText()) < 0)
|
||||
const QSignalBlocker b(ui->comboBox_Map);
|
||||
if (this->connection && ui->comboBox_Map->findText(ui->comboBox_Map->currentText()) < 0)
|
||||
ui->comboBox_Map->setTextItem(this->connection->targetMapName());
|
||||
});
|
||||
|
||||
// Distinguish between move actions for the edit history
|
||||
connect(ui->spinBox_Offset, &QSpinBox::editingFinished, [this] { this->actionId++; });
|
||||
// Offset
|
||||
const QSignalBlocker b_Offset(ui->spinBox_Offset);
|
||||
ui->spinBox_Offset->setMinimum(INT_MIN);
|
||||
ui->spinBox_Offset->setMaximum(INT_MAX);
|
||||
ui->spinBox_Offset->installEventFilter(this);
|
||||
|
||||
connect(ui->spinBox_Offset, &QSpinBox::editingFinished, [this] { this->actionId++; }); // Distinguish between move actions for the edit history
|
||||
connect(ui->spinBox_Offset, QOverload<int>::of(&QSpinBox::valueChanged), this, &ConnectionsListItem::commitMove);
|
||||
|
||||
// If the connection changes externally we want to update to reflect the change.
|
||||
connect(connection, &MapConnection::offsetChanged, this, &ConnectionsListItem::updateUI);
|
||||
connect(connection, &MapConnection::directionChanged, this, &ConnectionsListItem::updateUI);
|
||||
connect(connection, &MapConnection::targetMapNameChanged, this, &ConnectionsListItem::updateUI);
|
||||
|
||||
this->connection = connection;
|
||||
this->map = connection->parentMap();
|
||||
connect(ui->button_Delete, &QToolButton::clicked, this, &ConnectionsListItem::commitRemove);
|
||||
connect(ui->button_OpenMap, &QToolButton::clicked, [this] { emit openMapClicked(this->connection); });
|
||||
|
||||
this->updateUI();
|
||||
}
|
||||
|
||||
|
|
@ -66,13 +77,19 @@ void ConnectionsListItem::updateUI() {
|
|||
ui->spinBox_Offset->setValue(this->connection->offset());
|
||||
}
|
||||
|
||||
bool ConnectionsListItem::eventFilter(QObject*, QEvent *event) {
|
||||
if (event->type() == QEvent::FocusIn)
|
||||
this->setSelected(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
void ConnectionsListItem::setSelected(bool selected) {
|
||||
if (selected == this->isSelected)
|
||||
return;
|
||||
this->isSelected = selected;
|
||||
|
||||
this->setStyleSheet(selected ? ".ConnectionsListItem { border: 1px solid rgb(255, 0, 255); }"
|
||||
: ".ConnectionsListItem { border-width: 1px; }");
|
||||
this->setStyleSheet(selected ? QStringLiteral(".ConnectionsListItem { border: 1px solid rgb(255, 0, 255); }")
|
||||
: QStringLiteral(".ConnectionsListItem { border-width: 1px; }"));
|
||||
if (selected)
|
||||
emit this->selected();
|
||||
}
|
||||
|
|
@ -81,42 +98,34 @@ void ConnectionsListItem::mousePressEvent(QMouseEvent *) {
|
|||
this->setSelected(true);
|
||||
}
|
||||
|
||||
void ConnectionsListItem::on_comboBox_Direction_currentTextChanged(QString direction) {
|
||||
this->setSelected(true);
|
||||
if (this->map)
|
||||
void ConnectionsListItem::commitDirection() {
|
||||
const QString direction = ui->comboBox_Direction->currentText();
|
||||
if (!this->connection || this->connection->direction() == direction)
|
||||
return;
|
||||
|
||||
if (MapConnection::isDiving(direction)) {
|
||||
// Diving maps are displayed separately, no support right now for replacing a list item with a diving map.
|
||||
// For now just restore the original direction.
|
||||
ui->comboBox_Direction->setCurrentText(this->connection->direction());
|
||||
return;
|
||||
}
|
||||
|
||||
if (this->map) {
|
||||
this->map->commit(new MapConnectionChangeDirection(this->connection, direction));
|
||||
}
|
||||
}
|
||||
|
||||
void ConnectionsListItem::on_comboBox_Map_currentTextChanged(QString mapName) {
|
||||
this->setSelected(true);
|
||||
void ConnectionsListItem::commitMap(const QString &mapName) {
|
||||
if (this->map && ui->comboBox_Map->findText(mapName) >= 0)
|
||||
this->map->commit(new MapConnectionChangeMap(this->connection, mapName));
|
||||
}
|
||||
|
||||
void ConnectionsListItem::on_spinBox_Offset_valueChanged(int offset) {
|
||||
this->setSelected(true);
|
||||
void ConnectionsListItem::commitMove(int offset) {
|
||||
if (this->map)
|
||||
this->map->commit(new MapConnectionMove(this->connection, offset, this->actionId));
|
||||
}
|
||||
|
||||
void ConnectionsListItem::on_button_Delete_clicked() {
|
||||
void ConnectionsListItem::commitRemove() {
|
||||
if (this->map)
|
||||
this->map->commit(new MapConnectionRemove(this->map, this->connection));
|
||||
}
|
||||
|
||||
void ConnectionsListItem::on_button_OpenMap_clicked() {
|
||||
emit openMapClicked(this->connection);
|
||||
}
|
||||
|
||||
void ConnectionsListItem::focusInEvent(QFocusEvent* event) {
|
||||
this->setSelected(true);
|
||||
QFrame::focusInEvent(event);
|
||||
}
|
||||
|
||||
void ConnectionsListItem::keyPressEvent(QKeyEvent* event) {
|
||||
if (event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace) {
|
||||
on_button_Delete_clicked();
|
||||
} else {
|
||||
QFrame::keyPressEvent(event);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "customattributestable.h"
|
||||
#include "parseutil.h"
|
||||
#include "noscrollspinbox.h"
|
||||
#include "utility.h"
|
||||
#include <QHeaderView>
|
||||
#include <QScrollBar>
|
||||
|
||||
|
|
@ -96,7 +97,7 @@ int CustomAttributesTable::addAttribute(const QString &key, const QJsonValue &va
|
|||
keyItem->setFlags(Qt::ItemIsEnabled);
|
||||
keyItem->setData(DataRole::JsonType, type); // Record the type for writing to the file
|
||||
keyItem->setTextAlignment(Qt::AlignCenter);
|
||||
keyItem->setToolTip(key); // Display name as tool tip in case it's too long to see in the cell
|
||||
keyItem->setToolTip(Util::toHtmlParagraph(key)); // Display name as tool tip in case it's too long to see in the cell
|
||||
this->setItem(rowIndex, Column::Key, keyItem);
|
||||
|
||||
// Add value to table
|
||||
|
|
|
|||
|
|
@ -38,9 +38,5 @@ void DivingMapPixmapItem::onTargetMapChanged() {
|
|||
}
|
||||
|
||||
void DivingMapPixmapItem::setComboText(const QString &text) {
|
||||
if (!m_combo)
|
||||
return;
|
||||
|
||||
const QSignalBlocker blocker(m_combo);
|
||||
m_combo->setCurrentText(text);
|
||||
if (m_combo) m_combo->setCurrentText(text);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -209,15 +209,16 @@ void ObjectFrame::setup() {
|
|||
// sprite combo
|
||||
QFormLayout *l_form_sprite = new QFormLayout();
|
||||
this->combo_sprite = new NoScrollComboBox(this);
|
||||
this->combo_sprite->setToolTip("The sprite graphics to use for this object.");
|
||||
static const QString combo_sprite_toolTip = Util::toHtmlParagraph("The sprite graphics to use for this object.");
|
||||
this->combo_sprite->setToolTip(combo_sprite_toolTip);
|
||||
l_form_sprite->addRow("Sprite", this->combo_sprite);
|
||||
this->layout_contents->addLayout(l_form_sprite);
|
||||
|
||||
// movement
|
||||
QFormLayout *l_form_movement = new QFormLayout();
|
||||
this->combo_movement = new NoScrollComboBox(this);
|
||||
this->combo_movement->setToolTip("The object's natural movement behavior when\n"
|
||||
"the player is not interacting with it.");
|
||||
static const QString combo_movement_toolTip = Util::toHtmlParagraph("The object's natural movement behavior when the player is not interacting with it.");
|
||||
this->combo_movement->setToolTip(combo_movement_toolTip);
|
||||
l_form_movement->addRow("Movement", this->combo_movement);
|
||||
this->layout_contents->addLayout(l_form_movement);
|
||||
|
||||
|
|
@ -226,15 +227,15 @@ void ObjectFrame::setup() {
|
|||
this->spinner_radius_x = new NoScrollSpinBox(this);
|
||||
this->spinner_radius_x->setMinimum(0);
|
||||
this->spinner_radius_x->setMaximum(255);
|
||||
this->spinner_radius_x->setToolTip("The maximum number of metatiles this object\n"
|
||||
"is allowed to move left or right during its\n"
|
||||
"normal movement behavior actions.");
|
||||
static const QString spinner_radius_x_toolTip = Util::toHtmlParagraph("The maximum number of metatiles this object is allowed to move left "
|
||||
"or right during its normal movement behavior actions.");
|
||||
this->spinner_radius_x->setToolTip(spinner_radius_x_toolTip);
|
||||
this->spinner_radius_y = new NoScrollSpinBox(this);
|
||||
this->spinner_radius_y->setMinimum(0);
|
||||
this->spinner_radius_y->setMaximum(255);
|
||||
this->spinner_radius_y->setToolTip("The maximum number of metatiles this object\n"
|
||||
"is allowed to move up or down during its\n"
|
||||
"normal movement behavior actions.");
|
||||
static const QString spinner_radius_y_toolTip = Util::toHtmlParagraph("The maximum number of metatiles this object is allowed to move up "
|
||||
"or down during its normal movement behavior actions.");
|
||||
this->spinner_radius_y->setToolTip(spinner_radius_y_toolTip);
|
||||
l_form_radii_xy->addRow("Movement Radius X", this->spinner_radius_x);
|
||||
l_form_radii_xy->addRow("Movement Radius Y", this->spinner_radius_y);
|
||||
this->layout_contents->addLayout(l_form_radii_xy);
|
||||
|
|
@ -242,11 +243,13 @@ void ObjectFrame::setup() {
|
|||
// script
|
||||
QFormLayout *l_form_script = new QFormLayout();
|
||||
this->combo_script = new NoScrollComboBox(this);
|
||||
this->combo_script->setToolTip("The script which is executed with this event.");
|
||||
static const QString combo_script_toolTip = Util::toHtmlParagraph("The script that is executed with this event.");
|
||||
this->combo_script->setToolTip(combo_script_toolTip);
|
||||
|
||||
// Add button next to combo which opens combo's current script.
|
||||
this->button_script = new QToolButton(this);
|
||||
this->button_script->setToolTip("Go to this script definition in text editor.");
|
||||
static const QString button_script_toolTip = Util::toHtmlParagraph("Go to this script definition in text editor.");
|
||||
this->button_script->setToolTip(button_script_toolTip);
|
||||
this->button_script->setFixedSize(this->combo_script->height(), this->combo_script->height());
|
||||
this->button_script->setIcon(QFileIconProvider().icon(QFileIconProvider::File));
|
||||
|
||||
|
|
@ -261,24 +264,25 @@ void ObjectFrame::setup() {
|
|||
// event flag
|
||||
QFormLayout *l_form_flag = new QFormLayout();
|
||||
this->combo_flag = new NoScrollComboBox(this);
|
||||
this->combo_flag->setToolTip("The flag which hides the object when set.");
|
||||
static const QString combo_flag_toolTip = Util::toHtmlParagraph("The flag that hides the object when set.");
|
||||
this->combo_flag->setToolTip(combo_flag_toolTip);
|
||||
l_form_flag->addRow("Event Flag", this->combo_flag);
|
||||
this->layout_contents->addLayout(l_form_flag);
|
||||
|
||||
// trainer type
|
||||
QFormLayout *l_form_trainer = new QFormLayout();
|
||||
this->combo_trainer_type = new NoScrollComboBox(this);
|
||||
this->combo_trainer_type->setToolTip("The trainer type of this object event.\n"
|
||||
"If it is not a trainer, use NONE. SEE ALL DIRECTIONS\n"
|
||||
"should only be used with a sight radius of 1.");
|
||||
static const QString combo_trainer_type_toolTip = Util::toHtmlParagraph("The trainer type of this object event. If it is not a trainer, use NONE. "
|
||||
"SEE ALL DIRECTIONS should only be used with a sight radius of 1.");
|
||||
this->combo_trainer_type->setToolTip(combo_trainer_type_toolTip);
|
||||
l_form_trainer->addRow("Trainer Type", this->combo_trainer_type);
|
||||
this->layout_contents->addLayout(l_form_trainer);
|
||||
|
||||
// sight radius / berry tree id
|
||||
QFormLayout *l_form_radius_treeid = new QFormLayout();
|
||||
this->combo_radius_treeid = new NoScrollComboBox(this);
|
||||
this->combo_radius_treeid->setToolTip("The maximum sight range of a trainer,\n"
|
||||
"OR the unique id of the berry tree.");
|
||||
static const QString combo_radius_treeid_toolTip = Util::toHtmlParagraph("The maximum sight range of a trainer, OR the unique id of the berry tree.");
|
||||
this->combo_radius_treeid->setToolTip(combo_radius_treeid_toolTip);
|
||||
l_form_radius_treeid->addRow("Sight Radius / Berry Tree ID", this->combo_radius_treeid);
|
||||
this->layout_contents->addLayout(l_form_radius_treeid);
|
||||
|
||||
|
|
@ -420,14 +424,16 @@ void CloneObjectFrame::setup() {
|
|||
// clone map id combo
|
||||
QFormLayout *l_form_dest_map = new QFormLayout();
|
||||
this->combo_target_map = new NoScrollComboBox(this);
|
||||
this->combo_target_map->setToolTip("The name of the map that the object being cloned is on.");
|
||||
static const QString combo_target_map_toolTip = Util::toHtmlParagraph("The name of the map that the object being cloned is on.");
|
||||
this->combo_target_map->setToolTip(combo_target_map_toolTip);
|
||||
l_form_dest_map->addRow("Target Map", this->combo_target_map);
|
||||
this->layout_contents->addLayout(l_form_dest_map);
|
||||
|
||||
// clone local id spinbox
|
||||
QFormLayout *l_form_dest_id = new QFormLayout();
|
||||
this->spinner_target_id = new NoScrollSpinBox(this);
|
||||
this->spinner_target_id->setToolTip("event_object ID of the object being cloned.");
|
||||
static const QString spinner_target_id_toolTip = Util::toHtmlParagraph("event_object ID of the object being cloned.");
|
||||
this->spinner_target_id->setToolTip(spinner_target_id_toolTip);
|
||||
l_form_dest_id->addRow("Target Local ID", this->spinner_target_id);
|
||||
this->layout_contents->addLayout(l_form_dest_id);
|
||||
|
||||
|
|
@ -497,21 +503,21 @@ void WarpFrame::setup() {
|
|||
// desination map combo
|
||||
QFormLayout *l_form_dest_map = new QFormLayout();
|
||||
this->combo_dest_map = new NoScrollComboBox(this);
|
||||
this->combo_dest_map->setToolTip("The destination map name of the warp.");
|
||||
static const QString combo_dest_map_toolTip = Util::toHtmlParagraph("The destination map name of the warp.");
|
||||
this->combo_dest_map->setToolTip(combo_dest_map_toolTip);
|
||||
l_form_dest_map->addRow("Destination Map", this->combo_dest_map);
|
||||
this->layout_contents->addLayout(l_form_dest_map);
|
||||
|
||||
// desination warp id
|
||||
QFormLayout *l_form_dest_warp = new QFormLayout();
|
||||
this->combo_dest_warp = new NoScrollComboBox(this);
|
||||
this->combo_dest_warp->setToolTip("The warp id on the destination map.");
|
||||
static const QString combo_dest_warp_toolTip = Util::toHtmlParagraph("The warp id on the destination map.");
|
||||
this->combo_dest_warp->setToolTip(combo_dest_warp_toolTip);
|
||||
l_form_dest_warp->addRow("Destination Warp", this->combo_dest_warp);
|
||||
this->layout_contents->addLayout(l_form_dest_warp);
|
||||
|
||||
// warning
|
||||
static const QString warningText = "Warning:\n"
|
||||
"This warp event is not positioned on a metatile with a warp behavior.\n"
|
||||
"Click this warning for more details.";
|
||||
auto warningText = QStringLiteral("Warning:\nThis warp event is not positioned on a metatile with a warp behavior.\nClick this warning for more details.");
|
||||
QVBoxLayout *l_vbox_warning = new QVBoxLayout();
|
||||
this->warning = new QPushButton(warningText, this);
|
||||
this->warning->setFlat(true);
|
||||
|
|
@ -580,22 +586,25 @@ void TriggerFrame::setup() {
|
|||
// script combo
|
||||
QFormLayout *l_form_script = new QFormLayout();
|
||||
this->combo_script = new NoScrollComboBox(this);
|
||||
this->combo_script->setToolTip("The script which is executed with this event.");
|
||||
static const QString combo_script_toolTip = Util::toHtmlParagraph("The script that is executed with this event.");
|
||||
this->combo_script->setToolTip(combo_script_toolTip);
|
||||
l_form_script->addRow("Script", this->combo_script);
|
||||
this->layout_contents->addLayout(l_form_script);
|
||||
|
||||
// var combo
|
||||
QFormLayout *l_form_var = new QFormLayout();
|
||||
this->combo_var = new NoScrollComboBox(this);
|
||||
this->combo_var->setToolTip("The variable by which the script is triggered.\n"
|
||||
"The script is triggered when this variable's value matches 'Var Value'.");
|
||||
static const QString combo_var_toolTip = Util::toHtmlParagraph("The variable by which the script is triggered. "
|
||||
"The script is triggered when this variable's value matches 'Var Value'.");
|
||||
this->combo_var->setToolTip(combo_var_toolTip);
|
||||
l_form_var->addRow("Var", this->combo_var);
|
||||
this->layout_contents->addLayout(l_form_var);
|
||||
|
||||
// var value combo
|
||||
QFormLayout *l_form_var_val = new QFormLayout();
|
||||
this->combo_var_value = new NoScrollComboBox(this);
|
||||
this->combo_var_value->setToolTip("The variable's value which triggers the script.");
|
||||
static const QString combo_var_value_toolTip = Util::toHtmlParagraph("The variable's value that triggers the script.");
|
||||
this->combo_var_value->setToolTip(combo_var_value_toolTip);
|
||||
l_form_var_val->addRow("Var Value", this->combo_var_value);
|
||||
this->layout_contents->addLayout(l_form_var_val);
|
||||
|
||||
|
|
@ -668,7 +677,8 @@ void WeatherTriggerFrame::setup() {
|
|||
// weather combo
|
||||
QFormLayout *l_form_weather = new QFormLayout();
|
||||
this->combo_weather = new NoScrollComboBox(this);
|
||||
this->combo_weather->setToolTip("The weather that starts when the player steps on this spot.");
|
||||
static const QString combo_weather_toolTip = Util::toHtmlParagraph("The weather that starts when the player steps on this spot.");
|
||||
this->combo_weather->setToolTip(combo_weather_toolTip);
|
||||
l_form_weather->addRow("Weather", this->combo_weather);
|
||||
this->layout_contents->addLayout(l_form_weather);
|
||||
|
||||
|
|
@ -719,15 +729,16 @@ void SignFrame::setup() {
|
|||
// facing dir combo
|
||||
QFormLayout *l_form_facing_dir = new QFormLayout();
|
||||
this->combo_facing_dir = new NoScrollComboBox(this);
|
||||
this->combo_facing_dir->setToolTip("The direction which the player must be facing\n"
|
||||
"to be able to interact with this event.");
|
||||
static const QString combo_facing_dir_toolTip = Util::toHtmlParagraph("The direction that the player must be facing to be able to interact with this event.");
|
||||
this->combo_facing_dir->setToolTip(combo_facing_dir_toolTip);
|
||||
l_form_facing_dir->addRow("Player Facing Direction", this->combo_facing_dir);
|
||||
this->layout_contents->addLayout(l_form_facing_dir);
|
||||
|
||||
// script combo
|
||||
QFormLayout *l_form_script = new QFormLayout();
|
||||
this->combo_script = new NoScrollComboBox(this);
|
||||
this->combo_script->setToolTip("The script which is executed with this event.");
|
||||
static const QString combo_script_toolTip = Util::toHtmlParagraph("The script that is executed with this event.");
|
||||
this->combo_script->setToolTip(combo_script_toolTip);
|
||||
l_form_script->addRow("Script", this->combo_script);
|
||||
this->layout_contents->addLayout(l_form_script);
|
||||
|
||||
|
|
@ -790,14 +801,16 @@ void HiddenItemFrame::setup() {
|
|||
// item combo
|
||||
QFormLayout *l_form_item = new QFormLayout();
|
||||
this->combo_item = new NoScrollComboBox(this);
|
||||
this->combo_item->setToolTip("The item to be given.");
|
||||
static const QString combo_item_toolTip = Util::toHtmlParagraph("The item to be given.");
|
||||
this->combo_item->setToolTip(combo_item_toolTip);
|
||||
l_form_item->addRow("Item", this->combo_item);
|
||||
this->layout_contents->addLayout(l_form_item);
|
||||
|
||||
// flag combo
|
||||
QFormLayout *l_form_flag = new QFormLayout();
|
||||
this->combo_flag = new NoScrollComboBox(this);
|
||||
this->combo_flag->setToolTip("The flag which is set when the hidden item is picked up.");
|
||||
static const QString combo_flag_toolTip = Util::toHtmlParagraph("The flag that is set when the hidden item is picked up.");
|
||||
this->combo_flag->setToolTip(combo_flag_toolTip);
|
||||
l_form_flag->addRow("Flag", this->combo_flag);
|
||||
this->layout_contents->addLayout(l_form_flag);
|
||||
|
||||
|
|
@ -806,7 +819,8 @@ void HiddenItemFrame::setup() {
|
|||
QFormLayout *l_form_quantity = new QFormLayout(hideable_quantity);
|
||||
l_form_quantity->setContentsMargins(0, 0, 0, 0);
|
||||
this->spinner_quantity = new NoScrollSpinBox(hideable_quantity);
|
||||
this->spinner_quantity->setToolTip("The number of items received when the hidden item is picked up.");
|
||||
static const QString spinner_quantity_toolTip = Util::toHtmlParagraph("The number of items received when the hidden item is picked up.");
|
||||
this->spinner_quantity->setToolTip(spinner_quantity_toolTip);
|
||||
this->spinner_quantity->setMinimum(0x01);
|
||||
this->spinner_quantity->setMaximum(0xFF);
|
||||
l_form_quantity->addRow("Quantity", this->spinner_quantity);
|
||||
|
|
@ -817,7 +831,8 @@ void HiddenItemFrame::setup() {
|
|||
QFormLayout *l_form_itemfinder = new QFormLayout(hideable_itemfinder);
|
||||
l_form_itemfinder->setContentsMargins(0, 0, 0, 0);
|
||||
this->check_itemfinder = new QCheckBox(hideable_itemfinder);
|
||||
this->check_itemfinder->setToolTip("If checked, hidden item can only be picked up using the Itemfinder");
|
||||
static const QString check_itemfinder_toolTip = Util::toHtmlParagraph("If checked, hidden item can only be picked up using the Itemfinder");
|
||||
this->check_itemfinder->setToolTip(check_itemfinder_toolTip);
|
||||
l_form_itemfinder->addRow("Requires Itemfinder", this->check_itemfinder);
|
||||
this->layout_contents->addWidget(hideable_itemfinder);
|
||||
|
||||
|
|
@ -906,9 +921,9 @@ void SecretBaseFrame::setup() {
|
|||
// item combo
|
||||
QFormLayout *l_form_base_id = new QFormLayout();
|
||||
this->combo_base_id = new NoScrollComboBox(this);
|
||||
this->combo_base_id->setToolTip("The secret base id which is inside this secret\n"
|
||||
"base entrance. Secret base ids are meant to be\n"
|
||||
"unique to each and every secret base entrance.");
|
||||
static const QString combo_base_id_toolTip = Util::toHtmlParagraph("The secret base id that is inside this secret base entrance. "
|
||||
"Secret base ids are meant to be unique to each and every secret base entrance.");
|
||||
this->combo_base_id->setToolTip(combo_base_id_toolTip);
|
||||
l_form_base_id->addRow("Secret Base", this->combo_base_id);
|
||||
this->layout_contents->addLayout(l_form_base_id);
|
||||
|
||||
|
|
@ -960,7 +975,8 @@ void HealLocationFrame::setup() {
|
|||
// ID
|
||||
QFormLayout *l_form_id = new QFormLayout();
|
||||
this->line_edit_id = new QLineEdit(this);
|
||||
this->line_edit_id->setToolTip("The unique identifier for this heal location.");
|
||||
static const QString line_edit_id_toolTip = Util::toHtmlParagraph("The unique identifier for this heal location.");
|
||||
this->line_edit_id->setToolTip(line_edit_id_toolTip);
|
||||
this->line_edit_id->setPlaceholderText(projectConfig.getIdentifier(ProjectIdentifier::define_heal_locations_prefix) + "MY_MAP");
|
||||
l_form_id->addRow("ID", this->line_edit_id);
|
||||
this->layout_contents->addLayout(l_form_id);
|
||||
|
|
@ -970,7 +986,8 @@ void HealLocationFrame::setup() {
|
|||
QFormLayout *l_form_respawn_map = new QFormLayout(hideable_respawn_map);
|
||||
l_form_respawn_map->setContentsMargins(0, 0, 0, 0);
|
||||
this->combo_respawn_map = new NoScrollComboBox(hideable_respawn_map);
|
||||
this->combo_respawn_map->setToolTip("The map where the player will respawn after whiteout.");
|
||||
static const QString combo_respawn_map_toolTip = Util::toHtmlParagraph("The map where the player will respawn after whiteout.");
|
||||
this->combo_respawn_map->setToolTip(combo_respawn_map_toolTip);
|
||||
l_form_respawn_map->addRow("Respawn Map", this->combo_respawn_map);
|
||||
this->layout_contents->addWidget(hideable_respawn_map);
|
||||
|
||||
|
|
@ -979,8 +996,8 @@ void HealLocationFrame::setup() {
|
|||
QFormLayout *l_form_respawn_npc = new QFormLayout(hideable_respawn_npc);
|
||||
l_form_respawn_npc->setContentsMargins(0, 0, 0, 0);
|
||||
this->combo_respawn_npc = new NoScrollComboBox(hideable_respawn_npc);
|
||||
this->combo_respawn_npc->setToolTip("event_object ID of the NPC the player interacts with\n"
|
||||
"upon respawning after whiteout.");
|
||||
static const QString combo_respawn_npc_toolTip = Util::toHtmlParagraph("event_object ID of the NPC the player interacts with upon respawning after whiteout.");
|
||||
this->combo_respawn_npc->setToolTip(combo_respawn_npc_toolTip);
|
||||
l_form_respawn_npc->addRow("Respawn NPC", this->combo_respawn_npc);
|
||||
this->layout_contents->addWidget(hideable_respawn_npc);
|
||||
|
||||
|
|
|
|||
|
|
@ -79,3 +79,12 @@ Overlay * MapView::getOverlay(int layer) {
|
|||
}
|
||||
return overlay;
|
||||
}
|
||||
|
||||
void ConnectionsView::keyPressEvent(QKeyEvent *event) {
|
||||
if (event->key() == Qt::Key_Delete || event->key() == Qt::Key_Backspace) {
|
||||
emit pressedDelete();
|
||||
event->accept();
|
||||
} else {
|
||||
QGraphicsView::keyPressEvent(event);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,10 +55,7 @@ MapImageExporter::MapImageExporter(QWidget *parent, Project *project, Map *map,
|
|||
connect(ui->pushButton_Save, &QPushButton::pressed, this, &MapImageExporter::saveImage);
|
||||
connect(ui->pushButton_Cancel, &QPushButton::pressed, this, &MapImageExporter::close);
|
||||
|
||||
// Update the map selector when the text changes.
|
||||
// We don't use QComboBox::currentTextChanged to avoid unnecessary re-rendering.
|
||||
connect(ui->comboBox_MapSelection, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MapImageExporter::updateMapSelection);
|
||||
connect(ui->comboBox_MapSelection->lineEdit(), &QLineEdit::editingFinished, this, &MapImageExporter::updateMapSelection);
|
||||
connect(ui->comboBox_MapSelection, &NoScrollComboBox::editingFinished, this, &MapImageExporter::updateMapSelection);
|
||||
|
||||
connect(ui->checkBox_Objects, &QCheckBox::toggled, this, &MapImageExporter::setShowObjects);
|
||||
connect(ui->checkBox_Warps, &QCheckBox::toggled, this, &MapImageExporter::setShowWarps);
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ void MapListToolBar::setEmptyFoldersVisible(bool visible) {
|
|||
}
|
||||
|
||||
// Update tool tip to reflect what will happen if the button is pressed.
|
||||
const QString toolTip = QString("%1 empty folders in the list.").arg(visible ? "Hide" : "Show");
|
||||
const QString toolTip = Util::toHtmlParagraph(QString("%1 empty folders in the list.").arg(visible ? "Hide" : "Show"));
|
||||
ui->button_ToggleEmptyFolders->setToolTip(toolTip);
|
||||
|
||||
const QSignalBlocker b(ui->button_ToggleEmptyFolders);
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@ NewLayoutForm::NewLayoutForm(QWidget *parent)
|
|||
connect(ui->spinBox_MapWidth, QOverload<int>::of(&QSpinBox::valueChanged), [=](int){ validateMapDimensions(); });
|
||||
connect(ui->spinBox_MapHeight, QOverload<int>::of(&QSpinBox::valueChanged), [=](int){ validateMapDimensions(); });
|
||||
|
||||
connect(ui->comboBox_PrimaryTileset->lineEdit(), &QLineEdit::editingFinished, [this]{ validatePrimaryTileset(true); });
|
||||
connect(ui->comboBox_SecondaryTileset->lineEdit(), &QLineEdit::editingFinished, [this]{ validateSecondaryTileset(true); });
|
||||
connect(ui->comboBox_PrimaryTileset, &NoScrollComboBox::editingFinished, [this]{ validatePrimaryTileset(true); });
|
||||
connect(ui->comboBox_SecondaryTileset, &NoScrollComboBox::editingFinished, [this]{ validateSecondaryTileset(true); });
|
||||
}
|
||||
|
||||
NewLayoutForm::~NewLayoutForm()
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
#include "newmapconnectiondialog.h"
|
||||
#include "ui_newmapconnectiondialog.h"
|
||||
#include "message.h"
|
||||
|
||||
NewMapConnectionDialog::NewMapConnectionDialog(QWidget *parent, Map* map, const QStringList &mapNames) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::NewMapConnectionDialog)
|
||||
ui(new Ui::NewMapConnectionDialog),
|
||||
m_map(map)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
||||
ui->comboBox_Direction->setEditable(false);
|
||||
ui->comboBox_Direction->addItems(MapConnection::cardinalDirections);
|
||||
|
||||
ui->comboBox_Map->addItems(mapNames);
|
||||
|
|
@ -16,7 +17,7 @@ NewMapConnectionDialog::NewMapConnectionDialog(QWidget *parent, Map* map, const
|
|||
|
||||
// Choose default direction
|
||||
QMap<QString, int> directionCounts;
|
||||
for (auto connection : map->getConnections()) {
|
||||
for (auto connection : m_map->getConnections()) {
|
||||
directionCounts[connection->direction()]++;
|
||||
}
|
||||
QString defaultDirection;
|
||||
|
|
@ -33,7 +34,7 @@ NewMapConnectionDialog::NewMapConnectionDialog(QWidget *parent, Map* map, const
|
|||
QString defaultMapName;
|
||||
if (mapNames.isEmpty()) {
|
||||
defaultMapName = QString();
|
||||
} else if (mapNames.first() == map->name() && mapNames.length() > 1) {
|
||||
} else if (mapNames.first() == m_map->name() && mapNames.length() > 1) {
|
||||
// Prefer not to connect the map to itself
|
||||
defaultMapName = mapNames.at(1);
|
||||
} else {
|
||||
|
|
@ -62,11 +63,43 @@ void NewMapConnectionDialog::setWarningVisible(bool visible) {
|
|||
adjustSize();
|
||||
}
|
||||
|
||||
bool NewMapConnectionDialog::askReplaceConnection(MapConnection *connection, const QString &newMapName) {
|
||||
QString message = QString("%1 already has a %2 connection to '%3'. Replace it with a %2 connection to '%4'?")
|
||||
.arg(m_map->name())
|
||||
.arg(connection->direction())
|
||||
.arg(connection->targetMapName())
|
||||
.arg(newMapName);
|
||||
return QuestionMessage::show(message, this) == QMessageBox::Yes;
|
||||
}
|
||||
|
||||
void NewMapConnectionDialog::accept() {
|
||||
if (!mapNameIsValid()) {
|
||||
setWarningVisible(true);
|
||||
return;
|
||||
}
|
||||
emit accepted(new MapConnection(ui->comboBox_Map->currentText(), ui->comboBox_Direction->currentText()));
|
||||
|
||||
const QString direction = ui->comboBox_Direction->currentText();
|
||||
const QString targetMapName = ui->comboBox_Map->currentText();
|
||||
|
||||
// This is a very niche use case. Normally the user should add Dive/Emerge map connections using the line edits at the top of
|
||||
// the Connections tab, but because we allow custom direction names in this dialog's Direction drop-down, a user could type
|
||||
// in "dive" or "emerge" and we have to decide what to do. If there's no existing Dive/Emerge map we can just add it normally
|
||||
// as if they had typed in the regular line edits. If there's already an existing connection we need to replace it.
|
||||
if (MapConnection::isDiving(direction)) {
|
||||
MapConnection *connection = m_map->getConnection(direction);
|
||||
if (connection) {
|
||||
if (connection->targetMapName() != targetMapName) {
|
||||
if (!askReplaceConnection(connection, targetMapName))
|
||||
return; // Canceled
|
||||
emit connectionReplaced(targetMapName, direction);
|
||||
}
|
||||
// Replaced the diving connection (or no-op, if adding a diving connection with the same map name)
|
||||
QDialog::accept();
|
||||
return;
|
||||
}
|
||||
// Adding a new diving connection that doesn't exist yet, proceed normally.
|
||||
}
|
||||
|
||||
emit newConnectionedAdded(targetMapName, direction);
|
||||
QDialog::accept();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,11 @@ NoScrollComboBox::NoScrollComboBox(QWidget *parent)
|
|||
static const QRegularExpression re("[^\\s]*");
|
||||
QValidator *validator = new QRegularExpressionValidator(re, this);
|
||||
this->setValidator(validator);
|
||||
|
||||
// QComboBox (as of writing) has no 'editing finished' signal to capture
|
||||
// changes made either through the text edit or the drop-down.
|
||||
connect(this, QOverload<int>::of(&QComboBox::activated), this, &NoScrollComboBox::editingFinished);
|
||||
connect(this->lineEdit(), &QLineEdit::editingFinished, this, &NoScrollComboBox::editingFinished);
|
||||
}
|
||||
|
||||
// On macOS QComboBox::setEditable and QComboBox::setLineEdit will override our changes to the focus policy, so we enforce it here.
|
||||
|
|
|
|||
|
|
@ -173,7 +173,10 @@ void ProjectSettingsEditor::initUi() {
|
|||
bool ProjectSettingsEditor::disableParsedSetting(QWidget * widget, const QString &identifier, const QString &filepath) {
|
||||
if (project && project->disabledSettingsNames.contains(identifier)) {
|
||||
widget->setEnabled(false);
|
||||
widget->setToolTip(QString("This value has been set using '%1' in %2").arg(identifier).arg(filepath));
|
||||
QString toolTip = QString("This value has been set using '%1' in %2").arg(identifier).arg(filepath);
|
||||
if (!widget->toolTip().isEmpty())
|
||||
toolTip.prepend(QString("%1\n\n").arg(widget->toolTip()));
|
||||
widget->setToolTip(Util::toHtmlParagraph(toolTip));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -127,16 +127,10 @@ void TilesetEditor::setTilesets(QString primaryTilesetLabel, QString secondaryTi
|
|||
}
|
||||
|
||||
void TilesetEditor::initAttributesUi() {
|
||||
// Update the metatile's attributes values when the attribute combo boxes are edited.
|
||||
// We avoid using the 'currentTextChanged' signal here, we want to know when we can clean up the input field and commit changes.
|
||||
connect(ui->comboBox_metatileBehaviors->lineEdit(), &QLineEdit::editingFinished, this, &TilesetEditor::commitMetatileBehavior);
|
||||
connect(ui->comboBox_encounterType->lineEdit(), &QLineEdit::editingFinished, this, &TilesetEditor::commitEncounterType);
|
||||
connect(ui->comboBox_terrainType->lineEdit(), &QLineEdit::editingFinished, this, &TilesetEditor::commitTerrainType);
|
||||
connect(ui->comboBox_layerType->lineEdit(), &QLineEdit::editingFinished, this, &TilesetEditor::commitLayerType);
|
||||
connect(ui->comboBox_metatileBehaviors, QOverload<int>::of(&QComboBox::activated), this, &TilesetEditor::commitMetatileBehavior);
|
||||
connect(ui->comboBox_encounterType, QOverload<int>::of(&QComboBox::activated), this, &TilesetEditor::commitEncounterType);
|
||||
connect(ui->comboBox_terrainType, QOverload<int>::of(&QComboBox::activated), this, &TilesetEditor::commitTerrainType);
|
||||
connect(ui->comboBox_layerType, QOverload<int>::of(&QComboBox::activated), this, &TilesetEditor::commitLayerType);
|
||||
connect(ui->comboBox_metatileBehaviors, &NoScrollComboBox::editingFinished, this, &TilesetEditor::commitMetatileBehavior);
|
||||
connect(ui->comboBox_encounterType, &NoScrollComboBox::editingFinished, this, &TilesetEditor::commitEncounterType);
|
||||
connect(ui->comboBox_terrainType, &NoScrollComboBox::editingFinished, this, &TilesetEditor::commitTerrainType);
|
||||
connect(ui->comboBox_layerType, &NoScrollComboBox::editingFinished, this, &TilesetEditor::commitLayerType);
|
||||
|
||||
// Behavior
|
||||
if (projectConfig.metatileBehaviorMask) {
|
||||
|
|
|
|||
|
|
@ -125,11 +125,11 @@ void WildMonSearch::updateResults(const QString &species) {
|
|||
const QList<RowData> results = this->resultsCache.value(species, search(species));
|
||||
if (results.isEmpty()) {
|
||||
static const RowData noResults = {
|
||||
.mapName = "",
|
||||
.groupName = QStringLiteral("Species not found."),
|
||||
.fieldName = QStringLiteral("--"),
|
||||
.levelRange = QStringLiteral("--"),
|
||||
.chance = QStringLiteral("--"),
|
||||
.mapName = "",
|
||||
};
|
||||
addTableEntry(noResults);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user