Commit Graph

1416 Commits

Author SHA1 Message Date
Lioncache
3fe7f99fa5 CStringEditor: Fix capture of keyboard shortcuts in CStringEditor
Previously, these keyboard shortcuts didn't work.
2025-12-14 00:09:03 -05:00
Lioncache
063d8899bf CStringTable: Make use of minmax() over individual min/max
Same thing less code.
2025-12-13 23:12:33 -05:00
Lioncache
4cdc26af50 CStringTable: Prevent out of bounds vector accesses in SetStringName()
If we have a vector containing all empty strings (happens if you edit a
string in the UI and then make it empty again), then we keep popping and
accessing non-existent elements.

This is a pretty trivial case that can occur when editing string tables.
2025-12-13 22:34:44 -05:00
Lioncache
b81b3b3d01 CStringTable: Make unrecognized image type a warning
This can be hit while creating a project. However this would be hit in
release mode too, but wouldn't crash the application, because the trap
signal is ifdef'd out.
2025-12-13 22:32:34 -05:00
Lioncache
78f3f451a2 CStringEditor: Convert SLOT() usage over to function binding
Same behavior, more concrete types.
2025-12-13 22:28:40 -05:00
Lioncache
f7305b51b6 CStateMessageModel: Fix signedness conversion issues 2025-12-13 21:30:16 -05:00
Lioncache
2dcd663fbd CStateMessageModel: push_back -> emplace_back
Allows for in-place construction.
2025-12-13 21:19:18 -05:00
Lioncache
e533d5e347 CResourceMimeData: Remove redundant initializers
This will already occur.
2025-12-13 20:59:49 -05:00
Lioncache
1a60a9c7c7 CPropertyNameValidator: Avoid redundant string construction
Also simplifies scope
2025-12-13 20:37:05 -05:00
Lioncache
798d6e61dd CResourceProxyModel: Pass type filters by const
These aren't modified.
2025-12-12 12:32:16 -05:00
Lioncache
e7812fb1e4 CPoiMapModel: Simplify list management 2025-12-12 12:05:21 -05:00
Lioncache
7f714eee07 CPoiMapModel: Pass by const where applicable 2025-12-12 11:35:17 -05:00
Lioncache
b2fbbaa87c CFileNameValidator: Simplify looping 2025-12-12 09:11:28 -05:00
Lioncache
6666648eaa CFileNameValidator: Make constructor explicit 2025-12-12 09:08:30 -05:00
Lioncache
e0c489938b CEditLinkCommand: Remove unimplemented function 2025-12-12 09:03:47 -05:00
Lioncache
cb21f39516 CPropertyModel: Pass by const in IndexForProperty()
This doesn't need to be so overly restrictive, since it's only being
used to query a map.
2025-12-09 16:01:47 -05:00
Lioncache
4c5d15c1c0 CPropertyModel: Remove unimplemented prototype
Cleaner interface.
2025-12-09 15:51:40 -05:00
Lioncache
da5197b6c4 CSceneNode: Make NodeType() const
These don't modify member state.
2025-12-09 15:43:17 -05:00
Lioncache
c662ef6266 CScene: Pass by const in getters
These are overly restrictive, since the parameters are only ever
queried.
2025-12-09 15:10:23 -05:00
Lioncache
cddb342632 CPoiListDialog: Tidy up list management 2025-12-09 14:46:55 -05:00
Lioncache
98d9f9b962 CPoiMapSidebar: Tidy up formatting 2025-12-09 14:34:37 -05:00
Lioncache
3c2bd55df6 CPoiMapSidebar: Pass QModelIndex by const reference 2025-12-09 14:28:18 -05:00
Lioncache
b5615b4a02 CCamera: Fix wonky bracing 2025-12-08 19:56:00 -05:00
Lioncache
edbbe9f097 CCamera: Simplify ValidatePitch()
We can just use std::clamp here.
2025-12-08 19:48:24 -05:00
Lioncache
f6a64565cd CCamera: Simplify CastRay()
We can just make use of CRay's constructor to simplify the
initialization
2025-12-08 19:45:07 -05:00
Lioncache
561b0e08f6 CCamera: Allow toggleable camera movement speed
In a lot of 3D scene editors, it's quite common to have a default speed
that the camera can move at, plus a quicker one when shift (or some
other kind of keybind is held. We can replicate this here as a fixed
increment, but in the future this could also potentially be a
configurable UI setting.

Just makes the viewport expectations a little more natural like Blender
or 3DS Max.
2025-12-08 19:30:08 -05:00
Lioncache
04f73a9687 Externals: Update LibCommon
Fixes a bug in string splitting that broke the texture selection dialogs
in the model editor. They should now populate properly and let you
change textures if you want to do a little modding or something of the
sort.

It also exposed a bug where we had a stack overflow case
that was never hit until now. IsValidDirectoryPath() was intended to be
calling IsValidDirectoryName() on the consitituent parts of the path,
but was calling into itself. The only reason this was never hit in
practice is because the bugged Split() function would keep discarding
the end character in the strings recursively over the course of
execution until the strings were completely empty (oof!).

It also turns out that the handler for the indirect texture handling was
never hooked up to a slot in the model window. So, not only could the
model never have it's indirect texture changed, but would never render
it either, since the respective material would never be set.

We essentially smoked 3 bugs with a one-liner at the same time.
2025-12-08 18:46:24 -05:00
Lioncache
69290914b8 CResourceProxyModel: Simplify exit cases in filterAcceptsRow() 2025-12-08 15:46:01 -05:00
Lioncache
e231158b1d CResourceProxyModel: Use forward declarations
Reduce the amount of rebuilding necessary.
2025-12-08 15:38:02 -05:00
Lioncache
e33088f8a3 CResourceProxyModel: Move implementation to cpp file
Allows modifying how the resource model works without rebuilding
half of the codebase.
2025-12-08 15:18:23 -05:00
Lioncache
e8af8cc4b1 CWorldTreeModel: Use built-in filtering facilities
The ability to filter via a string is already built into the proxy
model. This also extends the search bar to allow general regular
expressions as well out of the box without any additional work.
2025-12-08 15:00:50 -05:00
Lioncache
21d482f35e CWorldInforSidebar: Pass QModelIndex by const reference
Avoids some trivial copies.
2025-12-08 14:27:10 -05:00
Lioncache
3f8271004f CWorldInfoSidebar: Add missing UICommon include
Gets rid of an indirect include.
Also adds a forward declaration to prevent build failures in the future.
2025-12-08 14:11:26 -05:00
Lioncache
e6bf47112a CVirtualDirectory: Pass by const in IsDescendantOf
This isn't modified.
2025-12-08 04:13:56 -05:00
Lioncache
d335465141 CMaterialLoader: Formatting shenanigans 2025-12-08 03:26:45 -05:00
Lioncache
934bdaf889 CModel: Mark query functions as const 2025-12-08 03:04:33 -05:00
Lioncache
f3fd7f8268 CGameInfo: Reduce string copies in formatting 2025-12-07 12:20:09 -05:00
Lioncache
5f7e0e1e7f CGameExporter: Pass CAssetID by reference in MakeWorldName()
Just prevents a copy where one isn't necessary
2025-12-07 12:19:44 -05:00
Lioncache
53e52d3587 CGameExporter: Brace logical AND between ORs
Silences potential warnings.
2025-12-07 12:09:14 -05:00
Lioncache
5d3086ec31 CModelEditorWindow: Convert old signal/slot to modern style
Turns out this was attached incorrectly.
2025-12-07 09:47:45 -05:00
Lioncache
2d0d3d03c6 Editor: Remove now unnecessary qOverload instances
These used to be necessary on older versions of Qt
2025-12-07 09:21:08 -05:00
Lioncache
6fac2d126f CExportGameDialog: Remove redundant QString conversion
We can just use QFileInfo here.
2025-12-07 08:58:53 -05:00
Lioncache
5e1db1f0bc CCharacterEditor: Invert if in UpdateCameraOrbit()
Allows simplifying some behavior.
2025-12-07 08:58:22 -05:00
Lioncache
23ba1c19f7 CQuickplayPropertyEditor: Add missing <QPushButton> include
Gets rid of an indirect include.
2025-12-07 08:35:07 -05:00
Lioncache
15f100e325 CResourceTableView: std::move in DeleteSelected()
Avoids churning list copies.
2025-12-07 08:31:15 -05:00
Lioncache
37907c7837 CResourceTableModel: std::move parameters in DisplayEntryList()
We can allow for moving into this to avoid allocation churning.
2025-12-07 08:29:14 -05:00
Lioncache
e7a2a10d64 CSelectInstanceDialog: Pass QModelIndex by const reference
Gets rid of a few trivial 24 byte copies.
2025-12-07 08:08:07 -05:00
Lioncache
6428864373 CModelEditorViewport: Pass color by reference
Avoids an unnecessary 16-byte float copy
2025-12-07 03:22:47 -05:00
Lioncache
5d61bbc85c CSkeletonHierarchyModel: Pass skeleton by const to SetSkeleton() 2025-12-07 03:10:31 -05:00
Lioncache
6620980add CSkeletonHierarchyModel: Pass bones by const to IndexForBone()
Given these aren't modified, we can make this obvious.
2025-12-07 03:09:21 -05:00