Its all put together with small bits and hints, and there is much new stuff to me, in that small amount of code.
I found a code example of getting result back from another DBus interface, which helped me with the structure of the call.
Then i found a C example of a simple Variant made of a string, and with some trial and error i figured out the solution.
There is still a bit to read about if i want to understand it fully.
To me it looks like there is many ways to make a connection to DBus with Glib / Gio.
So i did most of my reading in Glibmm / Giomm documentation.
From there i could see what stuff was needed to make the connection.
There is events like "getting the bus", "getting the name", "loosing the name" which i was working on,
but ended up with the solution i showed here.
I found this command line helpful, which list all methods/properties/signals of gnome-shell interface. (any interface)
qdbus org.gnome.Shell /org/gnome/Shell
Only useful method listed was "Eval", so now i had to find out how to use "Eval" in a DBus call ....
As you had mention, too.
I only needed to reset gnome-shell and forget about DBus, but i got a link to a "Using the DBUS C API"
that gives a good idea of what its about.
Edit : But i did never figure out how to reset only the theme as in "ALT + F2 -> rt " ... still in my brain
EDIT EDIT: haha i got it !! "Main.loadTheme();"
rather than "global.reexec_self();" to only reload a changed theme, man is this SO
solved now !!
I change the previous code to "Main.loadTheme();" and leave "global.reexec_self();" as a comment
It actually matter a lot, to ONLY reset theme, as resetting gnome-shell also reset my nvidia driver to defaults, loosing my 144 hz setup, as i set when i log in. (and what else .....)
With only resetting the theme, nothing else changes (as far as i can see)