defuze.me
Client
|
00001 /************************************************************************** 00002 ** defuze.me Epitech Innovative Project 00003 ** 00004 ** Copyright 2010-2012 00005 ** Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard 00006 ** Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier 00007 ** 00008 ** All rights reserved. 00009 **************************************************************************/ 00010 00011 #include "listsplugin.hpp" 00012 00013 using namespace Lists; 00014 00015 ListsPlugin::ListsPlugin() 00016 { 00017 } 00018 00019 ListsPlugin::~ListsPlugin() 00020 { 00021 } 00022 00023 void ListsPlugin::init() 00024 { 00025 widget = new ListsWidget(this); 00026 model = new ListsModel(this); 00027 widget->getTreeViewWidget()->setModel(model); 00028 Gui::Module *listsModule = Gui::ModuleFactory::create("lists", QPoint(2, 0), widget); 00029 listsModule->submitForDisplay(); 00030 } 00031 00032 void ListsPlugin::aboutToQuit() 00033 { 00034 delete model; 00035 delete widget; 00036 } 00037 00038 ListsWidget *ListsPlugin::getWidget() const 00039 { 00040 return widget; 00041 } 00042 00043 ListsModel *ListsPlugin::getModel() const 00044 { 00045 return model; 00046 } 00047 00048 QMap<int, QString> ListsPlugin::getPlaylists(bool dynamic) 00049 { 00050 QSqlQuery query; 00051 QMap<int, QString> listsMap; 00052 00053 query.prepare("SELECT id, name FROM playlists WHERE is_dynamic = :dynamic"); 00054 query.bindValue(":dynamic", dynamic); 00055 query.exec(); 00056 while (query.next()) 00057 listsMap[query.value(0).toInt()] = query.value(1).toString(); 00058 return listsMap; 00059 } 00060 00061 QMap<int, QString> ListsPlugin::getNormalPlaylists() 00062 { 00063 return getPlaylists(false); 00064 } 00065 00066 QMap<int, QString> ListsPlugin::getDynamicPlaylists() 00067 { 00068 return getPlaylists(true); 00069 } 00070 00071 QList<int> ListsPlugin::getTracksForNormalPlaylist(int id) 00072 { 00073 QSqlQuery query; 00074 00075 query.prepare("SELECT definition FROM playlists WHERE id = :id"); 00076 query.bindValue(":id", id); 00077 query.exec(); 00078 00079 QList<int> tracksList; 00080 if (query.next()) 00081 { 00082 QList<QVariant> data = Network::JsonParser().parse(query.value(0).toByteArray()).toList(); 00083 foreach (QVariant trackId, data) 00084 tracksList << trackId.toInt(); 00085 } 00086 return tracksList; 00087 }