Re: Porting migration agent away from old configuration dialog

Volker Krause <[email protected]> Mon, 30 Jun 2025 17:15:55 +0200
Newsgroups gmane.comp.kde.devel.pim
Organization KDE
Message-ID <12696613.O9o76ZdvQC@vkpc5>
--nextPart5902680.DvuYhMxLoT
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"; protected-headers="v1"
From: Volker Krause <[email protected]>
To: KDE PIM <[email protected]>
Cc: [email protected]
Date: Mon, 30 Jun 2025 17:15:55 +0200
Message-ID: <12696613.O9o76ZdvQC@vkpc5>
Organization: KDE
In-Reply-To: <5935280.DvuYhMxLoT@fedora>
References: <5935280.DvuYhMxLoT@fedora>
MIME-Version: 1.0

On Mittwoch, 25. Juni 2025 00:05:22 Mitteleurop=C3=A4ische Sommerzeit Carl =
Schwan=20
wrote:
> Hi,
>=20
> Pablo (in CC) is currently porting agents and resources away from QtWidge=
ts
> (y moving the configuration widgets to a plugin as part of his GSoC
> project. Currently he is looking into the Migration Agent which present
> some interesting issues to fix:
>=20
> - The agent relies on KUiServerJobTracker which aside of requiring to be
> ported to KUIServerV2JobTracker also has the issue that this links to
> QtWidgets while not using QWidget itself. I fear since this is in a
> framework this can't be moved to a seperate target but worse case we have=
 a
> copy in PIM and then have a todo KF7 to move that to a seperate target.

This sounds like something that should be fixed in KF, even if it means hav=
ing=20
a (deprecated) copy there until KF7. We'll eventually need that either way =
I=20
think.

> - The second issue and arguably more complicated to fix is that the agent
> and the configuration dialog uses the same instance of KUiServerJobTracke=
r.
> As the configuration view is a view showing the current migration status.
>=20
> I see three ways to fix this:
>=20
> - Make the migration agent not an agent but a process that is started at =
the
> start of the Akonadi Server and then shutdown as soon as the migrations a=
re
> runs (if any). Then it's not really an issue if this rely on QtWidgets as
> it's a short lived process. Dependency wise this should still be in the
> kdepim- runtime repo, so not really sure how to elegantly start it from
> akonadi server

That, or keep it an agent but give it a special "SingleShot" flag in=20
AgentType::capabilities(), with Akonadi shutting it down again automaticall=
y=20
once done. Having the process around after it has done its job is wasteful =
no=20
matter how much we optimize it.

> - We maybe don't really need a configuration view for that agent as we
> already have the notifications with progress report via the
> KUiServerJobTracker. But this is only on Linux/Plasma. On other platforms,
> we need
>=20
> - Keep it as an agent and have a dbus protocol to communicate the job
> process between the configuration dialog and the agent. This sounds like
> quite some work for a small agent which is not doing anything most of the
> time and even more for a configuration dialog which I doubt most user will
> notice.

If this is only about indicating progress, AgentBase has built-in support f=
or=20
this, doesn't it? That's usually used to indicate syncing progress but it's=
=20
not limited to that.

Regards,
Volker
--nextPart5902680.DvuYhMxLoT
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part.
Content-Transfer-Encoding: 7Bit

-----BEGIN PGP SIGNATURE-----

iF0EABECAB0WIQQAnu3FVHA48KjZ07R/lszWTRLSRwUCaGKqKwAKCRB/lszWTRLS
R6VkAJwPHTfZa/0r29rqtWsAh3u30wOj5wCgitGBTzK6HjijkZgQ7NSuIrYYbT8=
=iWch
-----END PGP SIGNATURE-----

--nextPart5902680.DvuYhMxLoT--