[Kde-games-devel] Review of KF5 ports: KJumpingCube, KGoldrunner and Kubrick
laurent Montel
montel at kde.org
Sun Jan 18 16:35:19 UTC 2015
Le Sunday 18 January 2015 17:26:08 Ian Wadham a écrit :
> Hi Laurent and others,
Hi,
> I have walked through all the KF5 changes to KJumpingCube,
> KGoldrunner and Kubrick and (almost) everything looks fine… :-)
> That is to say, I think the functionality of the games will be the same
> as before, except perhaps for a few worries. I am the author or
> co-author of those three games.
>
> As you know, I am unable to build and test the games in KF5 yet.
>
> KJumpingCube port to KF5:
> --------------------------------------
>
> Just one query: in file kjumpingcube.cpp, around lines 131-135, this change
> appears:
>
> - KAction * b = actionCollection()->addAction (QLatin1String
> ("action_button")); - b->setDefaultWidget (actionButton); // Show the
> button on the toolbar. + QAction * b = actionCollection()->addAction
> (QLatin1String ("action_button")); + //QT5 b->setDefaultWidget
> (actionButton); // Show the button on the toolbar.
Normal it's not ported yet. As you see there is “//QT5” to inform that we (me)
need to port to QT5 api.
>
> The last line is commented out, but equivalent code may still be needed,
> in KF5, for making sure that actionButton, a specially-styled QPushButton,
> is shown on the toolbar.
>
> Using setDefaultWidget() works in KDE 4 because KAction inherits
> QWidgetAction, which contains that method. The preceding 15 lines of my
> code show the setup of the actionButton widget. Maybe use QWidgetAction,
> instead of QAction here?
>
> KGoldrunner port to KF5:
> ----------------------------------
>
> Thanks for commenting out the many (now unnecessary) debugging messages as
> you ported them from kDebug() to qDebug()… :-) I have just five queries...
>
> 1. Why is DBus support added (main.cpp)?
Because it was created by kapplication/kaboutdata in kde4 => same feature as
in kde4
> KGoldrunner does not use DBus
> directly.
> 2. In file src/kgoldrunner.cpp, some code is #iffed out around
> line 240. That would prevent Key_Escape being used as an alternate
> Pause/Resume key. Esc has been available in KGr from the very first and in
> its ancestor game since the 1980s.
Not ported "//QT5"
> 3. In file src/kgoldrunner.cpp, some
> code is #iffed out around line 720.
//QT5
> This is needed to translate the names
> of keys that appear in the Pause/Resume message in the game's status bar (a
> fix I included in 2008, at Albert's request IIRC).
> 4. The method
> KGoldrunner::getDirectories() in file kgoldrunner.cpp is archaic code for
> getting both read-only and writable (local) data locations, where all the
> games, levels and other data files are stored. After it runs, the paths
> are passed everywhere they are needed, via the QString variables called
> systemDataDir (read-only dir) and userDataDir (writable dir). This code
> should be using QStandardPaths.
Yes because there is still kdelibs4support.
> Maybe something like:
> systemDataDir =
> QStandardPaths::locate(QStandardPaths::AppDataLocation, "system",
> QStandardPaths::LocateDirectory); userDataDir =
> QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) +
> "/user/";
> 5. When systemDataDir is found, it will need a "/" to be
> appended. If userDataDir is not found or it has a name but does not exist
> yet, it will need to be created. So will .../user/levels. The rest of
> KGoldrunner needs all that to be in place before the game or game editor
> can run.
>
> Kubrick port to KF5:
> --------------------------
>
> Thanks for putting in the qCDebug() code to log errors, should they occur.
> The ported code is looking very nice. I have just three queries...
>
> 1. The code following line 64 in file src/gameglview.cpp does not look
> right. Should it be using QStandardPaths?
Because there is still kdelibs4support.
> If it succeeds, Kubrick should
> have wavy lines in its background. If it fails, Kubrick will put a 4-way
> gradient in the background and it will appear as if the game is working
> correctly.
> 2. In the file kubrick.cpp, several lines that should put messages in
> statusBar() are #iffed out.
//QT5
> They need to appear. The texts are drawn from
> const structures and arrays which appear around line 100 and after.
> 3. The said consts have I18N_NOOP around the C-string literals. Is that
> valid in KF5?
>
> Thanks again for all your help on these games, Laurent.
>
> Best regards, Ian W.
I told that I make it compile not that they were ready to merge because there
is still kdelibs4support and some commented code which needs to be convert to
QT5 api :)
Regards.
--
Laurent Montel | laurent.montel at kdab.com | KDE/Qt Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.fr
More information about the kde-games-devel
mailing list