Frameworks/Epics/kdelibs cleanups

From KDE Community Wiki

Cleaning up kdelibs

Next to the other efforts for kdelibs modularization, there's also some cleanup tasks which needs to be done accross the whole kdelibs codebase. Tasks in here are probably more suitable for short term, bite sized involvement.

Note: For most of those tasks we try to put an estimation of the difficulty can be: easy, normal, hard (somewhat like in video games). ;-)

Status Description Contact
TO DO Fix kfileplacesmodeltest (normal) ? <{{{3}}}>


IN PROGRESS Move to kcoreaddons the tests in kdecore/tests that are actually tests for classes in kcoreaddons, except kurltest (easy) Anne-Marie Mahfouf


Template:FeatureInProgres

TO DO Port kcmdlineargs from KUrl to QUrl, then move KUrl out of kcoreaddons, and into kdecore for now, final destination kde4support. (easy) ? <{{{3}}}>


TO DO Update qmimetype in kdelibs from the one soon merged to Qt5, port all of kdelibs to the API changes. (normal) ? <{{{3}}}>


TO DO move KProtocolInfo out of ksycoca, i.e. move it to KIO, and make KProtocolManager simply read from installed files on demand. (normal) ? <{{{3}}}>


TO DO One of the things we need to remove is all of the use of the Q_WS_* defines. (hard)

git grep Q_WS_

Some of them should be ported to a Q_OS_ define (eg, some of Q_WS_WIN should be ported to Q_OS_WIN), but *not all of them*, so this can't just be changed with a script. It should be done manually. Some of them need to be ported to QPA (lighthouse) in some way.

? <{{{3}}}>


TO DO Another thing that should be done is using Find packages from ECM or CMake. (normal)

For example, run 'git grep find_package' in tier1/solid. Some of the results are provided by CMake, and some come from the local kdelibs/cmake/modules folder. The kdelibs/cmake/modules folder should not need to be used. For example find_package(Flex) in solid should be replaced with find_package(FLEX) which is provided by CMake.

The goal is to be able to run

cd tier1/solid && mkdir build && cd build && cmake .. && make

for each framework.

This is already possible with the itemmodels framework.

It also works with solid, because the packages it searches for are optional and the FindFoo.cmake files are not found.

? <{{{3}}}>


TO DO Find out what should be part of the link interface and what should not be. (normal but long), details... ? <{{{3}}}>