From 99ef263ba2677c54f47148069cc6e2528929b116 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Sat, 18 May 2013 22:56:51 +0200 Subject: [PATCH] * Use DynamicQmlWidget for stations. --- CMakeLists.txt | 1 + TomahawkUse.cmake | 6 +++--- resources.qrc | 28 ++++++++++++++++++++++++++++ src/TomahawkApp.cpp | 6 +++--- src/libtomahawk/CMakeLists.txt | 17 +++++++++++------ src/libtomahawk/ViewManager.cpp | 11 ++++++----- src/libtomahawk/ViewManager.h | 4 ++-- 7 files changed, 54 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0672c18d1..c7d796702 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,6 +176,7 @@ if(NOT Qt5Core_DIR) set(QT_USE_QTNETWORK TRUE) set(QT_USE_QTXML TRUE) set(QT_USE_QTWEBKIT TRUE) + set(QT_USE_QTDECLARATIVE TRUE) include( ${QT_USE_FILE} ) endmacro() diff --git a/TomahawkUse.cmake b/TomahawkUse.cmake index 503ba8d7d..8b465457d 100644 --- a/TomahawkUse.cmake +++ b/TomahawkUse.cmake @@ -1,11 +1,11 @@ #FIXME: this only handles qt4 and duplicates top level cmakelists: how can we reduce code duplication? -find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql REQUIRED) +find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql QtDeclarative REQUIRED) include( ${QT_USE_FILE} ) -set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork") +set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork" "QtDeclarative") if(BUILD_GUI) - list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg") + list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg" "QtDeclarative") endif() find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS}) diff --git a/resources.qrc b/resources.qrc index 2b69fa96b..5c0708890 100644 --- a/resources.qrc +++ b/resources.qrc @@ -90,6 +90,28 @@ data/images/star-unstarred.svg data/images/apply-check.svg data/stylesheets/topbar-radiobuttons.css + data/qml/tomahawkimports/CoverImage.qml + data/qml/tomahawkimports/ArtistView.qml + data/qml/tomahawkimports/HeaderLabel.qml + data/qml/tomahawkimports/TagCloud.qml + data/qml/tomahawkimports/ScrollBar.qml + data/qml/tomahawkimports/InputField.qml + data/qml/tomahawkimports/Button.qml + data/qml/tomahawkimports/DoubleSlider.qml + data/qml/tomahawkimports/RoundedButton.qml + data/qml/tomahawkimports/PushButton.qml + data/qml/tomahawkimports/CoverFlip.qml + data/qml/tomahawkimports/BusyIndicator.qml + data/qml/StationView.qml + data/qml/stations/StationCreatorPage1.qml + data/qml/stations/StationCreatorPage2.qml + data/qml/stations/CreateByArtist.qml + data/qml/stations/StationConfig.qml + data/qml/QmlGridView.qml + data/qml/stations/CreateByGenre.qml + data/qml/tomahawkimports/FlexibleHeader.qml + data/qml/tomahawkimports/ToggleViewButtons.qml + data/qml/DeclarativeHeader.qml data/icons/tomahawk-icon-16x16.png data/icons/tomahawk-icon-32x32.png data/icons/tomahawk-icon-64x64.png @@ -152,5 +174,11 @@ data/images/refresh.svg data/images/inbox.svg data/images/new-inbox.svg + data/images/inputfield-border.svg + data/images/search-box-dismiss-x.svg + data/images/loading-animation.svg + data/images/station-artist.svg + data/images/station-genre.svg + data/images/station-year.svg diff --git a/src/TomahawkApp.cpp b/src/TomahawkApp.cpp index b623924e3..8bee7cfc7 100644 --- a/src/TomahawkApp.cpp +++ b/src/TomahawkApp.cpp @@ -39,7 +39,7 @@ #include "database/DatabaseResolver.h" #include "playlist/dynamic/GeneratorFactory.h" #include "playlist/dynamic/echonest/EchonestGenerator.h" -#include "playlist/dynamic/database/DatabaseGenerator.h" +//#include "playlist/dynamic/database/DatabaseGenerator.h" #include "playlist/XspfUpdater.h" #include "network/Servent.h" #include "web/Api_v1.h" @@ -219,8 +219,8 @@ TomahawkApp::init() tDebug() << "Init Echonest Factory."; GeneratorFactory::registerFactory( "echonest", new EchonestFactory ); #endif - tDebug() << "Init Database Factory."; - GeneratorFactory::registerFactory( "database", new DatabaseFactory ); +/* tDebug() << "Init Database Factory."; + GeneratorFactory::registerFactory( "database", new DatabaseFactory );*/ // Register shortcut handler for this platform #ifdef Q_WS_MAC diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt index e02f9f503..6eb4f0b11 100644 --- a/src/libtomahawk/CMakeLists.txt +++ b/src/libtomahawk/CMakeLists.txt @@ -77,19 +77,21 @@ set( libGuiSources playlist/PlayableItem.cpp playlist/SingleTrackPlaylistInterface.cpp + playlist/dynamic/GeneratorInterface.cpp playlist/dynamic/DynamicPlaylist.cpp playlist/dynamic/DynamicView.cpp playlist/dynamic/DynamicModel.cpp playlist/dynamic/echonest/EchonestGenerator.cpp playlist/dynamic/echonest/EchonestControl.cpp - playlist/dynamic/echonest/EchonestSteerer.cpp - playlist/dynamic/widgets/DynamicWidget.cpp +# playlist/dynamic/echonest/EchonestSteerer.cpp +# playlist/dynamic/widgets/DynamicWidget.cpp + playlist/dynamic/widgets/DynamicQmlWidget.cpp playlist/dynamic/widgets/DynamicControlWrapper.cpp - playlist/dynamic/widgets/DynamicControlList.cpp +# playlist/dynamic/widgets/DynamicControlList.cpp playlist/dynamic/widgets/ReadOrWriteWidget.cpp playlist/dynamic/widgets/MiscControlWidgets.cpp - playlist/dynamic/widgets/CollapsibleControls.cpp - playlist/dynamic/widgets/DynamicSetupWidget.cpp +# playlist/dynamic/widgets/CollapsibleControls.cpp +# playlist/dynamic/widgets/DynamicSetupWidget.cpp resolvers/ExternalResolverGui.cpp resolvers/ScriptResolver.cpp @@ -121,6 +123,8 @@ set( libGuiSources utils/ResultUrlChecker.cpp utils/NetworkReply.cpp + widgets/DeclarativeCoverArtProvider.cpp + widgets/DeclarativeView.cpp widgets/AnimatedCounterLabel.cpp widgets/BasicHeader.cpp widgets/FilterHeader.cpp @@ -314,7 +318,7 @@ list(APPEND libSources playlist/dynamic/GeneratorInterface.cpp playlist/dynamic/DynamicPlaylistRevision.cpp playlist/XspfUpdater.cpp - playlist/dynamic/database/DatabaseGenerator.cpp +# playlist/dynamic/database/DatabaseGenerator.cpp playlist/dynamic/database/DatabaseControl.cpp playlist/dynamic/DynamicControl.cpp @@ -497,6 +501,7 @@ TARGET_LINK_LIBRARIES( tomahawklib ${QT_QTXML_LIBRARY} ${QT_QTSVG_LIBRARY} ${QT_QTCORE_LIBRARY} + ${QT_QTDECLARATIVE_LIBRARY} ${OS_SPECIFIC_LINK_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${LINK_LIBRARIES} diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index f382c93e9..688b29966 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -42,7 +42,8 @@ #include "playlist/InboxView.h" #include "playlist/PlaylistLargeItemDelegate.h" #include "playlist/RecentlyPlayedModel.h" -#include "playlist/dynamic/widgets/DynamicWidget.h" +//#include "playlist/dynamic/widgets/DynamicWidget.h" +#include "playlist/dynamic/widgets/DynamicQmlWidget.h" #include "widgets/NewReleasesWidget.h" #include "widgets/WelcomeWidget.h" @@ -193,8 +194,8 @@ ViewManager::playlistForPage( ViewPage* page ) const { p = dynamic_cast< PlaylistView* >( page )->playlistModel()->playlist(); } - else if ( dynamic_cast< DynamicWidget* >( page ) ) - p = dynamic_cast< DynamicWidget* >( page )->playlist(); + else if ( dynamic_cast< DynamicQmlWidget* >( page ) ) + p = dynamic_cast< DynamicQmlWidget* >( page )->playlist(); return p; } @@ -228,7 +229,7 @@ ViewManager::show( const Tomahawk::dynplaylist_ptr& playlist ) { if ( !m_dynamicWidgets.contains( playlist ) || m_dynamicWidgets.value( playlist ).isNull() ) { - m_dynamicWidgets[ playlist ] = new Tomahawk::DynamicWidget( playlist, m_stack ); + m_dynamicWidgets[ playlist ] = new Tomahawk::DynamicQmlWidget( playlist, m_stack ); playlist->resolve(); } @@ -816,7 +817,7 @@ ViewManager::playlistForInterface( Tomahawk::playlistinterface_ptr interface ) c Tomahawk::dynplaylist_ptr ViewManager::dynamicPlaylistForInterface( Tomahawk::playlistinterface_ptr interface ) const { - foreach ( QPointer view, m_dynamicWidgets.values() ) + foreach ( QPointer view, m_dynamicWidgets.values() ) { if ( !view.isNull() && view.data()->playlistInterface() == interface ) { diff --git a/src/libtomahawk/ViewManager.h b/src/libtomahawk/ViewManager.h index fb6f08bc6..7cc46c443 100644 --- a/src/libtomahawk/ViewManager.h +++ b/src/libtomahawk/ViewManager.h @@ -59,7 +59,7 @@ class InboxModel; namespace Tomahawk { - class DynamicWidget; + class DynamicQmlWidget; } class DLLEXPORT ViewManager : public QObject @@ -195,7 +195,7 @@ private: QList< Tomahawk::collection_ptr > m_superCollections; - QHash< Tomahawk::dynplaylist_ptr, QPointer > m_dynamicWidgets; + QHash< Tomahawk::dynplaylist_ptr, QPointer > m_dynamicWidgets; QHash< Tomahawk::collection_ptr, QPointer > m_treeWidgets; QHash< Tomahawk::artist_ptr, QPointer > m_artistViews; QHash< Tomahawk::album_ptr, QPointer > m_albumViews;