DB symbol fields are lexicographically sorted by value

Description

Using atomic parts from a database file the ordering of the fields is determined by a lexicographic sort of the field values. This causes the visible ordering of fields to jump "arbitrarily" between ostensibly similar parts and causes uneccessary visual noise.

grafik.png

This is the version 10.0.1 state showing the inconsistency. The fields are "Resistance"(=Value), "Tolerance" and "Power rating".

grafik.png

This is the state in version 9.0.9 (The result does not depend on the used color scheme).

Of interest may also be that version 9 allows reordering the fields in the properties dialog, but this does not change the visual order, while version 10 completely refuses to save any reordering done in the properties window. (And seeing as the order in the window seems to correspond 1:1 to the visual order this would make sense.)

Steps to reproduce

  1. Create a part database with at least two visible, non-standard fields.
  2. Populate the database with components which have differing lexicographic sorting between the fields.
  3. Place the components in eeschema in 10.0.1 and observe the ordering.

KiCad Version

Application: KiCad x64 on x64

Version: 10.0.1, release build

Libraries:
	wxWidgets 3.3.2 
	FreeType 2.13.3
	HarfBuzz 12.3.0
	FontConfig 2.17.1
	libcurl/8.18.0 Schannel zlib/1.3.1

Platform: Windows 11 (build 22621), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) Iris(R) Xe Graphics, 4.6.0 - Build 32.0.101.7084

Build Info:
	Date: Apr 15 2026 19:23:15
	wxWidgets: 3.3.2 (wchar_t,STL containers)
	Boost: 1.90.0
	OCC: 7.9.2
	Curl: 8.18.0
	ngspice: 46
	Compiler: Visual C++ 1944 without C++ ABI
	KICAD_IPC_API=ON
	KICAD_USE_PCH=OFF

Locale: 
	Lang: en_GB
	Enc: UTF-8
	Num: 1,234.5
	Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)