< Amarok | Development This page is meant as a guide to port Amarok to Qt5/Frameworks5 and Plasma5. Contents 1 Stages of port 2 General 3 Todo overview 4 Status 5 New Dependencies 6 Extra Stages of port The broad plan involves the porting of the code-base to compile by using KF5::KDELibs4Support. After this the plan involves porting Amarok away from KF5::KDELibs4Support. We are still in the first part now i.e the current aim is to let Amarok compile by using KF5::KDELibs4Support(with LOTS and LOTS of depreciated warnings). Restoring build on Qt5/KF5 [Out of context folder]: Port of cmake files and all code, so everything builds at least again by using KF5::KDELibs4Support. In this part the primary focus is on building it back again. DONE Port the context folder to QML TODO All tests should pass after the above has been done. IN PROGRESS Porting away from KF5::KDELibs4Support. TODO General The commits containing the ongoing port of Amarok to Qt5/KF5 are made to the kf5 branch. Todo overview The inclusions of header should be reorganize to follow the rule <QXxxx>, then <KXxxx>, then "Xxxx.h" and follow the alphabetical order. While porting to QUrl, a lot of conversion to QString are done with .path() or worse .toDisplayString(). All must be changed to .toLocalFile() if its a local path. The best thing would be to keep them as QUrl. While porting some KUrl to QUrl, some methods were method(KUrl) and used as method(myString) with myString being a QString. It doesn't work anymore: now the method is used as method( QUrl(myString) ) which is not so nice, although it compiles. In the tests, move: bool receivedDone = QTest::kWaitForSignal( trackForUrlWorker, SIGNAL(done(ThreadWeaver::Job*)), 1000 ); QVERIFY( receivedDone ); to QSignalSpy spy( itemModel, SIGNAL(allQueriesFinished(bool)) ); QVERIFY( spy.wait( 5000 ) ); Status The current status of the port of the individual methods can be found here: Status page New Dependencies If you would like to build it then you have to install the following development packages (apart from the existing dependencies like Taglib, zlib, googlemock, etc ) containing the following components for your respective system : Dependency Version Extra CMake Modules (ECM) 1.7.0 Qt5::Core Qt5::DBus Qt5::Widgets Qt5::Test Qt5::Gui Qt5::Svg Qt5::Xml Qt5::Script Qt5::Sql Qt5::Quick Qt5::Qml Qt5::ScriptTools Qt5::WebKitWidgets Qca-Qt5 Phonon4Qt5 KF5::CoreAddons KF5::Solid KF5::Codecs KF5::I18n KF5::ThreadWeaver KF5::KDELibs4Support KF5::Codecs KF5::I18n KF5::ThreadWeaver KF5::Plasma KF5::PlasmaQuick KF5::KCMUtils KF5::NewStuff KF5::TextEditor KF5::GlobalAccel KF5::KIO KF5::NotifyConfig KF5::Archive KF5::DNSSD This list has been kept dynamic to avoid pulling unwanted dependencies which means more components will be added when the need arises. Extra Some references: released frameworks Framework porting note the subdirectory kf5 contains porting scripts Retrieved from "https://community.kde.org/index.php?title=Amarok/Development/KF5port&oldid=44788" This page was last edited on 9 November 2015, at 16:10. Content is available under Creative Commons License SA 4.0 unless otherwise noted.